Operacje i dostęp do danych procesu

Operacje i dostęp do danych procesu


API

interface ProcessApi {
  correlateMessage(messageName: string, processVariables?: { [key: string]: string }) 
  // Wysyła wiadomości do procesu, opcjonalnie można przekazać zmienne procesowe

  setAccessGroups(groupNames: string[]) 
  // Ustawia listę grup, które mają dostęp do instancji procesu na liście spraw
}

Kontekst działania

API jest dostępne z obiektu api.process.v1 i działa w kontekście aktualnego procesu. Identyfikator procesu:

  • W przypadku formularzy uruchamianych platformowo w ramach procesu — uzupełniany automatycznie.

  • W przypadku wznawianych procesów (np. przez endpoint #/process) — należy przekazać zmienną router_process_id (musi być zmapowana przez injectable fields).

  • W przypadku zadań skryptowych — bezwarunkowo wymagany.


Odwołanie do innego procesu

Istnieje możliwość odwołania się do innego procesu, jednak należy zachować ostrożność — ta operacja jest błędogenna.

Każdorazowo należy upewnić się, że identyfikator procesu pochodzi z zaufanego źródła.

API dla takiego przypadku dostępne jest pod:

api.process.v1.byInstanceId(processInstanceId: string)

gdzie processInstanceId to identyfikator instancji procesu, do którego chcemy się odwołać.

Dostępność: API jest dostępne jedynie w:

  • skryptach,

  • walidatorach skryptowych,

  • zadaniach skryptowych.


Przykłady użycia

1. correlateMessage()

Wysyłka wiadomości o nazwie MESSAGE_NAME

function callService(context) {
  api.process.v1.correlateMessage("MESSAGE_NAME");
}

Wysyłka wiadomości z ustawieniem zmiennej procesowej

function callService(context) {
  api.process.v1.correlateMessage("MESSAGE_NAME", { "zmienna": "wartość" });
}

Wysyłka wiadomości do określonego procesu

function callService(context) {
  const processInstanceId = "...";
  api.process.v1.byInstanceId(processInstanceId).correlateMessage("MESSAGE_NAME");
}

Wysyłka wiadomości do określonego procesu z wieloma zmiennymi

function callService(context) {
  const processInstanceId = "...";
  api.process.v1.byInstanceId(processInstanceId).correlateMessage("MESSAGE_NAME", { 
    "zmiennaA": "wartość1",
    "zmiennaB": "wartość2",
    "zmiennaC": "wartość3"
  });
}

2. setAccessGroups()

Opis działania

Metoda nadaje dodatkowy dostęp do wyświetlania sprawy (instancji procesu) na liście spraw.

  • Grupa musi mieć wcześniej nadane uprawnienie feature_process_list.

  • Metoda nadpisuje wszystkie wcześniej przypisane grupy.

Przykład użycia

function callService(context) {
  api.process.v1.permissions.setAccessGroups(["GROUP_1", "GROUP_2"]);
}

Aby zresetować grupy dostępu, należy nadpisać dotychczasowe wartości pustą listą.

function callService(context) {
    // ...
    api.process.v1.permissions.setAccessGroups([])
    // ...
}

Dodatkowe informacje

Więcej szczegółów znajdziesz w sekcji Konfiguracja listy spraw w dokumentacji platformy.

Last updated

Was this helpful?