如何调用使用StringCustomFieldRef值的列表名称而不是internalID的NetSuite SuiteTalk清单项目添加?

时间:2019-09-18 20:56:48

标签: netsuite suitetalk

通过API添加新的清单项时,我们需要填写一些基于列表的自定义字段。我希望能够为该字段使用字符串值,但是当我尝试调用错误时。

我们有一个包含两个值的自定义列表: InternalId 1是“ LTL” InternalId 2是“ FedEx”

我尝试将值作为StringCustomFieldRef发送,当将值设置为“ LTL”的字符串值时,我们收到无效的引用错误。将值设置为internalId时,它会起作用。

我还尝试了使用SelectCustomFieldRef,并且在将value-> name设置为字符串值“ LTL”时出现了错误,就像我们根本没有传递值一样。当我们将value-> internalId设置为1时,它将起作用。

是否可以只传递字符串值?

不起作用:

                $customField1 = new StringCustomFieldRef();
                $customField1 ->value = "LTL";
                $customField1 ->scriptId = 'custitem_zu_zu_fulfill_pref';

作品:

                $customField1 = new StringCustomFieldRef();
                $customField1 ->value = "1";
                $customField1 ->scriptId = 'custitem_zu_zu_fulfill_pref';

这是错误响应:

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

1 个答案:

答案 0 :(得分:1)

否,很遗憾,您不能使用Name值设置字段-您将不得不使用internalId。如果您的自定义字段是基于列表的,那么您应该使用SelectCustomFieldRefMultiSelectCustomFieldRef

如果您希望使用Name值,则可以执行CustomListSearchBasic以获取每个项目的NameinternalId,并将其与您选择的名称匹配