名易流程申請?zhí)幚恚? 流程提交或處理結束后,報銷流程中的數(shù)據(jù)會自動生成到NC系統(tǒng)中: 查詢后的結果: 從這里可以查看到從名易OA辦公軟件名易OA系統(tǒng)提交過來的對應數(shù)據(jù): 三.實現(xiàn)方法步驟 1、配置接口文件(action.xml) 2、編寫接口(action)實現(xiàn)代碼 3、員把action.xml中定義的接口設置為流程節(jié)點附加操作后,就可以實現(xiàn)流程到達該節(jié)點前(或離開該節(jié)點后)執(zhí)行接口實現(xiàn)代碼。 4、在流程設置中應用該功能
1.xml文件配置 該文件名為action.xml,位于(該文件位于名易OA辦公軟件名易OA系統(tǒng)的WEB-INFervice目錄下) ?xmlversion=1.0encoding=GBK? moduleid=datasourceversion=1.0.0 service-pointid=baseActioninterface=OA.interfaces.workflow.action.Action invoke-factory constructclass=OA.interfaces.workflow.action.BaseAction setproperty=dsservice-id=datasource.dt1 construct invoke-factory ervice-point
說明:以上定義了一個id為baseAction的action,其中黑體部分是在配置每個動作時需要改變的內容; 注意:每次配置后需要重啟OA服務生效; 2.屬性說明 Id:為該動作的id,不能重復,在后文件將會使用該標識 Class:具體實現(xiàn)的動作類 service-id:為該動作要使用的數(shù)據(jù)源,如果該動作需要好異構系統(tǒng)交互數(shù)據(jù),在此可以設置前文配置好的數(shù)據(jù)源。 如果添加一個新的動作,只需修改以上的參數(shù)就可以 如果一個動作中,用到多個數(shù)據(jù)源,也可以類似的添加進去,如: set-serviceproperty=ds1service-id=datasource.xxx 只要property的值不相同就可以 3.在5.0及以上版本可以直接在進行可視化的配置 通過頂部菜單【設置中心】【外部接口設置】【配置接口動作】即可進入配置界面
點擊右鍵【新建】即可創(chuàng)建一個新的【接口動作】
注意:該配置,不需要重啟OA服務即可生效
4.可視化配置屬性說明 接口動作標識,即xml配置中的Id:為該動作的id,不能重復,在后文件將會使用該標識 接口動作類文件,即xml配置中的Class:具體實現(xiàn)的動作類 5.Action接口代碼編寫 編寫接口(action)實現(xiàn)代碼,在上面的配置中,具體要實現(xiàn)的動作將體現(xiàn)在OA.interfaces.workflow.action.BaseAction類中。該類必須實現(xiàn)OA.interfaces.workflow.action.Action接口,該接口中包含execute(RequestInforequest),這個方法會在流程節(jié)點到達前或節(jié)點到達后被名易OA辦公軟件名易OA系統(tǒng)調用。 示例代碼: packageOA.interfaces.workflow.action; importorg.apache.commons.logging.Log; importorg.apache.commons.logging.LogFactory; importOA.general.Util; importOA.soa.workflow.request.Cell; importOA.soa.workflow.request.DetailTable; importOA.soa.workflow.request.Property; importOA.soa.workflow.request.RequestInfo; importOA.soa.workflow.request.Row; publicclassBaseActionimplementsAction{ publicStringexecute(RequestInforequest){ 取主表數(shù)據(jù) Property[]properties=request.getMainTableInfo().getProperty();獲取表單主字段信息 for(inti=0;iproperties.length;i++){
Stringname=properties[i].getName();主字段名稱 Stringvalue=Util.null2String(properties[i].getValue());主字段對應的值 System.out.println(name++value); } 取明細數(shù)據(jù) DetailTable[]detailtable=request.getDetailTableInfo() .getDetailTable();獲取所有明細表 if(detailtable.length0){ for(inti=0;idetailtable.length;i++){ DetailTabledt=detailtable[i];指定明細表 Row[]s=dt.getRow();當前明細表的所有數(shù)據(jù),按行存儲 for(intj=0;js.length;j++){ Rowr=s[j];指定行 Cellc[]=r.getCell();每行數(shù)據(jù)再按列存儲 for(intk=0;kc.length;k++){ Cellc1=c[k];指定列 Stringname=c1.getName();明細字段名稱 Stringvalue=c1.getValue();明細字段的值 System.out.println(name++value); } } } }
returnAction.SUCCESS; } }
以上class中可以在execute(RequestInforequest)方法中定義任何想要執(zhí)行的操作,上面的示例描述了在execute(RequestInforequest)方法中獲取當前流程的所有信息。
6.流程節(jié)點附加操作接口調用 在名易OA辦公軟件名易OA系統(tǒng)流程管理中配置一下節(jié)點附加操作可以看到下圖所示,可以在任意一個節(jié)點上設置,當流程流到改節(jié)點,自動觸發(fā)預先定義好的動作
以上網(wǎng)頁對話框中紅色部分接口動作將顯示所有定義過的接口動作供選擇調用。