BAPI运行现有的后台作业

2020-08-27 17:04发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我知道我可以使用" BAPI_XBP_JOB_OPEN"和" BAPI_XBP_JOB_ADD_ABAP_STEP"来定义具有ABAP步骤的新后台作业。 但是,我想运行一个已经定义并且有步骤的后台作业,而不是创建一个新作业。 理想情况下,是否有一个BAPI,我可以在其中指定要运行的现有后台作业的名称?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我知道我可以使用" BAPI_XBP_JOB_OPEN"和" BAPI_XBP_JOB_ADD_ABAP_STEP"来定义具有ABAP步骤的新后台作业。 但是,我想运行一个已经定义并且有步骤的后台作业,而不是创建一个新作业。 理想情况下,是否有一个BAPI,我可以在其中指定要运行的现有后台作业的名称?

付费偷看设置
发送
6条回答
callcenter油条
1楼 · 2020-08-27 17:47.采纳回答

Phil S 我尝试使用复制功能,它的工作原理很吸引人。 尝试下面的代码。

 DATA:lv_target像bapixmjob-jobcount,
      lv_return喜欢bapiret2。

 如果发现,则使用'XBP''3.0'来执行xmi_logon(SXBP_TEST_SUBMIT_TEMP_VARIANT)。

 通话功能'BAPI_XBP_JOB_COPY'
   出口
     source_jobcount = CONV BTCJOBCNT(12345678)<-源作业ID
     source_jobname ='ZR_SOURCE'<---源作业名称
     target_jobname ='ZR_TARGET'<---目标工作名称
     external_user_name = CONV XMILOGEUSR(sy-uname)
 * STEP_NUMBER = 0
   输入
     target_jobcount = lv_target
     return = lv_return。

 通话功能'BAPI_XBP_JOB_START_IMMEDIATELY'
   出口
     职位名称='ZR_TARGET'
     jobcount = lv_target
     external_user_name = CONV XMILOGEUSR(sy-uname)
     target_server =''
 * TARGET_GROUP =
   输入
     return = lv_return。
 
樱桃小丸子0093
2楼-- · 2020-08-27 17:57

如果要开始给定的现有作业,则应该知道其作业编号。 你怎么不知道 它显示在作业详细信息(SM37)中。

奄奄一息的小鱼
3楼-- · 2020-08-27 17:43

嗨,您可以尝试一下。

 JOBNAME-将使用名称
 * REPORT ZBACK_GROUND。
 数据:类似于TBTCJOB-JOBNAME值的JOBNAME
                              " ORDER_REPORT"。
 数据:像TBTCJOB-JOBCOUNT这样的JOBCOUNT,
       类似于MSXXLIST-HOST的主机。
 数据:开始时间开始。
         包括结构TBTCSTRT。
 数据:STARTTIME结束。
 资料:STARTTIME立即开始,例如BTCH0000-CHAR1。


 *职位空缺
   通话功能'JOB_OPEN'
        出口
             DELANFREP =''
             JOBGROUP =''
             工作名称=工作名称
             SDLSTRTDT = SY-DATUM
             SDLSTRTTM = SY-UZEIT
        输入
             职位数=职位数
        例外情况
             CANT_CREATE_JOB = 01
             INVALID_JOB_DATA = 02
             JOBNAME_MISSING = 03。
   如果SY-SUBRC NE 0。
                                        "错误处理
   万一。

 提交Zcustomer_update并通过选择屏幕返回
                    用户SY-UNAME
                    威盛职位名称
                    NUMBER JOBCOUNT。
   如果SY-SUBRC> 0。
                                        "错误处理
   万一。

  数据:JOB_RELEASED喜欢BTCH0000-CHAR1。

  通话功能" JOB_CLOSE"
        出口
             职位数=职位数
             工作名称=工作名称
             STRTIMMED ='X'
        输入
             JOB_WAS_RELEASED = JOB_RELEASED
        例外情况
             其他= 99。
 
spaceman01
4楼-- · 2020-08-27 17:55

如果要以编程方式搜索职位编号,则可以使用BAPI_XBP_JOB_SELECT。

Cikesha
5楼-- · 2020-08-27 17:52

Sandra Rossi ,谢谢,我验证了BAPI_XBP_JOB_SELECT确实给了我工作职位并回答了我的原始问题。 关于您先前的问题,我正在从SAP客户端外部调用这些BAPI函数,并试图避免进入SAP客户端来查找作业计数。

令我惊讶的是,您可以用相同的名称定义多个后台作业。 这有点问题,因为BAPI_XBP_JOB_SELECT将返回所有这些,因此在这种情况下仍需要知道正确的作业计数。

这是我刚接触SAP时的一个问题。 如果我的后台作业处于"已完成"状态,是否可以用相同的作业数再次运行它?还是必须创建该作业的副本?

Baoming ROSE
6楼-- · 2020-08-27 17:55

此 是我知道的唯一方法,对我也有用,但这并不意味着最好

一周热门 更多>