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.pswp.cn/news/280414.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280414.shtml
英文地址,請注明出處:http://en.pswp.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;中定義…