1. 程式人生 > >NC後臺任務外掛開發程式碼

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