CXMLファイルでサプライチェーンコラボレーション Supply Chain Collaboration 件を確認
Coupaは、SCCを使用するサプライヤーの発注書をサポートしています
はじめに
CoupaのサプライヤーレコードがSCCで有効になっている場合、PO cXML DTDバージョンは1.2.056として送信され、新しいSCCフィールドがcXMLペイロードに追加されます。 顧客のSCCの一部として有効にされているcXMLサプライヤーは、最終的にcXML Fulfill.dtd、つまりcXMLバージョン1.2.036以降である必要がある注文確認書を返送できるように、Coupa PO cXMLの使用をサポートする必要があります。
仕組み
CXML POペイロードでSCCの一部として有効になっているフィールドを以下に示します。
<ControlKeys> <OCInstruction value="許可"/> </ControlKeys><ItemOut quantity="21" lineNumber="1" confirmationDueDate="2023-06-15T11:04:47-07:00">
Coupa PO cXMLペイロードでサポートされているOCInstructionの値は許可されていますが、許可されていません。
サプライヤーがCoupaでSCCを有効にしているが、顧客がSCC注文確認プロセスの一部ではない特定の申請/外部POを選択した場合、申請/外部POレベル自体でそれを言及することができ、PO cXMLペイロードがサプライヤーに送信されると、次のように言及されます。
<ControlKeys> <OCInstruction value="notAllowed"/> </ControlKeys>
これは、顧客がその特定のPOの確認を期待していないことを意味します
- CXML POペイロードの「OrderRequestHeader」セクションに記載されている「ControlKeys」セクションは、すべてのサプライヤーがPOの詳細を受け入れるか、特定のPOのSCCの一部としてPOの詳細を拒否できる ヘッダー レベルの確認であることを意味します。 このシナリオでは顧客が編集を許可していないため、SCCでのヘッダーレベルの確認には変更は許可されていません。
- 「ControlKeys」セクションは、cXML POペイロードの各「ItemOut」セクションで言及されている場合、サプライヤーがSCCの一部として変更(別名詳細)を受け入れる/拒否/提案できる 行 レベルの確認を意味します。
cXML POペイロードの開始 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.056/cXML.dtd ">
- CoupaのサプライヤーレコードがSCCで有効になっていない場合、PO cXML DTDバージョンは1.2.014のままとなり、すでに有効になっているサプライヤーは影響を受けず、SCCフィールドはペイロードに追加されません。
cXML POペイロードの開始 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd ">
まとめると、次のようになります。
- SCCでcXML POを使用する場合、cXML DTD 1.2.056バージョンが使用されます。
- SCCなしでcXML POを使用する場合、cXML DTD 1.2.014バージョンが使用されます
cXML注文確認( Fulfill.dtd )
cXML DTD 1.2.036以上は、サプライヤーが使用する必要があります。 CXML Coupa注文確認ペイロードの例を以下に示します。
{ "info": { "_postman_id": "cd0f89dc-7789-4c89-82a6-941b1fa9fe1f", "name": "Coupa cXML Samples", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "8515263" }, "item": [ { "name": "Order Confirmations", "item": [ { "name": "Accept All Lines", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE cXML SYSTEM \"http://xml.cXML.org/schemas/cXML/1.2.036/Fulfill.dtd\">\n<cXML payloadID=\"i-am-a-payload-id\" xml:lang=\"en-US\" timestamp=\"2023-05-19T08:39:29-08:00\">\n <Header>\n <From>\n <!-- domain attr is 'cxml_invoice_supplier_domain' -->\n <Credential domain=\"test\">\n <!-- Identity content is 'cxml_invoice_supplier_identity' -->\n <Identity>test</Identity>\n </Credential>\n </From>\n <To>\n <!-- domain attr is 'cxml_invoice_buyer_domain' -->\n <Credential domain=\"test\">\n <!-- Identity content is 'cxml_invoice_buyer_identity' -->\n <Identity>test</Identity>\n </Credential>\n </To>\n <!-- The supplier -->\n <Sender>\n <!-- domain attr must match Header/From/Credential['domain'] attr -->\n <Credential domain=\"test\">\n <!-- Identity content is must match Header/From/Credential/Identity content -->\n <Identity>test</Identity>\n <!-- SharedSecret contents 'cxml_invoice_secret' -->\n <SharedSecret>test</SharedSecret>\n </Credential>\n <!-- UserAgent can be anything -->\n <UserAgent> HTTP Agent</UserAgent>\n </Sender>\n </Header>\n <Request deploymentMode=\"production\">\n <ConfirmationRequest>\n <!-- operations and type is used by coupa -->\n <!-- operations= update Coupa will error this out, given that we do not currently allow more than 1 back-and-forth -->\n <ConfirmationHeader type=\"accept\"\n noticeDate=\"2023-05-19\"\n confirmID=\"15\"\n operation=\"new\">\n <!-- These elements are not used by Coupa -->\n <Comments xml:lang=\"en-US\">Look's great</Comments>\n </ConfirmationHeader>\n <!-- orderID attr is an OrderHeader number that will become associated to the OrderConfirmation::Line -->\n <OrderReference orderID=\"3169\" orderDate=\"2023-05-19\">\n <DocumentReference payloadID=\"3169\" />\n </OrderReference>\n <!-- ConfirmationItem elements should be present to provide status information for individual line items in the order -->\n <ConfirmationItem lineNumber=\"1\" quantity=\"23\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <ConfirmationStatus quantity=\"23\" type=\"accept\" shipmentDate=\"2023-05-23\" deliveryDate=\"2023-05-25T20:07:00-08:00\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <UnitPrice>\n <Money currency=\"USD\">20.00</Money>\n </UnitPrice>\n <Comments xml:lang=\"en-US\"> supplier reaoson consideredother</Comments>\n </ConfirmationStatus>\n </ConfirmationItem>\n <ConfirmationItem lineNumber=\"2\" quantity=\"23\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <ConfirmationStatus quantity=\"23\" type=\"accept\" shipmentDate=\"2023-05-23\" deliveryDate=\"2023-05-25T20:07:00-08:00\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <UnitPrice>\n <Money currency=\"USD\">20.00</Money>\n </UnitPrice>\n <Comments xml:lang=\"en-US\"> supplier reaoson consideredother</Comments>\n </ConfirmationStatus>\n </ConfirmationItem>\n </ConfirmationRequest>\n </Request>\n</cXML>", "options": { "raw": { "language": "xml" } } }, "url": { "raw": "{{cXML_URL}}/order_confirmation_request", "host": [ "{{cXML_URL}}" ], "path": [ "order_confirmation_request" ] } }, "response": [] }, { "name": "Reject All Lines", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE cXML SYSTEM \"http://xml.cXML.org/schemas/cXML/1.2.036/Fulfill.dtd\">\n<cXML payloadID=\"i-am-a-payload-id\" xml:lang=\"en-US\" timestamp=\"2023-05-19T08:39:29-08:00\">\n <Header>\n <From>\n <!-- domain attr is 'cxml_invoice_supplier_domain' -->\n <Credential domain=\"test\">\n <!-- Identity content is 'cxml_invoice_supplier_identity' -->\n <Identity>test</Identity>\n </Credential>\n </From>\n <To>\n <!-- domain attr is 'cxml_invoice_buyer_domain' -->\n <Credential domain=\"test\">\n <!-- Identity content is 'cxml_invoice_buyer_identity' -->\n <Identity>test</Identity>\n </Credential>\n </To>\n <!-- The supplier -->\n <Sender>\n <!-- domain attr must match Header/From/Credential['domain'] attr -->\n <Credential domain=\"test\">\n <!-- Identity content is must match Header/From/Credential/Identity content -->\n <Identity>test</Identity>\n <!-- SharedSecret contents 'cxml_invoice_secret' -->\n <SharedSecret>test</SharedSecret>\n </Credential>\n <!-- This is not used by Coupa -->\n <UserAgent> HTTP Agent</UserAgent>\n </Sender>\n </Header>\n <Request deploymentMode=\"production\">\n <ConfirmationRequest>\n <!-- operations and type is used by coupa -->\n <!-- operations= update Coupa will error this out, given that we do not currently allow more than 1 back-and-forth -->\n <ConfirmationHeader type=\"reject\"\n noticeDate=\"2023-05-19\"\n confirmID=\"15\"\n operation=\"new\">\n <!-- These elements are not used by Coupa -->\n <Comments xml:lang=\"en-US\">Look's great</Comments>\n </ConfirmationHeader>\n <!-- orderID attr is an OrderHeader ID number that will become associated to the OrderConfirmation::Line -->\n <OrderReference orderID=\"3168\" orderDate=\"2023-05-19\">\n <DocumentReference payloadID=\"3168\" />\n </OrderReference>\n <!-- ConfirmationItem elements should be present to provide status information for individual line items in the order -->\n <ConfirmationItem lineNumber=\"1\" quantity=\"123\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <ConfirmationStatus quantity=\"123\" type=\"reject\" shipmentDate=\"2023-05-23\" deliveryDate=\"2023-05-25T20:07:00-08:00\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <UnitPrice>\n <Money currency=\"USD\">230.00</Money>\n </UnitPrice>\n <Comments xml:lang=\"en-US\"> supplier reaoson considered other</Comments>\n </ConfirmationStatus>\n </ConfirmationItem>\n <ConfirmationItem lineNumber=\"2\" quantity=\"12\">\n <UnitOfMeasure>BX</UnitOfMeasure>\n <ConfirmationStatus quantity=\"12\" type=\"reject\" shipmentDate=\"2023-05-23\" deliveryDate=\"2023-05-25T20:07:00-08:00\">\n <UnitOfMeasure>BX</UnitOfMeasure>\n <UnitPrice>\n <Money currency=\"USD\">120.00</Money>\n </UnitPrice>\n <Comments xml:lang=\"en-US\"> supplier reaoson considered other</Comments>\n </ConfirmationStatus>\n </ConfirmationItem>\n </ConfirmationRequest>\n </Request>\n</cXML>", "options": { "raw": { "language": "xml" } } }, "url": { "raw": "{{cXML_URL}}/order_confirmation_request", "host": [ "{{cXML_URL}}" ], "path": [ "order_confirmation_request" ] } }, "response": [] }, { "name": "Mix of accept/reject lines", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE cXML SYSTEM \"http://xml.cXML.org/schemas/cXML/1.2.036/Fulfill.dtd\">\n<cXML payloadID=\"i-am-a-payload-id\" xml:lang=\"en-US\" timestamp=\"2023-05-19T08:39:29-08:00\">\n <Header>\n <From>\n <!-- domain attr is 'cxml_invoice_supplier_domain' -->\n <Credential domain=\"test\">\n <!-- Identity content is 'cxml_invoice_supplier_identity' -->\n <Identity>test</Identity>\n </Credential>\n </From>\n <To>\n <!-- domain attr is 'cxml_invoice_buyer_domain' -->\n <Credential domain=\"test\">\n <!-- Identity content is 'cxml_invoice_buyer_identity' -->\n <Identity>test</Identity>\n </Credential>\n </To>\n <!-- The supplier -->\n <Sender>\n <!-- domain attr must match Header/From/Credential['domain'] attr -->\n <Credential domain=\"test\">\n <!-- Identity content is must match Header/From/Credential/Identity content -->\n <Identity>test</Identity>\n <!-- SharedSecret contents 'cxml_invoice_secret' -->\n <SharedSecret>test</SharedSecret>\n </Credential>\n <!-- This is not used by Coupa -->\n <UserAgent> HTTP Agent</UserAgent>\n </Sender>\n </Header>\n <Request deploymentMode=\"production\">\n <ConfirmationRequest>\n <!-- operations and type is used by coupa -->\n <!-- operations= update Coupa will error this out, given that we do not currently allow more than 1 back-and-forth -->\n <ConfirmationHeader type=\"detail\"\n noticeDate=\"2023-05-19\"\n confirmID=\"15\"\n operation=\"new\">\n <!-- These elements are not used by Coupa -->\n <Comments xml:lang=\"en-US\">Look's great</Comments>\n </ConfirmationHeader>\n <!-- orderID attr is an OrderHeader ID number that will become associated to the OrderConfirmation::Line -->\n <OrderReference orderID=\"3171\" orderDate=\"2023-05-19\">\n <DocumentReference payloadID=\"3171\" />\n </OrderReference>\n <!-- ConfirmationItem elements should be present to provide status information for individual line items in the order -->\n <ConfirmationItem lineNumber=\"1\" quantity=\"23\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <ConfirmationStatus quantity=\"23\" type=\"reject\" shipmentDate=\"2023-05-23\" deliveryDate=\"2023-05-25T20:07:00-08:00\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <UnitPrice>\n <Money currency=\"USD\">20.00</Money>\n </UnitPrice>\n <Comments xml:lang=\"en-US\"> supplier reaoson consideredother</Comments>\n </ConfirmationStatus>\n </ConfirmationItem>\n <ConfirmationItem lineNumber=\"2\" quantity=\"23\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <ConfirmationStatus quantity=\"23\" type=\"accept\" shipmentDate=\"2023-05-23\" deliveryDate=\"2023-05-25T20:07:00-08:00\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <UnitPrice>\n <Money currency=\"USD\">20.00</Money>\n </UnitPrice>\n <Comments xml:lang=\"en-US\"> supplier reaoson consideredother</Comments>\n </ConfirmationStatus>\n </ConfirmationItem>\n <ConfirmationItem lineNumber=\"3\" quantity=\"23\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <ConfirmationStatus quantity=\"23\" type=\"accept\" shipmentDate=\"2023-05-23\" deliveryDate=\"2023-05-25T20:07:00-08:00\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <UnitPrice>\n <Money currency=\"USD\">20.00</Money>\n </UnitPrice>\n <Comments xml:lang=\"en-US\"> supplier reaoson consideredother</Comments>\n </ConfirmationStatus>\n </ConfirmationItem>\n </ConfirmationRequest>\n </Request>\n</cXML>", "options": { "raw": { "language": "xml" } } }, "url": { "raw": "{{cXML_URL}}/order_confirmation_request", "host": [ "{{cXML_URL}}" ], "path": [ "order_confirmation_request" ] } }, "response": [] }, { "name": "Mix of accept part of quantity/reject part of quantity", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE cXML SYSTEM \"http://xml.cXML.org/schemas/cXML/1.2.036/Fulfill.dtd\">\n<cXML payloadID=\"i-am-a-payload-id\" xml:lang=\"en-US\" timestamp=\"2023-05-19T08:39:29-08:00\">\n <Header>\n <From>\n <!-- domain attr is 'cxml_invoice_supplier_domain' -->\n <Credential domain=\"test\">\n <!-- Identity content is 'cxml_invoice_supplier_identity' -->\n <Identity>test</Identity>\n </Credential>\n </From>\n <To>\n <!-- domain attr is 'cxml_invoice_buyer_domain' -->\n <Credential domain=\"test\">\n <!-- Identity content is 'cxml_invoice_buyer_identity' -->\n <Identity>test</Identity>\n </Credential>\n </To>\n <!-- The supplier -->\n <Sender>\n <!-- domain attr must match Header/From/Credential['domain'] attr -->\n <Credential domain=\"test\">\n <!-- Identity content is must match Header/From/Credential/Identity content -->\n <Identity>test</Identity>\n <!-- SharedSecret contents 'cxml_invoice_secret' -->\n <SharedSecret>test</SharedSecret>\n </Credential>\n <!-- This is not used by Coupa -->\n <UserAgent> HTTP Agent</UserAgent>\n </Sender>\n </Header>\n <Request deploymentMode=\"production\">\n <ConfirmationRequest>\n <!-- operations and type is used by coupa -->\n <!-- operations= update Coupa will error this out, given that we do not currently allow more than 1 back-and-forth -->\n <ConfirmationHeader type=\"detail\"\n noticeDate=\"2023-05-19\"\n confirmID=\"15\"\n operation=\"new\">\n <!-- These elements are not used by Coupa -->\n <Comments xml:lang=\"en-US\">Look's great</Comments>\n </ConfirmationHeader>\n <!-- orderID attr is an OrderHeader ID number that will become associated to the OrderConfirmation::Line -->\n <OrderReference orderID=\"3172\" orderDate=\"2023-05-19\">\n <DocumentReference payloadID=\"3172\" />\n </OrderReference>\n <!-- ConfirmationItem elements should be present to provide status information for individual line items in the order -->\n <ConfirmationItem lineNumber=\"1\" quantity=\"123\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <ConfirmationStatus quantity=\"100\" type=\"accept\" shipmentDate=\"2023-05-15\" deliveryDate=\"2023-05-28T20:07:00-08:00\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <UnitPrice>\n <Money currency=\"USD\">230.00</Money>\n </UnitPrice>\n <Comments xml:lang=\"en-US\"> supplier accept</Comments>\n </ConfirmationStatus>\n <ConfirmationStatus quantity=\"23\" type=\"reject\" shipmentDate=\"2023-05-15\" deliveryDate=\"2023-05-28T20:07:00-08:00\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <UnitPrice>\n <Money currency=\"USD\">230.00</Money>\n </UnitPrice>\n <Comments xml:lang=\"en-US\"> Rejectig 23 because we only do this item in 100s</Comments>\n </ConfirmationStatus>\n </ConfirmationItem>\n </ConfirmationRequest>\n </Request>\n</cXML>", "options": { "raw": { "language": "xml" } } }, "url": { "raw": "{{cXML_URL}}/order_confirmation_request", "host": [ "{{cXML_URL}}" ], "path": [ "order_confirmation_request" ] } }, "response": [] }, { "name": "Accept with multiple schedule lines", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE cXML SYSTEM \"http://xml.cXML.org/schemas/cXML/1.2.036/Fulfill.dtd\">\n<cXML payloadID=\"i-am-a-payload-id\" xml:lang=\"en-US\" timestamp=\"2023-05-19T08:39:29-08:00\">\n <Header>\n <From>\n <!-- domain attr is 'cxml_invoice_supplier_domain' -->\n <Credential domain=\"test\">\n <!-- Identity content is 'cxml_invoice_supplier_identity' -->\n <Identity>test</Identity>\n </Credential>\n </From>\n <To>\n <!-- domain attr is 'cxml_invoice_buyer_domain' -->\n <Credential domain=\"test\">\n <!-- Identity content is 'cxml_invoice_buyer_identity' -->\n <Identity>test</Identity>\n </Credential>\n </To>\n <!-- The supplier -->\n <Sender>\n <!-- domain attr must match Header/From/Credential['domain'] attr -->\n <Credential domain=\"test\">\n <!-- Identity content is must match Header/From/Credential/Identity content -->\n <Identity>test</Identity>\n <!-- SharedSecret contents 'cxml_invoice_secret' -->\n <SharedSecret>test</SharedSecret>\n </Credential>\n <!-- This is not used by Coupa -->\n <UserAgent> HTTP Agent</UserAgent>\n </Sender>\n </Header>\n <Request deploymentMode=\"production\">\n <ConfirmationRequest>\n <!-- operations and type is used by coupa -->\n <!-- operations= update Coupa will error this out, given that we do not currently allow more than 1 back-and-forth -->\n <ConfirmationHeader type=\"detail\"\n noticeDate=\"2023-05-19\"\n confirmID=\"15\"\n operation=\"new\">\n <!-- These elements are not used by Coupa -->\n <Comments xml:lang=\"en-US\">Look's great</Comments>\n </ConfirmationHeader>\n <!-- orderID attr is an OrderHeader ID number that will become associated to the OrderConfirmation::Line -->\n <OrderReference orderID=\"3176\" orderDate=\"2023-05-19\">\n <DocumentReference payloadID=\"3176\" />\n </OrderReference>\n <!-- ConfirmationItem elements should be present to provide status information for individual line items in the order -->\n <ConfirmationItem lineNumber=\"1\" quantity=\"123\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <ConfirmationStatus quantity=\"23\" type=\"detail\" shipmentDate=\"2023-05-23\" deliveryDate=\"2023-05-28T20:07:00-08:00\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <UnitPrice>\n <Money currency=\"USD\">230.00</Money>\n </UnitPrice>\n <Comments xml:lang=\"en-US\"> supplier reaoson consideredother</Comments>\n </ConfirmationStatus>\n <ConfirmationStatus quantity=\"50\" type=\"detail\" shipmentDate=\"2023-05-25\" deliveryDate=\"2023-05-29T20:07:00-08:00\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <UnitPrice>\n <Money currency=\"USD\">230.00</Money>\n </UnitPrice>\n <Comments xml:lang=\"en-US\"> supplier reaoson consideredother</Comments>\n </ConfirmationStatus>\n <ConfirmationStatus quantity=\"50\" type=\"detail\" shipmentDate=\"2023-05-26\" deliveryDate=\"2023-05-30T20:07:00-08:00\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <UnitPrice>\n <Money currency=\"USD\">230.00</Money>\n </UnitPrice>\n <Comments xml:lang=\"en-US\"> supplier reaoson consideredother</Comments>\n </ConfirmationStatus>\n </ConfirmationItem>\n </ConfirmationRequest>\n </Request>\n</cXML>", "options": { "raw": { "language": "xml" } } }, "url": { "raw": "{{cXML_URL}}/order_confirmation_request", "host": [ "{{cXML_URL}}" ], "path": [ "order_confirmation_request" ] } }, "response": [] }, { "name": "Changing Price or Qty or Promised Date", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE cXML SYSTEM \"http://xml.cXML.org/schemas/cXML/1.2.036/Fulfill.dtd\">\n<cXML payloadID=\"i-am-a-payload-id\" xml:lang=\"en-US\" timestamp=\"2023-05-19T08:39:29-08:00\">\n <Header>\n <From>\n <!-- domain attr is 'cxml_invoice_supplier_domain' -->\n <Credential domain=\"test\">\n <!-- Identity content is 'cxml_invoice_supplier_identity' -->\n <Identity>test</Identity>\n </Credential>\n </From>\n <To>\n <!-- domain attr is 'cxml_invoice_buyer_domain' -->\n <Credential domain=\"test\">\n <!-- Identity content is 'cxml_invoice_buyer_identity' -->\n <Identity>test</Identity>\n </Credential>\n </To>\n <!-- The supplier -->\n <Sender>\n <!-- domain attr must match Header/From/Credential['domain'] attr -->\n <Credential domain=\"test\">\n <!-- Identity content is must match Header/From/Credential/Identity content -->\n <Identity>test</Identity>\n <!-- SharedSecret contents 'cxml_invoice_secret' -->\n <SharedSecret>test</SharedSecret>\n </Credential>\n <!-- This is not used by Coupa -->\n <UserAgent> HTTP Agent</UserAgent>\n </Sender>\n </Header>\n <Request deploymentMode=\"production\">\n <ConfirmationRequest>\n <!-- operations and type is used by coupa -->\n <!-- operations= update Coupa will error this out, given that we do not currently allow more than 1 back-and-forth -->\n <ConfirmationHeader type=\"detail\"\n noticeDate=\"2023-05-19\"\n confirmID=\"15\"\n operation=\"new\">\n <!-- These elements are not used by Coupa -->\n <Comments xml:lang=\"en-US\">Look's great</Comments>\n </ConfirmationHeader>\n <!-- orderID attr is an OrderHeader ID number that will become associated to the OrderConfirmation::Line -->\n <OrderReference orderID=\"3177\" orderDate=\"2023-05-19\">\n <DocumentReference payloadID=\"3177\" />\n </OrderReference>\n <!-- ConfirmationItem elements should be present to provide status information for individual line items in the order -->\n <ConfirmationItem lineNumber=\"1\" quantity=\"23\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <ConfirmationStatus quantity=\"23\" type=\"detail\" shipmentDate=\"2023-05-23\" deliveryDate=\"2023-05-25T20:07:00-08:00\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <UnitPrice>\n <Money currency=\"USD\">18.00</Money>\n </UnitPrice>\n <Comments xml:lang=\"en-US\"> supplier reaoson consideredother</Comments>\n </ConfirmationStatus>\n </ConfirmationItem>\n <ConfirmationItem lineNumber=\"2\" quantity=\"23\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <ConfirmationStatus quantity=\"23\" type=\"detail\" shipmentDate=\"2023-05-23\" deliveryDate=\"2023-05-25T20:07:00-08:00\">\n <UnitOfMeasure>EA</UnitOfMeasure>\n <UnitPrice>\n <Money currency=\"USD\">25.00</Money>\n </UnitPrice>\n <Comments xml:lang=\"en-US\"> supplier reaoson consideredother</Comments>\n </ConfirmationStatus>\n </ConfirmationItem>\n </ConfirmationRequest>\n </Request>\n</cXML>", "options": { "raw": { "language": "xml" } } }, "url": { "raw": "{{cXML_URL}}/order_confirmation_request", "host": [ "{{cXML_URL}}" ], "path": [ "order_confirmation_request" ] } }, "response": [] } ] }, { "name": "cXML PO payload with SCC samples", "item": [ { "name": "Sample_cxml_PO_payload_with_line_level_confirmation", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE cXML SYSTEM \"http://xml.cxml.org/schemas/cXML/1.2.056/cXML.dtd\">\n<cXML xml:lang=\"en-US\" payloadID=\"1686167108.003194@dmo305utl2.int.coupahost.com\" timestamp=\"2023-06-07T12:45:09-07:00\">\n <Header>\n <From>\n <Credential domain=\"test\">\n <Identity>test</Identity>\n </Credential>\n </From>\n <To>\n <Credential domain=\"test\">\n <Identity>sfs</Identity>\n </Credential>\n </To>\n <Sender>\n <Credential domain=\"test\">\n <Identity>test</Identity>\n <SharedSecret>test</SharedSecret>\n </Credential>\n <UserAgent>Coupa Procurement 1.0</UserAgent>\n </Sender>\n </Header>\n <Request>\n <OrderRequest>\n <OrderRequestHeader orderID=\"3194\" orderDate=\"2023-06-07T12:45:09-07:00\" type=\"new\">\n <Total>\n <Money currency=\"USD\">920.0</Money>\n </Total>\n <ShipTo>\n <Address isoCountryCode=\"IN\" addressID=\"3128\">\n <Name xml:lang=\"en\">CoupaNetsuite</Name>\n <PostalAddress name=\"default\">\n <DeliverTo>Eshwar Valluripalli</DeliverTo>\n <Street>Sector 19</Street>\n <City>Delhi</City>\n <State>Delhi</State>\n <PostalCode>100001</PostalCode>\n <Country isoCountryCode=\"IN\">India</Country>\n </PostalAddress>\n <Email name=\"default\">eshwar.chowdary@coupa.com</Email>\n </Address>\n </ShipTo>\n <BillTo>\n <Address isoCountryCode=\"IN\" addressID=\"3169\">\n <Name xml:lang=\"en\">CoupaNetsuite</Name>\n <PostalAddress name=\"default\">\n <DeliverTo>Eshwar Valluripalli</DeliverTo>\n <Street>test</Street>\n <City>test India</City>\n <State></State>\n <PostalCode>944031</PostalCode>\n <Country isoCountryCode=\"IN\">India</Country>\n </PostalAddress>\n <Email name=\"default\">eshwar.chowdary@coupa.com</Email>\n </Address>\n </BillTo>\n <Shipping>\n <Money currency=\"USD\">0.0</Money>\n <Description xml:lang=\"en-US\">Fedex - </Description>\n </Shipping>\n <PaymentTerm payInNumberOfDays=\"15\"/>\n <Contact role=\"endUser\">\n <Name xml:lang=\"en\">Eshwar Valluripalli</Name>\n <Email name=\"default\">eshwar.chowdary@coupa.com</Email>\n </Contact>\n </OrderRequestHeader>\n <ItemOut quantity=\"23\" lineNumber=\"1\" confirmationDueDate=\"2023-06-08T12:45:09-07:00\">\n <ItemID>\n <SupplierPartID></SupplierPartID>\n </ItemID>\n <ItemDetail>\n <UnitPrice>\n <Money currency=\"USD\">20.0</Money>\n </UnitPrice>\n <Description xml:lang=\"en\">adfseq</Description>\n <UnitOfMeasure>EA</UnitOfMeasure>\n <Classification domain=\"UNSPSC\">unknown</Classification>\n <ManufacturerPartID></ManufacturerPartID>\n <ManufacturerName xml:lang=\"en\"></ManufacturerName>\n <Extrinsic name=\"LineType\">Quantity</Extrinsic>\n </ItemDetail>\n <Distribution>\n <Accounting name=\"Honeycomb Holdings Inc.\">\n <Segment type=\"Subsidiary\" id=\"3\" description=\"Subsid\"/>\n </Accounting>\n <Charge>\n <Money currency=\"USD\">460.0</Money>\n </Charge>\n </Distribution>\n <!-- When customer doesn't want a PO line to go through confirmation, value will be sent as notAllowed in the OCInstruction -->\n <ControlKeys>\n <OCInstruction value=\"allowed\"/>\n </ControlKeys>\n </ItemOut>\n <ItemOut quantity=\"23\" lineNumber=\"2\" confirmationDueDate=\"2023-06-08T12:45:09-07:00\">\n <ItemID>\n <SupplierPartID></SupplierPartID>\n </ItemID>\n <ItemDetail>\n <UnitPrice>\n <Money currency=\"USD\">20.0</Money>\n </UnitPrice>\n <Description xml:lang=\"en\">adfseq</Description>\n <UnitOfMeasure>EA</UnitOfMeasure>\n <Classification domain=\"UNSPSC\">unknown</Classification>\n <ManufacturerPartID></ManufacturerPartID>\n <ManufacturerName xml:lang=\"en\"></ManufacturerName>\n <Extrinsic name=\"LineType\">Quantity</Extrinsic>\n </ItemDetail>\n <Distribution>\n <Accounting name=\"Honeycomb Holdings Inc.\">\n <Segment type=\"Subsidiary\" id=\"3\" description=\"Subsid\"/>\n </Accounting>\n <Charge>\n <Money currency=\"USD\">460.0</Money>\n </Charge>\n </Distribution>\n <!-- When customer doesn't want a PO line to go through confirmation, value will be sent as notAllowed in the OCInstruction -->\n <ControlKeys>\n <OCInstruction value=\"allowed\"/>\n </ControlKeys>\n </ItemOut>\n </OrderRequest>\n </Request>\n</cXML>", "options": { "raw": { "language": "xml" } } }, "url": { "raw": "REFER TO BODY SECTION TO SEE COUPA PO PAYLAOD SAMPLE", "host": [ "REFER TO BODY SECTION TO SEE COUPA PO PAYLAOD SAMPLE" ] } }, "response": [] }, { "name": "Sample_cxml_PO_payload_with_header_level_confirmation", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE cXML SYSTEM \"http://xml.cxml.org/schemas/cXML/1.2.056/cXML.dtd\">\n<cXML xml:lang=\"en-US\" payloadID=\"1686168019.003195@dmo305utl1.int.coupahost.com\" timestamp=\"2023-06-07T13:00:19-07:00\">\n <Header>\n <From>\n <Credential domain=\"test\">\n <Identity>test</Identity>\n </Credential>\n </From>\n <To>\n <Credential domain=\"test\">\n <Identity>sfs</Identity>\n </Credential>\n </To>\n <Sender>\n <Credential domain=\"test\">\n <Identity>test</Identity>\n <SharedSecret>test</SharedSecret>\n </Credential>\n <UserAgent>Coupa Procurement 1.0</UserAgent>\n </Sender>\n </Header>\n <Request>\n <OrderRequest>\n <OrderRequestHeader orderID=\"3195\" orderDate=\"2023-06-07T13:00:19-07:00\" type=\"new\">\n <Total>\n <Money currency=\"USD\">28290.0</Money>\n </Total>\n <ShipTo>\n <Address isoCountryCode=\"IN\" addressID=\"3128\">\n <Name xml:lang=\"en\">CoupaNetsuite</Name>\n <PostalAddress name=\"default\">\n <DeliverTo>Eshwar Valluripalli</DeliverTo>\n <Street>Sector 19</Street>\n <City>Delhi</City>\n <State>Delhi</State>\n <PostalCode>100001</PostalCode>\n <Country isoCountryCode=\"IN\">India</Country>\n </PostalAddress>\n <Email name=\"default\">eshwar.chowdary@coupa.com</Email>\n </Address>\n </ShipTo>\n <BillTo>\n <Address isoCountryCode=\"IN\" addressID=\"3169\">\n <Name xml:lang=\"en\">CoupaNetsuite</Name>\n <PostalAddress name=\"default\">\n <DeliverTo>Eshwar Valluripalli</DeliverTo>\n <Street>test</Street>\n <City>test India</City>\n <State></State>\n <PostalCode>944031</PostalCode>\n <Country isoCountryCode=\"IN\">India</Country>\n </PostalAddress>\n <Email name=\"default\">eshwar.chowdary@coupa.com</Email>\n </Address>\n </BillTo>\n <Shipping>\n <Money currency=\"USD\">0.0</Money>\n <Description xml:lang=\"en-US\">Fedex - </Description>\n </Shipping>\n <PaymentTerm payInNumberOfDays=\"15\"/>\n <Contact role=\"endUser\">\n <Name xml:lang=\"en\">Eshwar Valluripalli</Name>\n <Email name=\"default\">eshwar.chowdary@coupa.com</Email>\n </Contact>\n <!-- When customer doesn't want a PO to go through confirmation, value will be sent as notAllowed in the OCInstruction -->\n <ControlKeys>\n <OCInstruction value=\"allowed\"/>\n </ControlKeys>\n </OrderRequestHeader>\n <ItemOut quantity=\"123\" lineNumber=\"1\" confirmationDueDate=\"2023-06-17T17:00:19-07:00\">\n <ItemID>\n <SupplierPartID></SupplierPartID>\n </ItemID>\n <ItemDetail>\n <UnitPrice>\n <Money currency=\"USD\">230.0</Money>\n </UnitPrice>\n <Description xml:lang=\"en\">adfs</Description>\n <UnitOfMeasure>EA</UnitOfMeasure>\n <Classification domain=\"UNSPSC\">unknown</Classification>\n <ManufacturerPartID></ManufacturerPartID>\n <ManufacturerName xml:lang=\"en\"></ManufacturerName>\n <Extrinsic name=\"LineType\">Quantity</Extrinsic>\n </ItemDetail>\n <Distribution>\n <Accounting name=\"Honeycomb Holdings Inc.\">\n <Segment type=\"Subsidiary\" id=\"3\" description=\"Subsid\"/>\n </Accounting>\n <Charge>\n <Money currency=\"USD\">28290.0</Money>\n </Charge>\n </Distribution>\n </ItemOut>\n </OrderRequest>\n </Request>\n</cXML>", "options": { "raw": { "language": "xml" } } }, "url": { "raw": "REFER TO BODY SECTION TO SEE COUPA PO PAYLAOD SAMPLE", "host": [ "REFER TO BODY SECTION TO SEE COUPA PO PAYLAOD SAMPLE" ] } }, "response": [] } ] } ] }注文確認のcXML資格情報は、cXML請求またはcXML ASNの資格情報と同じです。 現在、注文確認の一部としてサポートされているカスタムフィールドはありません。
サプライヤーは、注文確認cXMLファイルをhttps ://<customer_instance_name>.coupahost.com/cxml/order_confirmation_requestに投稿します
注文確認に関する役立つ情報を見つけることができます
サプライヤーは、CSVファイルをCSPポータルに直接アップロードして、複数の注文を一括確認し、フィールドに関連する詳細を確認することもできます.
確認タイプのcXMLマトリックス
以下のサンプル行列は、cXMLペイロードのヘッダーレベルタイプフラグがラインタイプの組み合わせにどのように基づいているかを示しています。これに従わない場合、サンプルcXMLエラーは次のようになります。
ConfirmationHeaderタイプがAcceptまたはRejectの場合、ConfirmationItemはConfirmationHeaderと一致する必要があります。
| cXMLライン1タイプ | cXMLライン2タイプ | cXMLヘッダータイプ |
| accept | accept | accept |
| reject | reject | reject |
| accept | reject | detail |
| detail | accept | detail |
| detail | reject | detail |
| detail | detail | detail |
顧客が提供する現在のPO行で[ニーズ別]日付が空白の場合、約束日を追加することは変更を提案するものと見なされるため、タイプを詳細として提供する必要があります。