业务逻辑:当审批者拒绝费用报表时,必须向创建者发送电子邮件。该电子邮件必须包含拒绝的原因。
现有设置:已经设置了多状态工作流程,通过两次单独的批准发送费用报告。每个审批人都可以批准或拒绝工作流程。拒绝工作流将其发送回提交状态以供创建者进行更正。我的任务是获取拒绝文本并创建传出电子邮件。
明显的解决方案遭到拒绝:
我看到的唯一其他可能性是定位新页面,例如Suitelet。但是,我只需要来自用户的单个字符串。 Suitelet看起来有点过分,加上它会使工作流程变得更加复杂,无法返回正确的报告。
任何人可能拥有的任何洞察力或想法都将是最有帮助的。
答案 0 :(得分:0)
好吧,我已经尝试了其他一些解决方案,但这些解决方案似乎都不起作用:
用户可能只需接受手动行为,例如添加备注和发送预设电子邮件。这似乎是一个重要的特征漏洞,无论是有意还是无意。请注意,有一个确认和一个显示消息操作,但没有提示。那为什么不呢?没有细节,只是处理它我想。
答案 1 :(得分:0)
最终解决方案:
当然这是不优雅的。用户必须按下按钮才能创建电子邮件,并使用单独的按钮切换到正确的状态。它满足了用户的需求,但要求他们记住按一个按钮创建电子邮件原因文本,另一个按钮实际拒绝记录。
对这种复杂解决方案的需求是因为NetSuite设计中的所有障碍:
功能漏洞多少?
答案 2 :(得分:0)
工作流有一个限制,它不能接受用户的输入。因此,我们需要针对这种情况继续定制解决方案。我已经在多个 NetSuite 项目中实现了这一点。这是有效的解决方案 (1) 有一个工作流动作脚本来调用套件。有关工作流动作脚本,请参阅下面的脚本示例
define(['N/record','N/runtime','N/redirect'],
function (record,runtime,redirect){
function callSuitelet(context)
{
try {
var currentRecord = context.newRecord;
var vendorId = currentRecord.id;
var vendorNumber = currentRecord.getValue('entityid');
redirect.toSuitelet({
scriptId: 'customscript_call_rejection_reason',
deploymentId: 'customdeploy_call_rejection_reason',
parameters: {'recid':vendorId,'vbTransactionNo':vendorNumber, trantype: context.newRecord.type}
});
}
catch (err) {
log.error("Error while calling Suitelet", err);
throw err;
}
}
return {
onAction: callSuitelet
};
});
(2) 有一个suiteLet设计来捕捉“拒绝原因” (a) 在套件表单上添加一个字段,标记为“拒绝原因” (FieldType.TEXTAREA) (b) 添加“提交”按钮,将数据添加到交易记录中 (c) 点击“提交”按钮后,将套件重定向回交易记录
这应该可以解决上面提到的问题