ABAP 通过sumbit调用另外一个程序使用job形式执行-简单例子

涉及到两个程序:

ZTEST_ZUMA02 (主程序)
ZTEST_ZUMA(被调用的程序,需要以后台job执行)
"ztest_zuma 的代码
DATA col TYPE i VALUE 0.
DO 8 TIMES.
MESSAGE 'JOB HERE' TYPE 'S'.
ENDDO.
程序ZTEST_ZUMA是在程序ZTEST_ZUMA02中以job的形式调用的,先来看看SM37里面ZTEST_ZUMA的执行日志,当然这些日志是ZTEST_ZUMA程序中通过message输出的:

到这里你应该有一个初步的认识了,那么关键看看ZTEST_ZUMA02是通过什么方式实现以JOB的形式调用ZTEST_ZUMA的呢,看一下代码的几处关键位置,job_open,submit,job_close.

简单解释一下,代码中也有注释。
job_open :开启一个后台job,job名任意命名,会生产一个job id.
submit :调用需要设置为后台执行的程序,使用via 参数设置job的相关参数.(这个时候可以看到SM37里面有一个job 状态为schedule).
job_close :把之前创建的job release 并执行(参数strtimmed = 'X' 表示立即执行,设置某一个时间执行还没有研究).
======================
REPORT ztest_zuma02.
DATA: lv_jobnum  TYPE btcjobcnt.
DATA: gv_jobname TYPE btcjob VALUE 'ZUMATESTJOB'."Step1. open a job define a job_name(whatever you want), and return a jobnumber.
CALL FUNCTION 'JOB_OPEN'EXPORTINGjobname          = gv_jobnameIMPORTINGjobcount         = lv_jobnumEXCEPTIONScant_create_job  = 1invalid_job_data = 2jobname_missing  = 3OTHERS           = 4."Step2. Submit a program which you want to run in background as job.
SUBMIT ztest_zuma VIA JOB gv_jobname NUMBER lv_jobnum AND RETURN.
"ztest_zuma 的代码
"DATA col TYPE i VALUE 0.
"DO 8 TIMES.
"  MESSAGE 'JOB HERE' TYPE 'S'.
"ENDDO."Step3-Option. This is option step, for some special requirment modify job name instead of sy-uname.
"  in this step first call BP_JOB_READ to read the job information and then call BP_JOB_MODIFY to modify
"  the user name.
PERFORM modify_job_name USING lv_jobnum gv_jobname.IF sy-subrc = 0.
"Step4. To release the job which you were opened in step1.CALL FUNCTION 'JOB_CLOSE'EXPORTINGjobcount             = lv_jobnumjobname              = gv_jobnamestrtimmed            = 'X'EXCEPTIONScant_start_immediate = 1invalid_startdate    = 2jobname_missing      = 3job_close_failed     = 4job_nosteps          = 5job_notex            = 6lock_failed          = 7OTHERS               = 8.IF sy-subrc NE 0.MESSAGE 'Job error' TYPE 'E'.ELSE.MESSAGE 'Job success' TYPE 'S'.ENDIF.
ENDIF.
*&---------------------------------------------------------------------*
*&      Form  MODIFY_JOB_NAME
*&---------------------------------------------------------------------*
*       Modify user name for job owner
*----------------------------------------------------------------------*
*      -->P_LV_JOBNUM  text
*      -->P_GV_JOBNAME  text
*----------------------------------------------------------------------*
FORM modify_job_name  USING    p_lv_jobnump_gv_jobname.DATA: ls_jobhead TYPE tbtcjob,lt_jobstep TYPE STANDARD TABLE OF tbtcstep.CALL FUNCTION 'BP_JOB_READ'EXPORTINGjob_read_jobcount     = p_lv_jobnumjob_read_jobname      = p_gv_jobnamejob_read_opcode       = '20'IMPORTINGjob_read_jobhead      = ls_jobheadTABLESjob_read_steplist     = lt_jobstepEXCEPTIONSinvalid_opcode        = 1job_doesnt_exist      = 2job_doesnt_have_steps = 3OTHERS                = 4.IF sy-subrc <> 0.ENDIF.ls_jobhead-sdluname = 'BATCH_CM'.CALL FUNCTION 'BP_JOB_MODIFY'EXPORTINGdialog                     = 'N'jobcount                   = p_lv_jobnumjobname                    = p_gv_jobnamenew_jobhead                = ls_jobheadopcode                     = '16'IMPORTINGmodified_jobhead           = ls_jobheadTABLESnew_steplist               = lt_jobstepEXCEPTIONScant_derelease_job         = 1cant_enq_job               = 2cant_read_jobdata          = 3cant_release_job           = 4cant_set_jobstatus_in_db   = 5cant_start_job_immediately = 6cant_update_jobdata        = 7eventcnt_generation_error  = 8invalid_dialog_type        = 9invalid_new_jobdata        = 10invalid_new_jobstatus      = 11invalid_opcode             = 12invalid_startdate          = 13job_edit_failed            = 14job_modify_canceled        = 15job_not_modifiable_anymore = 16nothing_to_do              = 17no_batch_on_target_host    = 18no_batch_server_found      = 19no_batch_wp_for_jobclass   = 20no_modify_privilege_given  = 21no_release_privilege_given = 22no_startdate_no_release    = 23target_host_not_defined    = 24tgt_host_chk_has_failed    = 25invalid_targetgroup        = 26conflicting_targets        = 27OTHERS                     = 28.IF sy-subrc <> 0.ENDIF.
ENDFORM.

 

 

 

