
一、 ecology工作流接口简介
为了满足其他企业应用从ecology系统中获取流程数据的需求,ecology提供了工作流接口供其他企业应用系统调用。Ecology工作流接口被部署为web service,数据流被封装为soap消息以xml格式通过http协议在企业内外部网络中传递,不受平台和开发语言的,掌握高级编程语言的开发人员可以方便地生成本地代理程序远程调用ecology工作流接口而不用关心数据序列化和反序列化的细节,最大程度地降低了复杂性。
二、名词解释
1.workflow: ecology工作流,包含表单定义信息,节点及节点操作人信息,出口信息等。一个典型的工作流定义如下:
2.request:工作流的实例,一个典型的工作实例如下:
三、ecology工作流接口类图
说明:上图描述了工作流接口实现类及关联关系。
weaver.soa.workflow:工作流接口命名空间(namespace or package)
WorkflowService:工作流接口。提供了获取工作流数据的方法,getWorkflowInfoByWorkflowId方法返回指定工作流的表单主表字段和明细表字段信息。getRequestDataByWorkflowId方法返回指定工作流的表单主表数据和明细表数据。
WorkflowInfo:工作流表单信息,包括主表字段信息和明细表字段信息。其中明细表信息设计为数组类型以支持多明细表单。
DetailTableHeader:表单明细表字段信息
RequestData:工作流实例(请求)数据。包括主表数据和明细表数据,和WorkflowInfo中的主
表字段、明细表字段一一对应。
MainTableData:主表字段数据
DetailTableData:明细表字段数据。设计为数组类型以支持多明细。
DetailTableRow:明细表中的行数据。
三、顺序图(流程图)
说明:上图描述了外部系统对工作流接口的调用过程。
service proxy:通过开发工具(java,c#,delphi等)生成的本地代理类。开发人员通过调用本地代理类的getWorkflowInfoByWorkflowId方法和getRequestDataByWorkflowId方法
,由代理类负责把调用转化为soap request message来实现对ecology workflowService的远程调用,对开发者而言就像在本地直接调用workflowService一样。
Web service engine: ecology web服务引擎,处理代理类发送的请求并转化为对WorkflowService的调用
五、其他
1.ecology工作流接口中使用的数据类型只有字符串类型和数组类型两种,这是为了异构系统能够正常的调用我们的web service.其他的java数据类型可能不能正常转换成c#或dephi语言的相应数据类型。
2. 调用者需要分两步获取工作流数据,就像上面流程图所示的那样,首先获取工作流表单字段信息,然后获取工作流字段数据,当获取到了这两种数据之后就可以在自己的应用系统中重组ecology工作流了。
