NC後臺任務外掛開發程式碼
後臺任務外掛開發
Public interface nc.bs.pub.taskcenter. IBackgroundWorkPlugin { /** * 任務外掛執行體 * @param context 執行環境 * @throws BusinessException */ PreAlertObject executeTask(BgWorkingContext context) throws BusinessException; } |
引數BgWorkingContext包含了後臺任務外掛類的上下文環境,主要的屬性值如表格所示:
/** 當前登入日期 */ private UFDate loginDate = null; /** 備份資料來源 */ private String datasource = null; /** 具體一些閾值的實參.對應結構為 key: 閾值欄位名,value: 真實的值*/ private LinkedHashMap<String, Object> keyMap = new LinkedHashMap<String, Object>(); private String groupId = null; //集團 /** 當前使用者,即部署任務的使用者*/ private String pk_user; private String preAlertTypeName;//後臺任務型別名稱 private String registryName;//條目名稱; private String registryFileName;//條目的後臺任務檔名;對應後臺任務則為任務描述; private int preAlertMode ;//後臺任務模式--登入/觸發點/按鈕 see definition in the AlertMethod /** * 外掛自己解析的資料. 適用於程式碼級直接呼叫時傳遞 */ private Object userData = null;
private String logString = null; //外掛需要的日誌資訊(持久化到資料庫) /**條目的PK*/ private String pk_registry; |
返回值是PreAlertObject型別,定義如下:
public class PreAlertObject { //預設預警訊息標題,即訊息中心看到的“預設主題”,如果預警條目中未設定訊息標題,則取該屬性值 private String msgTitle = null; //返回型別 //返回值,根據返回值型別(PreAlertReturnType)的不同,要求返回值對應如下: // 1 PreAlertReturnType.RETURNMESSAGE——>String (固定字串型別) // 2 PreAlertReturnType.RETURNOBJECT——>Object (物件型別) // 若需支援訊息模板功能,返回值型別必須是後兩種 // 3 PreAlertReturnType.RETURNFORMATMSG——>IAlertMessage (格式化訊息,可轉換成列印模板資料來源) // 4 PreAlertReturnType.RETURNDATASOURCE——>IDataSource (列印模板資料來源) private PreAlertReturnType returnType = null; private Object returnObj = null; } |
其中,PreAlertReturnType為列舉型別,標記返回值的型別。
public enum PreAlertReturnType { RETURNMESSAGE, RETURNOBJECT, RETURNFORMATMSG, RETURNDATASOURCE;
public String toString() { switch (this) { case RETURNMESSAGE: return "外掛返回字串"; case RETURNFORMATMSG: return "外掛返回格式化字串"; case RETURNOBJECT: return "外掛返回物件"; case RETURNDATASOURCE: return "訊息模板資料來源"; default: return null; } }} |
---------------------------
任務的業務外掛的實現介面如下圖所示:
外掛類示例:
nc.bs.pub.pa.SamplePreAlertPlugin
public class SampleBackgroundPlugin implements IBackgroundWorkPlugin {
public PreAlertObject executeTask(BgWorkingContext bgwc) throws BusinessException { HashMap<String, Object> km = bgwc.getKeyMap(); Set<Entry<String, Object>> name = km.entrySet(); for (Entry<String, Object> entry : name) { System.out.print(entry.getKey() + "="); System.out.print(entry.getValue() + "\n"); } // leijun+ // longtimeWork(50000);//hzg-- PreAlertObject retObj = new PreAlertObject(); retObj.setReturnObj("業務外掛成功執行完畢."); retObj.setReturnType(PreAlertReturnType.RETURNMESSAGE); return retObj; } |
文件程式碼下載連結:https://download.csdn.net/download/d_c_hao/10910994