问题描述
一旦用户单击NS中的标准void按钮,我想先执行一些操作,然后再提交。由于没有从客户端事件脚本触发任何功能,因此我尝试在提交之前使用User事件,但是无法看到一种方法来识别事件是由VOID还是由SAVE按钮触发的。您对可以解决的问题有任何建议/想法吗?
解决方法
用法和说明
- 在日记记录中部署为用户事件脚本
- 此代码将找到被取消的相关交易,在被取消之前会将其备注更改为“此交易已被取消!”
- 请注意,“ 作废前”是指您单击作废日记记录上的“保存”按钮时的情况,而不是指按“作废”按钮时的情况在原始交易上。
- 您可以以此为基础来对
voidedRecord
对象执行其他操作。
SuiteScript 1
function beforeSubmit(type) {
if (type == 'create') {
var voidRecord = nlapiGetNewRecord();
var voidedRecordId = voidRecord.getFieldValue('createdfrom');
var voidedRecordType = voidRecord.getFieldValue('transform');
var voidedRecord = nlapiLoadRecord(voidedRecordType,voidedRecordId);
voidedRecord.setFieldValue('memo','This transaction has been voided!');
nlapiSubmitRecord(voidedRecord);
}
}
SuiteScript 2
/**
*@NApiVersion 2.x
*@NScriptType UserEventScript
*/
define(['N/record'],function (record) {
function beforeSubmit(context) {
if (context.type == context.UserEventType.CREATE) {
var voidRecord = context.newRecord;
var voidedRecordId = voidRecord.getValue({fieldId: 'createdfrom'});
var voidedRecordType = voidRecord.getValue({fieldId: 'transform'});
var voidedRecord = record.load({
type: voidedRecordType,id: voidedRecordId
});
voidedRecord.setValue({
fieldId: 'memo',value: 'This transaction has been voided!'
});
voidedRecord.save();
}
}
}
);
,
请注意,这是假定您已将选项设置为“使用冲销日记帐以使交易无效”。如果未打开该选项,则不会创建J / E。基本交易被设置为posting = N,清零并保存。无效的交易无法恢复。