5 Replies Latest reply on Sep 22, 2016 2:32 PM by ibrahim_bittar

    What to learn about EDI/XML, web-services and API?

    Magnus Fransson

      Hi all,

       

      My client just got an inquiry from an external partner, that might/will increase current project.

       

      [Quote:]

      Hi, please make sure this reach your IT department.

      Sorry for the short notice.

       

       

      Dear Partner NI,

       

      We have now decided what format we are going to have in our future integration.

       

      <Snip>

       

      There are 2 different options:

       

       

       

      EDI:

       

      - Prefered

       

      o EDIFACT D96A

       

      - Alternatives:

       

      o all newer versions could potentially be backported to D96A

       

       

      XML:

       

      - Prefered

       

      o UBL 2.1

       

      § EU approved

       

      § ISO international standard

       

      o xCBL 3.5

       

      § Common in older systems with support for all required document types

       

      - Alternatives

       

      o cXML 1.2

       

      § This standard lacks the order update message from a vendor but supports a "synchronous" OrderStatusRequest.

       

      § The vendor must provide a webservice implementing this document where we can request actual status for all orders so we have accurate ETA dates.

       

      <Snip>

      [End quote.]

       

      I will of course Google: EDIFACT D96A; UBL 2.1;  xCBL 3.5 and cXML 1.2.

       

      The system I'm maintaining right now is a combined CRM, ordering, stock keeping and invoicing system built from scratch in FileMaker. Being an experienced FileMaker developer, I have not yet done anything that uses XML, as "heavily". I have just started reading Beverlys excellent book. I feel that this is outside my "comfort zoon", there are a lot that I have to learn.

       

      My question to you are what do I need to know/learn? XML/XSLT of course, but what about web-services? And can FileMaker Server act as a "host" for those web-services? Or do I need to involve some external software? If so, which?

       

      With best regards Magnus Fransson.

        • 1. Re: What to learn about EDI/XML, web-services and API?
          mikebeargie

          The resident expert (that wrote the book on it) is beverly, so I would definitely value her input here.

           

          Personally, I would actually shy away from learning anything with XML and XSLT at this point if you're new to it.

           

          XML as a format has been dying a slow death versus the new kid, JSON. Once setup, you can use the more modern REST based API format to interact with FileMaker. RestFM is a free tool to turn your filemaker server into a RESTful web API. RESTfm | FileMaker RESTful Web Service

           

          The good thing about RESTfm is it ALSO lets you return data in XML format, so it may satisfy your needs as well for this application. However since you're learning the more modern usage, and just formatting your output to the old version, you'll be getting a better education out of it then having to re-learn REST/JSON later.

          1 of 1 people found this helpful
          • 2. Re: What to learn about EDI/XML, web-services and API?
            beverly

            Thanks, Magnus! I'll address the XML (of course). Import/Export with XML and XSLT allows flexibility of having your fields "match" what the XML has as elements and/or attributes. Calculated/Parse XML can also be done (carefully). The first part of EDI is the format. Some still have only the old-style text, some have the option of XML and some even have a JSON option!

             

            The second part of EDI has always been the transmission - usually through some secure means. Just import/export with FM may not get you that directly. Therefore the Web-Services is often used, especially if the need is for request-response cycle(s).

             

            The Plug-in people tend to be able to get you the authentication, security and transmission in a format acceptable with the API. I don't have any recommendations on that. I do recommend reading the specs and then discuss those needs with the plug-in developers before deciding on which one(s).

             

            Web-Services can also use Custom Web Publishing if you have the skills to use it with FileMaker, keeping security in mind!

             

            beverly

            • 3. Re: What to learn about EDI/XML, web-services and API?
              beverly

              LOL, Mike. We both pointed to JSON. Hopefully that is available for the API.

              beverly

              • 4. Re: What to learn about EDI/XML, web-services and API?
                David Moyer

                Hi,

                I've done a lot of EDI with FM, but that was in the 90's; and even then, it was legacy.  What I know about Web Services is that I've written my own using MS Visual Studio.  I believe that they can be hosted internally using IIS on a Windows machine (using Server or Professional).  I have tested them via Visual Studio's virtual hosting; and FM interacts with them very well.

                • 5. Re: What to learn about EDI/XML, web-services and API?
                  ibrahim_bittar

                  Hi Magnus

                   

                  I see two plugins in your future: Base Elements and ScriptMaster.

                   

                  Both allow you to consume web services. Base Elements is free and has a ton of useful functions to send POST requests, parse XML and JSON files and to consume web services in general.

                   

                  ScriptMaster takes Groovy – a flavor of Java – and allows it to interact with FileMaker. This is great because there are literally thousands of Java libraries that you can make work from Filemaker, including SOAP Web Services. The downside is you need to learn Groovy and – in short – it's not FileMaker so the learning curve is very steep.

                   

                  If you can manage your project with REST (with JSON or XML), then you'll only need Base Elements. For GET requests you can use Insert From URL.

                   

                  Hope this helps

                   

                  Ibrahim