.net core Elsa工作流程触发和与exe的集成

.net core Elsa工作流程触发和与exe的集成,.net-core,elsa-workflows,.net Core,Elsa Workflows,我想根据以下要求构建Elsa工作流: 可以在插入新行时从数据库表触发器触发 可以执行exe文件来获取一些信息 从数据库中读取数据 我同意@fatihyildizhan和@vahidnaderi的观点,但如果我将问题解释为“如何从高层概述中与Elsa一起执行这3个步骤-有人能给我一些建议吗?”那么我可以回答如下: 如果你真正需要的是你提到的3个步骤,那么不要使用Elsa;你想做的事太过分了 原因如下: 虽然你可以用Elsa实现所有这些,但你不能用Elsa开箱即用;您将不得不编写自定义活动和支持服务

我想根据以下要求构建Elsa工作流:

  • 可以在插入新行时从数据库表触发器触发
  • 可以执行exe文件来获取一些信息
  • 从数据库中读取数据

  • 我同意@fatihyildizhan和@vahidnaderi的观点,但如果我将问题解释为“如何从高层概述中与Elsa一起执行这3个步骤-有人能给我一些建议吗?”那么我可以回答如下:

    如果你真正需要的是你提到的3个步骤,那么不要使用Elsa;你想做的事太过分了

    原因如下:

    虽然你可以用Elsa实现所有这些,但你不能用Elsa开箱即用;您将不得不编写自定义活动和支持服务来触发您的工作流,这比简单地从“插入行”的应用程序处理程序执行操作要多一些工作

    另一方面,如果你正在计划实现多个工作流程,这些工作流可能更复杂,甚至可能是长时间运行的,那么考虑埃尔莎毕竟是值得的。 使用Elsa进行此操作需要进行以下前期工作:

    1。插入新行时触发工作流

    要在插入新行时触发工作流,需要实现一个响应该事件的处理程序(无论是否使用Elsa,都需要执行此操作)

    接下来,您需要实现一个自定义活动,将“插入行”事件表示为触发器,例如称为
    rowserted
    。然后,您可以将该活动用作任何工作流中的起点,甚至用作恢复点(例如,对于您开始某些工作的工作流,可能会插入某个数据库行的最终添加,这是您要处理的事件),每当插入新行时都会触发该恢复点。您可能希望能够配置触发此事件的数据库表,因此可以向活动中添加
    TableName
    属性

    然后,为了使Elsa实际触发自定义活动的工作流,您需要执行以下操作:

  • 实现一个书签模型和提供程序,供Elsa索引和调用。例如。
    NewRowBookmark:IBookmark
    ,具有一个名为
    TableName
    的属性。书签是Elsa启动和恢复工作流的方式
  • 更新前面描述的“插入行”处理程序,以调用
    IWorkflowLaunchpad.CollectAndDispatchWorkflowsAsync
    ,传入包含插入行的表名的相应书签/触发器模型,并提供插入行作为输入(假设您希望工作流对插入行执行某些操作)
  • 2。执行文件

    要执行文件,您需要创建另一个执行此操作的自定义活动。您可以根据需要将此活动设置为特定的或通用的

    3。从数据库读取数据

    与#2相同,您需要创建另一个从数据库读取的自定义活动。您可以根据需要将此活动设置为特定的或通用的


    以上内容应能让您大致了解与Elsa一起实施该计划所涉及的工作。如前所述,如果您只想执行上述3个步骤,那么这可能会有点过头。

    您好,阿迪蒂亚,请检查本指南。您应该添加有关问题的更多详细信息以及您尝试了什么。您的问题很模糊,你提到的可以通过某种方式实现,但这实际上取决于你试图实现的目标,以及Elsa是否是适合你场景的正确选择