監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉
免費(fèi)OA系統(tǒng)

當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 免費(fèi)辦公軟件 > 免費(fèi)OA系統(tǒng)

免費(fèi)OA系統(tǒng)流程流轉(zhuǎn)過程中和異構(gòu)系統(tǒng)數(shù)據(jù)交互(action)

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

第三部分 泛普免費(fèi)OA系統(tǒng)流程流轉(zhuǎn)過程中和異構(gòu)系統(tǒng)數(shù)據(jù)交互(action)
一. 泛普OA免費(fèi)版接口說明
該接口主要實(shí)現(xiàn)在流程的流轉(zhuǎn)當(dāng)中,實(shí)時(shí)通過自定義的動(dòng)作去操作異構(gòu)形體系統(tǒng)的數(shù)據(jù)或者是其他一些特定的操作。 
在流程的每個(gè)出口都可以定義這樣的自定義動(dòng)作,從而實(shí)現(xiàn)在流程流轉(zhuǎn)過程導(dǎo)入,導(dǎo)出流程的相關(guān)信息,或者將流程信息和其他應(yīng)用相結(jié)合。
 
二. 泛普OA軟件應(yīng)用效果
通過泛普OA系統(tǒng)流程申請(qǐng)?zhí)幚恚?/div>
 
流程提交或處理結(jié)束后,報(bào)銷流程中的數(shù)據(jù)會(huì)自動(dòng)生成到NC系統(tǒng)中:
 
查詢后的結(jié)果:
 
從這里可以查看到從泛普OA系統(tǒng)提交過來的對(duì)應(yīng)數(shù)據(jù):
 
 
三. 泛普OA管理系統(tǒng)實(shí)現(xiàn)方法&步驟
1、配置接口文件(action.xml)
2、編寫接口(action)實(shí)現(xiàn)代碼
3、流程管理員把a(bǔ)ction.xml中定義的接口設(shè)置為流程節(jié)點(diǎn)附加操作后,就可以實(shí)現(xiàn)流程到達(dá)該節(jié)點(diǎn)前(或離開該節(jié)點(diǎn)后)執(zhí)行接口實(shí)現(xiàn)代碼。
4、在流程設(shè)置中應(yīng)用該功能
 
1. xml文件配置
該文件名為action.xml,位于(該文件位于泛普OA系統(tǒng)的WEB-INF/service/目錄下)
<?xml version="1.0" encoding="GBK"?>
<module id="datasource" version="1.0.0">
<service-point id="baseAction" interface="泛普OA系統(tǒng).interfaces.workflow.action.Action">
 <invoke-factory>
       <construct class="泛普OA系統(tǒng).interfaces.workflow.action. BaseAction ">
    <set-service property="ds" service-id="datasource.dt1"/>
<set property="userid" value="100" />
        </construct>
  </invoke-factory>
</service-point>   
 
說明: 以上定義了一個(gè)id 為 baseAction的action,其中黑體部分是在配置每個(gè)動(dòng)作時(shí)需要改變的內(nèi)容;
注意:每次配置后需要重啟OA服務(wù)方可生效;
2. 屬性說明
Id: 為該動(dòng)作的id,不能重復(fù),在后文件將會(huì)使用該標(biāo)識(shí)
Class: 具體實(shí)現(xiàn)的動(dòng)作類
service-id:為該動(dòng)作要使用的數(shù)據(jù)源,如果該動(dòng)作需要好異構(gòu)系統(tǒng)交互數(shù)據(jù),在此可以設(shè)置前文配置好的數(shù)據(jù)源。
如果添加一個(gè)新的動(dòng)作,只需修改以上的參數(shù)就可以
如果一個(gè)動(dòng)作中,用到多個(gè)數(shù)據(jù)源,也可以類似的添加進(jìn)去,如:
<set-service property="ds1" service-id="datasource.xxx"/>
只要 property 的值不相同就可以。
配置其它屬性值,可以安裝下面的方式配置,可以配置多個(gè),但property的值不能重復(fù)
<set property="userid" value="100" />
3. 在5.0及以上版本可以直接在進(jìn)行可視化的配置
通過頂部菜單【設(shè)置中心】【外部接口設(shè)置】【配置接口動(dòng)作】即可進(jìn)入配置界面
 
 
點(diǎn)擊右鍵【新建】即可創(chuàng)建一個(gè)新的【接口動(dòng)作】
 
 
注意:
1) 該配置,不需要重啟OA服務(wù)即可生效
2) 可視化配置目前不支持?jǐn)?shù)據(jù)源和屬性值配置,后期會(huì)完善。
 
