当前位置: 首页 > 知识库问答 >
问题:

通过带有附件的cXML发布到Ariba

萧萧迟
2023-03-14

我一直在通过cXML将NetSuite中生成的发票发布到Ariba供应商网络。最近,我们的一位客户更改为要求在提交所有发票时附上pdf附件。

我可以从NetSuite保存的搜索中获取发票PDF的URL。我可以在附件元素中传递此URL吗?我是否也需要使用MIME信封在Ariba中创建附件?

这就是我试图通过邮递员传递的信息。我正在恢复以下状态。

无法分析文档:prolog中不允许包含内容。(第1行第1列)[ANCLS-12500701]

Content-Type: multipart/mixed; boundary=RJM4809370DO2978413
--RJM4809370DO2978413
Content-type: text/xml; charset="UTF-8"

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.035/InvoiceDetail.dtd">
<cXML payloadID="IN.DO2978413.20190309110306" 
            <InvoiceDetailRequestHeader invoiceDate="2019-03-09T11:32:55-05:00" 
                <Extrinsic name="invoicePDF">
                    <Attachment>
                        <URL>cid:system.na2.netsuite.com/core/media/media.nl?id=4417380&c=XXXXXX&h=7528d4b175c15c719e89&_xt=.pdf</URL>
                    </Attachment>
                </Extrinsic>
            </InvoiceDetailRequestHeader>
............
</cXML>
--RJM4809370DO2978413
Content-Type: application/pdf
Content-ID:<system.na2.netsuite.com/core/media/media.nl?id=XXXXXX&c=4086366&h=7528d4b175c15c719e89&_xt=.pdf>
Content-Disposition: attachment; filename=11315307.PDF

--RJM4809370DO2978413--

这是原始请求。

POST
https://service.ariba.com/service/transaction/cxml.asp
12:46:10.923

