Search code examples
abapsap-basis

How to determine if a transport request has been deleted from buffer?


I'm trying to programmatically determine if a given transport request was deleted from the import buffer of a given system. I could not find that information in any TR-related tables, like E070. FM TR_READ_GLOBAL_INFO_OF_REQUEST provides import steps but not wether the TR was deleted.


Solution

  • Adding to the very useful Adeptus response, here is how you can fetch the info about the transport deleted from the queue:

    DATA: tab_result TYPE stms_tp_logtabs.
    
    CALL FUNCTION 'TMS_MGR_READ_TP_LOGTAB'
      EXPORTING
        iv_system          = 'XXX'
        iv_read_tplog      = 'X'
        iv_read_tpstat     = 'X'
        iv_monitor         = 'X'
      IMPORTING
        es_tp_logtabs      = tab_result
      EXCEPTIONS
        read_config_failed = 1
        OTHERS             = 2.
    
    READ TABLE tab_result ASSIGNING FIELD-SYMBOL(<fs_tp>) INDEX 1.
    CHECK sy-subrc = 0.
    LOOP AT <fs_tp>-tplog ASSIGNING FIELD-SYMBOL(<tab>).
      CHECK <tab>-cmdstring CP 'DELFROMBUFFER*' AND <tab>-cmdstring CP '*K900050*'.
      EXIT.
    ENDLOOP.
    
    cl_demo_output=>display( <tab> ).
    

    The sample output of the above code would be this: the found line with the TR number and word DELFROMBUFFER means that this transport was deleted

    enter image description here

    The columns SYDATE and SYTIME show when it was deleted, the USERNAME column shows by whom.