Ansicht
Dokumentation

CL_CLU_SETGET - Tabellencluster sortiert und paketweise lesen

CL_CLU_SETGET - Tabellencluster sortiert und paketweise lesen

RFUMSV00 - Advance Return for Tax on Sales/Purchases   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Die Klasse kann verwendet werden, um die Daten eines Tabellenclusters paketweise zu lesen, diese zu verarbeiten, und dann beim nächsten Satz (in Primärschlüsselreihenfolge) wiederaufzusetzen. Das Lesen erfolgt prinzipiell in Primärschlüsselreihenfolge.

Die Klasse implementiert damit eine zu Funktionsbaustein DB_SETGET ähnliche Funktionalität. Die wesentlichen Unterschiede sind:

  • Die Klasse kann ausschließlich Daten aus Tabellenclustern lesen. Die Klasse kennt damit auch einige Charakteristika von Tabellenclustern. So werden standardmäßig nur die Sätze mit PAGENO = 0 mandantenübergreifend gelesen. Außerdem ist es möglich, nur die Werte der Schlüsselfelder zu lesen.
  • Es können Datenbank-Hints verwendet werden.

Normalerweise reicht es, den Konstruktor sowie Methode NEXT_PACKAGE zu benutzen, um die Daten eines Tabellenclusters zu lesen (siehe das Beispiel weiter unten). Methoden MAKE_FIRST_PACKAGE_WHERE und MAKE_NEXT_PACKAGE_WHERE erlauben es, eine eigene Selektion durchzuführen, ohne die WHERE-Bedingung selbst codieren zu müssen.

Die Klasse hält keinen Cursor offen, d.h. während der Verarbeitung eines gelesenen Paketes können RFCs oder COMMIT WORK verwendet werden.

Die Klasse ist vor allem für Prüfprogramme der allgemeinen Datenbankschnittstelle gedacht.

Beziehungen

Beispiel


  DATA:
    setget          TYPE REF TO cl_clu_setget,
    rows_fetched    TYPE i,
    is_last_package TYPE abap_bool,
    cdcls_tab       TYPE STANDARD TABLE OF cdcls.

  CREATE OBJECT setget
    EXPORTING
      iv_tabclu = 'CDClS'
    EXCEPTIONS
      OTHERS    = 1.

  IF sy-subrc NE 0.
    " Implement error handling
    PERFORM error_handling USING sy-subrc.
    EXIT.
  ENDIF.


  DO.
    setget->next_package(
      EXPORTING
        iv_package_size     = 5
      IMPORTING
        ev_rows_fetched     = rows_fetched
        ev_is_last_package  = is_last_package
      CHANGING
        ct_data             = cdcls_tab
      EXCEPTIONS
        OTHERS             = 1 ).
    IF sy-subrc NE 0.
      " Implement error handling
      PERFORM error_handling USING sy-subrc.
      EXIT.
    ENDIF.

    PERFORM do_something TABLES cdcls_tab.
    COMMIT WORK.

    IF is_last_package = abap_true.
      EXIT.
    ENDIF.
  ENDDO.

Hinweise

Methoden MAKE_FIRST_PACKAGE_WHERE, MAKE_NEXT_PACKAGE_WHERE und MAKE_SINGLE_CLUSTER_WHERE haben einen Parameter für den Namen der Workarea mit den konkreten Werten. Um die erzeugten WHERE-Bedingungen in einem eigenen ABAP-Programm mit dynamischer OpenSQL-WHERE-Bedingung benutzen zu können, muss es eine ABAP Variable vom entsprechenden Workarea-Typ im ABAP-Programm geben.

Weiterführende Informationen






ABAP Short Reference   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 4529 Date: 20240426 Time: 134138     sap01-206 ( 52 ms )