获取子公司的运输方法列表



我使用NetSweet/NetSuite Ruby gem连接到NetSuite帐户。

通常,使用get_select_value获取运输方法列表很简单。但是,一个NetSuite帐户被组织为子公司,并且将运输方法分配给子公司。对于这个特定的帐户,get_select_value返回空列表:

NetSuite::Records::BaseRefList.get_select_value({
recordType: "salesOrder",
field: "shipMethod",
}).base_refs.length
=> 0

这是有道理的:在新的销售订单表单中,发货方法列表最初是空的。当我选择&;customer&;选项时,NetSuite将自动填充只读字段";subsidiary&;"。然后填充可用的运输方法列表。

是否有办法按子公司或客户获取运输方法列表?

NetSuite API响应包含一个警告:"Results are incomplete。您必须为字段实体提供一个值。">

充分反应:

<getSelectValueResponse xmlns="urn:messages_2016_2.platform.webservices.netsuite.com">
<platformCore:getSelectValueResult xmlns:platformCore="urn:core_2016_2.platform.webservices.netsuite.com">
<platformCore:status isSuccess="true">
<platformCore:statusDetail type="WARN">
<platformCore:code>WARNING</platformCore:code>
<platformCore:message>Results are incomplete. You must provide a value for field entity.</platformCore:message>
</platformCore:statusDetail>
</platformCore:status>
<platformCore:totalRecords>0</platformCore:totalRecords>
<platformCore:totalPages>0</platformCore:totalPages>
</platformCore:getSelectValueResult>
</getSelectValueResponse>

使用filterByValueList并传递customer internalId作为实体似乎有效。

NetSuite::Records::BaseRefList.get_select_value({
recordType: "salesOrder",
field: "shipMethod",
filterByValueList: {
"platformCore:filterBy" => {
"platformCore:field" => "entity",
"platformCore:internalId" => ns_customer.internal_id}
}
}).base_refs.length
=> 17

这有点违反直觉,因为过滤器选项应该减少输出中的项目。

生成XML:

<platformMsgs:getSelectValue>
<platformMsgs:pageIndex>1</platformMsgs:pageIndex>
<platformMsgs:fieldDescription>
<platformCore:recordType>salesOrder</platformCore:recordType>
<platformCore:field>shipMethod</platformCore:field>
<platformCore:filterByValueList>
<platformCore:filterBy>
<platformCore:field>entity</platformCore:field>
<platformCore:internalId>4978501</platformCore:internalId>
</platformCore:filterBy>
</platformCore:filterByValueList>
</platformMsgs:fieldDescription>
</platformMsgs:getSelectValue>

最新更新