如何通过nlapi方法在saveRecord函数中保存多条记录?

时间:2016-06-17 11:56:49

标签: javascript jquery netsuite

我已经自定义了默认促销表单,如果用户点击特定促销,表单将使用jquery显示动态元素(因为我们没有为此要求创建字段或列表/记录)。

因此,基于数据,我们可能需要在提交表单时创建多个记录。我在js文件中创建了saveRecord()函数,该函数已经与表单一起映射。在那我试图动态创建promotionRecord。但是无法保存记录,我收到“您在记录中请求的项目已被删除,因为您检索到表单”错误。可能是什么问题,是否可以以单一形式保存多条记录?

departments = Object.keys(samplePromotions);
  $.each(departments, function(key,value){
    console.log(samplePromotions[value]);
    promotion = nlapiCreateRecord('customrecord_promotion');
    console.log(promotion);
    //required
    promotion.setFieldValue('name','jAVASCRIPT pROMOTION cREATION_'+value);
    promotion.setFieldValue('custrecord_px_promotion_id','js_prom_creation_'+value);
    id = (Math.round(new Date().getTime()/1000));
    console.log(id);
    promotion.setFieldValue('id',id);

    var id = nlapiSubmitRecord(promotion);

2 个答案:

答案 0 :(得分:3)

不确定这是否是代码中的问题,但要回答您的问题,您只能使用API​​提交一条记录。

我只是创建一个数组并循环遍历它,并为每个数组调用nlapiCreateRecordnlapiSubmitRecord

- 编辑 不确定这一点,但这对我来说很奇怪。您使用id方法设置了setFieldValue,我认为这是外部ID。然后,您通过id电话再次设置nlapiSubmitRecord。这将返回内部Id。也许这也会导致问题?

答案 1 :(得分:1)

必须是这一行

promotion.setFieldValue('id',id);

记录对象上的id字段包含记录的内部id。这是由NetSuite在您创建记录时生成的。