转载于:https://www.cnblogs.com/wangxiaowen/p/8992346.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

那些影响深远的弯路

静儿最近反思很多事情&#xff0c;不仅是当时做错了。错误定式形成的思维习惯对自己的影响比事情本身要大的多。经常看到周围的同事&#xff0c;非常的羡慕。他们都很聪明、有自己的方法。就算有些同事工作经验相对少一些&#xff0c;但是就像在废墟上创建一个辉煌的城市要比在…

如何使用APTonCD备份和还原已安装的Ubuntu软件包

APTonCD is an easy way to back up your installed packages to a disc or ISO image. You can quickly restore the packages on another Ubuntu system without downloading anything. APTonCD是将安装的软件包备份到光盘或ISO映像的简便方法。 您可以在不下载任何东西的情况…

rest_framework10:base64补充/修改头像

base64补充 # base64 变长&#xff0c;可反解 # md5 固定长度&#xff0c;不可反解# base64 编码和解码 import base64 import json dic{name:test,age:18} dic_strjson.dumps(dic)retbase64.b64encode(dic_str.encode(utf-8)) print(ret)# 解码 ret2base64.b64decode(ret) pri…

next_permutation(全排列算法)

next_permutation(全排列算法) STL提供了两个用来计算排列组合关系的算法&#xff0c;分别是next_permutation和prev_permutation。 首先解释下全排列&#xff0c;顾名思义&#xff0c;即一组数的全部排列的情况。 next_permutation 即列出一组数的全部排列情况&#xff0c;不过…

C#自定义字符串压缩和解压缩源码库

如下的内容是关于C#自定义字符串压缩和解压缩库的内容。class ZipLib{public static string Zip(string value){byte[] byteArray new byte[value.Length];int indexBA 0;foreach (char item in value.ToCharArray()){byteArray[indexBA] (byte)item;}System.IO.MemoryStrea…

使用 Visual Studio 2022 调试Dapr 应用程序

使用Dapr 编写的是一个多进程的程序, 两个进程之间依赖于启动顺序来组成父子进程&#xff0c;使用Visual Studio 调试起来可能会比较困难&#xff0c;因为 Visual Studio 默认只会把你当前设置的启动项目的启动调试。好在有Visual Studio 扩展&#xff08;Microsoft Child Proc…

卸载 cube ui_如何还原Windows 8附带的已卸载现代UI应用程序

卸载 cube uiWindows 8 ships with built-in apps available on the Modern UI screen (formerly the Metro or Start screen), such as Mail, Calendar, Photos, Music, Maps, and Weather. Installing additional Modern UI apps is easy using the Windows Store, and unins…

rest_framework11:jwt简单例子/自定制基于jwt认证类

jwt简单例子 一、登陆设置 1.不需要写login的视图类&#xff0c;使用jwt内置的。 2.需要前置条件&#xff0c;已有继承AbstractUser models,并且有数据&#xff0c;用于校验&#xff0c;返回token。 urls.py from rest_framework_jwt.views import obtain_jwt_tokenurlpat…

Java各种数据类型,自己学习写的笔记!!!

java编程规范&#xff1a; 1.良好的标识符的命名保留字不能作为标识符命名&#xff1a; class、public、static..., goto,const区分大小写&#xff1a;helloWorld、HelloWorld 2.良好的注释习惯 3.良好的缩进&#xff1a;没遇到一个代码块缩进一次&#xff08;一个tab键&…

