NetSuite Web 服务销售订单错误 - 订单状态参考键 B 无效

NetSuite Web Service Sales Order Error - Invalid orderstatus reference key B

我最近 运行 在连接到新的 NetSuite 实例并尝试创建销售订单时遇到以下错误:

<platformCore:statusDetail type="ERROR">
<platformCore:code>INVALID_KEY_OR_REF</platformCore:code>
<platformCore:message>Invalid orderstatus reference key B.</platformCore:message>

我遇到此错误的原因是:

  1. 我没有发送 B 作为订单状态,我发送 _pendingFulfillment
  2. 同样的调用格式适用于不同的 NetSuite 帐户

有人知道是什么导致了这个错误吗?我这边有问题,还是 NetSuite 帐户中有一些配置?

我正在使用 NetSuite 的 PHP 库,但是 XML 发布的原始内容看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:platformMsgs="urn:messages_2018_2.platform.webservices.netsuite.com" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:platformCore="urn:core_2018_2.platform.webservices.netsuite.com" xmlns:platformCommon="urn:common_2018_2.platform.webservices.netsuite.com" xmlns:listRel="urn:relationships_2018_2.lists.webservices.netsuite.com" xmlns:tranSales="urn:sales_2018_2.transactions.webservices.netsuite.com" xmlns:tranPurch="urn:purchases_2018_2.transactions.webservices.netsuite.com" xmlns:actSched="urn:scheduling_2018_2.activities.webservices.netsuite.com" xmlns:setupCustom="urn:customization_2018_2.setup.webservices.netsuite.com" xmlns:listAcct="urn:accounting_2018_2.lists.webservices.netsuite.com" xmlns:tranBank="urn:bank_2018_2.transactions.webservices.netsuite.com" xmlns:tranCust="urn:customers_2018_2.transactions.webservices.netsuite.com" xmlns:tranEmp="urn:employees_2018_2.transactions.webservices.netsuite.com" xmlns:tranInvt="urn:inventory_2018_2.transactions.webservices.netsuite.com" xmlns:listSupport="urn:support_2018_2.lists.webservices.netsuite.com" xmlns:tranGeneral="urn:general_2018_2.transactions.webservices.netsuite.com" xmlns:commGeneral="urn:communication_2018_2.general.webservices.netsuite.com" xmlns:listMkt="urn:marketing_2018_2.lists.webservices.netsuite.com" xmlns:listWebsite="urn:website_2018_2.lists.webservices.netsuite.com" xmlns:fileCabinet="urn:filecabinet_2018_2.documents.webservices.netsuite.com" xmlns:listEmp="urn:employees_2018_2.lists.webservices.netsuite.com">
<env:Header>
<platformMsgs:tokenPassport>
<platformCore:account>3537721</platformCore:account>
<platformCore:consumerKey>***REMOVED***</platformCore:consumerKey>
<platformCore:token>***REMOVED***</platformCore:token>
<platformCore:nonce>rWHjYyEwmMG7g9z4MkhC</platformCore:nonce>
<platformCore:timestamp>1595380696</platformCore:timestamp>
<platformCore:signature algorithm="HMAC-SHA256">***REMOVED***</platformCore:signature>
</platformMsgs:tokenPassport>
</env:Header>
<env:Body>
<platformMsgs:add>
<platformMsgs:record xsi:type="tranSales:SalesOrder">
<tranSales:orderStatus>_pendingFulfillment</tranSales:orderStatus>
<tranSales:otherRefNum/>
<tranSales:toBePrinted>false</tranSales:toBePrinted>
<tranSales:toBeEmailed>false</tranSales:toBeEmailed>
<tranSales:toBeFaxed>false</tranSales:toBeFaxed>
<tranSales:email>***REMOVED***</tranSales:email>
<tranSales:itemList>
<tranSales:item>
<tranSales:item internalId="67004" type="inventoryItem"/>
<tranSales:quantity>1</tranSales:quantity>
</tranSales:item>
</tranSales:itemList>
<tranSales:customForm internalId="100"/>
<tranSales:tranDate>2020-07-20T05:18:20+00:00</tranSales:tranDate>
<tranSales:salesEffectiveDate>2020-07-20T05:18:20+00:00</tranSales:salesEffectiveDate>
<tranSales:shipDate>2020-07-20T05:18:20+00:00</tranSales:shipDate>
<tranSales:entity internalId="644" type="customer"/>
<tranSales:currency internalId="1" type="currency"/>
<tranSales:terms internalId="2" type="term"/>
<tranSales:subsidiary internalId="1" type="subsidiary"/>
<tranSales:location internalId="10" type="location"/>
<tranSales:customFieldList>
<platformCore:customField xsi:type="platformCore:SelectCustomFieldRef" internalId="560" scriptId="custbody_bwt_availmons_so">
<platformCore:value internalId="11" typeId="175"/>
</platformCore:customField>
<platformCore:customField xsi:type="platformCore:StringCustomFieldRef" internalId="725" scriptId="custbody17">
<platformCore:value>185216_Nov</platformCore:value>
</platformCore:customField>
<platformCore:customField xsi:type="platformCore:MultiSelectCustomFieldRef" internalId="281" scriptId="custbody10">
<platformCore:value>yes</platformCore:value>
</platformCore:customField>
<platformCore:customField xsi:type="platformCore:DateCustomFieldRef" internalId="91" scriptId="custbody_del_due_date">
<platformCore:value>2020-07-20T05:18:20+00:00</platformCore:value>
</platformCore:customField>
<platformCore:customField xsi:type="platformCore:StringCustomFieldRef" internalId="24" scriptId="custbody5">
<platformCore:value/>
</platformCore:customField>
</tranSales:customFieldList>
</platformMsgs:record>
</platformMsgs:add>
</env:Body>
</env:Envelope>

我在默认销售订单状态为“等待履行”的帐户上遇到过这个问题——基本上您不能将其设置为现有状态。我猜这是因为订单状态是状态机的一部分,并且没有从 Pending Fulfillment 到 Pending Fulfillment 的有效转换。

默认状态是在您帐户的“会计首选项”下设置的,或者您可以通过引用 DEFSALESORDSTATUS 首选项的脚本调用来获取此状态。我不认为首选项会暴露给 SuiteTalk。

FWIW 'B' 是 Pending Fulfillment 订单状态的内部值。 'SalesOrd:B' 是内部值,将用于脚本搜索处于待处理状态的订单。