泛微协同商务系统开发文档系列之
工作流对外接口技术说明(简单版) Weaver e-cology Info Control System For Tech User
机要文件请勿传播
工作流对外接口技术说明
简单版
目录
开发背景 (3)
软件功能 (3)
技术特点 (4)
接口说明 (4)
/src/weaver/workflow/request/RequestOutWork.java (4)
/src/weaver/workflow/request/RequestOutData.java (4)
对于创建HTTP POST请求的说明 (5)
一、开发背景
由于客户的需求,e-cology系统的工作流模块需要提供一个方便的便于二次开发的接口,使客户可以根据自己的需要,灵活调用e-cology系统的工作流引擎,利用其强大灵活的流程设定功能,来完成自己的内容审批功能,或者其他需要通过工作流来完成的任务。
二、软件功能
三、技术特点
1、提交请求采用HTTPPOST方式,可以用其他语言来构造这个请求,而不
仅仅用java语言。
2、在流程归档的时候给用户处理自己代码的机会,通过编写自己的java类
并在配置文件里进行注册,就可以在归档的时候被工作流引擎调用,来
完成需要归档时完成的操作。
四、接口说明
这里描述的时客户开发需要用到的类,还有一些jsp文件和java类文件这里没有
说明,因为这些文件时开发当中不需要关心也不需要修改的。
/src/weaver/workflow/request/RequestOutWork.java
描述:如果需要在归档的时候执行自己定义的操作,那么必须实现这个类的execute
方法,在这个方法里可以执行自己的操作,然后把这个类注册到接口的配置文件
里面,这样工作流引擎就可以在归档的时候调用这个类的execute方法了。
方法:
booleanexecute(intrequestid)throwsRequestOutWorkException
功能:执行归档前自定义的操作
输入:工作流请求id
返回:是否成功
/src/weaver/workflow/request/RequestOutData.java
描述:这个类可以帮助开发者根据requestid方便的得到工作流的相关数据
方法:
RequestOutData(intrequestid)
功能:构建一个读取工作流数据的类,并且设置需要读取的工作流请求的id
输入:工作流请求id
方法:
StringgetData(StringfieldName)
功能:根据字段名称取得主表的数据
输入:字段名称
返回:字段的值
方法:
booleannext()
功能:由于明细数据时多行的数据结构,所以有这个函数来在多行之间移动。
移动到明细数据的下一行,第一次移动到的一行,第二次到第二行……
输入:无
返回:如果已经到最后一行,或者根本没有明细数据,那么返回false否则返回true
方法:
StringgetDetailData(StringfieldName)
功能:当有next()移动到需要的明细数据行时,由这个函数得到明细表的数据,如果没有明细,那么返回null
输入:明细字段名称
返回:明细字段的值
方法:
booleanloadData()
功能:读取数据库中的数据
输入:无
返回:如果成功返回true否则返回false
对于创建HTTP POST请求的说明
如果要创建一个工作流请求,那么必须用程序创建一个HTTPPOST请求,创建POST请求的方法很多,只要创建的头格式符合下面的说明即可,下面用java 语言进行说明
假设out为建立连接后得到的输出流,那么创建POST请求如下所述:
out.print("POST"+file+"HTTP/1.1\r\n");
out.print("Accept:*/*\r\n");
out.print("Accept-Encoding:gzip,deflate\r\n");
out.print("Accept-Language:zh-cn\r\n");
out.print("Cache-Control:no-cache\r\n");
out.print("Connection:Keep-Alive\r\n");
out.print("Content-Length:"+data.getBytes().length+"\r\n");
out.print("Content-Type:application/x-www-form-urlencoded\r\n");
out.print("Host:"+wwwHost+"\r\n");
out.print("User-Agent:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.0)\r\n");
out.print("Pragma:no-cache\r\n");
out.print("Connection:close\r\n\r\n");
out.print(data);
蓝色行为必须项
其中
file 代表请求的页面名称wwwHost为服务器的名称
比如http://localhost/weaver/weaver.TestPostHead
那么file= /weaver/weaver.TestPostHead
wwwHost=localhost
注意:处理POST请求的是一个固定的jsp文件,不同的仅仅时wwwHost不同,而file总是相同的,都是/workflow/request/RequestOutDataFormatOperation.jsp,这个文件是处理外部来的POST请求的固定文件
data POST请求代表数据,数据必须符合指定的格式,下面有描述主表字段:field_主字段名称例如:field_document、field_text1
从表字段:field_从表字段名称_序列号(1、2、3……)
例如
主表字段:field_main1、field_main2
从表字段:
field_detail2_1、field_detail3_1
field_detail2_2、field_detail3_2
field_detail2_3、field_detail3_3
field_detail2_4、field_detail3_4
field_detail2_5、field_detail3_5
其中main1、main2为主字段名称detail2、detail3为从表字段名称那么数据的格式就是
field_main1=value1&field_main2=value2&field_detail2_1=value3&field_detail 3_1=
value4……
用java语言表示为
out.print(“field_main1=value1&field_main2=value2&field_detail2_1=value3&field_de tail3_1=
value4……”);
Released By Weaver Software
2003.11.03。