Ansicht
Dokumentation

CHANGEDOCU_FIELDS_ANY2CHAR - Konvertiere values_old+value_new type any to char/string

CHANGEDOCU_FIELDS_ANY2CHAR - Konvertiere values_old+value_new type any to char/string

PERFORM Short Reference   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Der Baustein CHANGEDOCU_FIELDS_ANY2CHAR soll für die übergebenen Felder:

IV_VALUE_OLD_ANY, IV_VALUE_NEW_ANY

die Umwandlung vom TYPE ANY zum TYPE CHAR realisieren.

Um die Felddefinition zu erhalten, wird der Tabellen-/Strukturname und der Feldname innerhalb dieser Tabelle/Struktur benötigt:

IV_TABNAME = Tabellen-/Strukturname zu den übergebenen ANY-Feldern gehörend.

IV_FIELDNAME = Feldname der übergebenen ANY-Felder.

Bei der Umwandlung ist eine Veränderung der externen Länge zu beachten:

Dieser Baustein wird intern beim Schreiben der Änderungsbelegpositionen
genutzt.

Beispiel

*
&----------------------------------------------------------------
*
*&      Form  position_aendern
*
&----------------------------------------------------------------
*
*       Änderung dokumentieren
*----------------------------------------------------------------------*
*      -->TABAREA_OLD übergebene Struktur vom Anwender
*                     mit den alten Werten vor der Änderung in der
                      Applikation
*      -->TABAREA_NEW übergebene Struktur vom Anwender
*                     mit den neuen Werten nach der Änderung
                      in der Applikation
*----------------------------------------------------------------------*

FORM position_aendern  USING tabarea_old TYPE any
                             tabarea_new TYPE any
                             refarea_old TYPE any
                             refarea_new TYPE any.
  DATA: reflength  TYPE p,
        reffound   TYPE c,
        lv_key_o   type cdpos_uid-tabkey,
        datatype   TYPE dd03p-datatype
       ,lv_field_is_intraw type i
       ,lv_uid_create      type sy-subrc
       .

  FIELD-SYMBOLS:       TYPE ANY,
                       TYPE ANY,
                 TYPE ANY,
                 TYPE ANY,
                     TYPE c.

* ordne übergebene Tabellenarea den Feldsysmbolen zu
* Strukturen werden entspr. Tabellenname gecastet
  ASSIGN tabarea_old TO
                     casting type (last_tabname).
  ASSIGN tabarea_new TO
                     casting type (last_tabname).

* bilde den key ohne Längenangabe
  assign lv_key_o to .
  perform tabkey_get using    tabarea_old
                     changing
                              key_is_intraw.

* Die Struktur  TABINFO wurde vor dem Aufruf mit den
* Informationen zur übergebenen Tabelle gefüllt.
  loop at tabinfo where keyflag = space
                  and   tabname = last_tabname.
    if tabinfo-logflag ne space or plan_number ne space.
*      Schluesselfelder werden nicht beruechsichtigt
* Für UNICODE jetzt ohne OFFSET's
      ASSIGN COMPONENT tabinfo-fieldname OF STRUCTURE <f_area_old>
                           TO .
      ASSIGN COMPONENT tabinfo-fieldname OF STRUCTURE <f_area_new>
                           TO .
      IF NE .
        PERFORM cdpos_init.
        cdpos-tabkey   = .
        cdpos-chngind  = 'U'.
        cdpos-fname    = tabinfo-fieldname.
* nun alles als CHAR abbilden für unicode
        CALL FUNCTION 'CHANGEDOCU_FIELDS_ANY2CHAR'
          EXPORTING
             iv_tabname             = tabinfo-tabname
             iv_fieldname           = tabinfo-fieldname
             iv_value_old_any       =
             iv_value_new_any       =
          IMPORTING
             ev_value_old_char      = cdpos-value_old
             ev_value_new_char      = cdpos-value_new
          EXCEPTIONS
             tabname_is_empty       = 1
             fieldname_is_empty     = 2
             fieldname_not_in_table = 3
             nametab_error          = 4
             OTHERS                 = 5.
        IF sy-subrc <> 0.
          perform err_msg2 using 'CHANGEDOCU_FIELDS_ANY2CHAR '
                                 sy-subrc.
        ELSE.
* In cdpos-value_old und cdpos-Value_new stehen danach die ehemaligen
* ANY-Werte im CHAR-Foramt und können so für unicode
* geschrieben werden(natürlich mit dem Festhalten der Sprache (sy-langu)).

        ENDIF.
      ENDIF.
    ENDIF.
  ENDLOOP.

Hinweise

Wird nur einer der beiden Werte benötigt, so kann der 2. Eingabewert entweder garnicht bei Aufruf angesprochen werden(optional) oder mit Space vorbelegt sein.

Weiterführende Informationen





Parameter

EV_RAWSTRING_NEW
EV_RAWSTRING_OLD
EV_SSTRING_NEW
EV_SSTRING_OLD
EV_STRING_NEW
EV_STRING_OLD
EV_VALUE_NEW_CHAR
EV_VALUE_OLD_CHAR
IV_FIELDNAME
IV_TABNAME
IV_VALUE_NEW_ANY
IV_VALUE_OLD_ANY

Ausnahmen

FIELDNAME_IS_EMPTY
FIELDNAME_NOT_IN_TABLE
NAMETAB_ERROR
TABNAME_IS_EMPTY

Funktionsgruppe

SCD8

CL_GUI_FRONTEND_SERVICES - Frontend Services   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 11175 Date: 20240606 Time: 034651     sap01-206 ( 51 ms )