Code: Alles auswählen.
Löschen der Schlüsselfelder in <row_en> und <row_de> ( diesmal inkl. Sprachfeld )
* Schauen, ob der Rest nun gleich ist, da du das ja auch nicht haben willst
* if gleich.
* write:/ 'Eintrag identisch',
* <row_de>.
* endif.
Code: Alles auswählen.
data: dref type ref to data,
keys type standard table of fieldname,
key type fieldname,
where_rlang type string,
where_clang type string.
data error type ref to cx_root.
data: collines(800) type c.
field-symbols: <t_rlang> type hashed table,
<t_clang> type hashed table,
<row_rlang> type any,
<keys> type abap_sortorder,
<row_clang> type any,
<key> type fieldname.
Code: Alles auswählen.
loop at <t_rlang> assigning <row_rlang>.
read table <t_clang> from <row_rlang> assigning <row_clang>.
if sy-subrc <> 0.
write:/ `In Customizingtabelle `,t_name, ` ist der Datensatz `, <row_rlang>, ` nicht vorhanden!`.
else.
loop at keys assigning <key>.
<row_rlang>-<key> = ''.
<row_clang>-<key> = ''.
endloop.
Code: Alles auswählen.
loop at <t_rlang> assigning <row_rlang>.
read table <t_clang> from <row_rlang> assigning <row_clang>.
if sy-subrc <> 0.
write:/ `In Customizingtabelle `,t_name, ` ist der Datensatz `, <row_rlang>, ` nicht vorhanden!`.
else.
loop at keys assigning <key>.
assign component <key> of structure <row_rlang> to <ld_field>.
<ld_field> = ''.
assign component <key> of structure <row_clang> to <ld_field>.
<ld_field> = ''.
endloop.
endif.
endloop.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Spookykid
Der Mandt ist ja C oder NUM Type, kann man den Wert auf initial setzen?A new value is to be assigned to the field "<LD_FIELD>", although this field is
entirely or partly protected against changes.
The following are protected against changes:
- Character literals or numeric literals
- Constants (CONSTANTS)
- Parameters of the category IMPORTING REFERENCE for functions and
methods
- Untyped field symbols not yet assigned a field using ASSIGN
- TABLES parameters if the actual parameter is protected against changes
- USING reference parameters and CHANGING parameters for FORMs, if the
actual parameter is protected against changes and
- Accesses using field symbols if the field assigned using ASSIGN is
protected (or partially protected, e.g. key components of an internal
table with the type SORTED or HASHED TABLE) against changes
- Accesses using references, if the field bound to the reference is
protected (or partially protected) against changes
- External write accesses to READ-ONLY attributes,
- Content of a shared object area instance accessed using a shared lock
(ATTACH_FOR_READ).
gemeint ist.- Accesses using field symbols if the field assigned using ASSIGN is
protected (or partially protected, e.g. key components of an internal
table with the type SORTED or HASHED TABLE) against changes
Irgendwie versteh ich dich immer weniger. Wenn die Bezeichnung Teil des Schlüssels ist - wie willst du dann prüfen, ob es einen zugehörigen portugiesischen Eintrag gibt? Oder hast du ein Wörterbuch im Hintergrund mit dem du das erledigen kannst?Ein weiteres Problem bleibt bestehen, was mache ich, wenn die Bezeichnung (weswegen ich die Überprüfung überhaupt mache) ebenfalls ein Key-Field ist?
Mach bei deiner Feldsymboldefinition das HASHED weg und verwende nur TABLE, dann gehts!Spookykid hat geschrieben:MOVE_TO_LIT_NOTALLOWED_NODATA
Code: Alles auswählen.
create data ... type standard table of ... with default key.
* oder
lr_line ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( P_NAME = ... ).
lr_table = CL_ABAP_TABLEDESCR=>CREATE( P_LINE_TYPE = lr_line ).
create data ... type handle lr_table.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Spookykid