目前我可以通过Restlet向NS发送数据,但似乎我只能创建自定义记录类型,但似乎无法找到如何创建非自定义记录。
如何查找名称或端点。我已将我的restlet添加到SuiteScript中,但就我而言。
PartOrderREST.postRESTlet = function(dataIn) {
nlapiLogExecution('audit', 'PartOrderREST.postRESTlet', 'JSON=' + JSON.stringify(dataIn));
try {
var nsFields = new PO_OBJ_FIELDS();
var recPO = nlapiCreateRecord(nsFields.purchaseorder, {recordmode: 'dynamic'});
recPO.setFieldValue('entity', dataIn['entity']);
recPO.setFieldValue('name', dataIn['name']);
recPO.setFieldValue('employee', dataIn['employee']);
recPO.setFieldValue('class', dataIn['class']);
recPO.setFieldValue('location', dataIn['location']);
recPO.setFieldValue('exchangerate', '2.15');
recPO.setFieldValue('currency', '2.15');
recPO.setFieldValue('trandate', dataIn['trandate']);
} catch(err) {
nlapiLogExecution('audit', 'PartOrderREST.postRESTlet', err.message);
return {'error': 'error 1' + err.message}
}
try {
recPO.selectNewLineItem('item');
recPO.setCurrentLineItemValue('item', 'quantity', 1);
recPO.setCurrentLineItemValue('item', 'item', dataIn['item']);
recPO.commitLineItem('item');
recPO.selectNewLineItem('item');
recPO.setCurrentLineItemValue('item', 'quantity', 1);
recPO.setCurrentLineItemValue('item', 'item', dataIn['item']);
recPO.commitLineItem('item');
var idPO = nlapiSubmitRecord(recPO, true);
return {'nswoid': idPO};
} catch(err) {
nlapiLogExecution('audit', 'PartOrderREST.postRESTlet', err.message);
return {'error': 'error 2' + err.message}
}
};
这个问题是我收到一条错误,说明了需要行项目创建记录的内容。我尝试将该项目添加到采购订单中,但在提交之前将其删除。
第一个try语句中代码的第一部分似乎有效。我似乎没有成功添加' item'的订单项。给出我想要添加到订单的项目的特定nsid。 '项目'据说是采购订单中唯一必需的元素。
答案 0 :(得分:1)
您是否可以对restlet中的值进行硬编码以查看您的restlet是否在没有参数化数据的情况下工作?
我尝试了下面的代码并且有效:
var recPO=nlapiCreateRecord('purchaseorder', {recordmode: 'dynamic'});
recPO.setFieldValue('customform',formId);
recPO.setFieldValue('entity', entityId);
recPO.setFieldValue('name', 'Name');
recPO.setFieldValue('employee', employeeId);
recPO.selectNewLineItem('item');
recPO.setCurrentLineItemValue('item','item',itemId);
recPO.setCurrentLineItemValue('item', 'amount', 1);
recPO.setCurrentLineItemValue('item', 'quantity',100);
recPO.commitLineItem('item');
var id = nlapiSubmitRecord(recPO, true);
如果在对值进行硬编码后仍然出现错误,则可能会在PurchaseOrder上部署一些脚本,从而抛出错误。您可以按照以下路径检查记录中部署的脚本: - 自定义 - >脚本 - >脚本记录 - >采购订单