我需要在NetSuite的记录中清除/重置外部ID,但我没有做任何工作。
某些InventoryItem记录错误地映射到另一个系统中的记录。我有一个可以同步两个系统的应用程序,但我需要先清除NetSuite的外部ID。
响应并非真正需要特定于SOAP。如果您知道如何使用某些特定的NetSuite / SuiteTalk客户端,这可能会指向我正确的方向。
首先,我尝试使用nullFieldList ...但也许它不起作用,因为externalId是一个属性,而不是一个元素?
<messages:update>
<messages:record internalId="7777" xsi:type="accounting:InventoryItem">
<core:nullFieldList xsi:type="core:NullField">
<core:name>externalId</core:name>
</core:nullFieldList>
</messages:record>
</messages:update>
外部ID只是一个字符串,所以我尝试将其设置为空白。也没用。
<messages:update>
<messages:record internalId="7777" xsi:type="accounting:InventoryItem">
<accounting:externalId></accounting:externalId>
</messages:record>
</messages:update>
我甚至尝试将外部ID设置为0,但我找回了一个&#34;而不是唯一标识符&#34;错误
<messages:update>
<messages:record internalId="7777" xsi:type="accounting:InventoryItem">
<accounting:externalId>0</accounting:externalId>
</messages:record>
</messages:update>
我正在使用NetSuite的SOAP API v.2013_1
当我说&#34;它不起作用时,我的意思是:在我执行了更新之后,我得到了类似的成功响应以下内容:
<readResponse>
<platformCore:status isSuccess="true" xmlns:platformCore="urn:core_2013_1.platform.webservices.netsuite.com"/>
<record internalId="7777" externalId="42" xsi:type="listAcct:InventoryItem" xmlns:listAcct="urn:accounting_2013_1.lists.webservices.netsuite.com">
<!-- snip -->
</record>
</readResponse>
答案 0 :(得分:1)
不幸的是,我的理解是,一旦你设置了一个externalid你无法清除它,你可以将它设置为另一个值,但不能回到null。我使用SuiteScript以及使用2014.1端点的Boomi进程都体验过这一点。这可能在最近的版本中已经发生了变化,因为我最近没有尝试使用SuiteScript,也没有使用更新的端点。
答案 1 :(得分:1)
如果您在netsuite中使用脚本,则可以通过加载每条记录并使用以下简单代码将externalid设置为'来运行预定脚本以清除NS中的记录:
var rec= nlapiLoadRecord(type,id);
rec.setFieldValue('externalid','');
nlapiSubmitRecord(rec);
这似乎对我在2015.2的环境中起作用。
答案 2 :(得分:1)
我之前也必须尝试这个。我知道你描述的痛苦。我最后放了一个&#34; - &#34;在我的外部ID前面取消它在我的系统之间的链接。您可以在SOAP中执行此操作,甚至可以作为简单的一次性csv上载。因为有一次,我做了csv。
答案 3 :(得分:0)
一旦设置了记录,就可以消除记录中的externalId。以下是使用NetSuite gem:
的示例ns_customer = NetSuite::Records::Customer.get external_id: 'ext_id'
ns_customer.external_id = ''
ns_customer.update
以下是update
的相应XML:
<env:Body>
<platformMsgs:update>
<platformMsgs:record xsi:type="listRel:Customer" platformMsgs:internalId="199113" platformMsgs:externalId=""/>
</platformMsgs:update>
</env:Body>