NetSuite SuiteTalk SOAP Api:仅更新记录上的某些字段
NetSuite SuiteTalk SOAP Api: Update Certain Fields ONLY on a Record
我们在更新 NetSuite 销售订单时遇到了问题(特别是我们正在更新自定义字段),但我们甚至没有在代码中明确写入一些只读字段。
我们检索订单,更新自定义字段,然后调用 WriteResponse rc = this.nsPort.update(order);
,其中 order
是由 internalID
和 nsPort
拉取的 SalesOrder
的实例是 NetSuitePortType
的实例。调用 update()
失败并出现异常:
java.lang.Exception: You do not have permissions to set a value for element subtotal
due to one of the following reasons: 1) The field is read-only; 2) An associated feature
is disabled; 3) The field is available either when a record is created or updated, but
not in both cases.
哪个字段是只读的在这里并不重要,重要的是我们(无意中)发回涉及只读字段的更新。
令我印象深刻的是,我们最好 仅 发送写入 仅 我们感兴趣的自定义字段的更新。
有没有办法从 NetSuite 中提取一条记录,然后仅更新某些字段?或者有没有办法在我们调用 update()
?
时通知 SuiteTalk 仅更新某些字段
如果您只想更新某些字段,请仅将那些您想要更新的字段与 internalId
一起发送。例如,要仅更新备忘录和销售订单上的自定义字段,请使用 (in python):
sales_order = soap.sales.SalesOrder(
internalId=12,
memo='I updated the memo, but I did not shoot the deputy',
customFieldList=soap.core.CustomFieldList(customField=[
soap.core.CustomString(scriptId='custbody_memo', value='I also did not shoot the deputy'),
])
)
soap.update(sales_order)
这将生成一个 xml,其中仅包含 internalId
、memo
自定义正文备注字段。 Netsuite 只会更新 soap 消息中包含的那些字段。
我们在更新 NetSuite 销售订单时遇到了问题(特别是我们正在更新自定义字段),但我们甚至没有在代码中明确写入一些只读字段。
我们检索订单,更新自定义字段,然后调用 WriteResponse rc = this.nsPort.update(order);
,其中 order
是由 internalID
和 nsPort
拉取的 SalesOrder
的实例是 NetSuitePortType
的实例。调用 update()
失败并出现异常:
java.lang.Exception: You do not have permissions to set a value for element subtotal
due to one of the following reasons: 1) The field is read-only; 2) An associated feature
is disabled; 3) The field is available either when a record is created or updated, but
not in both cases.
哪个字段是只读的在这里并不重要,重要的是我们(无意中)发回涉及只读字段的更新。
令我印象深刻的是,我们最好 仅 发送写入 仅 我们感兴趣的自定义字段的更新。
有没有办法从 NetSuite 中提取一条记录,然后仅更新某些字段?或者有没有办法在我们调用 update()
?
如果您只想更新某些字段,请仅将那些您想要更新的字段与 internalId
一起发送。例如,要仅更新备忘录和销售订单上的自定义字段,请使用 (in python):
sales_order = soap.sales.SalesOrder(
internalId=12,
memo='I updated the memo, but I did not shoot the deputy',
customFieldList=soap.core.CustomFieldList(customField=[
soap.core.CustomString(scriptId='custbody_memo', value='I also did not shoot the deputy'),
])
)
soap.update(sales_order)
这将生成一个 xml,其中仅包含 internalId
、memo
自定义正文备注字段。 Netsuite 只会更新 soap 消息中包含的那些字段。