NCV6后台任务开发参考文档.docx

上传人:b****3 文档编号:11146909 上传时间:2023-05-29 格式:DOCX 页数:17 大小:154.53KB
下载 相关 举报
NCV6后台任务开发参考文档.docx_第1页
第1页 / 共17页
NCV6后台任务开发参考文档.docx_第2页
第2页 / 共17页
NCV6后台任务开发参考文档.docx_第3页
第3页 / 共17页
NCV6后台任务开发参考文档.docx_第4页
第4页 / 共17页
NCV6后台任务开发参考文档.docx_第5页
第5页 / 共17页
NCV6后台任务开发参考文档.docx_第6页
第6页 / 共17页
NCV6后台任务开发参考文档.docx_第7页
第7页 / 共17页
NCV6后台任务开发参考文档.docx_第8页
第8页 / 共17页
NCV6后台任务开发参考文档.docx_第9页
第9页 / 共17页
NCV6后台任务开发参考文档.docx_第10页
第10页 / 共17页
NCV6后台任务开发参考文档.docx_第11页
第11页 / 共17页
NCV6后台任务开发参考文档.docx_第12页
第12页 / 共17页
NCV6后台任务开发参考文档.docx_第13页
第13页 / 共17页
NCV6后台任务开发参考文档.docx_第14页
第14页 / 共17页
NCV6后台任务开发参考文档.docx_第15页
第15页 / 共17页
NCV6后台任务开发参考文档.docx_第16页
第16页 / 共17页
NCV6后台任务开发参考文档.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

NCV6后台任务开发参考文档.docx

《NCV6后台任务开发参考文档.docx》由会员分享,可在线阅读,更多相关《NCV6后台任务开发参考文档.docx(17页珍藏版)》请在冰点文库上搜索。

NCV6后台任务开发参考文档.docx

NCV6后台任务开发参考文档

NCV6后台任务平台开发参考文档

 

NC-UAP6.0

用友NC-UAP

2022-04-27

变更单

版本号

变更日期

功能点

变更内容

提出人

变更人

V1

2010-5-25

后台任务插件接口

后台任务插件接口返回值类型,以便支持消息模板

盖井芬

概述

NCV6后台任务平台的开发模式与V5相同,首先需要注册后台任务类型,然后建立某后台任务类型下的后台任务条目,同样提供了对后台任务任务监控、后台任务日志管理、后台任务消息查询的功能。

区别于V5的部分包括:

1.V6支持消息模板,根据后台任务条目配置的消息模板生成消息文件。

消息模板在插件类中解析,由平台提供解析消息模板的接口(消息模板及接口未完成)

2.增加基于天数的周期性后台任务模式。

应用场景类似于资产中的定期保养;

3.节点位置变更:

其中后台任务类型注册,后台任务类型注册位于:

开发平台——>开发配置工具)内,其他节点位置参见下节。

功能节点

后台任务类型注册:

