成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼
OA办公自动化软件的流程接口操作代码
4.1.节点附加操作接口
OA提供了节点附加操作接口。使用这个接口可以让流程在到达某个节点或离开某个节点的时候执行客户自己开发的代码。
要实现这样的功能客户开发人员必须实现泛普OA提供的接口think.interfaces.workflow.action.Action, 该接口包含方法execute(RequestInfo request),这个方法会在节点到达前或节点到达后被OA调用。OA提供了该接口的参考实现think.interfaces.workflow.action.BaseAction,客户开发人员可以直接继承BaseAction,用自己的业务逻辑覆盖BaseAction的execute方法。
例如:
import think.interfaces.workflow.action.BaseAction;
import think.soa.workflow.request.RequestInfo;
public class MyAction extends BaseAction {
public boolean execute(RequestInfo request) {
System.out.println(request.getRequestid());
getLog().debug("my action executed!");
return true;
}
}
上面的代码表示在节点到达前或到达后把流程id打印到控制台。Request参数包含了流程数据,
代码写好之后需要部署到厦门OA系统中,只需在OA安装目录/WEB-INF/service/action.xml中加入下面的声明:
<service-point id="myAction" interface="think.interfaces.workflow.action.Action">
<invoke-factory>
<construct class="MyAction">
<set-service property="ds" service-id=" msds "/>
</construct>
</invoke-factory>
</service-point>
最后在厦门泛普OA流程管理中配置一下节点附加操作就可以了。
自定义浏览框接口
是否可以把其它系统的数据定义到OA表单字段中?例如把财务系统中的会计科目定义为办公OA的表单字段供OA用户选择。如果要实现这样的功能可以通过OA提供的自定义浏览框接口。
浏览框接口提供给客户开发人员获取其它数据源数据并绑定到OA表单字段的功能。使用方法很简单,首先,在OA安装目录/WEB-INF/service/browser.xml中声明:
<service-point id="baseBrowser" interface="think.interfaces.workflow.browser.Browser">
<invoke-factory>
<construct class="think.interfaces.workflow.browser.BaseBrowser">
<set-service property="ds" service-id="msds"/>
<set property="sql" value="select id,name,description from financeAccount"/>
<set property="header" value="科目,描述"/>
</construct>
</invoke-factory>
</service-point>
简单解释一下,msds是财务系统数据源,用前文所述的方法定义。Sql属性值用来从财务数据源中查询会计科目,header属性用来定义在浏览框页面中显示的表头。
声明之后就可以在OA表单字段管理中进行配置了:
做好上面的部署之后这个字段就可以像厦门泛普OA系统中的人员浏览框、部门浏览框一样供用户选择来自其他系统地数据了。
提示:虽然通过浏览框接口可以直接从任何使用oracle
、sqlserver、db2、mysql数据库的应用系统中选择数据,从性能上考虑我们可以先使用计划任务接口把其他系统中的数据定时同步到OA系统中来,然后通过浏览框接口在OA数据源中的选择。

