Manipulation der ALE-Verteilung zum Nachrichtentyp HRMD_A

Manipulation der ALE-Verteilung zum Nachrichtentyp HRMD_A

Postby Yannic4553 » Thu Jun 03, 2004 12:12 pm

Hallo zusammen,

folgendes Problem: Es sollen HR-Personalstammdaten und Organisationsstammdaten (Objekttypen O, S, C, P) mittels Nachrichtentyp HRMD_A und Programm RHALEINI von drei dezentralen Quellsystemen in ein zentrales Zielsystem verteilt werden. Hierbei ist eine Manipulation der Key-Felder (Objekt-ID´s) der zu verteilenden Objekte notwendig (da sich die Nummernkreisintervalle der drei Quellsysteme teilweise überlappen).

Nach langer Suche bin ich auf die SAP-Erweiterung KKCD0001 (Transaktion CMOD) aufmerksam geworden. Mit Hilfe des User-Exit EXIT_SAPFKCIM_001 dieser Erweiterung, ist es möglich, die ALE-Sendestruktur zu beeinflussen.

Leider habe ich nun Probleme mit dem entsprechenden Coding, da ich im ALE-Umfeld nicht so versiert bin. Wie könnte dieses exemplarisch für das beschriebene Szenario aussehen? Der Dokumentation zur Erweiterung entnehme ich folgendes Mustercoding:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *------------------------------------------------------------*
  2. *   INCLUDE ZXKKCU01                                           *
  3. *------------------------------------------------------------*
  4. * transformation of fields for a special data transfer
  5.   s like rkctdeu,        " structure to be used for sender set
  6.   begin of dateval,
  7.     day(2) type c,
  8.     month(6) type c,
  9.     year(2) type c,
  10.   end of dateval,
  11.   begin of sapdate,
  12.     year(4) type c,
  13.     month(2) type c,
  14.     day(2) type c,
  15.   end of sapdate.
  16. case REPID.
  17.   when 'DEUBA'.
  18.     move sender_set to s.           " assign sender_set type s                                      " (i.e., rkctdeu)
  19. * calculation of transport date
  20.     dateval = s-trans_date.
  21.     move dateval-day to sapdate-day.
  22.     concatenate '19' dateval-year into sapdate-year.
  23.     translate dateval-month to upper case.
  24.     if dateval-month cs 'SEP'.
  25.       sapdate-month = '09'.
  26.     else.
  27.       sapdate-month = '10'.
  28.     endif.
  29.     s-trans_date = sapdate.
  30.   when 'DREBA'.
  31. * different treatment of transport date
  32. * ....
  33.   when others.
  34. * special case: unknown sender structure
  35. * ....
  36. move s to sender_set.
  37. * perform the general move:
  38. move sender_set to sender_set_new.
GeSHi ©
Yannic4553
...
...
 
Posts: 121
Joined: Mon Feb 09, 2004 5:40 pm

Postby Fabian1957 » Thu Jun 03, 2004 2:14 pm

Ich habe ein bisschen Zweifel, dass das der richtige Baustein für das ist, was Du vorhast. Ausserdem hätte ich Bedenken, die Schlüssel der Objekte zu ändern (siehe HW 200066)

Meiner Ansicht nach müsste der richtige Baustein zum ändern der ObjektIds in der Erweiterung (Transaktion CMOD) 'RHALE001' enthalten sein. Das sind die User-Exits für den ALE-Ausgang bzw. Eingang.
Der Exit 'EXIT_SAPLRHA0_005' sieht meiner Ansicht nach ganz gut aus, damit kann man im Eingang im Zielsystem Änderungen vornehmen.

Des weiteren gibt es noch einige Bapis zu diesem Thema:
Suchen über SE18 mit HRALE00* ->F4
z.B.: HRALE00OUTBOUND_IDOC (Ausgangsverarbeitung IDOC) oder
HRALE00INBOUND_IDOC.

Wie oben erwähnt ist Hinweis 200066 auch ganz interessant in diesem Zusammenhang.

Hermann
Fabian1957
....
....
 
Posts: 535
Joined: Mon Dec 02, 2002 11:34 am

Postby Alva1590 » Thu Jun 03, 2004 2:28 pm

Hermann hat geschrieben:Ich habe ein bisschen Zweifel, dass das der richtige Baustein für das ist, was Du vorhast.


Hallo Hermann,

vielen Dank für Deine schnelle Antwort. Ich zweifle inzwischen auch! Ich glaub da hatte ich die falsche Spur.

Ich werde mir gleich mal den genannten Exit ansehen. Nochmals Danke und Gruß!
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Yannic4553 » Fri Jun 04, 2004 2:12 pm

Hermann hat geschrieben:Der Exit 'EXIT_SAPLRHA0_005' sieht meiner Ansicht nach ganz gut aus, damit kann man im Eingang im Zielsystem Änderungen vornehmen.
Hermann


Hallo Hermann,

vielleicht könntest Du mir nochmals unter die Arme greifen? Ich habe mich nun für den Funktionsbaustein EXIT_SAPLRHAL_001 entschieden, d. h. ich möchte die Key-Felder wie oben beschrieben in der ALE-Ausgangverarbeitung im Quellsystem manipulieren.

Jetzt stoße ich auf folgendes Problem. Vorab mein Coding hierzu:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *&---------------------------------------------------------------------*
  2. *&  Include           ZXHALU02                                         *
  3. *&---------------------------------------------------------------------*
  4. DATA: wa_pd_infty       TYPE  wplog,
  5.       wa_pa_infty       TYPE  prelp.
  6.  
  7.  
  8. CASE pnnnn_name.
  9.  
  10. *--- Infotyp Objekt (1000) ---*
  11.   WHEN 'P1000'.
  12.     MOVE-CORRESPONDING pnnnn_data TO wa_pd_infty.
  13.  
  14. **** Daten manipulieren
  15.     wa_pd_infty-objid(3) = '123'.
  16.  
  17.     CLEAR: sdata_data.
  18.     MOVE: wa_pd_infty TO sdata_data.
  19.  
  20.  
  21.  
  22. *--- Infotyp Verknüpfungen (1001) ---*
  23.   WHEN 'P1001'.
  24.     MOVE-CORRESPONDING pnnnn_data TO wa_pd_infty.
  25.  
  26. **** Daten manipulieren
  27.     wa_pd_infty-objid(3)   = '123'.
  28.     wa_pd_infty-varyf+2(3) = '123'.
  29.     wa_pd_infty-vdata+2(3) = '123'.
  30.  
  31.     CLEAR: sdata_data.
  32.     MOVE: wa_pd_infty TO sdata_data.
  33.  
  34.  
  35. *--- alle anderen Infotypen ---*
  36.   WHEN OTHERS.
  37.     MOVE-CORRESPONDING pnnnn_data TO wa_pa_infty.
  38.  
  39. **** Daten manipulieren
  40.     wa_pa_infty-pernr(3) = '123'.
  41.  
  42.     CLEAR: sdata_data.
  43.     MOVE: wa_pa_infty TO sdata_data.
  44.  
GeSHi ©


Im Zielsystem kommen die Objekte (z. B. eine Person) nun nicht korrekt an. :cry:

Wenn ich etwa die Person mit der Personnummer 90000007 im Quellsystem im Zielsystem überprüfe, dann ist diese zwar unter der manipulierten Personalnummer (12300007) angelegt, die eigentlichen Daten sind jedoch in den entsprechenden Datenbanktabellen (z. B. PA0001, PA0002) "verzerrt". Das bedeutet, die Informationen sind nicht in den korrekten Datenfeldern der Datenbanktabelle gelandet?!

Mache ich etwas beim Manipulieren falsch? Problematisch ist, dass man die zu ändernden Datenfelder in der workarea sdata_data nicht konkret ansprechen kann, da sdata_data aus einem einzigen itab-feld vom Typ C mit der Länge 3000 besteht.

Vielen Dank für Deine Unterstützung!

Gruß und schönes Wochenende!
Yannic4553
...
...
 
Posts: 121
Joined: Mon Feb 09, 2004 5:40 pm


Return to Human Resources

Who is online

Users browsing this forum: No registered users and 3 guests