Przypisywanie użytkowników do grupy interesariuszy
Podsumowanie:Akcja przypisywania użytkowników do grupy interesariuszy służy do dodawania/usuwania osób dla wybranej grupy interesariuszy oraz do usuwania wszystkich użytkowników z grupy interesariuszy. Akcja dotyczy bieżącego dokumentu (tego, w kontekście którego jest wykonywana) lub zestawu dokumentów należących do wskazanej definicji dokumentu.
☛ AdminSPA >
Narzędzia
>Akcje
>Przypisz do interesariusza
>Użytkowników

W celu zdefiniowania akcji interesariuszy należy określić następujące właściwości:
SQL
: zapytanie SQL zwracające jeden lub więcej rekordów; zapytanie musi zwrócić trzy kolumny o podanych nazwach i w podanej kolejności (aby przypisać użytkowników do grupy interesariuszy dla określonych dokumentów, należy określić w zapytaniu dwie kolumny opcjonalne):
- UserId (uniqueidentifier): identyfikator użytkownika; wartość NULL w tej kolumnie i wartość 1 w kolumnie IsRemoval spowodują usunięcie wszystkich użytkowników z listy.
-
StakeholderId (int): identyfikator grupy interesariuszy z tabeli [core].[Stakeholders]; o ile wartość nie jest pobierana zapytaniem, najlepiej użyć mechanizmu smart numbers, aby umożliwić prawidłową migrację.
Wskazana grupa interesariuszy musi należeć do definicji dokumentu odpowiedającego bieżącemu dokumentowi lub do definicji wskazanej w kolumnie BusinessDocId, w przeciwnym razie wykonanie akcji nie powiedzie się.
-
IsRemoval (bit): typ operacji wykonywanej na liście interesariuszy; możliwe wartości:
- 0: dodanie użytkownika do listy interesariuszy.
- 1: usunięcie użytkownika z listy interesariuszy; jeśli kolumna UserId zwraca wartość NULL, zostaną usunięci wszyscy użytkownicy z listy.
- BusinessDocId (int): kolumna opcjonalna, identyfikator definicji dokumentu.
- InstanceId (int): kolumna opcjonalna, identyfikator dokumentu.
- W zapytaniu można użyć operatora UNION.
- Kolumny BusinessDocId i InstanceId umożliwiają określenie definicji dokumentu oraz zestawu dokumentów należących do tej definicji w celu zbiorczego przypisania użytkownika do grupy interesariuszy dla tej definicji. Jeśli te kolumny nie zostaną określone lub w obu zostanie zwrócona wartość null, użytkownik zostanie przypisany do grupy interesariuszy dla bieżącego dokumentu.
- Jeśli jedna z kolumn opcjonalnych zwróci identyfikator, a druga wartość null, wykonanie akcji nie powiedzie się i zostanie wyświetlony komunikat o błędzie.
Przykłady
Akcja skopiuje wszystkich użytkowników z grupy interesariuszy o kodzie AcceptorInProcess do grupy o kodzie DefAcceptor.
SELECT UserProfileId AS UserId,
{&CstAccept.Stakeholders.CstAcceptDoc.AcceptorInProcess}
AS StakeholderId,
CAST(0 AS BIT) AS IsRemoval
FROM core.ACLStakeholderEntries AS ase
WHERE ase.StakeholderId = {&CstAccept.Stakeholders.CstAcceptDoc.DefAcceptor}
Akcja przypisze bieżącego użytkownika do grupy interesariuszy o kodzie AcceptorInProcess oraz usunie użytkowników zwróconych przez drugie zapytanie z grupy interesariuszy o kodzie DefAcceptor:
SELECT
{@_UserId} AS UserId,
{&CstAccept.Stakeholders.CstAcceptDoc.AcceptorInProcess}
AS StakeholderId,
CAST(0 AS BIT) AS IsRemoval
UNION
SELECT
Id AS UserId,
{&CstAccept.Stakeholders.CstAcceptDoc.DefAcceptor}
AS StakeholderId,
CAST(1 AS BIT) AS IsRemoval
FROM core.UserProfiles
WHERE LEFT(FirstName,1) IN ('a', 's')
Akcja przypisze do określonej grupy interesariuszy wszystkie osoby wybrane w kontrolce typu lista wielowyboru. W zapytaniu użyto funkcji STRING_SPLIT do wydzielenia poszczególnych identyfikatorów użytkowników. Warunkiem poprawnego działania zapytania jest wybranie co najmniej dwóch osób na liście.
SELECT
VALUE as UserId,
{&CstAccept.Stakeholders.CstAcceptDoc.DefAcceptor}
AS StakeholderId,
CAST(0 AS BIT) AS IsRemoval
FROM STRING_SPLIT({@AcceptorsList}, '$')
WHERE value <> ','
Akcja przypisze zalogowanego użytkownika do grupy interesariuszy dla wszystkich dokumentów należących do wskazanej definicji dokumentu.
SELECT
{@_UserId} AS UserId,
{&CstAccept.Stakeholders.CstAcceptDoc.AcceptorInProcess}
AS StakeholderId,
CAST(0 AS BIT) AS IsRemoval
(SELECT Id FROM core.BusinessDocuments
WHERE [Table] = 'dbo.Reklamacje')
AS BusinessDocId,
Id AS InstanceId
FROM dbo.Reklamacje