Request Headers:
Content-Type:"Multipart/mixed; boundary="RJM4809370DO2978413";type="text/xml""
cache-control:"no-cache"
Postman-Token:"973410c7-0db8-4140-822c-4ac4dffe3dcd"
User-Agent:"PostmanRuntime/7.6.1"
Accept:"*/*"
Host:"service.ariba.com"
accept-encoding:"gzip, deflate"
content-length:7844
Request Body:"--RJM4809370DO2978413
 Content-Type: text/xml; charset=UTF-8
 Content-Disposition: attachment
 Content-ID: 

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.035/InvoiceDetail.dtd">
 <cXML payloadID="IN.DO2978413.20190311140375" timestamp="2019-03-11T14:34:19.758Z">
 <Header>
 <From>
 <Credential domain="AribaNetworkUserID">
 <Identity>ariba@XXXXXXX.com</Identity>
 </Credential>
 </From>
 <To>
 <Credential domain="NetworkID">
 <Identity>XXXXXXXXXX</Identity>
 </Credential>
 </To>
 <Sender>
 <Credential domain="AribaNetworkUserID">
 <Identity>ariba@XXXXXX.com</Identity>
 <SharedSecret>XXXXXXXXX</SharedSecret>
 </Credential>
 <UserAgent>Celigo Invoice Request</UserAgent>
 </Sender>
 </Header>
 <Request deploymentMode="production">
 <InvoiceDetailRequest>
 <InvoiceDetailRequestHeader invoiceDate="2019-03-11T14:34:19-05:00" invoiceID="11315307" invoiceOrigin="supplier" operation="new" purpose="standard">
 <InvoiceDetailHeaderIndicator/>
 <InvoiceDetailLineIndicator isAccountingInLine="yes" isTaxInLine="yes" />
 <InvoicePartner>
 <Contact role="remitTo">
 <Name xml:lang="en-US">XXXXXXXXX</Name>
 <PostalAddress>
 <Street>XXXXXXX</Street>
 <Street></Street>
 <Street></Street>
 <City>XXXXXXXX</City>
 <State>XX</State>
 <PostalCode>XXXXXX</PostalCode>
 <Country isoCountryCode="">United States</Country>
 </PostalAddress>
 </Contact>
 <IdReference domain="supplierTaxID" identifier="XXXXXXXX"/>
 </InvoicePartner>
 <InvoicePartner>
 <Contact role="billTo">
 <Name xml:lang="en-US">XXXXXXXXXX</Name>
 <PostalAddress>
 <Street>XXXXXXXXX</Street>
 <Street>XXXXXXXX</Street>
 <City>XXXXXX</City>
 <State>XXX</State>
 <PostalCode>XXXXX</PostalCode>
 <Country isoCountryCode="US">United States</Country>
 </PostalAddress>
 </Contact>
 </InvoicePartner>
 <InvoicePartner>
 <Contact role="soldTo">
 <Name xml:lang="en-US">XXXXXXXX</Name>
 <PostalAddress>
 <Street>XXXXXXXX</Street>
 <Street></Street>
 <City>XXXXXX</City>
 <State>XX</State>
 <PostalCode>XXXXXXXX</PostalCode>
 <Country isoCountryCode="US">United States</Country>
 </PostalAddress>
 </Contact>
 </InvoicePartner>
 <InvoiceDetailShipping>
 <Contact role="shipFrom">
 <Name xml:lang="en-US">XXXXXX</Name>
 <PostalAddress>
 <Street>XXXXXX</Street>
 <Street></Street>
 <Street></Street>
 <City>XXXXXXX</City>
 <State>XXX</State>
 <PostalCode>XXXXXX</PostalCode>
 <Country isoCountryCode="">United States</Country>
 </PostalAddress>
 </Contact>
 <Contact role="shipTo">
 <Name xml:lang="en-US">XXX</Name>
 <PostalAddress>
 <Street>XXXXX</Street>
 <Street></Street>
 <Street></Street>
 <City>XXXXXX</City>
 <State>XXXXXX</State>
 <PostalCode>XXXXXX</PostalCode>
 <Country isoCountryCode=""></Country>
 </PostalAddress>
 </Contact>
 </InvoiceDetailShipping>
 <Extrinsic name="invoicePDF">
 <Attachment>
 <URL>cid:https://system.na2.netsuite.com/core/media/media.nl?id=XXXXXXXXXXXh=7528d4b175c15c719e89&_xt=.pdf</URL>
 </Attachment>
 </Extrinsic>
 </InvoiceDetailRequestHeader>
 <InvoiceDetailOrder>
 <InvoiceDetailOrderInfo>
 <OrderReference orderID="DO2978413">
 <DocumentReference payloadID="1551826564527.841867458.000002574@Hdw2llNIeZN+Ro4D2ATtzEA2KaI&#x3D;"/>
 </OrderReference>
 </InvoiceDetailOrderInfo> 
 <InvoiceDetailItem invoiceLineNumber="1" quantity="2">
 <UnitOfMeasure>EA</UnitOfMeasure>
 <UnitPrice>
 <Money currency="USD">1000.00</Money>
 </UnitPrice>
 <InvoiceDetailItemReference lineNumber="1">
 <ItemID>
 <SupplierPartID>XXXXXX</SupplierPartID>
 </ItemID>
 <Description xml:lang="en">XXXXXX</Description>
 </InvoiceDetailItemReference>
 <Extrinsic name="punchinItemFromCatalog">no</Extrinsic>
 </InvoiceDetailItem> 
 </InvoiceDetailOrder>
 <InvoiceDetailSummary>
 <SubtotalAmount>
 <Money currency="USD">2000</Money>
 </SubtotalAmount>
 <Tax>
 <Money currency="USD">0</Money>
 <Description xml:lang="en-US"/>

 <TaxDetail category="sales">
 <TaxableAmount>
 <Money currency="USD">2000</Money>
 </TaxableAmount>
 <TaxAmount>
 <Money currency="USD">0</Money>
 </TaxAmount>
 <Description xml:lang="en">Sales tax</Description>
 </TaxDetail>
 </Tax>
 <ShippingAmount>
 <Money currency="USD">332</Money>
 </ShippingAmount>
 <GrossAmount>
 <Money currency="USD">2332</Money>
 </GrossAmount>
 <NetAmount>
 <Money currency="USD">2332</Money>
 </NetAmount>

 <DueAmount>
 <Money currency="USD">2332</Money>
 </DueAmount>
 </InvoiceDetailSummary>
 </InvoiceDetailRequest>
 </Request>
 </cXML>
 --RJM4809370DO2978413
 Content-Type: application/pdf
 Content-ID: <https://system.na2.netsuite.com/core/media/media.nl?id=XXXXXXXXXXXX&h=7528d4b175c15c719e89&_xt=.pdf>
 Content-Disposition: attachment; filename=11315307.PDF

 --RJM4809370DO2978413--
 "
