Simple way to receive cXML/XML files over HTTPS

Henrik Rosager Pedersen
Henrik Rosager Pedersen used Ask the Experts™
on
Hi all,

I have a customer who want's to send us PO's in cXML format via their portal from Coupa. My problem is - that I do not know how to set up a service that can receive these XML-files over HTTPS.

We are running a Windows environment with the possibility to set up a IIS (if that's any help).

This is what they need to fill out from the customers end:
image002.jpg
I am also willing to use a 3. party software which can do the job.

I have never done this before - so I kinda need a newbie guide for the best solution.
I hope you do understand my question - and even better - can help me :-D

Thanks!
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Scott FellDeveloper & EE Moderator
Fellow 2018
Most Valuable Expert 2013

Commented:
One option is to just sign up with Coupa and pay them.  I do get scared when I can't see prices on a website though. https://www.coupa.com/  However, the site does say your PO can be received via email https://success.coupa.com/Suppliers/For_Suppliers/Purchase_Orders/02_cXML_Purchase_Orders
Suppliers can receive POs from their Coupa-based customers via the CSP, cXML, or email/HTML.
https://success.coupa.com/Suppliers/For_Suppliers/Purchase_Orders
HTML-based purchase orders via email are for suppliers who lack the volume or resources to justify implementing an automated solution.


Otherwise, you just need to set up a webserver. While you can do this on your own in house server, it is not worth the security risk. You can get a shared web host for a small monthly fee. Then it is a matter of accepting data posted to a url.

You will end up with data that looks like
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
<cXML xml:lang="en-US" payloadID="1452186890.009162@ip-10-7-14-126" timestamp="2008-01-07T09:14:50-08:00">
   <Header>
      <From>
         <Credential domain="duns">
            <!-- Customer domain typically provided by Supplier, typically DUNS -->
            <Identity>dell</Identity>
            <!-- Customer id typically provided by Supplier, string -->
         </Credential>
      </From>
      <To>
         <Credential domain="Duns">
            <!-- Supplier domain typically provided by Supplier, typically DUNS -->
            <Identity>128293714</Identity>
            <!-- Supplier id typically provided by Supplier, string -->
         </Credential>
      </To>
      <Sender>
         <Credential domain="duns">
            <Identity>dell</Identity>
            <!-- same as From -->
            <Identity>dell</Identity>
            <!-- same as From -->
         </Credential>
         <UserAgent>Coupa Procurement 1.0</UserAgent>
         <!-- does not change -->
      </Sender>
   </Header>
   <Request deploymentMode="production">
      <OrderRequest>
         <OrderRequestHeader orderID="6112" orderDate="2008-01-07T09:14:50-08:00" type="new">
         <!-- Coupa supports "new" and "update" -->
            <Total>
               <Money currency="USD">1505.0</Money>
               <!-- Currency code configured in Coupa -->
            </Total>
            <ShipTo>
               <Address isoCountryCode="US" addressID="3119">
                  <Name xml:lang="en">jmadden</Name>
                  <PostalAddress name="default">
                     <DeliverTo>j maddedn</DeliverTo>
                     <Street>333 East Hill Dr</Street>
                     <City>san leandro</City>
                     <State>ca</State>
                     <PostalCode>22222</PostalCode>
                     <Country isoCountryCode="US">United States</Country>
                  </PostalAddress>
                  <Email name="default">jmadden@coupa1.com</Email>
               </Address>
            </ShipTo>
            <BillTo>
               <Address isoCountryCode="US" addressID="142">
                  <Name xml:lang="en">SOB1</Name>
                  <!-- Company Name under Company Information in Coupa -->
                  <PostalAddress name="default">
                     <DeliverTo>Noah Sanity Attn: Noah Noah</DeliverTo>
                     <Street>3420 Flatiron Way</Street>
                     <City>West Index</City>
                     <State>NJ</State>
                     <PostalCode>43023</PostalCode>
                     <Country isoCountryCode="US">United States</Country>
                  </PostalAddress>
               </Address>
            </BillTo>
            <Contact role="endUser">
               <Name xml:lang="en">j maddedn</Name>
               <Email name="default">jmadden@coupa1.com</Email>
            </Contact>
            <Comments xml:lang="en">header comment goes here if entered by user</Comments>
         </OrderRequestHeader>
         <ItemOut quantity="1" lineNumber="1">
            <ItemID>
               <SupplierPartID>223-4511</SupplierPartID>
               <!-- Coupa Item Part Number -->
               <SupplierPartAuxiliaryID>1005379527029\1</SupplierPartAuxiliaryID>
               <!-- Auxiliary Part Number is optional, typically used by punchout suppliers -->
            </ItemID>
            <ItemDetail>
               <UnitPrice>
                  <Money currency="USD">1505.0</Money>
                  <!-- Currency code configured in Coupa -->
               </UnitPrice>
               <Description xml:lang="en">OptiPlex 755 Energy Smart Minitower;IntelREG CoreTM 2 Quad Processor Q6600 (2.40GHz, 2X4M, 1066MHz FSB)</Description>
               <UnitOfMeasure>EA</UnitOfMeasure>
               <Classification domain="UNSPSC">44000000</Classification>
               <!-- Future expansion -->
            </ItemDetail>
            <Distribution>
               <Accounting name="bbbb">
                  <!-- Coupa Account name -->
                  <Segment id="bbb" description="ORG" type="Organization" />
                  <Segment id="b" description="DEPT" type="Department" />
                  <Segment id="bb" description="PROJ" type="Project" />
               </Accounting>
               <Charge>
                  <Money currency="USD">1505.0</Money>
               </Charge>
            </Distribution>
            <Comments xml:lang="en">line item comment goes here if entered by user</Comments>
         </ItemOut>
      </OrderRequest>
   </Request>
</cXML>

Open in new window

The next step is to have your code parse this or use it as is.

If you can just have your client use email, that will be the easiest for you. The next easiest for you will be to sign up as a vendor with the same service. At least see what the pricing is.

Author

Commented:
Hi Scott,
thanks for your suggestions.

My customer are already connected via Mail. They simply receive a HTML file via mail - but then they have to create the ordre manually in their ERP system. That's what they are doing now - but they need to have a automatic solution where the cXML files are placed in a folder on a server so the ERP system can 'pick the m up'.

I will try to figure out the prices at Coupa.

Do I understand your comment correctly if I say the code you have put in is an example of a XML-file?

Thanks!
Scott FellDeveloper & EE Moderator
Fellow 2018
Most Valuable Expert 2013

Commented:
By paying coupa, I meant  using that as your own system. Since they already have a system, then it should be a 'simple' matter of the coupa system sending the file to a remote server you control that then gets used by your clients system.   When looking through the docs, I found https://success.coupa.com/Integrate/Other_Playbooks/Additional_SFTP_Exports_Add-on Never should a customer use the Coupa API to extract data to from Coupa to send to a 3rd party Data Warehouse. That is not allowed or supported. . With that, I searched for, "coupa api" and found https://success.coupa.com/Integrate/Technical_Documentation/API / https://success.coupa.com/Integrate/Technical_Documentation/API/Get_Started

So the next step is understanding what your client's ERP capabilities are. It may be able to accept the data directly or you may need to pay for a third party web server (or enable your own) to fetch or receive data from coupa that can in turn be fetched by your clients ERP.
Commented:
Hallo,
I found my own solution using a 3rd. party program called LaserNet.
Thanks anyways for your inputs.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial