Set per Funktionsbaustein auslesen

Ein Beispiel, wie ein Set (hier ein Basic-Set), dass mit der Transaktion GS01 angelegt wurde, per FuB ausliest. Die Set-ID wird zunächst über den Setnamen ermittelt, bevor dieser ausgelesen werden kann

*————————————————————————

* Periodenfremde Buchung bei Leistungsdatum im Vorjahr oder früher
* Erstelldatum:  18.12.2013
* Autor       :  
*
*————————————————————————
DATA:   LV_FBUDA TYPE VBRP-FBUDA,
        LV_DATVR TYPE I,
        LV_DATSY TYPE I,
        LV_REL   TYPE C,
        LV_NEW_SETID TYPE SETHIER-SETID,
        LT_SET_VALUES LIKE TABLE OF RGSB4 WITH HEADER LINE
        .


DATABEGIN OF LT_ZLBV_SKTO_SUB OCCURS 0.
        INCLUDE STRUCTURE ZLBV_SKTO_SUB .
DATA: END OF LT_ZLBV_SKTO_SUB.
*
* auslesen des Basic-Set
CALL FUNCTION ‚G_SET_GET_ID_FROM_NAME‘
  EXPORTING
*   CLIENT                         =
    SHORTNAME                      = ‚ZFI_SAKO_PERFREMD‘
 IMPORTING
    NEW_SETID                      = LV_NEW_SETID
* EXCEPTIONS
*   NO_SET_FOUND                   = 1
*   NO_SET_PICKED_FROM_POPUP       = 2
*   WRONG_CLASS                    = 3
*   WRONG_SUBCLASS                 = 4
*   TABLE_FIELD_NOT_FOUND          = 5
*   FIELDS_DONT_MATCH              = 6
*   SET_IS_EMPTY                   = 7
*   FORMULA_IN_SET                 = 8
*   SET_IS_DYNAMIC                 = 9
*   OTHERS                         = 10
          .
IF SY-SUBRC 0.
* Implement suitable error handling here
ENDIF.

CALL FUNCTION ‚G_SET_GET_ALL_VALUES‘
  EXPORTING
    SETNR                       = LV_NEW_SETID
  TABLES
    SET_VALUES                  = LT_SET_VALUES
* EXCEPTIONS
*   SET_NOT_FOUND               = 1
*   OTHERS                      = 2
          .
IF SY-SUBRC 0.
* Implement suitable error handling here
ENDIF.

* Ist das Sachkonto im Basic-Set vorhanden? Das ist die erste Vorraussetzung
LOOP AT LT_SET_VALUES.
  IF XKOMV-SAKN1 BETWEEN LT_SET_VALUESFROM AND LT_SET_VALUESTO.
    LV_REL = ‚X‘.
    EXIT.
  ENDIF.
ENDLOOP.

*    Liegt das Leistungsdatum nicht im aktuellen Jahr?
LV_DATSY = SY-DATUM(4).
LV_DATVR = XVBRP-FBUDA(4).
IF LV_DATSY > LV_DATVR AND LV_REL = ‚X‘.
*lesen des Sachkontos aus der Substitutionstabelle und neu zuordnen
  SELECT SINGLE * FROM ZLBV_SKTO_SUB
          INTO CORRESPONDING FIELDS OF LT_ZLBV_SKTO_SUB
          WHERE SOLLKTO = XKOMV-SAKN1.
  IF SY-SUBRC = 0.
    UNPACK LT_ZLBV_SKTO_SUB-SOLLKTOSUB TO XACCIT-SAKNR.
    UNPACK LT_ZLBV_SKTO_SUB-SOLLKTOSUB TO XACCIT-HKONT.
    XACCIT-FIPOS = LT_ZLBV_SKTO_SUB-SOLLKTOSUB.
    SHIFT XACCIT-FIPOS LEFT DELETING LEADING ‚0‘.
  ENDIF.
ENDIF.

Dieser Eintrag wurde veröffentlicht in SAP/ABAP von . Setze ein Lesezeichen zum Permalink.

Schreibe einen Kommentar