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[] ).
Picture of Emrullah Demirhan

Emrullah Demirhan

SAP ERP yazılımı ve ABAP programlama dili uzmanıyım. Ayrıca Python programlama dili ve veri bilimi ile de ilgilenmekteyim. Yeni teknolojiler öğrenmeyi, öğrendiklerimi uygulayarak sonuçlarını paylaşmayı ve öğretmeyi seviyorum.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Son Yazılar

Popüler Yazılar

Tavsiye Edilen Yazılar

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