我尝试在客户端脚本事件中创建发票。
var objRecord = record.create({
type: 'invoice',
isDynamic: false
});
objRecord.setValue({
fieldId: 'customform',
value: '296',
ignoreFieldChange: true
});
objRecord.setValue({
fieldId: 'account',
value: '215',
ignoreFieldChange: true
});
objRecord.setValue({
fieldId: 'entity',
value: '13276',
ignoreFieldChange: true
});
objRecord.setValue({
fieldId: 'currency',
value: '1',
ignoreFieldChange: true
});
objRecord.setValue({
fieldId: 'postingperiod',
value: '294',
ignoreFieldChange: true
});
objRecord.setValue({
fieldId: 'exchangerate',
value: '1.0',
ignoreFieldChange: true
});
objRecord.setValue({
fieldId: 'custbody_amortization_partner_currency',
value: '6',
ignoreFieldChange: true
});
objRecord.setValue({
fieldId: 'memo',
value: v_adv_memo,
ignoreFieldChange: true
});
objRecord.setValue({
fieldId: 'custbody_amortization_advance_id',
value: v_advanceID,
ignoreFieldChange: true
});
objRecord.setValue({
fieldId: 'trandate',
value: parsedDateStringAsRawDateObjectdtl,
ignoreFieldChange: true
});
objRecord.setValue({
fieldId: 'duedate',
value: v_adv_pymt_pymt_date,
ignoreFieldChange: true
});
objRecord.selectNewLine({
sublistId: 'item'
});
objRecord.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'item',
value: '5825',
ignoreFieldChange: true
});
objRecord.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'quantity',
value: '1',
ignoreFieldChange: true
});
objRecord.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'amount',
value: '100',
ignoreFieldChange: true
});
objRecord.commitLine({
sublistId: 'item'
});
var recId = objRecord.save({
enableSourcing: true,
ignoreMandatoryFields: true
});
alert(recId);
我不确定错误发生在哪里。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
通常不会直接创建发票。您通常会执行以下任一操作。请注意,建议在动态模式下将自定义表单设置为初始化的一部分。
var invRec = record.transform({
fromType: record.Type.CUSTOMER,
fromId: custId,
toType: record.Type.INVOICE,
isDynamic: true,
defaultValues: {customform:296}
});
或
var invRec = record.transform({
fromType: record.Type.SALES_ORDER,
fromId: soId,
toType: record.Type.INVOICE,
isDynamic: true,
defaultValues: {customform:296}
});
答案 1 :(得分:0)
我遇到了类似的问题,我需要合并发票并将其附加到原始销售订单上,并且无法进行转换。
尝试使用获取一些信息。 log.debug({ 标题:“您的标题”, details:'Details:'+ objrecord.getValue({fieldId:'otherrefnum'})//例如 });
我认为这里的问题是NetSuite期望类型匹配。例如,不能将rate作为字符串接受-至少那是我得到的TypeError。
真实示例,其中我从发票[i]中选取所有字段并将其分配给合并发票: INVALID_FLD_VALUE“,”消息“:”您为以下字段输入了无效字段值1092:item“-NetSuite最有可能期望的是整数,而不是字符串,反之亦然。
此外,请检查以下链接。了解发票中哪些字段是必填字段,哪些不是必填字段,非常有用:http://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2016_2/script/record/invoice.html