如何在 SuiteScript 2.0 中获取 recordRef?
How can i get a recordRef in SuiteScript 2.0?
我正在尝试编写一个 Restlet 以在 NetSuite 中创建一个销售订单,并且需要在一个字段中放置一个项目 recordRef 类型,但我不知道如何获取它,或者我该如何编写它。拜托,你能帮帮我吗?
这是 recordRef 架构
https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_1/schema/other/recordref.html?mode=package
接下来我的脚本=>
function CreateNetSuiteOrder(requestBody) {
var salesOrder = record.create({
type: record.Type.SALES_ORDER,
isDynamic: true,
defaultValues: {
entity: 9999999999
}
});
salesOrder.setValue({ fieldId: 'trandate', value: new Date('5/07/2020') });
var subrec = salesOrder.getSubrecord({
fieldId: 'shippingaddress'
});
subrec.setValue({ fieldId: 'addr1', value: '123 street' });
subrec.setValue({ fieldId: 'city', value: 'city' });
subrec.setValue({ fieldId: 'state', value: 'state' });
subrec.setValue({ fieldId: 'zip', value: 'CA' });
subrec.setValue({ fieldId: 'addressee', value: 'John' });
subrec.setValue({ fieldId: 'attention', value: 'John' });
salesOrder.selectNewLine({
sublistId: 'item'
});
salesOrder.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'item',
value: // i should put RecordRef here
});
salesOrder.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'quantity',
// value: item.quantity_order
value: 3
});
salesOrder.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'rate',
value: 34.0
});
salesOrder.commitLine({
sublistId: 'item'
});
salesOrder.save(
{
enableSourcing: false,
ignoreMandatoryFields: true
}
)
A RecordRef
是在 NetSuite wsdl 中导出的另一个 class。它主要用于 select 类型的字段,您可以在其中指定内部 ID 或要放入该字段的值的文本。
salesOrder.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'item',
value: new RecordRef() {
internalId: "123"
}
});
我使用一些扩展方法来使 RecordRef
的工作更容易一些。它们看起来像这样:
public static class NsExtensions
{
public static RecordRef ToRecordRef(this int value)
{
return new RecordRef
{
internalId = value.ToString()
};
}
}
有了这个扩展,上面的代码看起来像这样:
salesOrder.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'item',
value: 123.ToRecordRef()
});
我正在尝试编写一个 Restlet 以在 NetSuite 中创建一个销售订单,并且需要在一个字段中放置一个项目 recordRef 类型,但我不知道如何获取它,或者我该如何编写它。拜托,你能帮帮我吗?
这是 recordRef 架构 https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_1/schema/other/recordref.html?mode=package
接下来我的脚本=>
function CreateNetSuiteOrder(requestBody) {
var salesOrder = record.create({
type: record.Type.SALES_ORDER,
isDynamic: true,
defaultValues: {
entity: 9999999999
}
});
salesOrder.setValue({ fieldId: 'trandate', value: new Date('5/07/2020') });
var subrec = salesOrder.getSubrecord({
fieldId: 'shippingaddress'
});
subrec.setValue({ fieldId: 'addr1', value: '123 street' });
subrec.setValue({ fieldId: 'city', value: 'city' });
subrec.setValue({ fieldId: 'state', value: 'state' });
subrec.setValue({ fieldId: 'zip', value: 'CA' });
subrec.setValue({ fieldId: 'addressee', value: 'John' });
subrec.setValue({ fieldId: 'attention', value: 'John' });
salesOrder.selectNewLine({
sublistId: 'item'
});
salesOrder.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'item',
value: // i should put RecordRef here
});
salesOrder.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'quantity',
// value: item.quantity_order
value: 3
});
salesOrder.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'rate',
value: 34.0
});
salesOrder.commitLine({
sublistId: 'item'
});
salesOrder.save(
{
enableSourcing: false,
ignoreMandatoryFields: true
} )
A RecordRef
是在 NetSuite wsdl 中导出的另一个 class。它主要用于 select 类型的字段,您可以在其中指定内部 ID 或要放入该字段的值的文本。
salesOrder.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'item',
value: new RecordRef() {
internalId: "123"
}
});
我使用一些扩展方法来使 RecordRef
的工作更容易一些。它们看起来像这样:
public static class NsExtensions
{
public static RecordRef ToRecordRef(this int value)
{
return new RecordRef
{
internalId = value.ToString()
};
}
}
有了这个扩展,上面的代码看起来像这样:
salesOrder.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'item',
value: 123.ToRecordRef()
});