1.1. 適用場景
表單觸發接口:表單流程在不同觸發條件(流程結束,核定節點通過,首次條件滿足時)下,可以完成指定的動作(如:觸發流程,發送消息,創建會議,創建人員,創建任務等)。
某律師事務所,采用協同對案件是否承接進行審批,審批后,以該案件作為項目單元進行管理,包括文檔、人員、協同、會議等等
表單管理員:在表單《案件承接審批單》設置-觸發設置中,選擇 核定/其它通過后動作為:創建項目。
1.2. 開發步驟
您需要編寫兩個Java類,并在Spring的xml文件中注冊。
1 動作基本信息
定義了動作的名稱,比如創建項目、創建人員;
指定了動作的配置頁面,如上圖中顯示項目名稱、項目成員等的ConfigPage;
關聯動作執行類。
2 動作執行類
定義觸發以后的動作,比如根據前臺傳遞的項目名稱、成員、開始時間、結束時間等調用創建項目的方法。
另外再實現一個動作配置頁面,該頁面將在表單管理員選擇動作后以iframe形式嵌入顯示在下方。
1.2.1. 定義動作基本信息
示例:
public MyFormTriggerActionDesignManager extends com.seeyon.ctp.form.modules.trigger.FormTriggerActionDesignManager {
public String getId(){
return "xxxxxxx";
}
public String geti18nName(){java
return "xxx.project.new";// 新建項目
}
public String configPageURL(){
return "/form/triggerDesign.do?method=messageConfig";
}
public boolean canUse4FormType(FormType type){
return true;
}
public boolean canUse(){
return true;
}
public abstract String getActionTypeManagerName(){
return "myActionTypeManager";
}
}
Spring配置:
<beans default-autowire="byName">
<bean class="MyFormTriggerActionDesignManager />
</beans>
接口說明:
public abstract class FormTriggerActionDesignManager {
/**
* 獲取觸發動作唯一標識,很重要
* @return
*/
public abstract String getId();
/**
* 獲取觸發動作的序號
* @return
*/
public abstract Integer getSort();
/**
* 獲取動作執行的名字的國際化key
* @return
*/
public abstract String geti18nName();
/**
* 取得配置頁面的URL,相對路徑,如:/form/triggerDesign.do?method=messageConfig
* 該頁面必須提供兩個JS方法:
* function init(configValue){...}
* function OK(){... return configValue}
* @return
*/
public abstract String configPageURL();
/**
* 根據傳入的表單分類判斷該動作是否可用
* @param type
* @return
*/
public abstract boolean canUse4FormType(FormType type); public abstract boolean canUse4FormType(FormType type);
/**
* 判斷當前動作是否可以被使用,默認只判斷是否需要高級表單插件
* 用于后續擴展使用
* @return
*/
public abstract boolean canUse();
/**
* 獲取動作對應執行類的spring ID
* @return
*/
public abstract String getActionTypeManagerName();
}
1.2.2. 實現動作執行類
public MyActionTypeManager extends com.seeyon.ctp.form.modules.trigger.FormTriggerActionTypeManager {
public void execute(TriggerActionContext contxt) throws BusinessException{
...
}
}
Spring配置
<beans default-autowire="byName">
<bean id="myActionTypeManager" class="MyActionTypeManager />
</beans>
接口說明
public abstract class FormTriggerActionTypeManager {
/**正文組件**/
protected abstract void execute(TriggerActionContext contxt) throws BusinessException;
}
入參Pojo:TriggerActionContext
/**協同正文(如果是流程的話)**/
protected CtpContentAll contentAll;
/**數據記錄**/
protected FormDataMasterBean masterBean;
/**是否是時間調度觸發**/
protected boolean isTime;
/**觸發記錄模板**/
protected FormTriggerRecord record;
/**觸發設置bean**/
protected FormTriggerBean triggerBean;
/**觸發動作bean**/
protected FormTriggerActionBean actionBean;
/**觸發條件bean**/
protected FormTriggerConditionBean formConditionBean;
protected FormTriggerConditionBean dateConditionBean;
/**觸發源表單*/
protected FormBean formBean;
/**觸發源表單*/
protected FormBean formBean;
/**表單管理配置值,對應ConfigPage的值*/
protected String configValue;
/** 重復表觸發時間,當前重復表的Id,格式為“重復表名|行數據Id1,行數據Id2” **/
protected String Date_SubDataIds;
1.2.3. 實現配置頁面
ConfigPage頁面規范
/**
*修改配置時,系統會自動把上次存儲的配置值(字符串),返還給你,具體填充到form自行負責
*/
function init(config){
......
}
/**
*將配置值自行拼接成字符串返回給表單,表單負責存儲,具體格式沒有要求,自行決定
* @return string
*/
function OK(){
return ...
}
公司主要經營內容:
帆軟報表,帆軟軟件,致遠OA,北京致遠軟件,致遠軟件,致遠OA軟件,OA軟件,致遠OA辦公軟件,致遠OA協同軟件,OA協同軟件,OA辦公軟件,致遠辦公軟件,致遠協同辦公軟件,致遠OA協同辦公軟件,OA綜合辦公軟件,致遠系統,OA系統,致遠OA系統,北京致遠OA系統,北京致遠OA軟件,致遠OA系統軟件,致遠協同辦公系統,致遠協同辦公OA系統,致遠系統OA,致遠軟件OA,OA軟件系統,OA致遠北京,致遠A8OA,OAA8軟件,致遠A8軟件,致遠A8系統Oa軟件,致遠OA系統版本軟件