Web Services Node w XML file that has many records to process

 5 Replies
 0 Subscribed to this topic
 52 Subscribed to this forum
Sort:
Author
Messages
Barb Regnier
Basic Member
Posts: 4
Basic Member
    First I will state I have not ever worked with XML files or the Web Service Node.  

    We need to build a process flow to take in the St. Croix Systems Purchase Requests XML file which will have many "records" in it by using the Web Service.   We will then build a file that will be used to create requistions in RQ500.   How can I loop through the XML file/Web Service to get all the "records"?  

    We also have to turn around and send them back the PO information and this would also be a multi record XML file.

    Any help would be greatly appreciated.

    Barb
    David Williams
    Veteran Member
    Posts: 1127
    Veteran Member
      To read in the XML file you have to also build an .xsd file which basically is the mapping of the data and is referenced in the XML node in ProcessFlow. I used a FileAccess node to bring in the file and then the XML node to parse it.

      When I had to write the data back, I simply used the MsgBuilder to create/format my file and a FileAccess to write it back out. I tried to use the XML node to create my output data but someone recommended this easier solution to me.

      You should be able to find information on XSD files on line but if you need additional help, feel free to email me.
      David Williams
      Barb Regnier
      Basic Member
      Posts: 4
      Basic Member
        Thanks David,

        To get the file however I need to use the Web Service node.  How can I loop through it?
        All the other Web Service examples I've seen are pretty much single "reads".
        David Williams
        Veteran Member
        Posts: 1127
        Veteran Member
          I'm not familiar with using the Web Service node, but in the XML node you specify the Input source for your data and then reference the local XSD file to use to parse the data. I'm guessing the data returned in your Web Service (webService_outputData ?) is the Input source.
          David Williams
          Barb Regnier
          Basic Member
          Posts: 4
          Basic Member
            David,

            I still working on this.   I have loaded the xsd file into the XML node.   I don't however see how you would keep looping through the input file and using the XML parser to get the next requisition and the next and the next.

            Barb
            David Williams
            Veteran Member
            Posts: 1127
            Veteran Member
              If you just have one record then you can use an Assign to assign a value to your variables: poNumber=XML5700_output.PO.PONUM
              If you have multiple records, you can get the number of records to process using: lineCount=XML5700_output.*:OLINE.length()
              You would then use a Branch to loop through your records as long as LineCounter
              My XML file had a header section "PO" and several lines in the line section "POLINE" and my file only had one PO record per file.
              David Williams