如何通过Netsuite中的RESTlet创建零件订单/任何事务

时间:2018-03-29 22:04:03

标签: netsuite

目前我可以通过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。 '项目'据说是采购订单中唯一必需的元素。

1 个答案:

答案 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上部署一些脚本,从而抛出错误。您可以按照以下路径检查记录中部署的脚本: - 自定义 - >脚本 - >脚本记录 - >采购订单