Suitescript:工作流操作脚本发送的电子邮件未出现在事务选项卡中
Suitescript: Workflow Action script sent emails not appearing in transaction tab
我已经创建了一个工作流操作脚本来发送电子邮件,以便稍后可以使用电子邮件插件处理收到的消息(这可能是多余的,尽管我目前只是在试验工作流操作脚本)
这是脚本:
/**
*@NApiVersion 2.x
*@NScriptType WorkflowActionScript
*/
define(["N/email", "N/render", "N/record"], function (email, render, record) {
function onAction(context) {
var transaction = context.newRecord;
var transactionId = transaction.getValue({ fieldId: "tranid" });
log.debug("transaction Id", transactionId);
var recipient = transaction.getValue({
fieldId: "custbody_first_approver",
});
var recipientId = parseInt(recipient);
var vendorId = transaction.getValue({ fieldId: "entity" });
var mergeResult = render.mergeEmail({
templateId: 11,
entity: {
type: "vendor",
id: parseInt(vendorId),
},
recipient: {
type: "employee",
id: parseInt(recipient),
},
supportCaseId: null,
transactionId: transactionId,
customRecord: null,
});
var emailSubject = mergeResult.subject;
var emailBody = mergeResult.body;
email.send({
author: -5,
recipients: parseInt(recipient),
subject: "test",
body: emailBody,
relatedRecords: {
transactionId: transactionId,
},
});
}
return {
onAction: onAction,
};
});
正在发送电子邮件,但似乎只是针对收件人(雇员)的实体记录存储了一份副本。
查看 'N/email' 模块上的 Netsuite 指南,它建议
relatedRecords: {
transactionId: transactionId,
},
脚本的一部分应该控制消息的存储位置。但是,相关记录或任何其他选项卡下的交易记录中没有任何内容。
我需要更改什么才能获得根据交易记录保存的电子邮件副本?
谢谢
我找到了问题的原因。是这一行:
var transactionId = transaction.getValue({ fieldId: "tranid" });
需要
var transactionId = transaction.getValue({ fieldId: "id" });
为了获取记录的内部 ID 而不仅仅是交易号。
脚本中对它的所有引用都需要转换为整数值,否则我会不断收到“错误的参数类型:options.transactionId 应为数字”错误。
我每次引用交易ID
时都使用parseInt(transactionId)
转换了这个
我已经创建了一个工作流操作脚本来发送电子邮件,以便稍后可以使用电子邮件插件处理收到的消息(这可能是多余的,尽管我目前只是在试验工作流操作脚本)
这是脚本:
/**
*@NApiVersion 2.x
*@NScriptType WorkflowActionScript
*/
define(["N/email", "N/render", "N/record"], function (email, render, record) {
function onAction(context) {
var transaction = context.newRecord;
var transactionId = transaction.getValue({ fieldId: "tranid" });
log.debug("transaction Id", transactionId);
var recipient = transaction.getValue({
fieldId: "custbody_first_approver",
});
var recipientId = parseInt(recipient);
var vendorId = transaction.getValue({ fieldId: "entity" });
var mergeResult = render.mergeEmail({
templateId: 11,
entity: {
type: "vendor",
id: parseInt(vendorId),
},
recipient: {
type: "employee",
id: parseInt(recipient),
},
supportCaseId: null,
transactionId: transactionId,
customRecord: null,
});
var emailSubject = mergeResult.subject;
var emailBody = mergeResult.body;
email.send({
author: -5,
recipients: parseInt(recipient),
subject: "test",
body: emailBody,
relatedRecords: {
transactionId: transactionId,
},
});
}
return {
onAction: onAction,
};
});
正在发送电子邮件,但似乎只是针对收件人(雇员)的实体记录存储了一份副本。
查看 'N/email' 模块上的 Netsuite 指南,它建议
relatedRecords: {
transactionId: transactionId,
},
脚本的一部分应该控制消息的存储位置。但是,相关记录或任何其他选项卡下的交易记录中没有任何内容。
我需要更改什么才能获得根据交易记录保存的电子邮件副本?
谢谢
我找到了问题的原因。是这一行:
var transactionId = transaction.getValue({ fieldId: "tranid" });
需要
var transactionId = transaction.getValue({ fieldId: "id" });
为了获取记录的内部 ID 而不仅仅是交易号。
脚本中对它的所有引用都需要转换为整数值,否则我会不断收到“错误的参数类型:options.transactionId 应为数字”错误。
我每次引用交易ID
时都使用parseInt(transactionId)
转换了这个