Skip to main content Link Menu Expand (external link) Document Search Copy Copied

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

Akcja interesariuszy
Akcja interesariuszy

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
|← Uprawnienia do rekordów |↑ Do góry |→ Przypisywanie ról globalnych do interesariuszy |

Copyright © 2025 OPTEAM SA. Theme Copyright © 2017-2020 Patrick Marsceill. Distributed by an MIT license.