如何清除NetSuite中记录的外部ID?

时间:2014-08-01 21:06:46

标签: netsuite

我需要在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>

4 个答案:

答案 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>