Listing 7.20  ZPTB00_OBJ_DOC_LOAD  Laden von Geschftsvorfllen
FUNCTION zptb00_obj_doc_load.
*"----------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     REFERENCE(I_TAB_BOOKING_DATE) TYPE  DDTRANGE
*"  EXPORTING
*"     REFERENCE(E_TAB_DOC) TYPE  ZPTB00_TTY_DOC
*"  EXCEPTIONS
*"      FAILED
*"----------------------------------------------------
  DATA:
* db
    l_tab_doc_header   TYPE STANDARD TABLE OF 
      zptb00_docheader,
    l_tab_doc_item     TYPE STANDARD TABLE OF 
      zptb00_docitem,
* local
    l_str_doc TYPE zptb00_str_doc.
  FIELD-SYMBOLS:
* db
    <l_str_doc_header> TYPE zptb00_docheader,
    <l_str_doc_item>   TYPE zptb00_docitem.

* read the header data
  SELECT * FROM zptb00_docheader INTO TABLE 
    l_tab_doc_header
  WHERE btdate IN i_tab_booking_date.
  IF sy-dbcnt = 0.
    RAISE failed.
  ENDIF.

* read the item data
* abap statement "for all entries" only works up to ca. 
* 1700 entries so we better loop
  LOOP AT l_tab_doc_header ASSIGNING 
    <l_str_doc_header>.
    MOVE-CORRESPONDING <l_str_doc_header> TO l_str_doc.
    SELECT * FROM  zptb00_docitem INTO TABLE 
      l_tab_doc_item
    WHERE header_id = <l_str_doc_header>-id.
    l_str_doc-tab_item = l_tab_doc_item.
    APPEND l_str_doc TO e_tab_doc.
  ENDLOOP.
  IF sy-dbcnt = 0.
    RAISE failed.
  ENDIF.

ENDFUNCTION.
