Ansicht
Dokumentation

CL_HRPA_MESSAGE_FIELDS_REMAP - HR: Stammdaten Messagehandling,Feldzuordnung

CL_HRPA_MESSAGE_FIELDS_REMAP - HR: Stammdaten Messagehandling,Feldzuordnung

General Data in Customer Master   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Folgendes Problem kann bei der Meldungsbehandlung aufteten.

Ein Aufrufer übergibt ein Feld z.B. WAERS an einen Funktionsbaustein der dieses Feld unter einem anderen Namen importiert z.B. CURRENCY_KEY. Falls der Funktionsbaustein eine Meldung an den Meldungsbehandler IF_HRPA_MESSAGE_HANDLER übergibt, dann wird dieses Feld natürlich unter dem Namen CURRENCY_KEY übergeben. Der Funktionsbaustein kann schliesslich nicht ermitteln, daß der Aufrufer stattdessen WAERS erwartet. Leider ist CURRENCY_KEY aber für den Aufrufer nutzlos.

Um nun eine Möglichkeit zu schaffen dies doch zu bewerkstelligen existiert die Klasse CL_HRPA_MESSAGE_FIELDS_REMAP.

Objekte von CL_HRPA_MESSAGE_FIELDS_REMAP werden immer mit einem Message Handler vom Typ IF_HRPA_MESSAGE_HANDLER parametriesiert.

Direkt nach der Objekterzeugung bzw. nach dem Aufruf der Methode INITIALIZE delegieren sie alle Aufrufe von IF_HRPA_MESSAGE_HANDLER sofort an die bei der Objekterzeugung übergeben Instanz weiter. Mit anderen Worten: Feldlisten werden per Default unverändert übernommen.

Will man Felder auf andere Abbilden so kann man mit EXTEND_REMAPPING diese Abbildungen hinzufügen.

Der Parameter SOURCE_NAME gibt dabei an wie das Feld bei der Übergabe heißt, TARGET_NAME gibt den gewünschten Feldnamen an.

In obigem Beispiel wäre SOURCE_NAME = 'CURRENCY_KEY' und TARGET_NAME = 'WAERS', d.h. die Meldung wird für CURRENCY_KEY erzeugt und dann mit 'WAERS' an den Messagehandler weitergereicht.

Falls mehr als ein Feld auf einmal abgebildet werden soll bzw. nach und nach weitere Beziehungen hinzukommen sollen, so kann das durch mehrfaches Aufrufen von EXTEND_REMAPPING erzielt werden.

Eine leere Feldliste wird immer auf die Gesamtheit alle Einträge abgebildet. Um hierzu Dummy-Einträge zu erzeugen sollten Einträge mit SOURCE_NAME = SPACE erzeugt werden.

Beziehungen

Beispiel

DATA message_handler TYPE REF TO cl_hrpa_message_list.
DATA remapper TYPE REF TO cl_hrpa_message_fields_remap.


CREATE OBJECT message_handler.

CREATE OBJECT remapper
EXPORTING
message_handler = message_handler.

CALL METHOD extend_remapping
EXPORTING :
source_name = 'FIELD_1'
target_name = 'FIELD_A',

source_name = 'FIELD_1'
target_name = 'FIELD_B',

source_name = 'FIELD_2'
target_name = 'FIELD_B',

source_name = space
target_name = 'FIELD_C'.

Bei Aufruf der Methode remapper->if_hrpa_message_handler~add_message wird die Feldliste vor dem Weiterreichen an message_handler jeweils wie folgt geändert.

  • FIELD_1 wird auf FIELD_A und FIELD_B abgebildet.
  • FIELD_2 wird auf FIELD_B abgebildet.
  • FIELD_3 wird nicht verändert, d.h. steht als FELD_3 in im Ergebnis.
  • Eine Liste mit FIELD_1 und FIELD_2 wird auf FIELD_A und FIELD_B abgebildet.
  • Eine leere Feldliste wird auf FIELD_A, FIELD_B und FIELD_C abgebildet.

Hinweise

Wenn es nur darum geht Strukturnamen zu ändern, so ist CL_HRPA_MESSAGE_STRUCT_REMAP besser geeignet.

Die Methode EXTEND_REMAPPING wurde absichtlich nicht mit Tabellenparametern ausgestattet. Grund hierfüt ist, daß es in ABAP nicht ohne viel Schreibarbeit möglich ist strukturierte Tabellen zu füllen. Die verwendete Schnittstelle erlaubt es unter Verwendung von ":" die Schreibarbeit zu reduzieren. Allerdings geht dies etwas zu kosten der Laufzeit. Aus diesem Grund wird empfohlen den Remapper nicht dauernd neu aufzubauen sondern einmal zu erzeugen und dann solange wie möglich immer wieder zu verwenden.

Für Entwickler könnte es sehr viel einfacher sein anstelle der Dokumentation die Implementation der Methode ADD_MESSAGE anzuschauen.

Weiterführende Informationen






BAL_S_LOG - Application Log: Log header data   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 4404 Date: 20240425 Time: 070135     sap01-206 ( 90 ms )