日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【ABAP】获取后台Job相关状态

發布時間:2025/3/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【ABAP】获取后台Job相关状态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這一節主要對后臺作業(Batch JOB)中一些平時不怎么用到的內容做一下整理,有需要對后臺作業進行控制的同行可以學習參照,比如定時批量對一部分作業進行狀態的變更,控制運行中作業的數量等等。

1、SAP后臺JOB相關系統表:TBTC*

主要的有 :

  • TBTCO - 作業狀態概述表
  • TBTCP - 批作業步驟概述

2、JOB的狀態: 可以使用系統函數查看 ?BDL_READ_JOB_STATUS ?或者是自己去表?TBTCO 中查找(根據STATUS 字段判斷是否完成)。

  • R 活動的(運行中)
  • Y 就緒的
  • P 已調度的
  • S 已釋放
  • A 已取消(出錯終止)
  • F 已完成(結束)
  • Z Released/Susp.(無中文)
  • JOB運行時間:TBTCO中有開始日期開始時間和結束日期結束時間,兩者直接相減就得出JOB運行的時間。

    3、JOB日志查看:系統中的日志好像是沒有存放在系統表而是文件中,可以通過函數 BP_JOBLOG_READ 獲取,傳入JOB名和JOB編號就可以獲得日志信息。

    ?"例如:獲取失敗日志

    ??DATA:lt_log?TYPE?TABLE?OF?tbtc5?WITH?HEADER?LINE.

    ????CALL?FUNCTION?'BP_JOBLOG_READ'
    ??????EXPORTING
    ????????client????????????????=?sy-mandt
    ????????jobcount??????????????=?lw_job-jobcount
    ????????jobname???????????????=?lw_job-jobname
    ??????TABLES
    ????????joblogtbl?????????????=?lt_log
    ??????EXCEPTIONS
    ????????cant_read_joblog??????=?1
    ????????jobcount_missing??????=?2
    ????????joblog_does_not_exist?=?3
    ????????joblog_is_empty???????=?4
    ????????joblog_name_missing???=?5
    ????????jobname_missing???????=?6
    ????????job_does_not_exist????=?7
    ????????OTHERS????????????????=?8.
    ????IF?sy-subrc?<>?0.
    ??????MESSAGE?ID?sy-msgid?TYPE?sy-msgty?NUMBER?sy-msgno
    ??????????????WITH?sy-msgv1?sy-msgv2?sy-msgv3?sy-msgv4.
    ????ENDIF.

    4、Job狀態的更改:可以通過函數BP_JOB_MODIFY來修改。

    *&---------------------------------------------------------------------* *& 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_NEW'.CALL FUNCTION 'BP_JOB_MODIFY'EXPORTINGdialog = 'N'jobcount = p_lv_jobnumjobname = p_gv_jobname *** new_jobhead = ls_jobheadopcode = '18'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.

    上面的函數中需要注意一個參數:opcode ,下面則是這個參數的具體對照解釋。

    ? btc_edit_btcctl_tbl? ?? ? LIKE btch0000-int4 VALUE??1,
    ??btc_show_btcctl_tbl? ?? ? LIKE btch0000-int4 VALUE??2,
    ??btc_edit_user_eventids? ? LIKE btch0000-int4 VALUE??3,
    ??btc_show_user_eventids? ? LIKE btch0000-int4 VALUE??4,
    ??btc_edit_system_eventids??LIKE btch0000-int4 VALUE??5,
    ??btc_show_system_eventids??LIKE btch0000-int4 VALUE??6,
    ??btc_edit_steplist? ?? ?? ?LIKE btch0000-int4 VALUE??7,
    ??btc_show_steplist? ?? ?? ?LIKE btch0000-int4 VALUE??8,
    ??btc_show_variantlist? ?? ?LIKE btch0000-int4 VALUE??9,
    ??btc_create_job? ?? ?? ?? ?LIKE btch0000-int4 VALUE 10,
    ??btc_edit_job? ?? ?? ?? ???LIKE btch0000-int4 VALUE 11,
    ??btc_show_job? ?? ?? ?? ???LIKE btch0000-int4 VALUE 12,
    ??btc_check_only? ?? ?? ?? ?LIKE btch0000-int4 VALUE 13,
    ??btc_edit_startdate? ?? ???LIKE btch0000-int4 VALUE 14,
    ??btc_show_startdate? ?? ???LIKE btch0000-int4 VALUE 15,
    ??btc_modify_whole_job? ?? ?LIKE btch0000-int4 VALUE 16,
    ??btc_release_job? ?? ?? ???LIKE btch0000-int4 VALUE 17,
    ??btc_derelease_job? ?? ?? ?LIKE btch0000-int4 VALUE 18,
    ??btc_read_jobhead_only? ???LIKE btch0000-int4 VALUE 19,
    ??btc_read_all_jobdata? ?? ?LIKE btch0000-int4 VALUE 20,
    ??btc_joblist_edit? ?? ?? ? LIKE btch0000-int4 VALUE 21,
    ??btc_joblist_show? ?? ?? ? LIKE btch0000-int4 VALUE 22,
    ??btc_joblist_select? ?? ???LIKE btch0000-int4 VALUE 23,
    ??btc_joblog_show? ?? ?? ???LIKE btch0000-int4 VALUE 24,
    ??btc_edit_omset? ?? ?? ?? ?LIKE btch0000-int4 VALUE 25,
    ??btc_show_omset? ?? ?? ?? ?LIKE btch0000-int4 VALUE 26,
    ??btc_show_oms_sdl_tbl? ?? ?LIKE btch0000-int4 VALUE 27,
    ??btc_show_xpgm_list? ?? ???LIKE btch0000-int4 VALUE 28,
    ??btc_close_job? ?? ?? ?? ? LIKE btch0000-int4 VALUE 29,
    ??btc_varjoblist_select? ???LIKE btch0000-int4 VALUE 30,
    ??btc_varlist_select? ?? ???LIKE btch0000-int4 VALUE 31,
    ??btc_performance_list? ?? ?LIKE btch0000-int4 VALUE 32,
    ??btc_performance_info? ?? ?LIKE btch0000-int4 VALUE 33,
    ??btc_batchproces_list? ?? ?LIKE btch0000-int4 VALUE 34,
    ??BTC_DONT_READ_PRIPARAMS? ?LIKE BTCH0000-INT4 VALUE 35,?
    ??btc_xbp_all_jobdata? ?? ? LIKE btch0000-int4 VALUE 36,?
    ??btc_xbp_jobhead_only? ?? ?LIKE btch0000-int4 VALUE 37.??

    5、ABAP后臺JOB數量控制。

    FORM?SUB_CHECK_JOB.
    ??DATA:?BEGIN?OF?LT_JOBS?OCCURS?0?,
    ??????????JOBNAME??TYPE?BTCJOB,
    ??????????STRTDATE?TYPE?BTCXDATE,
    ??????????STRTTIME?TYPE?BTCXTIME,
    ??????????ENDDATE??TYPE?BTCXDATE,
    ??????????ENDTIME??TYPE?BTCXTIME,
    ????????END?OF?LT_JOBS.
    ??DATA:?F_JOBNAME?TYPE?STRING?VALUE?'Z_%'.
    ??DATA:?V_ACTIVE?TYPE?INT1.
    ??SELECT?JOBNAME
    ??INTO?TABLE?LT_JOBS
    ??FROM?TBTCO
    ??WHERE?(?JOBNAME?LIKE?F_JOBNAME?)
    ??AND?STATUS?EQ?'R'.
    ??IF?SY-SUBRC?=?0?.
    ????DESCRIBE?TABLE?LT_JOBS?LINES?V_ACTIVE?.
    ????IF?V_ACTIVE?>=?5.
    ??????MESSAGE?'有正在運行的任務,此次任務取消。'?TYPE?'S'?DISPLAY?LIKE?'E'.
    ????ENDIF?.
    ??ENDIF.
    ENDFORM.?"?SUB_CHECK_JOB

    其他后續更新。

    總結

    以上是生活随笔為你收集整理的【ABAP】获取后台Job相关状态的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。