Ansicht
Dokumentation
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 R3upDiese Dokumentation steht unter dem Copyright der SAP AG.
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:
* 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
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_NEWEV_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_EMPTYFIELDNAME_NOT_IN_TABLE
NAMETAB_ERROR
TABNAME_IS_EMPTY
Funktionsgruppe
SCD8CL_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 )