- 论坛徽章:
- 0
|
SBMJOB命令一般的时候用于夜间处理(好像是这样),在测试程序的时候,因为在本JOB下是不能单调的,所以要借助其他手法才能单调.下面我以CL调用RPG为例,欢迎大家讨论.
CL程序:
CL1:
PGM PARM(&&PITCD &&PKOS1)
DCL VAR(&PITCD) TYPE(*CHAR) LEN(4)
DCL VAR(&PKOS1) TYPE(*CHAR) LEN(1) /*処理区分*/
/*「処理区分」が1*/
IF COND(&PKOS1 *EQ '1') THEN(DO)
SBMJOB CMD(CALL PGM(CL2) +
PARM(&PITCD &PKOS1)) JOB(MSU040J1C)
ENDDO
/*「処理区分」が2*/
IF COND(&PKOS1 *EQ '2') THEN(DO)
CALL MSU040J1R PARM(&PITCD &PKOS1)
ENDDO
ENDPGM
******************************************************************
CL2:
PGM PARM(&PITCD &PKOS1)
DCL VAR(&PITCD) TYPE(*CHAR) LEN(4)
DCL VAR(&PKOS1) TYPE(*CHAR) LEN(1) /処理区分 */
SNDUSRMSG MSG('#DCT DEBUG 開始 ')
/*「処理区分」が1*/
IF COND(&PKOS1 *EQ '1') THEN(DO)
CALL MSU040J1R PARM(&PITCD &PKOS1)
CALL MSU040J2R PARM(&PITCD &PKOS1)
CALL MSU040J5R PARM(&PITCD &PKOS1)
ENDDO
/*「処理区分」が2*/
IF COND(&PKOS1 *EQ '1') THEN(DO)
CALL MSU040J3R PARM(&PITCD &PKOS1)
CALL MSU040J4R PARM(&PITCD &PKOS1)
ENDDO
ENDPGM
1.准备
将命令SNDUSRMSG MSG('#DCT DEBUG 開始')添加到SBMJOB命令调用的CL中.如CL2中红色显示的.
2.执行带有SBMJOB命令的CL1.
3.用WRKACTJOB查看出现(MSGW)状态的JOB名,USER名和番号,此例的JOB名为MSU040J1C.
4.用命令STRSRVJOB启动指定JOB.如图:
5.在SBMJOB中的CL中设置断点,断点设置在SNDUSRMSG命令以下.
6.用WRKACTJOB命令应答(MSGW)JOB,用'7'进行处理.
7.执行SBMJOB中的CL,进行单调.
8.结束时要先ENDDBG后ENDSRVJOB,停止服务. |
|