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

相关文章

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

一分钟带你上手Python调用DeepSeek的API

《一分钟带你上手Python调用DeepSeek的API》最近DeepSeek非常火,作为一枚对前言技术非常关注的程序员来说,自然都想对接DeepSeek的API来体验一把,下面小编就来为大家介绍一下... 目录前言免费体验API-Key申请首次调用API基本概念最小单元推理模型智能体自定义界面总结前言最

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

redis防止短信恶意调用的实现

《redis防止短信恶意调用的实现》本文主要介绍了在场景登录或注册接口中使用短信验证码时遇到的恶意调用问题,并通过使用Redis分布式锁来解决,具有一定的参考价值,感兴趣的可以了解一下... 目录1.场景2.排查3.解决方案3.1 Redis锁实现3.2 方法调用1.场景登录或注册接口中,使用短信验证码场

使用C/C++调用libcurl调试消息的方式

《使用C/C++调用libcurl调试消息的方式》在使用C/C++调用libcurl进行HTTP请求时,有时我们需要查看请求的/应答消息的内容(包括请求头和请求体)以方便调试,libcurl提供了多种... 目录1. libcurl 调试工具简介2. 输出请求消息使用 CURLOPT_VERBOSE使用 C

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Idea调用WebService的关键步骤和注意事项

《Idea调用WebService的关键步骤和注意事项》:本文主要介绍如何在Idea中调用WebService,包括理解WebService的基本概念、获取WSDL文件、阅读和理解WSDL文件、选... 目录前言一、理解WebService的基本概念二、获取WSDL文件三、阅读和理解WSDL文件四、选择对接