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

相关文章

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

讯飞webapi语音识别接口调用示例代码(python)

《讯飞webapi语音识别接口调用示例代码(python)》:本文主要介绍如何使用Python3调用讯飞WebAPI语音识别接口,重点解决了在处理语音识别结果时判断是否为最后一帧的问题,通过运行代... 目录前言一、环境二、引入库三、代码实例四、运行结果五、总结前言基于python3 讯飞webAPI语音

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Java中将异步调用转为同步的五种实现方法

《Java中将异步调用转为同步的五种实现方法》本文介绍了将异步调用转为同步阻塞模式的五种方法:wait/notify、ReentrantLock+Condition、Future、CountDownL... 目录异步与同步的核心区别方法一:使用wait/notify + synchronized代码示例关键