[英]Need to prompt user for text during NetSuite Workflow
业务逻辑:当审批者拒绝费用报告时,必须向创建者发送电子邮件。 这封电子邮件必须包含拒绝的原因。
现有设置:已设置多状态工作流,通过两个单独的批准发送费用报告。 每个审批人都可以批准或拒绝工作流。 拒绝工作流将其发送回提交状态以供创建者更正。 我的任务是获取拒绝文本并创建外发电子邮件。
明显的解决方案被拒绝:
我看到的唯一其他可能性是定位一个新页面,例如 Suitelet。 但是,我只需要来自用户的单个字符串。 Suitelet 似乎有点矫枉过正,而且它使返回正确报告的工作流程更加复杂。
任何人可能拥有的任何见解或想法都将是最有帮助的。
好吧,我尝试了其他几种解决方案,但这些似乎都不起作用:
用户可能只需要接受手动行为,例如添加注释和发送预制电子邮件。 这似乎是一个主要的功能漏洞,无论是有意还是无意。 请注意,有一个确认和一个显示消息操作,但没有提示。 那为什么不呢? 没有细节,我猜就处理它。
最终解决方案:
这当然是不雅的。 用户必须按下一个按钮来创建电子邮件,并按下一个单独的按钮来转换到正确的状态。 它满足了用户的需求,但要求他们记住按一个按钮来创建电子邮件原因文本,并按另一个按钮来实际拒绝记录。
之所以需要这种复杂的解决方案,是因为 NetSuite 设计中存在所有障碍:
功能孔多吗?
工作流有一个限制,即它不能接受用户的输入。 因此,我们需要针对这种情况继续定制解决方案。 我已经在多个 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) 单击“提交”按钮后,将套件重定向回交易记录
这应该可以解决上述问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.