ABAP程序带参调用后台作业

2023-12-28 15:18

本文主要是介绍ABAP程序带参调用后台作业,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 主要内容
  • 代码示例
  • 注意事项


主要内容

带参调用后台作业


代码示例

  DATA:lv_job_name  TYPE btcjob,lv_joblike   TYPE btcjob,lv_name      TYPE progname,lv_subrc     TYPE i,lr_agr_rspar TYPE TABLE OF rsparams,ls_agr_line  LIKE LINE OF  lr_agr_rspar,w_jobid      TYPE tbtcjob-jobcount,w_stepnm     TYPE tbtcjob-stepcount.* 查表  如果已存在执行中的后台 则报错退出lv_joblike = 'ZBJOB_TEST'.SELECT SINGLE jobnameINTO lv_job_nameFROM tbtcoWHERE jobname EQ lv_joblike
*    AND ( status = 'R'  "Active
*    OR status = 'Z' ). "Released/SuspAND status EQ 'R'.IF sy-subrc NE 0.lv_job_name = 'ZBJOB_TEST'.ELSE.MESSAGE w147(zps) WITH '已存在活动后台作业' RAISING foreign_lockbg.RETURN.ENDIF.* 唤起后台    有则报错退出
*1. using JOB_OPEN to open jobCLEAR:w_jobid.CALL FUNCTION 'JOB_OPEN'EXPORTING
*     DELANFREP        = ’ ’
*     JOBGROUP         = ’ ’jobname          = lv_job_name
*     SDLSTRTDT        = NO_DATE
*     SDLSTRTTM        = NO_TIME
*     JOBCLASS         =IMPORTINGjobcount         = w_jobid
*   CHANGING
*     RET              =EXCEPTIONScant_create_job  = 1invalid_job_data = 2jobname_missing  = 3OTHERS           = 4.IF sy-subrc EQ 0.ls_agr_line-kind = 'S'.ls_agr_line-sign = 'I'.ls_agr_line-option = 'EQ'.IF it_agr_name IS NOT INITIAL.ls_agr_line-selname = 'S_AGR'.*	S参数LOOP AT it_agr_name INTO ls_agr_name.*    ls_agr-low = ls_agr_name-agr_name.
*    APPEND ls_agr TO lr_agr.*    lv_agr_name = ls_agr_name-agr_name.ls_agr_line-low = ls_agr_name-agr_name.APPEND ls_agr_line TO lr_agr_rspar.ENDLOOP.ENDIF.IF it_agr_uname IS NOT INITIAL.ls_agr_line-selname = 'S_UNAME'.
*	单值LOOP AT it_agr_uname INTO ls_agr_uname.ls_agr_line-low = ls_agr_uname-uname.APPEND ls_agr_line TO lr_agr_rspar.ENDLOOP.ENDIF.ls_agr_line-selname = 'P_CHK'.ls_agr_line-kind = 'P'.   * 单选按钮类型ls_agr_line-sign = 'I'.ls_agr_line-option = 'EQ'.ls_agr_line-low = abap_true.APPEND ls_agr_line TO lr_agr_rspar.*2. using JOB_SUMMIT to insert stepSUBMIT ztest_bjob_01 WITH SELECTION-TABLE lr_agr_rsparVIA JOB lv_job_nameNUMBER  w_jobidAND RETURN.CALL FUNCTION 'JOB_CLOSE'EXPORTING
*       AT_OPMODE            = ’ ’
*       AT_OPMODE_PERIODIC   = ’ ’
*       CALENDAR_ID          = ’ ’
*       EVENT_ID             = ’ ’
*       EVENT_PARAM          = ’ ’
*       EVENT_PERIODIC       = ’ ’jobcount             = w_jobidjobname              = lv_job_name
*       LASTSTRTDT           = NO_DATE
*       LASTSTRTTM           = NO_TIME
*       PRDDAYS              = 0
*       PRDHOURS             = 0
*       PRDMINS              = 0
*       PRDMONTHS            = 0
*       PRDWEEKS             = 0
*       PREDJOB_CHECKSTAT    = ’ ’
*       PRED_JOBCOUNT        = ’ ’
*       PRED_JOBNAME         = ’ ’
*       SDLSTRTDT            = NO_DATE
*       SDLSTRTTM            = NO_TIME
*       STARTDATE_RESTRICTION             = BTC_PROCESS_ALWAYSstrtimmed            = 'X'
*       TARGETSYSTEM         = ’ ’
*       START_ON_WORKDAY_NOT_BEFORE       = SY-DATUM
*       START_ON_WORKDAY_NR  = 0
*       WORKDAY_COUNT_DIRECTION           = 0
*       RECIPIENT_OBJ        =
*       TARGETSERVER         = ’ ’
*       DONT_RELEASE         = ’ ’
*       TARGETGROUP          = ’ ’direct_start         = 'X'
*   IMPORTING
*       JOB_WAS_RELEASED     =
*   CHANGING
*       RET                  =EXCEPTIONScant_start_immediate = 1invalid_startdate    = 2jobname_missing      = 3job_close_failed     = 4job_nosteps          = 5job_notex            = 6lock_failed          = 7invalid_target       = 8OTHERS               = 9.IF sy-subrc EQ 0.WHILE lv_subrc EQ 0.   "当作业成功启动后才退出SELECT SINGLE jobnameINTO lv_job_nameFROM tbtcoWHERE jobname EQ lv_joblikeAND status EQ 'R'.IF sy-subrc EQ 0.lv_subrc = 2.ELSE.WAIT UP TO 1 SECONDS.ENDIF.ENDWHILE.ENDIF.ELSE.MESSAGE e147(zps) WITH '后台作业关闭失败' RAISING bg_job_fail.ENDIF.

注意事项

区分各个参数之间的类型(KIND)

这篇关于ABAP程序带参调用后台作业的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/546396

相关文章

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

python如何调用java的jar包

《python如何调用java的jar包》这篇文章主要为大家详细介绍了python如何调用java的jar包,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录一、安装包二、使用步骤三、代码演示四、自己写一个jar包五、打包步骤六、方法补充一、安装包pip3 install

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Java调用C#动态库的三种方法详解

《Java调用C#动态库的三种方法详解》在这个多语言编程的时代,Java和C#就像两位才华横溢的舞者,各自在不同的舞台上展现着独特的魅力,然而,当它们携手合作时,又会碰撞出怎样绚丽的火花呢?今天,我们... 目录方法1:C++/CLI搭建桥梁——Java ↔ C# 的“翻译官”步骤1:创建C#类库(.NET

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Python程序打包exe,单文件和多文件方式

《Python程序打包exe,单文件和多文件方式》:本文主要介绍Python程序打包exe,单文件和多文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python 脚本打成exe文件安装Pyinstaller准备一个ico图标打包方式一(适用于文件较少的程

C/C++和OpenCV实现调用摄像头

《C/C++和OpenCV实现调用摄像头》本文主要介绍了C/C++和OpenCV实现调用摄像头,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录准备工作1. 打开摄像头2. 读取视频帧3. 显示视频帧4. 释放资源5. 获取和设置摄像头属性