Instrukcja administratora > Import Inelo > Konfiguracja pliku ImportIneloConfig.xml

Drukuj

Konfiguracja pliku ImportIneloConfig.xml

Konfigurację programu znajduje się w pliku ImportIneloConfig.xml, w katalogu z program ImportInelo.exe. Plik podzielony jest na 4 sekcje:

1.System

2.Mapowanie Pracowników

3.Mapowanie Składników

4.Mapowanie Źródłowego XML
 

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.

 

Mapowanie Pracowników

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

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”.

 
Mapowanie Źródłowego XML

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>