通过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>
答案 0 :(得分:1)
否,很遗憾,您不能使用Name
值设置字段-您将不得不使用internalId
。如果您的自定义字段是基于列表的,那么您应该使用SelectCustomFieldRef
或MultiSelectCustomFieldRef
。
如果您希望使用Name
值,则可以执行CustomListSearchBasic
以获取每个项目的Name
和internalId
,并将其与您选择的名称匹配