[ABAP] SD: Alle Auftragsdaten zu Kundenaufträgen lesen

PARAMETERS: p_vbeln TYPE vbeln.

START-OF-SELECTION.

* Welche Daten sollen gelesen werden?
  DATA(lv_bapi_view) = VALUE order_view( header     = abap_true
                                         item       = abap_true
                                         sdschedule = abap_false
                                         business   = abap_false
                                         partner    = abap_false
                                         address    = abap_false
                                         status_h   = abap_false
                                         status_i   = abap_false
                                         sdcond     = abap_true
                                         sdcond_add = abap_true
                                         contract   = abap_false
                                         text       = abap_false
                                         flow       = abap_false
                                         billplan   = abap_false
                                         configure  = abap_false
                                         credcard   = abap_false
                                         incomp_log = abap_false
                                       ).

* Belegnummern (VBELN) die selektiert werden sollen
  DATA: it_sales_documents TYPE STANDARD TABLE OF sales_key WITH DEFAULT KEY.
  APPEND p_vbeln TO it_sales_documents.

* Ausgabetabellen
* VBAK (Kopf)
  DATA: it_order_headers_out TYPE STANDARD TABLE OF bapisdhd WITH DEFAULT KEY.
* VBAP (Positionen)
  DATA: it_order_items_out TYPE STANDARD TABLE OF bapisdit WITH DEFAULT KEY.
* KOMV (Konditionen)
  DATA: it_order_conditions_out TYPE STANDARD TABLE OF bapisdcond WITH DEFAULT KEY.

* Kundenauftrag: Liste aller Auftragsdaten (analog VA03)
* Werte für I_MEMORY_READ:
*  SPACE = zuerst Pufferzugriff, dann DB-Zugriff
*  'A'   = nur Datenbankzugriff
*  'B'   = nur Pufferzugriff
  CALL FUNCTION 'BAPISDORDER_GETDETAILEDLIST'
    EXPORTING
      i_bapi_view              = lv_bapi_view
      i_memory_read            = space
      i_with_header_conditions = abap_true
    TABLES
      sales_documents          = it_sales_documents
      order_headers_out        = it_order_headers_out
      order_items_out          = it_order_items_out
      order_conditions_out     = it_order_conditions_out.

* Datenausgabe
  cl_demo_output=>write_data( it_order_headers_out ).
  cl_demo_output=>write_data( it_order_items_out ).
  cl_demo_output=>write_data( it_order_conditions_out ).

* HTML-Code holen
  DATA(lv_html) = cl_demo_output=>get( ).
* Daten im Inline-Browser im SAP-Fenster anzeigen
  cl_abap_browser=>show_html( EXPORTING
                                title        = 'Daten zur Bestellung'
                                html_string  = lv_html
                                container    = cl_gui_container=>default_screen ).
* cl_gui_container=>default_screen erzwingen
  WRITE: space.

[ABAP] Vertriebsbelege – Belegfluss lesen

* Vorgängervertriebsbeleg
PARAMETERS: p_vbeln TYPE vbfa-vbelv DEFAULT '12345678'.

* Übergabestruktur
DATA(lv_vbco6) = VALUE vbco6( vbeln = p_vbeln
*                              posnr = '000010'
                            ).

* Rückgabetabelle
DATA: it_vbfa TYPE STANDARD TABLE OF vbfa WITH DEFAULT KEY.

* Liest Verkaufsbelegfluß von Verkaufsbeleg nach Lieferung und Faktura
* Tabellen: VBFA, VBUK
CALL FUNCTION 'RV_ORDER_FLOW_INFORMATION'
  EXPORTING
    comwa         = lv_vbco6
  TABLES
    vbfa_tab      = it_vbfa
  EXCEPTIONS
    no_vbfa       = 1
    no_vbuk_found = 2
    OTHERS        = 3.

* Datenausgabe
IF sy-subrc = 0.
* Tabelle mit Belegfluss anzeigen
*  cl_demo_output=>display( it_vbfa ).

* Dialogbaustein zur Anzeige des Belegflusses anzeigen
  CALL DIALOG 'RV_DOCUMENT_FLOW'
    EXPORTING
      vbco6 FROM lv_vbco6.
ENDIF.

[ABAP] Auslieferung und Splitfluss (Liefersplit) lesen

* Belegnummer Auslieferung
PARAMETERS: p_vbeln TYPE vbeln_vl DEFAULT '100000000'.

DATA: it_ledspd_flow_tree TYPE ledspd_flow_tree_t.
DATA: it_ledspd_flow TYPE ledspd_flow_t.
DATA: if_reference_delivery TYPE vbeln_vl.
DATA: if_root_delivery TYPE vbeln_vl.
DATA: if_items_belong_to TYPE ledspd_items_belong_to.
DATA: if_split_profile TYPE ledspd_pmode.

* Lesen des Splitflusses (in Baumdarstellung)
CALL FUNCTION 'LE_DSP_READ_FLOW'
  EXPORTING
    if_vbeln              = p_vbeln
*   IF_CHECK_GOODS_ISSUE  = ' '
  IMPORTING
    et_ledspd_flow_tree   = it_ledspd_flow_tree
    et_ledspd_flow        = it_ledspd_flow
    ef_reference_delivery = if_reference_delivery
    ef_root_delivery      = if_root_delivery
    ef_items_belong_to    = if_items_belong_to
    ef_split_profile      = if_split_profile
  EXCEPTIONS
    internal_error        = 1
    OTHERS                = 2.

IF sy-subrc = 0.
  cl_demo_output=>write_data( it_ledspd_flow_tree ).
  cl_demo_output=>write_data( it_ledspd_flow ).
  cl_demo_output=>write_data( if_reference_delivery ).
  cl_demo_output=>write_data( if_root_delivery ).
  cl_demo_output=>write_data( if_items_belong_to ).
  cl_demo_output=>write_data( if_split_profile ).
  cl_demo_output=>display( ).
ENDIF.