Instrukcja administratora > Import Inelo > Konfiguracja pliku ImportIneloConfig.xml | | Drukuj |
Konfigurację programu znajduje się w pliku ImportIneloConfig.xml, w katalogu z program ImportInelo.exe. Plik podzielony jest na 4 sekcje:
1.System
Sekcja zawiera konfigurację domyślnych parametrów wywołania programu.
•R2PBin – Określa ścieżkę do katalogu BIN programu R2P. Domyślna ścieżka przy standardowej instalacji R2P to „C:\Symfonia\Platnik.10x\BIN”.
•IdFirmy - Określa domyślne ID firmy w R2P, dla której przeprowadzany ma być import
•KatalogZrodlowy – Określa domyślny katalog, z którego program ma sczytywać pliki XML do importu
•ZakonczNa – Określa domyślny etap wykonania programu, na którym program ma zakończyć działanie. Wartość „-” oznacza, iż program ma wykonać się do końca. Poniżej lista dostępnych etapów.
oWeryfikacja uprawnień (WER_UPR)
oWeryfikacja konfiguracji (WER_KONF)
oWeryfikacji pliku z danymi wejściowym (WER_DANE)
oWalidacja importu (WAL_IMP)
oImport danych
•BezR2P – Określa czy domyślnie program ma autoryzować się do R2P. Należy tu podać wartość „TAK” lub „NIE”. Podanie wartości „TAK” sprawi, że domyślnie program będzie pomijał etapy „Weryfikacja uprawnień” i „Import danych”
•BezInterfejsu - Pozwala wywołać program bez wyświetlania GUI (pasek postępu, komunikat o zakończeniu przetwarzania). Przyjmuje wartość „TAK” lub „NIE”.
•TrybImportu – Określa domyślny tryb importu. Dostępne tryby importu:
oNADPISUJ – określa, że import składników będzie odbywał się w trybie nadpisywania, zatem jeśli program wykryje, że dany składnik już istnieje, to nadpisze go, zamiast tworzyć nowy
oDODAWAJ – określa, że import składników będzie odbywał się w trybie dodawania, zatem jeśli program wykryje, że dany składnik już istnieje, zignoruje to i doda go drugi raz zgodnie z danymi importu.
oTYLKO_NADPISUJ – określa, że import składników nie będzie dodawał nowych składników dla pracowników, a jedynie nadpisywał aktualnie dodane
•TylkoDokladnePokrycia – W przypadku trybów importu “NADPISUJ” i "TYLKO_NADPISUJ” można zmodyfikować sposób rozpoznawiania składników okresowych do nadpisania. Wprowadzenie w tym miejscu wartości “TAK” spowoduje, że nadpisane zostaną tylko te składniki, które pokryją się dokładnie z datami importowanych składników. Wartość “NIE” pozwala w polu poniżej (“ProcentPokrycia”) ustawić w jakim procencie daty te muszą się pokryć, aby doszło do nadpisania.
Porównywanie dat zachodzi tylko pomiędzy składnikami o tych samych identyfikatorach.
•ProcentPokrycia - Jeśli “TylkoDokladnePokrycia” ustawione jest na "NIE” liczba wprowadzona w tym polu określa w jakim procencie daty składników okresowych w systemie R2Płatnik muszą pokryć się z datami importowanych składników aby nadpisać składnik.
Porównywanie dat zachodzi tylko pomiędzy składnikami o tych samych identyfikatorach.
Sekcja pozwala określić sposób kojarzenia pracowników z Inelo z pracownikami w R2Pu. Sposób kojarzenia definiuje się tu poprzez zestaw zasad wykorzystywania określonych pól.
Dostępne pola do zdefiniowania sposobu kojarzenia:
•X_I – Id wewnętrzny pracownika w R2P (w GUI - pole 'Ide')
•Identyfikator - Identyfikator pracownika w R2P (w GUI - pole 'Identyfikator')
•Imie – Imię pracownika
•Nazwisko – Nazwisko pracownika
•PESEL – PESEL pracownika
•NrKartyRCP – Numer karty RCP pracownika
Przykład mapowania pracowników
<MapowaniePracowników>
<ZestawMapujacy priorytet="1">
<X_I>TAK</X_I>
<Imie>NIE</Imie>
<Nazwisko>NIE</Nazwisko>
<Identyfikator>NIE</Identyfikator>
<Pesel>NIE</Pesel>
<NrKartyRCP>NIE</NrKartyRCP>
</ZestawMapujacy>
<ZestawMapujacy priorytet="2">...</ZestawMapujacy>
<ZestawMapujacy priorytet="3">...</ZestawMapujacy>
</MapowaniePracowników>
W powyższym przykładzie priorytet określa kolejność zestawów. Program zatem najpierw spróbuje skojarzyć pracownika w oparciu o zasady w zestawie:
●z priorytetem „1” (np. wg pola Identyfikator),
●w przypadku niepowodzenia z priorytetem „2” (np. wg pola PESEL) itd.
W przypadku niepowodzenia poszukiwania pracownika wg wszystkich reguł wyświetlony zostanie błąd. Każdy priorytet powinien występować max. jeden raz.
Wartość „NIE” dla każdego z podanych pól jest wartością domyślną. Przykład zestawu z priorytetem „1” można zdefiniować krócej:
<ZestawMapujacy priorytet="1">
<X_I>TAK</X_I>
</ZestawMapujacy>
Mapowanie składników wynagrodzeń
Sekcja pozwala określić przyporządkowanie składników w Inelo do odpowiadających im składników wynagrodzeń w R2P.
Każda definicja mapowania składnika składa się z 4 pól:
•Nazwa - nazwa informacyjna składnika wykorzystywana w przypadku informowania o błędach związanych bezpośrednio z tym składnikiem
•NrInelo – Numer składnika w Inelo, np. 7
•IdR2P – Id wewnętrzny składnika płacowego w R2P, np. 124
•SumujKwotyDlaIdentycznychOkresow - określa zachowanie programu dla danego składnika, jeżeli pracownik ma w imporcie wielokrotnie ten składnik z identycznym okresem od – do. Dla wartości NIE program doda ten składnik do R2Płatnika tyle razy i z takimi kwotami z jakimi składnik ten wystąpił. Dla wartości TAK wszystkie te kwoty zostaną zsumowane do jednego wpisu. UWAGA: Tag nie jest wymagany. Jeśli go nie podamy, domyślnie przyjęta wartość dla pola to “NIE”
Przykład mapowania pracowników:
<MapowanieSkladnikow>
<Skladnik>
<Nazwa>Stawka Miesięczna</Nazwa>
<NrInelo>7</NrInelo>
<IdR2P>124</IdR2P>
<SumujKwotyDlaIdentycznychOkresow>NIE</SumujKwotyDlaIdentycznychOkresow>
</Skladnik>
<Skladnik>...</Skladnik>
</MapowanieSkladnikow>
Mapowanie diet wirtualnych
W tej samej sekcji znajduje się również definicja mapowania „Diet wirtualnych” na jeden konkretny składnik wynagrodzenia R2P. Jest ona umieszczona pod specjalnym kodem 'NrInelo' równym -1. Domyślna definicja widoczna jest poniżej:
<MapowanieSkladnikow>
...
<Skladnik>
<Nazwa>Dieta wirtualna</Nazwa>
<IdR2P>Id z R2P</IdR2P>
<NrInelo>-1</NrInelo>
<SumujKwotyDlaIdentycznychOkresow>NIE</SumujKwotyDlaIdentycznychOkresow>
</Skladnik>
</MapowanieSkladnikow>
Wartość „-1” w polu „NrInelo” koresponduje z numerem zdefiniowanym dla tego składnika w sekcji „Mapowanie Źródłowego XML”.
<DietaWirtualna>
...
<NrSkladnika wartosc="TAK">-1</NrSkladnika>
...
</DietaWirtualna>
Jeśli zdecydujemy się zmienić zatem wartość numeru składnika diety wirtualnej w sekcji „Mapowanie Źródłowego XML”, musimy zaktualizować również wartość dla składnika diet wirtualnych w „Mapowanie Składników”.
Sekcja zawiera konfigurację odczytywania istotnych dla programu danych z pliku wejściowego XML wygenerowanego przez Inelo. W przeciwieństwie do poprzednich sekcji, tu zamiast wprowadzania wartości, wprowadzone są zapytania zgodne z formatem biblioteki XPath, służące do przeszukiwania pliku źródłowego pod kątem wyciągnięcia zdefiniowanych wartości.
W celu zmodyfikowania wartości w tej sekcji, należy zapoznać się najpierw z dokumentacją tworzenia zapytań w formacie XPath.
Uwagi
1. Jeśli podsekcja zawiera tag „TagGlowny”, to wszystkie zapytania w sekcji powinny być pisane relatywnie do zapytania podanego w „TagGlowny”.
2. Jeśli zamiast zapytania chcemy na sztywno wprowadzić w którymś polu wartość, możemy przypisać w tym celu atrybut „wartosc” równy „TAK”. Przykład poniżej.
<DietaWirtualna>
...
<NrSkladnika wartosc="TAK">-1</NrSkladnika>
...
</DietaWirtualna>
Przykład konfiguracji mapowania XML
Poniżej przedstawiony jest pełny przykład konfiguracji importera dla plików XML w formacie eksportu z Inelo w wersji 4.6.2.3. W dalszej części dokumentu każda z sekcji zostaje dokładnie objaśniona.
<MapowanieZrodlowegoXML>
<ZakresOd>/Eksport/@zakres_od</ZakresOd>
<ZakresDo>/Eksport/@zakres_do</ZakresDo>
<Pracownik>
<TagGlowny>/Eksport/TRozKierowca</TagGlowny>
<!-- Zaleca się używać ścieżek relatywnych do Taga Głownego -->
<!-- Wpisz kwerendę XPath lub '?' jeśli wybrane pole ma nie być odczytywane -->
<X_I>kod_r2_platnik</X_I>
<Imie>imie</Imie>
<Nazwisko>nazwisko</Nazwisko>
<Identyfikator>kod_uniwersalny_eksport</Identyfikator>
<Pesel>pesel</Pesel>
<NrKartyRCP>numer_karty</NrKartyRCP>
<!-- Mapowanie listy składników płacy danego pracownika -->
<SkladnikPlacy>
<!-- Ścieżka relatywna do TagGlowny Pracownika -->
<TagGlowny>TRozKalendarz/TRozListaPlaca/TRozPlaca/RozListaSklPlaca/TRozSklPlaca</TagGlowny>
<!-- Zaleca się używać ścieżek relatywnych do Taga Głownego -->
<NrSkladnika>typ/wartosc</NrSkladnika>
<Kwota>kwota</Kwota>
<ZakresOd>parent::RozListaSklPlaca/parent::TRozPlaca/data_od</ZakresOd>
<ZakresDo>parent::RozListaSklPlaca/parent::TRozPlaca/data_do</ZakresDo>
</SkladnikPlacy>
<DietaWirtualna>
<TagGlowny>TRozKalendarz/TRozListaPlaca/TRozPlaca/ListaDietaWirtualna/TD1DietaWirtualna</TagGlowny
<!-- Nr skladnika dla diety wirtualnej ustalony na sztywno poniżej (używany do mapowania z R2Płatnikiem) -->
<NrSkladnika wartosc="TAK">-1</NrSkladnika>
<!-- Sumujemy kwoty wprowadzone na liście -->
<Kwota>sum(ListaRozliczenieDietaWirtualna/TDlRozliczenieDietaWirtualna/wyl_kwota_PLN)</Kwota>
<ZakresOd>data_od</ZakresOd>
<ZakresDo>data_do</ZakresDo>
</DietaWirtualna>
</Pracownik>
</MapowanieZrodlowegoXML>
Poziom główny
Na głównym poziomie konfiguracji pierwsze dwa pola to "ZakresOd" i "ZakresDo". Te dwa pola są jedynie informacyjne pod kątem raportów, nie uczestniczą w faktycznym imporcie. Domyślnie są ustawione, aby pobierać wartości z tag "Eksport", konkretnie jego atrybutów "zakres_od" i "zakres_do".
<ZakresOd>/Eksport/@zakres_od</ZakresOd>
<ZakresDo>/Eksport/@zakres_do</ZakresDo>
Pola dat brane przy tworzeniu składnika okresowego (od-do) znajdują się na niższym poziomie i jest opisana poniżej w podrozdziale 'Podsekcja SkladnikPlacy'.
Sekcja Pracownik
Sekcja "Pracownik" definiuje zapytania XPath, mające na celu pobranie danych wcześniej opisanych pól (X_I, Imie, Nazwisko, Identyfikator, Pesel, NrKartyRCP) z pliku wejściowego XML Inelo.
<Pracownik>
<TagGlowny>/Eksport/TRozKierowca</TagGlowny>
<!-- Zaleca się używać ścieżek relatywnych do Taga Głownego -->
<!-- Wpisz kwerendę XPath lub '?' jeśli wybrane pole ma nie być odczytywane -->
<X_I>kod_r2_platnik</X_I>
<Imie>imie</Imie>
<Nazwisko>nazwisko</Nazwisko>
<Identyfikator>kod_uniwersalny_eksport</Identyfikator>
<Pesel>pesel</Pesel>
<NrKartyRCP>numer_karty</NrKartyRCP>
<!-- Mapowanie listy składników płacy danego pracownika -->
<SkladnikPlacy>
...
</SkladnikPlacy>
<DietaWirtualna>
...
</DietaWirtualna>
</Pracownik>
Na początku należy podać "Tag Główny", tj. zapytanie XPath, które zwróci "węzły" pojedynczych pracowników. Dalsze pola będą bazowały na tym zapytaniu w celu odczytania kolejnych informacji o pracowniku. W dostarczonej domyślnie konfiguracji głównym węzłem pracownika jest "/Eksport/TRozKierowca". W tym węźle bezpośrednio znajdują się pola "kod_r2_platnik", "imie", "nazwisko" itd.
Poniżej wycinek z przykładowego pliku XML eksportu Inelo, dla którego spełnione są powyższe zapytania.
<Eksport data_eksportu="2020-02-01" zakres_od="2020-01-01" zakres_do="2020-01-31">
<TRozKierowca type="TSysKierowca" wersja="4.6.2.3">
<imie>Jan</imie>
<nazwisko>Kowalski</nazwisko>
<kod_uniwersalny_eksport>1000</kod_uniwersalny_eksport>
<kod_r2_platnik>1000</kod_r2_platnik>
<numer_karty>XXXXXXXXXXX</numer_karty>
<kraj_karty>PL</kraj_karty>
<pesel>XXXXXXXXXXX</pesel>
...
</TRozKierowca>
</Eksport>
Podsekcja SkladnikPracy
Analogicznie, podsekcja "SkladnikPracy" zawiera "TagGlowny", definiujący zapytanie XPath zwracające węzły główne składników (zapytanie w tym tagu nadal bazuje na tagu głównym pracownika).
<SkladnikPlacy>
<!-- Ścieżka relatywna do TagGlowny Pracownika -->
<TagGlowny>TRozKalendarz/TRozListaPlaca/TRozPlaca/RozListaSklPlaca/TRozSklPlaca</TagGlowny>
<!-- Zaleca się używać ścieżek relatywnych do Taga Głownego -->
<NrSkladnika>typ/wartosc</NrSkladnika>
<Kwota>kwota</Kwota>
<ZakresOd>parent::RozListaSklPlaca/parent::TRozPlaca/data_od</ZakresOd>
<ZakresDo>parent::RozListaSklPlaca/parent::TRozPlaca/data_do</ZakresDo>
</SkladnikPlacy>
W tym przypadku niektóre pola były trudniej dostępne (ZakresOd i ZakresDo), ponieważ wartość tych pól znajduje się dwa poziomy wyżej niż tag główny. Z tego powodu zastosowane zostało zapytanie z użyciem "parent", aby przejść w górę hierarchi.
Poniżej wycinek z przykładowego pliku XML eksportu Inelo, dla którego spełnione są powyższe zapytania.
<TRozPlaca type="TRozPlaca" wersja="4.6.2.3">
<data_od>2022-01-01</data_od>
<data_do>2022-01-31</data_do>
<RozListaSklPlaca type="TRozListaSklPlaca" wersja="4.6.2.3">
<TRozSklPlaca type="TRozSklPlaca" wersja="4.6.2.3">
<typ type="TRozTypStSklPlaca" wersja="4.6.2.3">
<wartosc>7</wartosc>
</typ>
<kwota>3010</kwota>
</TRozSklPlaca>
</RozListaSklPlaca>
</TRozPlaca>
Konfiguracja Diet Wirtualnych
Importer traktuje diety wirtualne jako specjalne składniki okresowe, z tym zastrzeżeniem, iż obsługiwane jest tylko jedno mapowanie.
W przypadku konfiguracji tego składnika logika ogólnie pozostaje taka sama jak we wcześniej opisanym przypadku pozostałych składników okresowych.
Dlatego też w poniższym przykładzie można zauważyć, iż pola dla których pisane są zapytania XPath, są dokładnie takie same, jak w przypadku standardowych składników okresowych.
<DietaWirtualna>
<TagGlowny>TRozKalendarz/TRozListaPlaca/TRozPlaca/ListaDietaWirtualna/TD1DietaWirtualna</TagGlowny>
<!-- Nr skladnika dla diety wirtualnej ustalony na sztywno poniżej (używany do mapowania z R2Płatnikiem) -->
<NrSkladnika wartosc="TAK">-1</NrSkladnika>
<!-- Sumujemy kwoty wprowadzone na liście -->
<Kwota>sum(ListaRozliczenieDietaWirtualna/TDlRozliczenieDietaWirtualna/wyl_kwota_PLN)</Kwota>
<ZakresOd>data_od</ZakresOd>
<ZakresDo>data_do</ZakresDo>
</DietaWirtualna>
Na szczególną uwagę zasługują jednak tutaj zapytania dla pól "NrSkladnik" i "Kwota".
W przypadku pola "NrSkladnika", zamiast pisać zapytanie XPath, po prostu wstawiamy na sztywno numer, który będziemy uznawać za nr składnika dla diet wirtualnych. W tym celu posługujemy się atrybutem "wartosc" ustawiając go na "TAK".
Zapytanie dla pola "Kwota" z kolei sumuje wszystkie kwoty diet wirtualnych, finalnie zwracając pojedynczą wartość.
Poniżej wycinek z przykładowego pliku XML eksportu Inelo, dla którego spełnione są powyższe zapytania.
<TDlDietaWirtualna type="TDlDietaWirtualna" wersja="4.6.2.3">
<data_od>2022-01-01</data_od>
<data_do>2022-01-31</data_do>
<ListaRozliczenieDietaWirtualna type="TDlListaRozliczenieDietaWirtualna" wersja="4.6.2.3">
<TDlRozliczenieDietaWirtualna type="TDlRozliczenieDietaWirtualna" wersja="4.6.2.3">
<wyl_kwota_PLN>555.71</wyl_kwota_PLN>
</TDlRozliczenieDietaWirtualna>
<TDlRozliczenieDietaWirtualna type="TDlRozliczenieDietaWirtualna" wersja="4.6.2.3">
<wyl_kwota_PLN>1111.27</wyl_kwota_PLN>
</TDlRozliczenieDietaWirtualna>
</ListaRozliczenieDietaWirtualna>
</TDlDietaWirtualna>