EAS工作流 之 function元数据让表单接入工作流原创
金蝶云社区-id_bao
id_bao
13人赞赏了该文章 236次浏览 未经作者许可,禁止转载编辑于2023年08月06日 10:05:04

    前面的一篇文章讲了流程和业务或者说流程和单据的关系,今天讲下怎样让一个业务表单接入工作流,这里我们假设你已经新建好了一个表单元数据出来就等着下一步接入工作流。

   

一, 业务功能(function)元数据

    首先明确一个前提,业务表单必须有对应的function元数据,才能接入EAS工作流。

    

上传图片


    那么什么是funtion元数据呢,EAS给出的定义是:

业务功能(Function)
业务功能是对运行系统的 Entity 对象、UI 对象及其方法的一定封装,供其它模块或二次开发使用,目前业务功能的主要使用对象为工作流和后台事务。
业务功能的定义包括:
 名称、别名和描述
 所属的包
 操作(operation)定义
业务功能操作
业务功能的操作定义包括:
 名称、别名和描述
 反方法,指定与该操作相反业务语义的操作,例如审核与反审核。
 引用对象,指定该操作绑定的实体方法和用户界面的 Action。
操作定义必须引用一个实体对象,同时定义事件名称和事件方法名称,而界面对象的绑定则是可选的。

上面的定义大家反复斟酌下,下面看Funtion元数据在BIM解决方案里长什么样子,以费用申请单为例:

费用申请单的funtion元数据是OtherExpenseFunction.funtion

上传图片


费用申请单实体》事件(下图在配置事件方法参数的时候一定要勾选业务对象主键,不然触发不了流程 ):

上传图片


结合上图再去看function的定义,概念就会变得清晰,funtion本质上是有一些操作所构成(什么是操作,就不必再去解释讨论了),这些操作引用了对应单据实体的事件方法。可以抽象为下面的一个结构图:

上传图片


现在我们自己在已有的function 下面新增一个操作,要注意哪些情况呢?

上传图片

1,实体对象名称 - 事件名称 - 事件方法名称必选,这个配置决定了实体的方法能否触发流程。


2,勾选引用界面对象

勾选了引用界面对象就要被指下面的:界面对象名称,然后是Action名称(界面按钮),以及界面状态(编辑状态)。映射到真实的业务场景就是:填写完表单 点击 提交 按钮 去触发工作流。

这是一个非常有意思的点,狭义的说就是:如果没有表单界面 我怎么去提交流程呢?所以在EAS的流程设计器中有这样的限制,一般的人工节点(常常被称为 提交节点),在选择任务的时候(也就是选择function的操作的时候)是只会加载操作上配置了界面对象的数据。

上传图片


3,不勾选引用界面对象

不勾选的话在人工节点就选不到该操作了,但是可以在自动节点的任务选择里选到该function的操作,可以看到下图的function操作多了许多,为什么在自动节点就可以选到不带界面对象的操作呢,原因很简单,在设计上我们认为自动节点都是去后台跑的,不需要界面:

上传图片


注意,这里有一点需要阐明:操作引用了界面对象只是能在人工节点配置流程的时候可以被选到,并不代表只有这个界面可以触发提交流程,这里毫无关系。



赞 13