在后台提交报告并执行按钮

2020-09-07 08:56发布

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

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


我有一个程序PGM_A,该程序在执行时运行另一个程序PGM_B,该程序沿着顶部的名为" TEST"和另一个" UPDATE"的输出一个列表和多个按钮。

我希望能够在后台模式下运行PGM_A,使其执行PGM_B并执行按钮" UPDATE"的代码。

在PGM_A中使用param ='UPDATE'提交PGM_B吗?

非常感谢所有帮助!

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

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


我有一个程序PGM_A,该程序在执行时运行另一个程序PGM_B,该程序沿着顶部的名为" TEST"和另一个" UPDATE"的输出一个列表和多个按钮。

我希望能够在后台模式下运行PGM_A,使其执行PGM_B并执行按钮" UPDATE"的代码。

在PGM_A中使用param ='UPDATE'提交PGM_B吗?

非常感谢所有帮助!

付费偷看设置
发送
4条回答
Doze时光
1楼 · 2020-09-07 09:27.采纳回答

嗨,

尝试下面的代码。

 PROGRAM测试。

   数据:v_jobhead喜欢tbtcjob。
   数据:v_jobcount类似于tbtcjob-jobcount。
   数据:v_eventparm类似于tbtcjob-eventparm。
   数据:v_flg_released TYPE c。
   数据:e_error。
   数据:正在运行,如tbtcv-run。


   类型:esp1_boolean像布尔布尔。


   常量:esp1_false TYPE esp1_boolean VALUE'',
              esp1_true类型esp1_boolean值'X'。

   常量:lv_true TYPE布尔值esp1_true,
              lv_false TYPE布尔值esp1_false。


   数据:v_jobnam类似于tbtcjob-jobname VALUE'ZPGM_A',"背景工作名称
               v_report LIKE sy-repid VALUE'PGM_B',"您需要在后台运行的第二个程序名称
               v_varian LIKE raldb-variant,
               v_uname类似sy-uname。

   v_uname = sy-uname。
 * v_varian = sy-slset。
 *添加新工作
   通话功能'JOB_OPEN'
     出口
 * delanfrep ='X'
       职位名称= v_jobnam
     输入
       职位数= v_jobcount
     例外情况
       cant_create_job = 1
       invalid_job_data = 2
       jobname_missing = 3
       其他= 4。


   如果sy-subrc <> 0。
     e_error ='X'。
     消息"后台作业调度失败"类型" E"。
     出口。
   其他。

     通话功能'JOB_SUBMIT'
       出口
         authcknam = v_uname
         职位数= v_jobcount
         职位名称= v_jobnam
         报告= v_report
         变体= v_varian
       例外情况
         bad_priparams = 1
         bad_xpgflags = 2
         invalid_jobdata = 3
         jobname_missing = 4
         job_notex = 5
         job_submit_failed = 6
         lock_failed = 7
         program_missing = 8
         prog_abap_and_extpg_set = 9
         其他= 10。
     如果sy-subrc <> 0。
       消息"后台作业调度失败"类型" E"。
       出口。
     其他。
       通话功能" JOB_CLOSE"
         出口
 * EVENT_ID = IC_WWI_WORKPROCESS_EVENT
 * EVENT_PARAM = V_EVENTPARM
 * EVENT_PERIODIC ='X'
           职位数= v_jobcount
           职位名称= v_jobnam
           strtimmed ='X'
         输入
           job_was_released = v_flg_released
         例外情况
           cant_start_immediate = 1
           invalid_startdate = 2
           jobname_missing = 3
           job_close_failed = 4
           job_nosteps = 5
           job_notex = 6
           lock_failed = 7
           其他= 8。
       如果sy-subrc <> 0。
         消息"后台作业调度失败"类型" E"。
         出口。
       其他。
         消息"计划的后台作业"类型" S"。
       万一。
     ENDIF。"提交工作
   万一。  "乔恩公开赛
 
我是小鹏鹏啊
2楼-- · 2020-09-07 09:37

您是否尝试过批量输入(使用.../SHDB调用交易...)?

悠然的二货
3楼-- · 2020-09-07 09:43

恐怕不是。 您不能在一个变体中存储按下的按钮,对吗?

也许您可以在PGM_B中添加一个隐藏参数并通过它。

PGM_B:

参数 :p_upd作为复选框不显示。
 如果p_upd ='X'。
   执行my_code。
 
当学会了学习
4楼-- · 2020-09-07 09:34

嗨,

如果您还需要传递参数,则无需调用JOB_SUBMIT FM。 但是另外两个FM必须打电话。 看一下波纹管序列

 1。 通话功能'JOB_OPEN'

 2.提交PGM_B并返回
         与p_ifux = p_ifux
         与p_ofux = p_ofux
         与p_acc = p_acc
         与p_payr = p_payr
         用户名
      威盛工作v_jobnam
       NUMBER个v_jobcount。

 3 .CALL FUNCTION'JOB_CLOSE'

一周热门 更多>