后台任务类型就是一种后台任务的一个插件类型(由开发人员开发,具体如何开发插件见(后台任务插件类接口)。

它目的是对某个业务或操作的抽象,其可以定义一系列阈值。

(这里也只是定义,真正的值还是由条目来设置的)。

定义一个后台任务类型需要提供:

名称、所属系统、业务插件、描述、阈值名称、编辑类型、参照名称(如果编辑类型为参照)。

后台任务类型注册节点位置:

开发平台——>开发配置工具——>后台任务类型注册

后台任务类型注册的信息包括名称,所属开发模块,业务插件实现类,以及阈值条件定义。

其中业务查询类是要求实现了nc.bs.pub.taskcenter.IBackgroundWorkPlugin接口的实现类的完整类名。

条件区域,组织类型用于限定阈值的参照取值范围,这样在该类型后台任务条目的新增时,通过选择相应的组织,来缩小参照类型阈值的取值。

后台任务条目配置

后台任务条目一般由实施人员或用户根据具体的业务环境和需要来定义。

通过选择后台任务类型,并设置该后台任务类型中需要用户设置的阈值变量,以及定义后台任务方式来实现具体的后台任务任务。

后台任务方式包括产生方式和发送方式。

产生方式控制后台任务的发生时间,有即时和定时两种。

发送方式是定义后台任务以何种方式发送给用户。

后台任务条目是具体的后台任务任务,是后台任务平台调度执行的单位。

一个后台任务类型可以根据不同的业务情况定义多个后台任务条目。

后台任务条目保存后台任务信息的产生条件及发送方式设置,基于后台任务类型进行编辑。

后台任务平台的后台服务线程定时读取后台任务条目信息,根据条目中设置的条件,调用相应的后台任务类型与业务信息相比较,当符合后台任务条件时,就会产生后台任务信息,并根据相应配置进行信息发送。

后台任务条目配置节点位于:

企业建模平台——>后台任务平台——>后台任务条目配置

后台任务条目的注册于V5类似,主要分为3个页签的信息,其中后台任务条件页签中,可选择已配置的消息模板,用于对消息文件内容的定义。

组织单元字段,用于限定阈值参照的范围,组织单元参照的数组,由注册的后台任务类型决定。

如:

A后台任务类型在注册时,指定了其组织类型为公司,则在注册A类型的后台任务条目a时,其组织单元参照的取值为公司参照,当指定组织单元数据,如公司1时,其相关的后台任务取值,均为公司1下的相关数据。

附:

消息模板参照未完成(不可用)

后台任务监控

后台任务监控显示了所有在调度中,未执行完成的业务后台任务任务,其中执行按钮,可强制执行选中的任务,提前了下次执行的时间。

后台任务日志

后台任务日志显示了任务的每次执行结果,其中结果列显示了该次执行的结果(成功/失败)

后台任务插件类接口

publicinterfacenc.bs.pub.taskcenter.IBackgroundWorkPlugin{

/**

*任务插件执行体

*@paramcontext执行环境

*@return

*@throwsBusinessException

*/

PreAlertObjectexecuteTask(BgWorkingContextcontext)throwsBusinessException;

}

业务插件类的实现要求实现executeTask(BgWorkingContextcontext)接口

BgWorkingContext

/**当前登录日期*/

privateUFDateloginDate=null;

/**备份数据源*/

privateStringdatasource=null;

/**具体一些阈值的实参.对应结构为key:

阈值字段名,value:

真实的值*/

privateLinkedHashMapkeyMap=newLinkedHashMap();

privateStringgroupId=null;//集团

/**当前用户,即部署任务的用户*/

privateStringpk_user;

privateStringpreAlertTypeName;//后台任务类型名称

privateStringregistryName;//条目名称;

privateStringregistryFileName;//条目的后台任务文件名;对应后台任务则为任务描述;

privateintpreAlertMode;//后台任务模式--登录/触发点/按钮seedefinitionintheAlertMethod

/**

*插件自己解析的数据.适用于代码级直接调用时传递

*/

privateObjectuserData=null;

privateStringlogString=null;//插件需要的日志信息(持久化到数据库)

/**条目的PK*/

privateStringpk_registry;

BgWorkingContext包含了后台任务插件类的上下文环境,主要的属性值如表格所示。

PreAlertObject

publicclassPreAlertObject{

//默认预警消息标题,即消息中心看到的“默认主题”,如果预警条目中未设置消息标题,则取该属性值

privateStringmsgTitle=null;

//返回类型

//返回值,根据返回值类型(PreAlertReturnType)的不同,要求返回值对应如下:

//1PreAlertReturnType.RETURNMESSAGE——>String(固定字符串类型)

//2PreAlertReturnType.RETURNOBJECT——>Object(对象类型)

//若需支持消息模板功能,返回值类型必须是后两种

//3PreAlertReturnType.RETURNFORMATMSG——>IAlertMessage(格式化消息,可转换成打印模板数据源)

//4PreAlertReturnType.RETURNDATASOURCE——>IDataSource(打印模板数据源)

privatePreAlertReturnTypereturnType=null;

privateObjectreturnObj=null;

}

PreAlertType为枚举类型,标记返回值的类型。

publicenumPreAlertReturnType{

RETURNMESSAGE,RETURNOBJECT,RETURNFORMATMSG,RETURNDATASOURCE;

publicStringtoString(){

switch(this){

caseRETURNMESSAGE:

return"插件返回字符串";

caseRETURNFORMATMSG:

return"插件返回格式化字符串";

caseRETURNOBJECT:

return"插件返回对象";

caseRETURNDATASOURCE:

return"消息模板数据源";

default:

returnnull;

}

}

}

附录

数据库表

pub_alertregistry表增加消息模板,pk_corp——>groupid

表名:

pub_alertregistry中文标签:

后台任务条目

字段名

字段类型

中文标签

是否可空

pk_alertregistry

CHAR(20)

后台任务条目主键

NOT

pk_alerttype

CHAR(20)

对应的后台任务类型主键

NULL

alertname

VARCHAR(50)

后台任务条目名称

NULL

filename

VARCHAR(50)

信息文件名称

NULL

groupid

CHAR(20)

集团主键

NULL

enabled

CHAR

(1)

是否激活

NULL

language

VARCHAR(20)

提示语言种类

NULL

description

VARCHAR(256)

后台任务描述信息

NULL

registrytype

NUMERIC

注册类型(?

NULL

creator

VARCHAR(50)

创建人

NULL

maxlog

NUMERIC

最大日志数(?

NULL

pk_messagetemplate

VARCHAR(50)

消息模板主键

NULL

istiming

CHAR

(1)

是否定时

NULL

scheduletaskid

VARCHAR(30)

调度引擎任务id号

NULL

messagefile

VARCHAR(80)

实际消息文件名称

NULL

accountpk

VARCHAR(20)

主体帐簿标识

NULL

message

VARCHAR(256)

消息

NULL

reportlikework

Blob

异步报表实体对象

NULL

info1

VARCHAR2(50)

异步报表信息1

NULL

..

..

..

..

info12

VARCHAR2(50)

异步报表信息12

NULL

ts

CHAR(19)

时间戳

NULL

后台任务类型

pub_alerttype

后台任务类型主表

pub_alerttype_b

后台任务类型子表(阈值)

后台任务条目

pub_alertregistry

后台任务条目主表

pub_alerttypeconfig

对应类型配置(阈值配置)表

pub_alertsendconfig

发送发式配置表

pub_timeconfig

时间配置(主要是定时)

后台任务消息

pub_alertmessage

后台任务消息索引表

引用其它平台表

Pub_messageinfo

消息中心

插件类示例

nc.bs.pub.pa.SamplePreAlertPlugin

publicclassSampleBackgroundPluginimplementsIBackgroundWorkPlugin{

publicPreAlertObjectexecuteTask(BgWorkingContextbgwc)

throwsBusinessException{

HashMapkm=bgwc.getKeyMap();

Set>name=km.entrySet();

for(Entryentry:

name){

System.out.print(entry.getKey()+"=");

System.out.print(entry.getValue()+"\n");

}

//leijun+

//longtimeWork(50000);//hzg--

PreAlertObjectretObj=newPreAlertObject();

retObj.setReturnObj("业务插件成功执行完毕.");

retObj.setReturnType(PreAlertReturnType.RETURNMESSAGE);

returnretObj;

}

其他说明

1.消息模板功能待续

2.功能节点使用,可参见NCV5-后台任务平台技术红皮书(第二、三、四章)

后台任务开发接口

(查询)IPrealertConfigQueryService.queryRegistryByPKAgg(Stringpk)

前提:

后台任务主键已知;

参数:

后台任务主键

返回值:

任务条目VO(复合对象)

功能:

通过任务条目pk,查询任务:

/**

*通过PK查找预警条目(聚合查询)

*

*@parampk

*@return

*@throwsBusinessException

*/

publicAlertregistryVOqueryRegistryByPKAgg(Stringpk)throwsBusinessException;

(新增)IPreAlertConfigService.insertAlertRegistries(AlertregistryVO[]alertRegistries)

前提:

任务类型已经存在;

参数:

AlertRegistryVO

返回值:

后台任务主键(如果VO中已经设置主键,则将其返回)

功能:

该接口完成预警条目或者后台任务的新增。

主要动作包括:

1,增加条目信息

2,如果是定时类型,增加条目时间设置信息

3,加入条目类型配置(阈值)

4加入发送方式配置

5添加到调度引擎

/**

*增加预警条目

*@paramalertRegistries预警条目VO集合

*@return新增的条目PK集合

*@throwsBusinessException*

*@inheritDoc算法描述1,增加条目信息2,如果是定时类型,增加条目时间设置信息3,加入条目类型配置4,加入发送配置

publicString[]insertAlertRegistries(AlertregistryVO[]alertRegistries)throwsBusinessException;

(更新)IPreAlertConfigService.updateAlertRegistries(AlertregistryVO[]alertRegistries)

前提:

已知任务条目VO;

参数:

AlertRegistryVO

功能:

该接口完成预警条目或者后台任务的更新,如更改任务执行时间等。

/**

*修改预警条目

*

*@paramalertRegistries预警条目VO集合

*@throwsBusinessException

*@inheritDoc算法描述1,修改条目信息2,修改条目时间设置信息

*2.1,判断如果是定时类型,查找原来的定时时间设置,如果存在,删除,重新加入

*2.2,如果不是定时类型,查找原来的定时时间设置,如果存在,删除3,删除原来的类型配置,加入新的条目类型配置

*4,删除原来的发送配置,加入新的发送配置5,删除原来该条目产生的任务6,判断现在是否是定时条目,如果是,加入到调度任务中

*@return条目正确更新的条数.-1:

表示传进去的参数为null.

*/

publicintupdateAlertRegistries(AlertregistryVO[]alertRegistries)throwsBusinessException;

(新增2)IPreAlertConfigService.startBackgroundTask

前提:

任务类型已经存在

参数:

TimmingSettingVO,AlertTypeConfigVO,AlertsendConfigVO

功能:

完成后台任务条目的新增,功能与

(一)相同

/**

*@paramgroupId集团ID

*@paramalertName任务名称

*@parampk_tasktype后台任务类型主键

*@paramtimeSettingVO任务时间设置

*@paramtypeConfigVo任务阈值设置

*@paramsendConfigVo消息方式方式设置

*@return

*@throwsBusinessException

*后台任务提交接口,addby gaijfV6.0

*/

publicStringstartBackgroundTask(StringgroupId,StringalertName,Stringpk_tasktype,

TimingSettingVOtimeSettingVO,AlerttypeconfigVO[]typeConfigVo,

AlertsendconfigVO[]sendConfigVo)throwsBusinessException;

VO对象

AlertRegistryVO

/**主键*/

privateStringpk_alertregistry;

/**任务名称*/

privateStringalertname;

/**英文名称*/

privateStringalertname2;

/**繁体中文名称*/

privateStringalertname3;

/**描述*/

privateStringdescription;

/**是否启用*/

privateUFBooleanenabled;

/**是否定时,false表示即时,true表示定时*/

privateUFBooleanistiming;

/**任务类型主键(必须),关联AlerttypeVO主键*/

privateStringpk_alerttype;

/**集团ID*/

privateStringgroupId;

/**调度引擎任务id,无需手动设置*/

privateStringscheduletaskid;

privateStringmessagefile;//实际消息文件名称

privateStringmessage;

/**类型:

PaConstant.TASKTYPE_BG后台任务

publicIntegerregistrytype;

/**创建者*/

publicStringcreator;

/**最大日志数,超过该数量,后台将删除任务条目生成的日志*/

publicIntegermaxlogs=10;//日志最大值

/**阈值VO数组*/

privateAlerttypeconfigVO[]typeConfigVo;

/**发送方式数组*/

privateAlertsendconfigVO[]sendConfigVo;

/**对于定时任务;设置执行时间*/

privateTimingSettingVOtimeSettingVo;

AlertTypeVO

//所属模块,如uap

privateStringbelong_system;

//插件类名称,任务执行的动作插件类全名

privateStringbusi_plugin;

//任务类型名称

privateStringtype_name;

//描述

privateStringdescription;

TimingSettingVO

/**任务的有效开始日期*/

privateStringeffibegindate;

/**任务的有效开始时间*/

privateStringeffibegintime;

/**任务的有效结束日期*/

privateStringeffienddate;

/**任务的有效结束时间*/

privateStringeffiendtime;

/**对于一天执行多次情况,执行结束时间*/

privateStringendtime;

//设置一周中第136天,或者一个月中第135天,设置成"1,3,6,"

privateStringexecuteday;

/**一天中执行多次,间隔类型,TimeConst*/

privateIntegerexecuteinterval;

//某日里的执行时间--数据库没有的字段

privateStringexecutetime;

/**一天间隔的时间,与executeinterval对应*/

privateIntegerexeintervalunit;

/**周期类型,月,周,日,参考TimeConst.WEEK;TimeConst.MONTH*/

privateIntegerfrequencytype;

/**间隔的天数,月数,周数;与frequencytype对应*/

privateIntegerintervaltime;

/**对于一天执行多次情况,执行的开始时间*/

privateStringstarttime;

//是否每天运行一次

privateUFBooleanisruncycledaily;

AlerttypeconfigVO

:

阈值VO,将传给插件类

//阈值真实值

publicStringvalue;

//阈值名称(英文)

publicStringfieldname;

//阈值类型

publicStringvartype;

//默认值

publicStringrefervalue;

//阈值描述

publicStringvariablename;

AlertsendconfigVO,

用于发送消息时,设置消息发送方式

参照:

AlertRegistryVO.method2VO()方法

publicStringreceiverid;

publicStringreceivername;

publicIntegersendmethod;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 电大

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2