【问题标题】:How long will a workflow stay in a Status Reason of "Waiting" before it times out?工作流在超时之前会保持“等待”状态原因多长时间?
【发布时间】:2019-11-22 14:11:16
【问题描述】:
我想知道 Dynamics CRM 工作流在超时/自动取消之前会保持“等待”状态原因多长时间?
我有一个“续订”机会的工作流程,其中包含以下步骤:“等到今天的日期 >= 续订日期前 3 个月。”然后,记录被更新。我担心如果工作流程的“等待”状态太久,它会自动取消。这会是一个问题吗?如果是,那么处理“续订机会”的更好方法是什么,以便机会名称在“续订日期”字段中的日期前 3 个月更新为“续订”一词?
谢谢!
【问题讨论】:
标签:
dynamics-crm
workflow
【解决方案1】:
Aron 很好地解决了您问题的第一部分。
如果是,那么处理“续订机会”的更好方法是什么,以便机会名称在“续订日期”字段中的日期前 3 个月更新为“续订”一词?
1) 创建程序:
通常,手动程序比开发自动化更具成本效益和可靠性。
- 创建一个“待续订的机会”视图,其中显示了续订日期在今天的 X 天内的所有机会。
- 创建更新机会工作流程
- 建立一个流程,用户定期(每月一次/每周一次?)打开此视图并运行更新机会工作流程。
如果不需要在确切日期进行续订,这是一个不错的选择。
2) 让外部应用程序启动工作流程:
您可以编写一个轻量级的计划应用程序来执行此操作。如果您采用这条路线,我建议您通过让应用程序在 CRM 视图的结果上执行并启动工作流来执行更新操作,尽可能多地保留 CRM 中的配置。这样,当您的企业决定更改其规则(例如,不同的续订期)时,您只需更新查看标准或工作流程。
如果您拥有内部开发能力并且有许多此类工作流可以利用您的计划应用程序来处理,那么这是一个不错的选择。
3) 让插件启动工作流程:
这是我个人的喜好。与选项 2 相同,但不是使用计划的控制台应用程序,而是让 CRM 托管和计划作业。创建自定义计划任务实体,并设置等待一段时间(例如 24 小时)然后创建计划任务记录的工作流。添加插件逻辑,在创建计划任务记录时触发,执行与选项 2 相同的操作。
这比 #2 好有几个原因:
- 不需要外部托管,没有集成问题
- 只需创建计划任务记录即可手动触发作业
- 您可以将结果记录添加到计划任务记录中
其他想法:
我不会判断上述选项是否比等待工作流“更好”,它们都有不同的优点和缺点。 Async 服务比以前更可靠,但我个人仍然尽量避免使用等待较长时间的工作流,主要是出于系统复杂性和性能原因。如果您需要自动化并且没有内部开发人员,那么您最好的选择可能是设置等待工作流。
【解决方案2】:
它将无限期地等待。但是...作为编写依赖于等待工作流程的产品的人,我可以说可能存在问题。也许最突出的是工作流在触发日期之前被取消的风险——不是“自动”而是由用户或用户定义的流程取消。
一个客户有定期取消等待工作流的例程。在我们将他们的日程安排从工作流转移到在线日程安排程序之前,这一直都在破坏一切。
一般来说,依靠计划几个月后的等待工作流是可以的,但谨慎的做法是建立一种机制来确认它们正在运行并在它们不运行时恢复。