SAP通过函数TR_RELEASE_REQUEST释放指定请求

一:不通过SE09/10释放请求号

*&---------------------------------------------------------------------*
*& Report Z_TRANSPORT_REQUEST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT z_transport_request.


TABLES: e070.

TYPES: BEGIN OF ty_request," 请求
         trkorr     TYPE trkorr,
         trans_type TYPE char1,
       END OF ty_request.

TYPES: BEGIN OF ty_out_log," 输出日志
         trkorr  TYPE trkorr,
         status  TYPE char1,
         module  TYPE char1,
         message TYPE text255,
       END OF ty_out_log.

DATA:lv_falg TYPE c.


* Data Definition
*&---------------------------------------------------------------------*
DATA: gt_log      TYPE TABLE OF ty_out_log,
      gs_log      TYPE ty_out_log,
      gt_requests TYPE TABLE OF ty_request.

DATA: gv_message TYPE th_popup.

CONSTANTS: gc_tms_sev_log     LIKE stmsc-severity VALUE ' ',
           gc_tms_sev_none    LIKE stmsc-severity VALUE 'N',
           gc_tms_sev_info    LIKE stmsc-severity VALUE 'I',
           gc_tms_sev_error   LIKE stmsc-severity VALUE 'E',
           gc_tms_id_no_alert LIKE stmscalert-id  VALUE ' '.



SELECT-OPTIONS:   s_reque FOR e070-strkorr OBLIGATORY NO INTERVALS.


s_reque-low = sy-sysid && '*'.
APPEND s_reque.



*----------------------------------------------------------------------*
* AT SELECTION-SCREEN ON VALUE-REQUEST
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_reque-low.

  DATA: lv_trfunctions LIKE  trpari-w_longstat,
        lv_trstatus    LIKE  trpari-w_longstat,
        lv_trkorr      TYPE  e070-trkorr.

  lv_trkorr      = s_reque-low.
  lv_trfunctions = 'CDEFGKMOPQRSTWX'.
  lv_trstatus    = 'DLOR'.

  CALL FUNCTION 'TR_F4_REQUESTS' "TR F4 请求
    EXPORTING
      iv_username         = sy-uname
      iv_client           = ''
      iv_trkorr_pattern   = lv_trkorr
      iv_trfunctions      = lv_trfunctions
      iv_trstatus         = lv_trstatus
    IMPORTING
      ev_selected_request = lv_trkorr.

  s_reque-low = lv_trkorr.

START-OF-SELECTION.

  PERFORM release_request.

*&---------------------------------------------------------------------*
*&      Form  RELEASE_REQUEST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM release_request .

  CLEAR:lv_falg.

  DATA: ls_request       TYPE trwbo_request,
        lt_deleted_tasks TYPE trwbo_t_e070.

  DATA: lt_e070     TYPE TABLE OF e070,
        ls_e070     TYPE e070,
        ls_requests TYPE ty_request.


  gv_message = '1. 检查请求是否释放'.
  APPEND VALUE #( trkorr = '' status = 'S' module = 'H' message = gv_message ) TO gt_log.

  " Check input
  DELETE s_reque[] WHERE low CS '*'.
  CHECK s_reque[] IS NOT INITIAL.


  " 子请求
  SELECT *
    FROM e070
    INTO TABLE lt_e070
    WHERE strkorr IN s_reque.

  " Request status
  IF lt_e070 IS  INITIAL.

    MESSAGE '请输入母请求' TYPE 'E' .
    lv_falg = 'X'.

  ELSE.

    SELECT *
  FROM e070
  APPENDING TABLE lt_e070
  WHERE trkorr IN s_reque.


    CLEAR gt_requests.
    LOOP AT lt_e070 INTO ls_e070.

      IF ls_e070-trstatus <> 'O' AND ls_e070-trstatus <> 'R' .
        CALL FUNCTION 'TR_RELEASE_REQUEST'
          EXPORTING
            iv_trkorr                  = ls_e070-trkorr
            iv_dialog                  = ' '
            iv_as_background_job       = ' '
            iv_success_message         = 'X'
            iv_display_export_log      = ' '
          IMPORTING
            es_request                 = ls_request
            et_deleted_tasks           = lt_deleted_tasks
          EXCEPTIONS
            cts_initialization_failure = 1
            enqueue_failed             = 2
            no_authorization           = 3
            invalid_request            = 4
            request_already_released   = 5
            repeat_too_early           = 6
            error_in_export_methods    = 7
            object_check_error         = 8
            docu_missing               = 9
            db_access_error            = 10
            action_aborted_by_user     = 11
            export_failed              = 12.
        IF sy-subrc = 0.
          ls_requests = VALUE #( trkorr = ls_e070-trkorr trans_type = '1' ).
          gv_message = '请求:' && ls_e070-trkorr && '成功释放'.
          APPEND VALUE #( trkorr = ls_e070-trkorr  status = 'S' module = '1' message = gv_message ) TO gt_log.

        ELSE.
          ls_requests = VALUE #( trkorr = ls_e070-trkorr trans_type = 'E' ).
          gv_message = '请求:' && ls_e070-trkorr && '释放失败'.
          APPEND VALUE #( trkorr = ls_e070-trkorr  status = 'E' module = '1' message = gv_message ) TO gt_log.


          READ TABLE gt_log INTO gs_log WITH KEY status = 'E'.

          IF sy-subrc = 0.
            MESSAGE gs_log-message   TYPE 'S' DISPLAY LIKE 'E'.
            lv_falg = 'X'.
            EXIT.
          ENDIF.
        ENDIF.

      ELSE.

        gv_message = '请求:' && ls_e070-trkorr && '已释放'.
        APPEND VALUE #( trkorr = ls_e070-trkorr  status = 'S' module = '1' message = gv_message ) TO gt_log.

        ls_requests = VALUE #( trkorr = ls_e070-trkorr trans_type = '1' ).


      ENDIF.
      IF ls_e070-strkorr IS INITIAL.
        APPEND ls_requests TO gt_requests.
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDFORM

二:TMS_MGR_REFRESH_IMPORT_QUEUES   模拟STMS刷新列队

    CALL FUNCTION 'TMS_MGR_REFRESH_IMPORT_QUEUES'   "列队刷新模拟STMS刷新列队
      EXPORTING
        iv_system          = 'DS4'  
      EXCEPTIONS
        read_config_failed = 1.

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ABAP 成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值