[ABAP] DMS: Dokumentenstatus setzen

* Dokumentart (TA DC10, Tabelle TDWA)
PARAMETERS: p_type TYPE bapi_doc_aux-doctype OBLIGATORY.
* Dokumentnummer, mit Suchhilfe auf Tabelle DRAW (Dokumentinformationssatz)
PARAMETERS: p_num TYPE bapi_doc_aux-docnumber OBLIGATORY DEFAULT '10000000001' MATCHCODE OBJECT /plmb/dir_elm.
* Teildokument
PARAMETERS: p_part TYPE bapi_doc_aux-docpart OBLIGATORY DEFAULT '000'.
* Dokumentversion
PARAMETERS: p_ver TYPE bapi_doc_aux-docversion OBLIGATORY DEFAULT '00'.
* Dokumentstatus, Statuswerte in Tabelle TDWS
PARAMETERS: p_status TYPE bapi_doc_draw-statusintern OBLIGATORY DEFAULT '1' MATCHCODE OBJECT cbglwb_report_status.

START-OF-SELECTION.

  DATA: lv_return TYPE bapiret2.

* Set Document Status
  CALL FUNCTION 'BAPI_DOCUMENT_SETSTATUS'
    EXPORTING
      documenttype    = p_type
      documentnumber  = p_num
      documentpart    = p_part
      documentversion = p_ver
*     statusextern    = ' '
      statusintern    = p_status " Statuswerte in Tabelle TDWS
*     statuslog       = ' '
    IMPORTING
      return          = lv_return.

  IF lv_return-type CA 'EA'.
* Rollback bei Fehler
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  ELSE.
* Daten verbuchen
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = abap_true.

    cl_demo_output=>write_data( lv_return ).

*     HTML-Code vom Demo-Output holen
    DATA(lv_html) = cl_demo_output=>get( ).

*     Daten im Inline-Browser im SAP-Fenster anzeigen
    cl_abap_browser=>show_html( EXPORTING title       = 'Daten'
                                          html_string = lv_html
                                          container   = cl_gui_container=>default_screen ).

*     cl_gui_container=>default_screen erzwingen
    WRITE: space.
  ENDIF.