Java Decompiler(Java反编译工具)

Java Decompiler官网地址&#xff1a;http://jd.benow.ca/ 官网介绍&#xff1a; The “Java Decompiler project” aims to develop tools in order to decompile and analyze Java 5 “byte code” and the later versions. JD-Core is a library that reconstructs Java sou…

20位程序员关于求职的疑问,以及我给出的参考答案

作者&#xff1a;陆小凤首发&#xff1a;公众号【程序员江湖】阅读本文大概需要 6 分钟。前几天发了一条朋友圈对于求职小伙伴们提出的问题&#xff0c;我进行了收集整理&#xff0c;统一反馈。也许这20个问题也是你们遇到的问题&#xff0c;所以趁着年前赶紧把它发出来。以下2…

MassTransit | 基于MassTransit Courier 实现 Saga 编排式分布式事务

Saga 模式Saga 最初出现在1987年Hector Garcaa-Molrna & Kenneth Salem发表的一篇名为《Sagas》的论文里。其核心思想是将长事务拆分为多个短事务&#xff0c;借助Saga事务协调器的协调&#xff0c;来保证要么所有操作都成功完成&#xff0c;要么运行相应的补偿事务以撤消先…

ccleaner无法更新_CCleaner正在静默更新关闭自动更新的用户

ccleaner无法更新CCleaner is forcing updates on users who specifically opt out of automatic updates. Users will only find out about these unwanted updates when they check the version number. CCleaner强制对专门选择退出自动更新的用户进行更新。 用户只有在检查版…

查找域内所有的Windows Server 2012 R2的服务器,并区分出哪些是物理机,那些是虚拟机...

通过使用Get-Adcomputer和Get-Wmiobject 组合来实现。思路是这样的&#xff0c;先看一台服务器的属性值有什么可用利用的。[12r2-dc]: PS C:\> Get-ADComputer -Identity 12r2-dc -Properties *AccountExpirationDate :accountExpires …

rest_framework12:多登陆方式与自动签发token/配置过期时间

多登陆方式与自动签发token views.py 1.继承Viewset&#xff0c;方法里可以使用自定义login&#xff0c;更直观。需要路由直接配置请方式 2. 序列化是直接对request数据处理&#xff0c;并从对象中获取token 3.context可以储存自定义数据 # 多登陆方式&#xff0c;自动签发…

20165310_获奖感想与Java阶段性学习总结

获奖感想与Java阶段性学习总结 一、Learning By Doing ​ 在此之前&#xff0c;其实我并没有想到能够成为小黄杉的第一批成员之一&#xff0c;喜悦之余&#xff0c;也感受到了许多的压力。小黄杉一方面代表了老师对于我这一阶段学习成果的肯定&#xff0c;但同时也是对我的督促…

chrome浏览器崩溃_不只是您:Chrome浏览器在Windows 10的2018年4月更新中崩溃

chrome浏览器崩溃If your computer is hanging or freezing after installing the Windows 10 April 2018 Update you’re not alone, and Microsoft is aware of the problem. 如果在安装Windows 10 April 2018 Update之后计算机挂起或死机&#xff0c;您并不孤单&#xff0c;…

读名老中医之路笔记(二)

任应秋&#xff1a;我的治学门径和方法 任应秋先生从幼读经&#xff0c;十三经皆能成诵&#xff0c;属于带童子功的医学家&#xff0c;他的医学经验&#xff1a; 一、读经宜读全本&#xff0c;解经宜先识字&#xff0c;读经宜正音读&#xff0c;强调对经典著作的朗读和背诵&…

致敬青春岁月

昨天发生的一件神奇的事情。我们公司工会组织了一次小型的户外团建&#xff0c;有机会认识一些其他部门同事&#xff0c;没想到有一个同事小心地认出了我&#xff0c;然后还谈起了关于.NET技术和社区的一些发展的历史和故事。他在微软工作的时间比我久&#xff0c;但时空交错&a…

谈谈- declare-styleable属性

在Android开发中&#xff0c;往往要用到自定义的控件来实现我们的需求或效果。在使用自定义 控件时&#xff0c;难免要用到自定义属性&#xff0c;那怎么使用自定义属性呢&#xff1f; 一、简单使用&#xff1a; 1.在文件res/values/下新建attrs.xml属性文件&#xff0c;中定义…