我在使用 NetSuite 的 REST API 创建销售订单时遇到很大困难:
my @items;
my $it={
'item'=>{
'id'=>'55554',
},
'quantity'=>1,
'amount'=>100.0,
'taxAmount'=>20.0,
};
push @items,$it;
my $pp={
'entity'=>{
'id’=>’12345'
},
'otherrefnum'=>'999999999',
'memo'=>'This is a test order - please IGNORE',
'exchangeRate'=>1.00,
'location'=>{
'id'=>7,
},
'item'=>{
'items'=>[@items]
},
'currency'=>{
'id'=>'1'
},
'subtotal'=>100.00,
'taxTotal'=>20.00,
'total'=>120.00,
};
my $rslt=ns_call('/services/rest/record/v1/salesOrder',$pp,'','POST');
我总是得到
'detail' => 'Error while accessing a resource. You have entered an Invalid Field Value 1 for the following field: currency.'
如果我删除货币声明,它会说它需要货币记录。
否则,我可以修补任何现有的销售订单,并且通常可以毫无问题地调用 REST API。对于插入销售订单,我缺少什么?
有人有什么想法吗?
尝试使用这种结构:
"currency": {
"id": "1",
"externalId": null,
"typeSpecified": false,
"name": null
}
就我而言,效果很好。但在使用ID = 1之前需要检查该ID是否存在。
您可以通过 Postman 运行简单的查询:
{
"q": "select * from currency"
}
只是为了确保列表中存在 ID=1 的货币