需要在NetSuite Workflow期间提示用户输入文本

问题描述 投票:1回答:2

业务逻辑:当审批者拒绝费用报表时,必须将电子邮件发送给创建者。此电子邮件必须包含拒绝的原因。

现有设置:已经设置了多状态工作流程,通过两个单独的批准发送费用报告。每个审批人都可以批准或拒绝工作流程。拒绝工作流将其发送回提交状态以供创建者进行更正。我的任务是获取拒绝文本并创建传出电子邮件。

明显的解决方案被拒绝

  • 发送电子邮件工作流操作 - 此WF操作仅允许发送样板电子邮件(带有一些参数化)。从用户的角度来看,无法定制任何内容。
  • 工作流操作脚本 - 此脚本上下文不允许使用JavaScript对话框演示,例如window.confirm()或window.prompt()。工作流操作面板中有弹出式窗口,但仅适用于confirm()或alert() - 没有提示符()。不幸的是,工作流程动作脚本的技术要求和限制是非常可靠的,所以只有花了几天研究和编写脚本后才能学习到这个结果。
  • 在费用报表上添加跟踪字段,必须填写该报表字段才能拒绝报表。但是,这需要解锁记录,这是审计问题的一个问题。它也必须在适当的状态下可见和隐藏,并且只能与一组动作按钮相邻。
  • 新状态不是最终状态,因此电子邮件生成不像自动终端状态那样自动生成。我们只想要类似的功能。

我看到的唯一其他可能性是定位新页面,例如Suitelet。但是,我只需要用户提供一个字符串。 Suitelet似乎有点过分,而且它使得工作流程更加复杂,无法返回正确的报告。

任何人可能拥有的任何洞察力或想法都将是最有帮助的。

javascript workflow netsuite
2个回答
0
投票

好吧,我已经尝试了其他一些解决方案,但这些解决方案似乎都不起作用:

  1. 将状态退出触发器(通过WFA脚本中的nlapiSetRedirectURL())重定向到Suitelet,该Suitelet接受从用户输入拒绝文本的工作流传递的参数;然后重定向到费用报告。这会失败,因为报告状态实际上并未更改。
  2. 做同样的事情,但是从新状态的Entry触发器开始。需要一些更详细的参数处理,但这也不起作用。显然,从UI体验的任何部分重定向都会取消工作流转换。
  3. 在工作流操作上设置“用户界面”上下文也不起作用;重定向仍然会导致过渡。
  4. 即使在操作上设置了UI上下文,nlapiTriggerWorkflow()函数似乎也没有效果。没有生成错误或调试文本。

用户可能只需接受手动行为,例如添加注释和发送预设电子邮件。这似乎是一个重要的特征漏洞,无论是有意还是无意。请注意,有一个确认和一个显示消息操作,但没有提示。那为什么不呢?没有细节,只是处理它我想。


0
投票

最终盐:

  • 脚本运行的单独工作流状态。工作流上的新按钮会重定向到此新状态。
  • 这些特殊状态下的工作流操作脚本,其参数设置根据工作流中的位置而更改。此脚本重定向到suitelet(下一个),它会中断工作流转换并使项目保持相同状态。
  • 一个在文本区域中获取用户文本的suitelet,以及一个非提交操作按钮。不想使用提交按钮,因为它会重新加载同一页面,从而创建一个额外的步骤。
  • 从configlet按钮事件获取参数的客户端脚本,创建电子邮件,并重定向回原始记录(与之前处于相同的工作流状态)。

当然这是不优雅的。用户必须按下按钮才能创建电子邮件,并使用单独的按钮切换到正确的状态。它满足了用户的需求,但要求他们记住按一个按钮创建电子邮件原因文本,另一个按钮实际拒绝记录。

这种复杂解决方案的需求是因为NetSuite设计中的所有障碍:

  • 无法从服务器端WF操作脚本提示输入文本。我们可以确认()给出一个Y / N(确定/取消)答案,但不允许以某种方式返回字符串。
  • 如果WF操作脚本重定向到另一个页面,则无法完成转换。
  • Suitelet提交按钮重新加载同一页面,因此我们需要一个客户端脚本来完成最终的电子邮件创建工作。

特征孔多吗?

© www.soinside.com 2019 - 2024. All rights reserved.