点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我有一个要求,我需要根...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我有一个要求,我需要根...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我有一个要求,我需要根据某些限制取消工作。 我的代码是这样的:
从表中选择一些数据。
如果sy-subrc = 0。
什么都不做。
其他
取消工作
调用函数" BP_JOB_ABORT"
导出
职位数=人数
职位名称=名称
例外情况
CHECKING_OF_JOB_HAS_FAILED = 1
JOB_ABORT_HAS_FAILED = 2
JOB_DOES_NOT_EXIST = 3
JOB_IS_NOT_ACTIVE = 4
NO_ABORT_PRIVILEGE_GIVEN = 5
其他= 6
。
上面的代码取消了作业,但是由于我不通过作业计数,因此抛出了一个名为CX_SY_DYN_CALL_PARAM_MISSING的异常。 我们如何找到将要运行的下一个作业的作业计数? 或如何处理它引发的异常。 即使我尝试处理这种异常,也是如此:
尝试
调用函数" BP_JOB_ABORT"
导出
职位数=人数
职位名称=名称
例外情况
CHECKING_OF_JOB_HAS_FAILED = 1
JOB_ABORT_HAS_FAILED = 2
JOB_DOES_NOT_EXIST = 3
JOB_IS_NOT_ACTIVE = 4
NO_ABORT_PRIVILEGE_GIVEN = 5
其他= 6
上升异常类型CX_SY_DYN_CALL_PARAM_MISSING。
观看
CX_SY_DYN_CALL_PARAM_MISSING。
ENDTRY。
它避免了异常,但是并没有取消作业。 我什至尝试使用JOB_OPEN之类的功能模块
JOB_SUBMIT,BP_JOB_SELECT,BP_JOB_ABORT,并尝试使用状态概览表(TBTCO)和TBTCP(Jobstep概览表)构建一些逻辑。
有人可以建议我编写该程序的正确方法吗?
谢谢。
Rashmi
嗨,
问题解决了。
创建包含两个步骤的后台作业。 后台作业的第一步调用程序ZBACKJOB_STEP1。 在该变体中,我们输入的材料编号错误
如果在Mara中找不到物料编号,则不应执行作业的下一步,而应取消作业。
在上面的帖子中,我问我如何获取当前正在运行时触发程序的作业的作业计数。如果您看到下面的代码,将会了解..我们必须使用标准结构 TBTCM捕获作业的属性/特征。
报告ZBACKJOB_STEP1。
表格:MARA,TBTCM。
参数:MATNR类型MATNR。
开始选择。
选择单*从MARA WHERE MATNR = MATNR。
如果SY-SUBRC是初始版本。
写/:"这是在选择屏幕上选择的材料",MARA-MATNR。
ELSE。
通话功能'GET_JOB_RUNTIME_INFO'
导入
EVENTID = TBTCM-EVENTID
EVENTPARM = TBTCM-EVENTPARM
EXTERNAL_PROGRAM_ACTIVE = TBTCM-XPGACTIVE
JOBCOUNT = TBTCM-JOBCOUNT
JOBNAME = TBTCM-JOBNAME
STEPCOUNT = TBTCM-STEPCOUNT
例外情况
NO_RUNTIME_INFO = 1
其他= 2。
如果SY-SUBRC = 0。
通话功能'BP_JOB_ABORT'
导出
JOBCOUNT = TBTCM-JOBCOUNT
JOBNAME = TBTCM-JOBNAME
例外情况
CHECKING_OF_JOB_HAS_FAILED = 1
JOB_ABORT_HAS_FAILED = 2
JOB_DOES_NOT_EXIST = 3
JOB_IS_NOT_ACTIVE = 4
NO_ABORT_PRIVILEGE_GIVEN = 5
其他= 6。
如果SY-SUBRC <> 0。
ENDIF。
ENDIF。
ENDIF。
问候,
Rashmi
一周热门 更多>