泛微OA 二次开发接口 示例文档
ECOLOGY系统接口开发示例文档
在ECOLOGY系统中已经实现了一些可供客户自行开发实现相关功能的接口,主要体现在:流程字段直接获取其他系统的数据;流程流转过程中自动触发或者更新其他系统的数据
要实现上述功能,一般通过以下几步就可完成
一、配置其他系统的数据源(通过这个来和其它系统的数据库通信),配置文件位于ECOLOGY/WEB-INF/service下 文件名:datasource.xml
内容: <service-point id="local" interface="weaver.interfaces.datasource.DataSource">
<invoke-factory>
<construct class="weaver.interfaces.datasource.BaseDataSource">
<set property="type" value="sqlserver"/>
<set property="host" value="192.168.0.127"/>
<set property="port" value="1433"/>
<set property="dbname" value="ehr"/>
<set property="user" value="sa"/>
<set property="password" value="sa"/>
<set property="minconn" value="5"/> <set property="maxconn" value="10"/>
</construct>
</invoke-factory>
</service-point>
以上是定义了一个 id 为 local 的数据源,这个ID可以为任意值,
说明:
type: 数据库类型。有效值为oracle、sqlserver、db2、mysql、sqlserver2005
host: 数据库主机名或ip
port: 数据库端口号
dbname: 数据库名
user:数据库账号
password: 数据库密码
minconn: 连接池最小连接数
maxconn: 连接池最大连接数
如果需要重新定义一个数据源,只需要把上面代码中的 蓝色字体 部分,做相应的修改就可以了
二、配置流程字段获取其他系统数据(通过这个流程中的字段可以直接其他系统的数据),配置文件位于ECOLOGY/WEB-INF/service下
文件名:browser.xml
内容:
<service-point id="AttendanceBrowser" interface="weaver.interfaces.workflow.browser.Browser"> <invoke-factory>
泛微OA 二次开发接口 示例文档
<construct class="weaver.interfaces.workflow.browser.BaseBrowser">
<set-service property="ds" service-id="datasource.local"/> <set property="search" value="select id,classname,classtype from ATDATTENDANCECLASS"/> <set property="searchById" value="select classname,classtype from ATDATTENDANCECLASS where id=?"/> <set property="searchByName" value="select id,classname,classtype from ATDATTENDANCECLASS where classname like ?"/> <set property="nameHeader" value="出勤名称"/> <set property="descriptionHeader" value="出勤类别"/>
</construct>
</invoke-factory>
</service-point>
以上定义了一个id为 AttendanceBrowser的浏览窗口
参数说明:
1、sql 语句中的 classname,classtype 分别对应 nameHeader,descriptionHeader 2、<set-service property="ds" service-id="datasource.local"/> 该browser 使用到的数据源(.local来自上一步配置的数据源ID)
3、<set property="search" value="select id,classname,classtype from ATDATTENDANCECLASS"/> 查询数据用的sql 语句(根据实际情况自行定义,但是要保证获取三个字段,如果字段不足则以常量表示如:select id,1,2 from table)
4、<set property="searchById" value="select classname,classtype from ATDATTENDANCECLASS where
id=?"/> 按id查询的sql 语句
5、<set property="searchByName" value="select id,classname,classtype from ATDATTENDANCECLASS where classname like ?"/>按 name 查询的sql 语句(根据实际情况自行定义,但是要保证获取三个字段,如果字段不足则以常量表示如:select id,1,2 from table where field1 like )
6、<set property="nameHeader" value="出勤名称"/> 在browser 上显示的列的名称
7、<set property="descriptionHeader" value="出勤类别"/>在browser 上显示的列的名称
如图
泛微OA 二次开发接口 示例文档
三、新建可以在流程中被引用的字段
效果:
泛微OA 二次开发接口 示例文档
四、配置流程流转过程中触发其他系统事件,配置文件位于ECOLOGY/WEB-INF/service下
配置文件名:action.xml
内容: <service-point id="InsertData" interface="weaver.interfaces.workflow.action.Action">
<invoke-factory>
<construct class="weaver.interfaces.workflow.action.InsertData">
<set-service property="ds" service-id="datasource.local"/>
</construct>
</invoke-factory>
</service-point>
以上定义了一个id 为 InsertData的action
参数说明
1、id="InsertData" 为该动作的id,不能重复
2、class="weaver.interfaces.workflow.action.InsertData" 为实现该动作类,即(InsertData.java)。
3、<set-service property="ds" service-id="datasource.local"/> 为该动作要使用的数据源,
泛微OA 二次开发接口 示例文档
datasource.local 是我们在datasource.xml中定义的数据源local。
如果添加一个新的动作,只需修改以上的参数就可以
如果一个动作中,用到多个数据源,也可以类似的添加进去,如:
<set-service property="ds1" service-id="datasource.xxx"/>
只要 property 的值不相同就可以
流程数据更新到其他数据库需求开发过程:
1、编写接口(action)实现代码(InsertData.java),根据示例客户可以自行开发该代码。接口实现代码,可以参照附件中的
InsertData.java 来编写就可以了,示例中其它文件不需要修改
2、在action.xml中配置该接口
3、流程管理员把action.xml中定义的接口设置为流程节点附加操作后,就可以实现流程到达该节点前(或离开该节点后)
执行接口实现代码。
4、在流程设置中应用该功能