Rozszerzyć granice

Podczas wdrożenia systemu mySAP HR prędzej czy później napotkamy wyzwania programistyczne. Mimo że moduł jest elastyczny i daje się relatywnie łatwo dostosowywać do wymagań danej firmy, często pojawiają się oczekiwania, które można spełnić tylko za pomocą rozszerzeń standardu.

Dla znających choć trochę specyfikę projektów mySAP HR na pewno nie obce będą zagadnienia:

  • tworzenia nowych infotypów,
  • modyfikacji istniejących infotypów (dodawanie nowych pól i zmiana logiki),
  • definiowania zdarzeń dynamicznych,
  • to tylko część zagadnień z pogranicza biznesu i programowania, które mogą pojawić się podczas projektu.

„Granice mojego języka oznaczają granice mego świata”

Parafrazując tę myśl – wiedza o module określa nasze możliwości jego rozwijania. mySAP HR ma swoją specyfikę. Analogia do języka nie jest tutaj przypadkowa – pojęcia infotypu, przeliczeń retroaktywnych lub cech (ang. features) dla nowicjuszy są wyzwaniem podobnym do początków nauki języka obcego.

Warto wspomnieć, że na potrzeby HR twórcy środowiska rozwojowego SAP zdefiniowali kilka nowych konstrukcji języka ABAP.

Nie wyważać otwartych drzwi

Programiści przygotowujący rozwiązania dla modułów systemu SAP potwierdzą, że HR jest komponentem, który ze względu na różnorodność oczekiwań Klientów wymaga często zaawansowanych prac rozwojowych. Efekty ich wysiłków są prostsze i niezawodne, gdy w parze z umiejętnościami programistycznymi idzie elementarna wiedza o specyfice modułu HR.

Każde wyzwanie programistyczne można podjąć na kilka sposobów. Nie warto wyważać już otwartych drzwi, poświęcenie odrobiny energii na poznanie podstawowych mechanizmów mySAP HR zwróci się z nawiązką.

Poniżej krótka lista zagadnień, których poznanie polecam rozwijającym moduł HR:

  • infotypy, metody tworzenia i rozszerzania,
  • ograniczenia czasowe (ang. time constraints),
  • rozszerzenia HR (szczególnie PBAS0001),
  • cechy HR,
  • logiczne bazy danych dla HR (w szczególności PNP),
  • zdarzenia dynamiczne (ang. dynamic events).

Biorącym udział w projekcie mySAP HR, niezależnie od roli (analityk, użytkownik kluczowy, programista, kierownik projektu), dla których powyższe hasła brzmią enigmatycznie, należy się kilka słów wyjaśnień.

Infotypy

Centralną rolę w systemie mySAP HR pełni pracownik (lub kandydat w module Rekrutacji), którego identyfikuje się 8-cyfrowym numerem osobowym. Numer ten nie jest przechodni – towarzyszy osobie przez cały cykl zatrudnienia (nawet po zwolnieniu pracownika).

Dane kadrowe i płacowe są przechowywane w rekordach tzw. typów informacji (infotypów). Z punktu widzenia użytkownika infotyp jest ekranem logicznie powiązanych danych (np. Dane osobowe, Przypisanie organizacyjne, Adres). Z perspektywy programisty koncepcja infotypu jest bardziej złożona – jest to agregat tabel, struktur i programów.

W mySAP HR występują różne rodzaje infotypów – w Administracji Kadrami infotypy opisują osoby, w Zarządzaniu Organizacją zawierają charakterystyki obiektów organizacyjnych takich jak jednostka organizacyjna, stanowisko itp.

Rozróżnienie to jest istotne dla programistów ze względu na inną reprezentację obu rodzajów w Słowniku danych oraz inne narzędzia wspierające ich tworzenie i rozszerzanie.

Dalej skupimy się na infotypach Administracji Kadrami, dla których powstaje najwięcej rozszerzeń. Infotypy mają swoje 4-cyfrowe numery, np. 0001 (Przypisanie organizacyjne) czy 0002 (Dane osobowe).

Zakres numeracyjny 9000-9999 jest zarezerwowany dla infotypów klienckich (niestandardowych, tworzonych na potrzeby konkretnej firmy). Mimo wielości dostępnych w systemie typów informacji często istnieje potrzeba zdefiniowania nowych. I tutaj pojawia się pole do popisu dla programistów. Transakcją wspierającą tworzenie nowych i rozszerzanie standardowych infotypów jest PM01.

Ograniczenia czasowe

Każdy rekord infotypu Administracji Kadrami ma okres ważności (datę początkową i końcową), co pozwala na utrzymywanie w systemie historii informacji o pracowniku.

Niezwykle przydatnym mechanizmem w mySAP HR są tzw. ograniczenia czasowe, które definiują zależności pomiędzy rekordami tego samego typu informacji (dopuszczalność istnienia kilku rekordów tego samego infotypu w tym samym okresie dla tej samej osoby).

Celem ograniczeń czasowych jest zagwarantowanie integralności danych. Na przykład w danym przedziale czasowym pracownik powinien mieć tylko jeden rekord infotypu Dane osobowe. Ograniczenie czasowe definiuje się dla każdego typu informacji jako parametr w tabeli konfiguracyjnej (ograniczenia są identyfikowane jednym znakiem: 1, 2, 3, A, B, T).

Przykładowo ograniczenie 1 oznacza, że podczas istnienia numeru osobowego w naszej organizacji w systemie musi być 1 ważny rekord danego infotypu (np. Dane osobowe). Utworzenie nowego rekordu powoduje ograniczenie poprzedniego, tak by uniknąć nakładania się. Ograniczenie 2 działa podobnie jak 1, ale istnienie rekordu nie jest obowiązkowe (np. Pożyczki).

Dla infotypu z ograniczeniem 3 może istnieć kilka nakładających się rekordów, a luki są dozwolone (np. Inni/poprzedni pracodawcy, Wykształcenie). Zainteresowanych znaczeniem pozostałych ograniczeń czasowych odsyłam do dokumentacji.

Rozszerzenia HR

Rozszerzenia HR są tematem na książkę, tutaj wspomnę tylko o podstawowym – PBAS0001, najczęściej wykorzystywanym w projektach HR. Narzędzie to można wykorzystać, by umieścić własny kod w blokach PBO (Process Before Output) lub PAI (Process After Input) infotypu. Upraszczając – możemy zmienić zachowanie się infotypu w momencie uruchomienia jego ekranu (PBO) lub po wprowadzeniu danych (PAI).

Często za pomocą tego rozszerzenia wypełnia się wybrane pola ekranu infotypu wartościami domyślnymi, tak aby zwolnić użytkownika z ich ręcznego wprowadzania.

Cechy HR

Cechy są obiektami specyficznymi dla mySAP HR – ich zadaniem jest zwracanie wartości na podstawie analizy wybranych pól (infotypów lub parametrów systemowych). Kod zwracany przez cechę (zwykle jest to wartość parametru) jest wykorzystywany do sterowania procesami HR lub ustawiania wybranych pól infotypów.

Na przykład cecha o nazwie ABKRS na podstawie wybranych informacji o pracowniku (np. na podstawie podgrupy i grupy pracowniczej) wypełnia pole Obszar rozliczenia w infotypie Przypisanie organizacyjne domyślną wartością.

mySAP HR ma wiele standardowych cech, które można konfigurować, oraz oferuje możliwość tworzenia nowych. Cechy edytuje się za pomocą transakcji PE03.