core.CalculateOUId
Podsumowanie:Funkcja skalarna [core].[calculateOUId] zwraca identyfikator jednostki organizacyjnej na podstawie przekazanych parametrów. Funkcji można używać wszędzie w definicji zapytań SQL w aplikacji AdminSPA, w szczególności w akcji przypisywania roli w jednostce organizacyjnej do grupy interesariuszy.
Parametry wejściowe do funkcji:
- kod jednostki organizacyjnej (wymagany): wskazuje jednostkę odniesienia i określa kontekst wyszukiwania żądanej jednostki organizacyjnej; parametr wymagany.
- identyfikator użytkownika (opcjonalny): jeśli jest podany, zwracany jest identyfikator jednostki, do której należy użytkownik (kod jednostki odniesienia musi określać jednostkę, do której należy użytkownik lub jej jednostkę nadrzędną dowolnego poziomu).
-
poziom względem jednostki odniesienia (opcjonalny): wartość liczbowa określająca poziom struktury organizacyjnej względem jednostki odniesienia; dopuszczalne wartości:
- 0 (lub NULL): funkcja zwraca id jednostki, do której należy użytkownik, uwzględniając tylko podaną jednostkę główną i jej podjednostki.
- 1: funkcja zwraca id jednostki głównej gałęzi struktury organizacyjnej, w której znajduje się jednostka odniesienia.
- -n (liczba ujemna): zwraca identyfikator jednostki nadrzędnej dla jednostki odniesienia na n-tym poziomie w stronę jednostki głównej; np. dla -1 zwraca identyfikator jednostki nadrzędnej dla jednostki odniesienia na następnym poziomie struktury organizacyjnej.
Funkcja zwraca następujące kody błędów (wartości ujemne):
- -1000: kod jednostki organizacyjnej odniesienia (parametr ouRootCode) nie został podany lub jest pusty.
- -1001: jednostka odniesienia o podanym kodzie nie istnieje lub użytkownik nie jest przypisany do tej jednostki.
- -1002: istnieje więcej niż jedna jednostka o podanym kodzie.
- -2000: użytkownik o podanym identyfikatorze nie istnieje.
- -3000: parametr orgUnitLevel ma nieprawidłową wartość (np. >1).
- -9999: wystąpił nieobsługiwany wyjątek.
Przykłady

- Dla użytkownika należącego do jednostki oznaczonej na ilustracji ramką, aby obliczyć kod tej jednostki, należy podać kod tej jednostki, jej jednostki nadrzędnej lub jednostki głównej oraz identyfikator użytkownika (GUID). Trzy zapytania przedstawione poniżej zwrócą ten sam wynik:
SELECT core.CalculateOUId('radwy','4A5C7CDA-E44A-4ACC-B5F6-08DBA4950BA2','') AS OUId SELECT core.CalculateOUId('biuszy','4A5C7CDA-E44A-4ACC-B5F6-08DBA4950BA2','') AS OUId SELECT core.CalculateOUId('wydz2','4A5C7CDA-E44A-4ACC-B5F6-08DBA4950BA2','') AS OUId
Zamiast pustego trzeciego argumentu można wpisać 0.
- Aby obliczyć identyfikator jednostki głównej, mając tylko kod dowolnej z jej jednostek podrzędnych, należy użyć zapytania:
SELECT core.CalculateOUId('radwy',null,1) AS OUId
Jeśli identyfikator użytkownika nie jest podawany, konieczne jest użycie literału null.
- Aby obliczyć identyfikator jednostki nadrzędnej dla jednostki odniesienia, nalezy użyć zapytania:
SELECT core.CalculateOUId('radwy',null,-1) AS OUId
Powiązane tematy: