Pakiet: com.suncode.plugin.organization.structure.task.SyncOrganizationStructureDS
Dostępna od wersji: 1.0.0
Zadanie aktualizuje strukturę organizacyjną na podstawie odpowiednio skonfigurowanego źródła danych.
Założenia
- Usuwa stanowiska, które nie są podpięte do żadnego użytkownika
- Jednostki organizacyjne tylko są dodawane, jeżeli nie istnieją już w systemie
- Nie usuwa stanowisk już podpiętych do użytkownika (od wersji 1.0.1 opcja która na to pozwala
- Zawsze aktualizuję dane użytkownika (Imię, Nazwisko, Email, Numer)
Nazwa parametru | od wersji | Opis | Typ parametru | Uwagi i ograniczenia |
---|---|---|---|---|
Identyfikator źródła danych* | 1.0.0 | Id skonfigurowanego źródła danych odpowiednio skonfigurowanego pod zadanie. | Tekst | Tylko źródła z operacją "Odczyt". |
Klucz mapowania użytkownika* | 1.0.0 | Mapowanie użytkowników z kolumną ze źródła (aktualnie obsługiwane userName,userNumber,userEmail). | Tekst | Wartości w systemie muszą być unikalne. |
Klucz mapowania przełożonego | 1.0.1 | Mapowanie użytkowników z kolumną ze źródła (aktualnie obsługiwane superiorName,superiorNumber,superiorFullName,superiorFullNameRev). | Tekst | Pusta wartość zachowuję kompatybilność wsteczną. |
Odłącz nie synchronizowane stanowiska | 1.0.1 | Odłącza stanowiska użytkownikowi, których nie ma przypisanych w pobranych danych ze źródła. Obsługuje tylko użytkowników, którzy zgadzają się z danymi pobranymi ze źródła. | Tekst | Wartość pusta lub "false" (mogą być różnej wielkości litery) traktowana jest jako false. Inne wartości jako pozytywne. |
Źródło danych powinno być ustawione do odczytu oraz posiadać odpowiednie identyfikatory zmiennych, które chcemy zmapować.
Identyfikator | Opis | Uwagi |
---|---|---|
userNumber | Aktualizuje numer użytkownika. | Może być użyty do mapowania, ale w systemie muszą być użytkownicy dodani już z unikalnym numerem. |
userFirstName | Aktualizuję imię użytkownika. | |
userLastName | Aktualizuję nazwisko użytkownika. | |
userName | Tylko do mapowania. | |
userEmail | Aktualizuje email użytkownika. | Może być użyty do mapowania, ale w systemie muszą być użytkownicy dodani już z unikalnym email. |
superiorFullNameRev | Nazwisko i imię przełożonego. | Kolumna zawiera nazwisko i imię przełożonego (odwrócone). np "PlusWorkflow Administrator". |
superiorFullName | Imię i nazwisko przełożonego. | Kolumna zawiera nazwisko i imię przełożonego. np "Administrator PlusWorkflow". |
superiorFirstName | Imię przełożonego. | Kolumna zawiera imię przełożonego. |
superiorLastName | Nazwisko przełożonego. | Kolumna zawiera nazwisko przełożonego. |
superiorName | Nazwa przełożonego. | Kolumna zawiera nazwę przełożonego. |
positionName | Nazwa Stanowiska. | Gdy nazwy nie ma, brany jest symbol stanowiska (gdy jest to tworzone jest nowe). |
positionSymbol | Symbol Stanowiska. | Gdy nie ma symbolu stanowiska to generowany jest on za pomocą Nazwy stanowiska. |
ouName | Nazwa jednostki organizacyjnej. | |
ouSymbol | Symbol jednostki organizacyjnej. | |
higherOUSymbol | Symbol jednostki nadrzędnej. | Zadziała gdy podane jest jednostka organizacyjna. |
higherOUName | Nazwa jednostki nadrzędnej. | Zadziała gdy podane jest jednostka organizacyjna. |
superiorNumber | Numer przełożonego. | Kolumna zawiera numer przełożonego. |
Przykładowa konfiguracja źródła danych.
- Zadania najpierw filtruje dane ze źródła. Zostawia dane użytkowników, którzy są już dodani do systemu.
- Zadanie na początku usuwa wolne stanowiska (w celu poprawnej numeracji symboli podczas tworzenia stanowisk).
- Następnie dla każdego wiersza pobranego ze źródła (już po filtracji) pobiera użytkownika wedle ustalonego parametru klucza mapowania (userName, userNumber, userEmail).
- Aktualizuje dane tego użytkownika (, jeżeli źródło posiada odpowiednio skonfigurowane identyfikatory parametrów). Ustawia Imię , Nazwisko, Numer, Email.
- Potem pobiera lub tworzy jednostkę organizacyjną oraz jednostkę nadrzędną.
- Następnie pobiera stanowisko użytkownika (Jeżeli go nie ma to tworzy nowe i przypisuję danemu użytkownikowi).
- Następnie do stanowiska podpina jednostkę organizacyjną.
- Po przetworzeniu wszystkich wierszy ze źródła danych, podpina przełożonych.
- Odpina niesynchronizowane stanowiska jeżeli jest włączona taka opcji.
- Na końcu usuwa wolne stanowiska.
- Jeżeli w źródle danych nie ma ouName oraz ouSymbol, to nie utworzy żadnych jednostek organizacyjnych.
- Jeżeli jest podany tylko ouName, to tworzony jest symbol stanowiska na podstawie nazwy. Jeżeli nazwa jest jednoczłonowa, to symbol zostaję utworzony z wielkich liter. Gdy nazwa ma więcej słów, to symbol powstaje z pierwszych znaków tych wyrazów. np Dział Wdrożeniowy - DW.
- Gdy jest podany ouSymbol to wyszukiwana jest jednostka organizacyjna w systemie, ewentualnie aktualizowana jest nazwa jeżeli jest podany ouName.
- Gdy jednostki nie ma w systemie to jest tworzona nowa.
- Następnie odczytywane są higherOUName i higherOUsymbol. i poszukiwane lub tworzone jednostki nadrzędne wedle tego samego algorytmu.
- Na końcu do jednostki organizacyjnej jest ustawiana jednostka nadrzędna.
Przykład utworzonych jednostek organizacyjnych
Najpierw jest pobierane stanowisko przypisane do użytkownika po symbolu positionSymbol. Gdy użytkownik posiada to stanowisko, to co najwyżej jest aktualizowana jego nazwa. Lub sprawdzane, czy użytkownik posiada stanowisko o podanej nazwie positionName, jeżeli w źródle nie podano symbolu.
Jeżeli użytkownik nie posiada stanowiska, to jest tworzone nowe. Symbol stanowiska jest generowany podobnie jak przy jednostkach organizacyjnych, tylko doklejany jest pierwszy wolny numer dla danego skrótu. (Zaczynając od 1 ) np dla positionName = "mechanik maszyn i urządzeń przemysłowych" wygenerowany symbol to MMIUP-4.
Przykład utworzonych stanowisk
Gdy parametr "Klucz mapowania przełożonego" nie jest ustawiony to wykonywane są poniższe kroki.
Aby można było dodać przełożonych, w źródle muszą być informacje o stanowiskach oraz informacje o przełożonym w wybranym formacie: superiorFullName, superiorFullNameRev lub (superiorFirstName oraz superiorLastName).
Najpierw sprawdza czy jest id superiorFullName potem superiorFullNameRev na końcu superiorFirstName oraz superiorLastName . I na tej podstawie wyszukuje przełożonego i go podpina do danego użytkownika.
- Gdy parametr ten jest ustawiony to wyszukuje przełożonego po tym parametrze i podpina do danego użytkownika. Dla wybranej opcji superiorFullName oraz superiorFullNameRev jeżeli nie ma tych id w źródle to będzie tworzył za pomocą superiorFirstName, i superiorLastName.
1.0.0 (obowiązująca dokumentacja)
- Utworzenie zadania zaplanowanego
1.0.1
- Rozszerzenie zadania zaplanowanego
Add Comment