CC&B核心模块——Batch(批服务)

CC&B平台开发中,BATCH是少不了的,CC&BBATCH支持JAVACOBOL两种语言开发的程序,这里只介绍JAVA开发的BATCH。但系统中核心部份的BATCH大部分是采用COBOL开发,属于出厂时已经存在的。 
CC&B核心模块——Batch(批服务)_第1张图片
 

1.       BATCH的功能:

BATCH()是一种离线的批处理程序,可以单独运行,不依赖WEB服务,是用来执行各类批量业务数据的程序。BATCH具有灵活,重复使用等特点,多个批服务串联到一起成为一个任务流(Job Stream)来处理一系列的后台业务。

2.       命名规范  
CC&B核心模块——Batch(批服务)_第2张图片


CC&B核心模块——Batch(批服务)_第3张图片 
 

说明:

1.       Name : 是程序类命,CmlQueryAccountInformationBatchCml开头Batch结尾,CmlCmCore Model/核心模块llocal/本接化Batch结属表明这个类是一个Batch程序。

2.  Multi Threaded/Rerunnable勾选说明这个Batch支待多线程。

3.     Worker Class Name是内部类的名字,这里输入的同类命一样,但在后面加上Worker,变成CmlQueryAccountInformationBatchWorker,工具生成出来的代码有个小bug,在内部类的继承类前多写了一个类名,CmlQueryAccountInformationBatchWorkerCmlQueryAccountInformationBatchWorker_Gen,因此需要手工去掉前面一部份。

4Single record per unit 是否单个记录执行。

3.       程序结构

A: 版权声明注释, 三个部分,第一部份版权说明,第二部份程序描述,第三部份修改记录。 
CC&B核心模块——Batch(批服务)_第4张图片
   

B:头注解:作者,是否多线程支持,参数。

其中参数部分,name是参数的名字,在SQL配置阶段按照这个来配,required该参数在运行时是否必须给值,type,参数类型,除JAVA基本类型Stringinteger外,还可以是entity 类型,如果定义entity类型,必须指定entityName. 
CC&B核心模块——Batch(批服务)_第5张图片
  

如何查找entityName,如果对CC&B系统熟悉,根据CC&B的命名规范很容易猜出是什么,最准确的办法是,在CC&B的英文界面,找到要配置的参数前面的英文描述,在Oracle提供的数据字典中找到表名,然后根据表名在系统中找到对应的JAVA对象名。  

 CC&B核心模块——Batch(批服务)_第6张图片
 
CC&B核心模块——Batch(批服务)_第7张图片
 

CC&B核心模块——Batch(批服务)_第8张图片
 
 

C. 外部类参数变量和工作临时变量,注意注释说明 
 

 

D. 初始化和验证参数是滞有效: validateSoftParameters(),此方法最早执行。 
CC&B核心模块——Batch(批服务)_第9张图片
  

E. 外部类的getJobWork()方法,此方法在初始化完成后运行,相当于普通JAVA类的main()方法。通常情况下,在这个方法中,将要处理的数据,全部查询出来。然后交给内部类一条一条的去处理。 
CC&B核心模块——Batch(批服务)_第10张图片
    

F. 使用getThreadWorkerClass()方法得到内部类的实例对象(使用CC&B内部机制) 

 

G. 内部类,内部类用于执行外部类查询出来的结果,通常都要是一条记录一条记录来处理。同样,内部类里面也有几个系统内置的方法,结构如下:

 G.1. 内部类参数变量和工作临时变量,注意注释说明, 这要要说明一下,内部类不要使用外部类的全局变量,以往的经验,会有NullpointException的风验。 
CC&B核心模块——Batch(批服务)_第11张图片
 

G.2. 初始化和验证参数变量 
CC&B核心模块——Batch(批服务)_第12张图片
 

G.3. 指定事务的提交策略。(三种) 
CC&B核心模块——Batch(批服务)_第13张图片
  

 

G.4. 直正执行任务 
CC&B核心模块——Batch(批服务)_第14张图片
  

 

G.5. 最终退出之前处理 

 

 

4.       开发说明

1,   在注解中的Batch参数定义好之后,并且将内部类的超类的名字修改正确后,要生成外部类和内部类的GEN类,然后清理整个项目,最后刷新项目即可进行业务逻辑的编码。
CC&B核心模块——Batch(批服务)_第15张图片
 

2,   内部类和外部类的变量不要共用。

3,   所有的参数,一定要在初始化之后验证。

4,   尽理在外部类的getJobWork()方法中一次性把查出的数据过滤完成,不要放在内部类中去过滤每条数理该不该处理,内部类严格上来说对每条记录都做处理。

5.       注册

将已开发好的BATCH注册到CC&B的数据库中。

步骤: A. 将已开发好的BATCH程序发布到WEB服务器,并启动WEB服务器;

            B. CC&B页面管理菜单/系统下,添加Batch Control/批控制。
CC&B核心模块——Batch(批服务)_第16张图片

  

6.       调试(前提是已发布的程序所在的BATCH服务已正确启动)

A. 命令行调式

命令行提交,按照页面提交所需要的元素值,填写到配置文件,然后运行BATCH提交命令。 

 CC&B核心模块——Batch(批服务)_第17张图片 

B. 页面提交

在页面点提交就行,这里不多说。

 

你可能感兴趣的:(batch)