# 工作流属性

在工作流属性窗口中可以编辑流程各种属性配置,分为以下几个标签页内容。

# 项目信息

这页可以设置流程的一些基本信息,包括

  • 代码
    流程代码,由英文字符和数字组成。这是一个流程的内部标识,不应该随意改动,且用户在办事大厅也可以看到这个代码,所以请谨慎命名,一般使用英语命名,不推荐拼音。

  • 名称
    流程在办事大厅的显示名称。

  • 标签
    流程标签具有特定语法,具体请参考下面对标签的详细说明。标签配置除了可以在工作流编辑器内修改,还可以再ide里的应用属性配置页修改。

  • 图标
    可以上传流程的图标,用于在网页版办事大厅和交我办办事大厅里显示。

# 标签

# 作用

标签的作用主要是应用项目的分类和搜索。按照下述的语法,标签可以有多个,在交我办的服务大厅(首页)里可以按照tag来搜索,在待办页或者已办页里也可以按tag搜索。多个标签中的第一个会作为服务大厅中的分类处理。

# 语法

# 标签基本语法

应用可以有多个标签,以逗号分隔,其中第一个标签作为该应用的所属分类(办事大厅中的分类)

示例 配置tags:国际交流,出入境

这样配置后该应用会出现在大厅的国际交流分类里,并且如果用户搜索出入境的话能搜到该应用。

# 标签支持表单变量

标签支持使用表单变量,可以是表单字段变量,也可以是messenger里设置的自定义变量。

示例 配置tags:国际交流,会议协议,${fieldTags}

这样配置后分类为国际交流,在待办页里表单字段fieldTags里的内容会出现在待办链接后面,在已办的搜索里也可以通过这个表单变量的内容来搜索该已办事项

# 标签的扩展内容

这主要运用于办事大厅的可办页里的显示,在办事大厅的待办页里只会显示标签内容,不会显示扩展内容,目前支持的扩展项如下

#扩展项 说明
#CategoryName 应用所属二级分类
#CategoryOrder 二级分类排序(数值小的排在前面)
#TypesMore 其他分类,多个以|分隔
#CategoryNameMore 其他二级分类,多个以|分隔
#CategoryOrderMore 其他二级分类排序,多个以|分隔
#Device 支持的设备(desktop|mobile)
  • 二级分类
    用#CategoryName可以将应用在一个大分类中按照二级分类分组显示,例如设置标签为"人事,#CategoryName:发展与培训",那么该应用将出现在人事分类下,且所属的二级分类为发展与培训。二级分类主要运用于应用分组,优化可办页的显示效果。一个分类中如果有多个二级分类,可以用#CategoryOrder设置分类顺序,数值越小越排在前面,设置了排序的在没设置排序顺序的二级分类前面。例如想将前面那个人事流程的二级分类发展与培训排在最前面,可以将标签设置为"人事,#CategoryName:发展与培训,#CategoryOrder:1"。理论上同样的二级分类的order应该是一样的,如果在不同的应用中设置了不同的order,那么该二级分类的实际顺序由排在前面的那个应用的设置为准。

  • 其他分类
    一个app也可以支持多个分类,第一个分类固定用第一个标签表示,其他分类可以放到#TypesMore里,例如某流程想放在人事和财务两个分类里,可以将标签设置为"人事,#TypesMore:财务"。如果想支持更多的分类,可以将多个分类以|分隔放到#TypesMore里,例如将标签设置为"人事,#TypesMore:财务|国际交流",那么这个流程将在3个分类中出现。

  • 其他分类的二级分类
    #CategoryName和#CategoryOrder可以用于设置第一个分类的二级分类和二级分类排序,如果需要设置在#TypesMore中指定的其他分类的二级分类,那么可以用#CatgegoryNameMore和#CatgegoryOrderMore来设置,并且也支持可以设置多个,以|分隔。例如前述例子中的如果设置标签为"人事,#TypesMore:财务|国际交流,#CategoryNameMore:业务办理|出国出境,#CategoryOrderMore:1|2",就可以将该应用放到财务的业务办理二级分类,以及国际交流的出国出境二级分类中,且指定了分类的顺序为1和2。

  • 支持的设备
    #Device扩展用于区分该应用支持的设备,如果配置#Device:desktop,说明该应用仅支持桌面版显示;如果配置#Device:mobile,说明该应用仅支持交我办App内显示。如果没有这项配置说明桌面版和app都支持。

# 流程信息

