我已经自定义了默认促销表单,如果用户点击特定促销,表单将使用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);
答案 0 :(得分:3)
不确定这是否是代码中的问题,但要回答您的问题,您只能使用API提交一条记录。
我只是创建一个数组并循环遍历它,并为每个数组调用nlapiCreateRecord
和nlapiSubmitRecord
。
- 编辑
不确定这一点,但这对我来说很奇怪。您使用id
方法设置了setFieldValue
,我认为这是外部ID。然后,您通过id
电话再次设置nlapiSubmitRecord
。这将返回内部Id。也许这也会导致问题?
答案 1 :(得分:1)
必须是这一行
promotion.setFieldValue('id',id);
记录对象上的id字段包含记录的内部id。这是由NetSuite在您创建记录时生成的。