Response Headers:
Date:"Mon, 11 Mar 2019 16:46:11 GMT"
Server:"Apache"
Content-Length:"350"
Content-Encoding:"gzip"
Vary:"User-Agent"
Keep-Alive:"timeout=15, max=100"
Connection:"Keep-Alive"
Content-Type:"text/html; charset=UTF-8"
Strict-Transport-Security:"max-age=31536000"

Response Body:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.041/cXML.dtd">

<cXML timestamp="2019-03-11T09:46:11-07:00" payloadID="1552322771952-2933358902296997425@10.162.97.171">

    <Response>

        <Status code="500" text="Internal Server Error">ANERR-110000000000000000345730259:can not have stream of negative length(start 7610, end 7585, original length 7844)</Status>

    </Response>
</cXML>

共有2个答案

郎睿
2023-03-14

你能逃过这场战争吗

    cid:https://system.na2.netsuite.com/core/media/media.nl?id=XXXXXXXXXXXh=7528d4b175c15c719e89&amp;_xt=.pdf
阮梓
2023-03-14

cXML标准通过MIME信封指定附件处理。

一个MIME部分是一个常规的cXML消息,其中包含一个附件元素,作为对第二个MIME部分的内容ID头的引用。

有关更多详细信息,请参阅cXML参考指南中的第2.1.5节。

 类似资料:
  • 问题内容: 是否有用于NodeJS的库,用于发送带有附件的邮件? 问题答案: 是的,这非常简单,我使用nodemailer: 然后阅读文件并发送电子邮件:

  • 我正试图通过console/cron使用CakePHP 1.3电子邮件组件发送电子邮件。电子邮件被发送出去了 通过表单完成后,电子邮件将与附件一起成功发送。我已经尝试添加了$this- 我的代码如下: 所以,基本上我的问题是,当我通过控制台/cron运行外壳脚本时,我如何获得附件发送的电子邮件。 提前谢谢你。

  • 问题内容: 有没有人有通过Amazon SES(使用Java)发送带有附件的电子邮件的示例? 问题答案: 也许有些迟了,但是您可以使用以下代码(您还需要Java Mail):

  • 在查看代码之前,请阅读此处: 当我发送(返回方法)时,它会像原始文件一样在电子邮件中发送附件。但当我从数据库中获取并发送时,它会发送损坏的文件。 更新: 主要的问题是,当我从本地驱动器发送文件读取,它发送完美。但如果我发送的数据库获取或任何本地变量文件损坏。 如果你对问题有任何疑问,请在下面评论。多谢了。

  • 问题内容: Jenkins可以发送邮件通知带有附件的收件人吗?对我来说更重要的是(可选),它也可以从文件* .xls中读取并将其添加到电子邮件文本中。 或者我可以将系统变量添加到通过詹金斯插件发送的数据(外部邮件)中吗? 问题答案: 截至2011年9月的新答案: 是 。问题9018已解决。 从Jenkins email-ext插件2.15版本开始,您可以在Jenkins构建通知中发送附件。在此处查

  • 我正在尝试使用sendTransacEmail()方法将附件发送到sendinblue(版本3),下面是我发送事务性电子邮件的代码, 这行给我错误请求, 在给定的API中https://developers.sendinblue.com/reference#sendtransacemail附件是一个对象数组,其中URL、名称 如何用附件发送电子邮件,1.使用字节数组内容?2.使用网址?