这页可以设置流程的一些基础配置,包括

  • 流程实例
    流程发起后的实例名称,如果缺失该信息,流程将不能发起。实例名称会显示在用户的待办列表或者已办列表中。实例名称中可以使用${变量名/前/后缀/默认值}用来引用表单数据。

    示例1 ${fieldContactor_Name//的校外人员入校申请/未提交的申请}${fieldCampus_Name/[/]}
    说明 其中第一部分${fieldContactor_Name}表示显示申请人姓名(这个字段数据类型是code类型,需要使用_Name表示显示值),前缀空,后缀用"的校外人员入校申请",默认值即如果申请人这个字段还不存在(用户尚未提交时该字段没有值)时显示内容。第二部分显示的是校区名称(同样这个字段是code类型,要用_Name表示显示值),前缀[, 后缀],表示用一对括号将校区包起来,没有缺省值表示如果不存在(未存盘或提交或表单中该字段就是空值时)就不显示值。所以当用户未存盘或者提交时,流程实例名显示为“未提交的申请”;当用户存盘或提交后,流程实例名显示为“张三的校外人员入校申请[闵行]”

    示例2 ${fieldContact//老师/未提交}的${fieldType}经费转账

    fieldContact fieldType 实例名
    未提交的经费转账
    李四 李四老师的经费转账
    网络费 未提交的网络费经费转账
    李四 网络费 李四老师的网络费经费转账

    表单数据变化时,系统将自动重新计算实例名称,建议实例名可以通过这种方式来包含尽量多的业务相关信息,提高实例的辨识度。

  • 优先级
    流程优先级,该配置目前尚未启用,可忽略。

  • 允许创建人终止
    是否允许流程创建人终止流程,如果勾上允许,那么无论流程流转到哪步(流程还没办理结束),创建人都可以在大厅的已办页面中打开该实例终止该流程。如果对于流程是否能终止有特殊的判定,可以在messenger的onInstanceKilling事件中处理。如果没勾上允许创建人终止,那么只能在人工节点配置了可以终止时,对应节点的执行人可以终止流程实例。

  • 说明
    该流程版本的附加说明。

  • 打印模板
    当选择了打印模板后,该流程将允许实例级别的打印功能。

  • Word模板
    当选择了Word模板后,该流程将允许实例级别的导出功能。

  • 只读导出
    配合Word模板使用。当设置了只读导出时,仅可导出PDF格式的文件,否则可以导出PDF和DOC格式的文件。

  • 预览模板
    当选择了预览模板后,可以在办事大厅里选择显示该流程的预览页(也叫做办理说明页或告知页),一般用于显示流程的业务办理说明。

  • 总是显示
    配合预览模板使用。当设置了总是显示时,流程发起时将总是先显示预览页,用户通过点击预览页上的“开始办理”才能发起实例。

  • 启用绑定
    该流程是否启用绑定功能,绑定功能指流程办理或者存盘时保存一份流程实例数据到绑定数据库,该库里的表根据流程表单的数据结构产生,绑定库里的表的列与表单字段一一对应,在ide里项目的data exchange页可以专门设置绑定的相关配置,在工作流编辑器里只有一个是否启用的开关。

  • 事件
    点击事件按钮后进入工作流事件配置页

  • 第三方资源
    点击事件按钮后进入第三方资源配置页

# 事件配置

事件定义用于支持工作流运行的Messenger位置和触发的时机。Messenger是指符合工作流交互规范、独立于工作流平台运行的其他系统,Messenger更详细的文档请参考此处

# 新增Messenger

新增的Messenger会出现在列表中,勾上启用会使用该Messenger配置。

  • 名称
    显示在messenger列表中的名称

  • Binding
    可以选择WebService,REST,Enterprise;如果使用我们的Infoplus SDK (opens new window),这里请选择REST

  • 生产环境地址
    生产环境Messenger部署的地址,正式发起的实例都会调用生产环境的Messenger。如果使用SDK,接口地址为部署目录下的infoplus_subscriber。

  • 测试环境地址
    测试环境Messenger部署的地址,调试发起的实例都会调用测试环境的Messenger。

  • 接口
    接口支持的调用方法,如果使用我们的SDK,这里请填写POST

# 配置Messenger事件

  • 事件分类
    Messenger配置的事件分为流程级事件,步骤级事件以及字段级事件,详细的事件解释说明请参考这里
  • 阻塞和非阻塞
    事件的调用分阻塞调用和非阻塞调用,对于阻塞调用的事件,如果事件里抛错,那么引擎会回滚事务。非阻塞调用引擎不会等待调用结果,直接往下执行。如果某个类型的事件只有是否触发选择图标,而没有是否阻塞选择图标,说明这个事件只能是阻塞的,例如流程级的starting、printing等事件,步骤级的rendering、doing事件等。可以选择是否阻塞的事件包括流程级的started、killed,步骤级的done、saved等。

# 第三方资源

定义用于获取OAuth用户授权访问令牌的相关信息。OAuth协议中获取用户授权访问令牌需要通过浏览器交互来实现,在工作流的运行过程中,由于工流程平台控制了交互界面,所以如果支持流程运行的Messenger需要获取此类访问令牌(如需要访问需要用户授权访问令牌的API接口)则必须通过工流程平台协助。

  • 类型
    第三方资源类型分SYSTEM、ENTERPRISE、EXTERNAL,应根据获取访问令牌所需要的OAuth服务性质而定,而获取访问令牌所需的ClientId、ClientSecret亦因匹配所选择的OAuth服务。

    类型 OAuth服务 ClientId、ClientSecret
    SYSTEM 流程平台自身OAuth服务 不能指定。自动使用本流程的id和secret
    ENTERPRISE 租户配置的上游OAuth服务,交大为jAccount 不指定时表示使用上游OAuth服务分配给流程平台应用参数,指定时应填写向上游OAuth服务申请到的应用参数。推荐使用指定的方式,当访问令牌需要流程平台不具备的Scope时,必需自行申请并指定应用参数
    EXTERNAL 其他任意的OAuth服务 对应此OAuth服务的应用参数,并应填写Auth URI和Token URI来配置OAuth服务的访问入口
  • 启用依赖
    如果需要在流程启动时(starting和started事件)使用访问令牌,请在配置页面中勾选"启动依赖",否则仅需在步骤级资源依赖列表中勾选需要使用访问令牌的步骤,表示在该步骤的rendering、clicking、doing、done事件中使用访问令牌。

  • 使用访问令牌
    Messenger中使用访问令牌,只需从事件参数InfoPlusEvent调用getTokens方法,方法返回一个Map数据接口,key为配置的第三方资源的代码,value为访问令牌。

# 表单模板

此页维护的是对应工作流版本的表单信息,修改仅对当前版本有效。

工作流必须拥有关联的表单才能运行,表单定义了工作流运行时呈现给用户的操作界面。通过此页,您可以上传表单,在完成表单上传前,您将无法保存工作流。一个工作流有且仅有一个主表单,但可以拥有任意多个视图,在流程的不同步骤上可以配置使用不同的视图来展现操作界面。主表单和视图都是使用Microsoft InfoPath软件产生的xsn文件。表单编辑器的使用详见此处

# Word模板

此页维护的是对应工作流版本的Word模板信息,修改仅对当前版本有效。
为了使工作流有将表单导出为DOC或者PDF文件的能力,必须制作并上传Word模板。通过此页可以上传任意多个Word模板,满足不同环节上不同的导出需求。Word模板的制作规范请参见此处

# 权限

此页维护的是对应工作流版本的权限信息,修改仅对当前版本有效。

这里维护对该工作流版本所有实例的查看、管理和运营权限,这些权限和Dashboard中的功能对应关系如下

权限类别 dashboard权限 对应操作
查看 查看与干预 查询数据
查看 业务数据管理 查询绑定数据
管理 查看与干预 终止、删除等
运营 运营监控 查看日志

和工作流步骤的执行权限类似,工作流平台的权限由岗位设置、限定设置、对应模板等几部分组成,权限的具体设置请参见岗位和限定

# 执行时限

此页维护的是对应工作流版本的执行时限信息,修改仅对当前版本有效。
为了保证工作流运行在合理的时间范围内,可以通过此页设置一个执行时限的脚本,脚本返回一个数值代表从实例启动到发生超时的分钟数。当返回的数值为0时,表示永不超时。超时发生时,流程平台将根据事件配置发出通知。

# 数据映射

数据映射页用于在子流程中维护父子流程字段的映射关系,修改仅对当前版本有效。维护映射关系需要填写三方面内容

  • 父流程代码
    数据映射可以有多个,父流程代码指定了从哪个父流程流转过来时使用这份映射。

  • 映射关系
    定义主流程表单数据和子流程表单数据的字段级对应关系。
    默认采用同名传递规则,即子流程在发起时会接收和主流程同名字段的数据(同时需要主流程在其子流程节点上配置该字段可读),在结束时会回传和主流程同名字段的数据(同时需要主流程在其子流程节点上配置该字段可写)。
    不符合同名传递规则字段的可在此处添加例外,每行表示一个例外定义,允许的格式有:

    格式 说明
    fieldParentField,fieldChildField 逗号分割的主流程字段名和子流程字段名。
    表示将主流程的fieldParentField传递到子流程的fieldChildField上,反向亦然
    fieldChildField 单个子流程字段名。
    表示子流程的该字段不接收主流程数据(即便主流程中存在同名字段),也不回传该字段

未出现在此处的其他字段,仍采用同名传递规则。同一主流程字段或者同一子流程字段,在映射规则中仅允许出现一次。

  • 继承前序实例数据
    表示该子流程如果在主流程中某个实例中被用到多次(无论是否是同一个子流程节点),是否继承前一次该子流程实例的表单数据。
    在继承的情况下,子流程能够不依赖主流程将私有字段从前序实例传递到后序实例,但是开发者需要意识到这种传递是单向的。