在跟外部事件交互调用过程中,调用逻辑统一封装在ActionExecutor.cs文件中,代码实现并没有特别复杂,主要是统一做了参数的存储和调用的处理,其中参数存在WfProcessVariable表中,然后在事件调用过程中,使用DelegateService方法来读取参数列表,从而完成最终方法的调用。

客户方如果对一些代码的实现有特殊的要求,客户方开发人员可以在此基础上完成二次开发或者定制,其基本要求是明白以下三个要素:节点属性定义读取、流程变量的存储和读取以及动态方法的调用。

以下对已经实现的方法作以示例,供客户方技术人员进行二次开发。

  1. 本地程序

本地程序调用参考1.4.2章节中的方法实现;

  1. WebApi
    1. 步骤1:节点属性上的事件定义

    1. 步骤2:流程变量定义

通过WorkflowService接口写入流程变量(WfProcessVariable),变量用来传递WebApi方法的参数,此处作为示例:

    1. 步骤3:被调用WebApi程序的接口方法实现示例

上述示例中有两个参数:runner和role, 在WebApi的方法代码中,可以使用JSON格式数据作为接收,然后根据做序列化处理。


  1. 存储过程

存储过程是数据库定义的包含SQL脚本语法的程序过程(比如把上述的SQL脚本单独保存为存储过程),默认限定在同一个数据库实例中,支持入口参数,定义时,指定参数名称还有存储过程的名称就可以。