Emrullah Demirhan Logo

Dynamic Range Value Conversions in ABAP

Dynamic Range Value Conversions in ABAP

Seçim ekranının bileşenlerinden olan Select-Options ifadeleri bize seçim tablosu bildirir. Seçim tablosundaki veriler, bazen harici formattan dahili formata dönüştürme sırasında, sistem INPUT alanındaki girdinin sıfır eklenmesini sağlamaz.

Bunu dinamik olarak sağlamak için aşağıdaki methodu kullanabilirsiniz.

Static method tanımlıyoruz.

    CLASS-METHODS CONV_INPUT_RANGE
      EXPORTING
        E_DURUM  TYPE ZUTIL_S_DURUM
      CHANGING
        IT_INPUT TYPE ANY TABLE.
  METHOD CONV_INPUT_RANGE.

    DATA: EXREF TYPE REF TO CX_ROOT.

    TRY.

        DATA: LT_TABLE TYPE REF TO CL_ABAP_TABLEDESCR,
              LT_DATA  TYPE REF TO DATA.

        GET REFERENCE OF IT_INPUT INTO LT_DATA.
        LT_TABLE  ?= CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_DATA_REF( LT_DATA ).

        LOOP AT IT_INPUT ASSIGNING FIELD-SYMBOL(<FS_OUT>).

          LOOP AT LT_TABLE->KEY ASSIGNING FIELD-SYMBOL(<FS_FIELDS>).
            ASSIGN COMPONENT <FS_FIELDS> OF STRUCTURE <FS_OUT> TO FIELD-SYMBOL(<FS_VALUE>).
            IF <FS_VALUE> IS ASSIGNED AND ( <FS_FIELDS> EQ 'LOW' OR <FS_FIELDS> EQ 'HIGH' ).
                <FS_VALUE> = |{ <FS_VALUE> ALPHA = IN }|.
            ENDIF.
          ENDLOOP.

        ENDLOOP.


      CATCH CX_ROOT INTO EXREF.
        E_DURUM-DURUM = ZUTIL_CL_DEFS=>C_DURUM_ERROR.
        E_DURUM-DURUM_TEXT = EXREF->GET_TEXT( ).
    ENDTRY.

  ENDMETHOD.

Çağrılma yöntemi de aşağıdaki gibidir;

  ZUTIL_CL_GU=>CONV_INPUT_RANGE( CHANGING IT_INPUT = S_MATNR[] ).

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Sitemizde en iyi deneyimi yaşamanızı sağlamak için çerezler kullanmaktadır.