4. 可視化配置屬性說明
接口動(dòng)作標(biāo)識(shí),即xml配置中的Id: 為該動(dòng)作的id,不能重復(fù),在后文件將會(huì)使用該標(biāo)識(shí)
接口動(dòng)作類文件,即xml配置中的Class: 具體實(shí)現(xiàn)的動(dòng)作類
5. Action接口代碼編寫
編寫接口(action)實(shí)現(xiàn)代碼,在上面的配置中,具體要實(shí)現(xiàn)的動(dòng)作將體現(xiàn)在泛普OA系統(tǒng).interfaces.workflow.action.BaseAction類中。該類必須實(shí)現(xiàn)泛普OA系統(tǒng).interfaces.workflow.action.Action接口,該接口中包含execute(RequestInfo request),這個(gè)方法會(huì)在流程節(jié)點(diǎn)到達(dá)前或節(jié)點(diǎn)到達(dá)后被泛普OA系統(tǒng)調(diào)用。
示例代碼:
package 泛普OA系統(tǒng).interfaces.workflow.action;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import 泛普OA系統(tǒng).general.Util;
import 泛普OA系統(tǒng).soa.workflow.request.Cell;
import 泛普OA系統(tǒng).soa.workflow.request.DetailTable;
import 泛普OA系統(tǒng).soa.workflow.request.Property;
import 泛普OA系統(tǒng).soa.workflow.request.RequestInfo;
import 泛普OA系統(tǒng).soa.workflow.request.Row;
public class BaseAction implements Action {
public String execute(RequestInfo request) {
//取主表數(shù)據(jù)
Property[] properties = request.getMainTableInfo().getProperty();// 獲取表單主字段信息
for (int i = 0; i < properties.length; i++) {
 
String name = properties[i].getName();// 主字段名稱
String value = Util.null2String(properties[i].getValue());// 主字段對(duì)應(yīng)的值
System.out.println(name + " " + value);
}
//取明細(xì)數(shù)據(jù)
DetailTable[] detailtable = request.getDetailTableInfo()
.getDetailTable();// 獲取所有明細(xì)表
if (detailtable.length > 0) {
for (int i = 0; i < detailtable.length; i++) {
DetailTable dt = detailtable[i];// 指定明細(xì)表
Row[] s = dt.getRow();// 當(dāng)前明細(xì)表的所有數(shù)據(jù),按行存儲(chǔ)
for (int j = 0; j < s.length; j++) {
Row r = s[j];// 指定行
Cell c[] = r.getCell();// 每行數(shù)據(jù)再按列存儲(chǔ)
for (int k = 0; k < c.length; k++) {
Cell c1 = c[k];// 指定列
String name = c1.getName();// 明細(xì)字段名稱
String value = c1.getValue();// 明細(xì)字段的值
System.out.println(name + " " + value);
}
}
}
}
 
return Action.SUCCESS;
}
}
 
 
以上class中可以在execute(RequestInfo request)方法中定義任何想要執(zhí)行的操作,上面的示例描述了在execute(RequestInfo request)方法中獲取當(dāng)前流程的所有信息。
 
6. 流程節(jié)點(diǎn)附加操作接口調(diào)用
在泛普OA系統(tǒng)流程管理中配置一下節(jié)點(diǎn)附加操作可以看到下圖所示,可以在任意一個(gè)節(jié)點(diǎn)上設(shè)置,當(dāng)流程流到改節(jié)點(diǎn),自動(dòng)觸發(fā)預(yù)先定義好的動(dòng)作 
 
 
以上網(wǎng)頁對(duì)話框中紅色部分接口動(dòng)作將顯示所有定義過的接口動(dòng)作供選擇調(diào)用。
7. 泛普OA辦公系統(tǒng)控制action不往下流轉(zhuǎn)
該功能只對(duì)節(jié)點(diǎn)后action有效,可以在action里面使用下面的方法來控制
 
發(fā)布:2006-04-22 14:40    編輯:泛普軟件 · admin    [打印此頁]    [關(guān)閉]
相關(guān)文章: