前言
在项目开发中,启动后台JOB是经常会用到的开发场景,因此我将它封装在了我的通用工具类中,实现一句代码就可以启动。类似这样
*
zcl_common=>start_job( report = sy-repid params = lt_rsparams ).方法介绍
方法定义如下图
**参数名称** | **参数描述
** | **可选
** | **备注
**
---|---|---|---
JOBNAME | JOB名称 | 可选 | 默认取值为报表名+时间+作业用户名
JOBUSER | JOB用户名 | 可选 | 默认当前登录用户
REPORT | 报表名称 | 必输 | 作业启动的报表名称VARIANT | 变式名称 | 可选 | 报表选择屏幕的变式
PARAMS | 报表参数
| 可选
| 报表的选择屏幕参数
START_DATE
| JOB计划开始日期
| 可选
| 设置JOB定时启动的日期
START_TIME | JOB计划开始时间 | 可选 | 设置JOB定时启动的时间
使用示例一
需要定义内表 rsparams ,SELECT-OPTIONS的参数 kind = 'S' , PARAMETERS的参数 kind =
'P' .
代码参考如下:
DATA: lt_rsparams TYPE TABLE OF rsparams. APPEND LINES OF VALUE rsparams_tt( FOR wa_asort IN s_asort ( CORRESPONDING #( BASE ( VALUE #( selname = 'S_ASORT' kind = 'S' ) ) wa_asort ) ) ) TO lt_rsparams. APPEND LINES OF VALUE rsparams_tt( FOR wa_matnr IN s_matnr ( CORRESPONDING #( BASE ( VALUE #( selname = 'S_MATNR' kind = 'S' ) ) wa_matnr ) ) ) TO lt_rsparams. APPEND LINES OF VALUE rsparams_tt( FOR wa_year IN s_year ( CORRESPONDING #( BASE ( VALUE #( selname = 'S_YEAR' kind = 'S' ) ) wa_year ) ) ) TO lt_rsparams. APPEND LINES OF VALUE rsparams_tt( FOR wa_season IN s_season ( CORRESPONDING #( BASE ( VALUE #( selname = 'S_SEASON' kind = 'S' ) ) wa_season ) ) ) TO lt_rsparams. APPEND VALUE rsparams( selname = 'RD_BUT1' kind = 'P' low = rd_but1 ) TO lt_rsparams. APPEND VALUE rsparams( selname = 'RD_BUT2' kind = 'P' low = rd_but2 ) TO lt_rsparams. APPEND VALUE rsparams( selname = 'P_DATAB' kind = 'P' low = p_datab ) TO lt_rsparams. APPEND VALUE rsparams( selname = 'P_PRLL' kind = 'P' low = p_prll ) TO lt_rsparams. APPEND VALUE rsparams( selname = 'P_MAXART' kind = 'P' low = p_maxart ) TO lt_rsparams. APPEND VALUE rsparams( selname = 'P_MAXT' kind = 'P' low = p_maxt ) TO lt_rsparams. APPEND VALUE rsparams( selname = 'P_SVGRP' kind = 'P' low = p_svgrp ) TO lt_rsparams. zcl_common=>start_job( report = 'ZMMP004G' params = lt_rsparams ).使用示例二
使用报表变式,启动JOB,
例如报表ZMMP004G,变式名为JOB
代码参考如下:
*
zcl_common=>start_job( report = 'ZMMP004G' variant = 'JOB' ).
SM37检查作业启动情况,是否按设置的变式运行的程序
总结
对于常用的通用功能进行封装,能节省开发的时间,也能提升程序的可阅读性。
GITHUB地址:https://github.com/a87b01c14/ZCL_COMMON.git