Przejdź do głównej zawartości

AssignCaseToUser()

AssignCaseToUser() to funkcja służąca do bezpiecznego przypisywania sprawy do konkretnego użytkownika w sytuacji, gdy sprawa należy obecnie do ustalonej grupy lub użytkownika. Funkcja sprawdza w bazie danych, czy właściciel sprawy figuruje na liście przekazanej w parametrze fromUsers i, jeśli tak, przypisuje sprawę użytkownikowi wskazanemu w parametrze toUser.

Funkcja została zaprojektowana przede wszystkim do zastosowań w regułach wywoływanych z raportów działających jako kolejki zadań, umożliwiając jednoczesny i jednoznaczny przydział spraw do osoby, która jako pierwsza ją pobierze. Zapobiega to konfliktom, jeśli kilku użytkowników jednocześnie spróbuje przypisać sobie tę samą sprawę.


AssignCaseToUser(fromUsers, toUser);
  • fromUsers (String) – lista pierwotnych właścicieli sprawy (np. nazwy grup lub użytkowników); elementy oddzielone przecinkiem (‘,’) lub średnikiem (‘;’).
  • toUser (String) – nazwa użytkownika docelowego (np. przekazywana przez funkcję CurrentUser()).

  • Funkcja zwraca wartość true (Boolean) – jeśli przypisanie zakończyło się sukcesem.
  • W przeciwnym wypadku zwraca false – jeśli sprawa w momencie wywołania nie była już przypisana do podanych użytkowników (np. została już pobrana przez inną osobę/grupę).

if (AssignCaseToUser("Test group", CurrentUser())) {
// Dalsze działania po skutecznym przypisaniu sprawy
}

Sprawdza, czy bieżąca sprawa jest przypisana do “Test group” i jeśli tak, przypisuje ją do bieżącego użytkownika.


if (AssignCaseToUser(GetUserGroups(CurrentUser()), CurrentUser())) {
// Dalsze działania po skutecznym przypisaniu sprawy
}

Sprawdza, czy bieżąca sprawa jest przypisana do jednej z grup bieżącego użytkownika i, jeśli tak, przypisuje ją do bieżącego użytkownika.


if (AssignCaseToUser("Księgowość", CurrentUser()) == false) {
ShowMessage(1, "Sprawa została już przejęta przez: " + [CaseOwner]);
}

Próbuje przepisać wybraną sprawę z grupy “Księgowość” do bieżącego użytkownika. Jeżeli przypisanie się nie powiedzie (sprawa została już przejęta przez kogoś innego), wyświetli nazwę osoby, która ją przejęła.


  • Funkcja powinna być wykorzystywana w regule wybranej w definicji raportu jako opcja “Wykonaj regułę na wybranej sprawie”.
  • Najlepszym zastosowaniem jest użycie na raporcie pracującym jako kolejka zadań, gdzie widoczne są sprawy przypisane do danej grupy, a członkowie grupy mogą “pobrać” sprawę do obsługi, przypisując ją do siebie.
  • Zaleca się, aby w parametrze fromUsers podawać nazwę grupy, dla której prezentowany jest raport, a w parametrze toUser – funkcję CurrentUser().
  • Funkcja pomaga zapobiegać sytuacjom, w których kilku użytkowników próbuje jednocześnie przypisać sobie tę samą sprawę.

  • Funkcja sprawdza w bazie danych, czy sprawa nadal jest przypisana do wskazanej w parametrze fromUsers osoby lub grupy.
  • Jeśli przypisanie jest możliwe, funkcja zaktualizuje właściciela sprawy i zwróci true.
  • W przypadku, gdy sprawa została już przydzielona innej osobie/grupie, funkcja zwraca false oraz odświeża wartość pola [CaseOwner], co pozwala natychmiast wyświetlić informację, kto przejął sprawę.
  • Funkcja powinna być zawsze powiązana z działaniem użytkownika, np. kliknięciem na sprawę w kolejce zadań, aby zapewnić jednoznaczny i atomiczny proces przypisania.
  • Typowe błędy to: przekazanie pustego, błędnego lub nieistniejącego użytkownika/grupy jako fromUsers, lub niepoprawnego parametru toUser.

  • Podanie pustej lub nieprawidłowej listy fromUsers – brak przypisania lub błąd funkcji.
  • Użycie pustego lub nieprawidłowego parametru toUser – funkcja nie przypisze sprawy.

  • Przydzielanie spraw z kolejki do konkretnego użytkownika (model “kto pierwszy ten lepszy”).
  • Zapobieganie konfliktom wynikającym z równoczesnych prób przypisań przez wielu użytkowników.
  • Przekierowanie użytkownika na wybraną sprawę tylko, gdy przydzielenie się powiedzie – w razie niepowodzenia wyświetlenie stosownego komunikatu.

  • CurrentUser()
  • GetUserGroups()
  • ShowMessage()

Przypisywanie spraw, właściciel sprawy, kolejka zadań, masowe uruchamianie reguł, raporty, reguły, workflow, CaseOwner


Przykłady, dobre praktyki i specyfika działania opisane powyżej są rekomendowane przez zespół AMODIT dla zapewnienia stabilności i jednoznaczności procesów obsługi spraw przekazanych do grup.


UWAGA! Artykuł wygenerowany z pomocą algorytmów uczenia maszynowego (AI, LLM), a następnie zweryfikowany i zredagowany przez człowieka (bio-I ;-).