Idoc HRMD i Change Pointer

W tym miejscu możesz zadawać pytania oraz dyskutować na temat modułów kadrowo płacowych SAP.
ODPOWIEDZ
wojtas7
Posty: 1061
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 71 times
Been thanked: 315 times

Idoc HRMD i Change Pointer

Post autor: wojtas7 »

Czy jeśli change pointery są skonfigurowane poprawnie, i zmiana np infotypu 0105 w PA30 powoduje wysłanie idoca do innego systemu, to czy jeśli zmiana infotypu 0105 zostanie zmieniona poprzez przyjęcie idoca HRMD z danymi infotypu 0105, to czy ten Change Pointer powinien również zadziałać i wygenerować innego idoca z change pointera?
dominik.tylczynski
Posty: 8353
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1924 times
Been thanked: 1477 times
Kontakt:

Re: Idoc HRMD i Change Pointer

Post autor: dominik.tylczynski »

IMHO, nie. To byłoby trochę nielogiczne.
wojtas7
Posty: 1061
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 71 times
Been thanked: 315 times

Re: Idoc HRMD i Change Pointer

Post autor: wojtas7 »

ale jeśli PA30 uruchamia na koncu BAPI, a inbound f. module przetwarza przychodzacego idoca i tez uruchamia to BAPI, to dlaczego ma to nie działać? I czemu nielogiczne? Zmiana na tabeli to zmiana.
dominik.tylczynski
Posty: 8353
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1924 times
Been thanked: 1477 times
Kontakt:

Re: Idoc HRMD i Change Pointer

Post autor: dominik.tylczynski »

wojtas7 pisze:ale jeśli PA30 uruchamia na koncu BAPI, a inbound f. module przetwarza przychodzacego idoca i tez uruchamia to BAPI, to dlaczego ma to nie działać?
Jeśli utworzenie infotypu z IDoc'a utworzy change pointer to zadziała. Nie wiem czy utworzy - to trzeba by sprawdzić. Daj znać jak sprawdzisz.
wojtas7 pisze: I czemu nielogiczne? Zmiana na tabeli to zmiana.
Change pointer'y służą do centralnego zarządzania danymi podstawowymi i dystrybucji zmian z systemu wiodącego do systemów zależnych. W takim układzie powinien być jeden system wiodący, gdzie opracowujesz dane podstawowe, które są wysyłane do potencjalnie wielu systemów zależnych. Jeśli przetworzenie IDoc'a w systemie odbiorczym tworzyłoby change pointer'y to ten system odbiorczy (zależny) stałby się systemem nadawczym (wiodącym) dla kolejnego systemu. Taki układ systemów stałby się dosyć skomplikowany. Powstałby taki łańcuszek systemów kolejno przesyłających do siebie zmiany danych. Dlatego uważam, że lepiej i logiczniej mieć jeden system nadawczy.
wojtas7
Posty: 1061
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 71 times
Been thanked: 315 times

Re: Idoc HRMD i Change Pointer

Post autor: wojtas7 »

wszystko jasne, ale sa takie sytuacje, gdzie np adresy mailowe sa utrzymywane poza SAPem np w Exchange, ktory nowe adresy email poprzez PI (idoc HRMD) wysyla infotyp 105 do jednego mandanta. A na innym mandancie te dane sa rowniez potrzebne, wiec Change Pointer powinien wyslac jeszcze raz te dane z mandanta na mandant. Oczywiscie na docelowym mandancie juz nie ma Change Pointera aktywnego. Chyba ze change pointera sa niezalezne od mandanta???
dominik.tylczynski
Posty: 8353
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1924 times
Been thanked: 1477 times
Kontakt:

Re: Idoc HRMD i Change Pointer

Post autor: dominik.tylczynski »

Masz rację - aktywacja change pointer'ów dla komunikatu jest tutaj kluczem. W systemie odbiorczym change pointer'y powinny być wyłączone dla HRMD. Wtedy zmiana wprowadzona IDoc'iem nie będzie się dalej propagować. Aktywacja change pointer'ów jest zależna od mandanta. W kontekście ALE mandant to system logiczny. Zatem przesyłanie danych między mandantami tej samej instancji, a między mandantami na różnych instancjach jest identyczne.
wojtas7
Posty: 1061
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 71 times
Been thanked: 315 times

Re: Idoc HRMD i Change Pointer

Post autor: wojtas7 »

Dominik, moje uznanie, miałeś rację "na czuja":


f. module RH_INFTY_CHANGE_PROT:

Kod: Zaznacz cały

* write change pointers only in dialog, not in ALE inbound process
CALL FUNCTION 'RHAP_ALE_FLG_GET'
IMPORTING
ale_flg = ale_inbound_active.
CHECK ale_inbound_active IS INITIAL.
dziwne nie? :-)

pozostało mi wykorzystanie user exita w inbound f. module, i zbudowanie nowego idoca typu outbound z wymaganym infotypem i wysłanie do innego mandanta. powinno zadzialac, tym bardziej ze bedzie dobrze jak bedzie sie wysylal tylko jesli oryginalny idoc dostanie status 53, a wiec commit work poleci.

dziękuję
dominik.tylczynski
Posty: 8353
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1924 times
Been thanked: 1477 times
Kontakt:

Re: Idoc HRMD i Change Pointer

Post autor: dominik.tylczynski »

Może zamiast pisać własny typ IDoc'a zakomentuj po prostu linię:

Kod: Zaznacz cały

CHECK ale_inbound_active IS INITIAL.
wojtas7
Posty: 1061
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 71 times
Been thanked: 315 times

Re: Idoc HRMD i Change Pointer

Post autor: wojtas7 »

modyfikacja standardu? cel uświęca środki. ale pomysł jest. dzięki.
nie chodzilo mi o wysylanie wlasnego typu idoca, tylko standardowego, tylko wyslac go na inny mandant.
dominik.tylczynski
Posty: 8353
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1924 times
Been thanked: 1477 times
Kontakt:

Re: Idoc HRMD i Change Pointer

Post autor: dominik.tylczynski »

Modyfikacja standardu, zwłaszcza taka drobna, z wykorzystaniem asystenta modyfikacji jest w sumie łatwiejsza w utrzymaniu niż porządny kawałek własnego Z-developmentu: Modyfikacja czy kopia standardu? No chyba, że masz do czynienia ze "standardami" programowania, których musisz się trzymać - z tym to już raczej nie podyskutujesz.
dominik.tylczynski
Posty: 8353
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1924 times
Been thanked: 1477 times
Kontakt:

Re: Idoc HRMD i Change Pointer

Post autor: dominik.tylczynski »

wojtas7 pisze:wszystko jasne, ale sa takie sytuacje, gdzie np adresy mailowe sa utrzymywane poza SAPem np w Exchange, ktory nowe adresy email poprzez PI (idoc HRMD) wysyla infotyp 105 do jednego mandanta. A na innym mandancie te dane sa rowniez potrzebne.
A może najprościej byłoby ustawić PI, tak aby wysyłał IDoc'i do wszystkich systemów, które potrzebują tych danych. Wtedy nie musiałbyś nic przerabiać czy oprogramowywać. Byłoby to rozwiązanie zgodne z duchem SAP.
ODPOWIEDZ