Skip to main content

runassystem() — uprawnienia wykonania w regułach

Artykuł zweryfikowano na liniach AMODIT 251231, 260331, 260630 oraz Develop według stanu na 1 sierpnia 2026. Nota wskazuje zakres weryfikacji, a nie wersję wprowadzenia konstrukcji.

Zastosowanie

runassystem() służy twórcy procesu do wykonania ograniczonego fragmentu reguły jako użytkownik systemowy. Stosuj go wtedy, gdy konkretna operacja wymaga wykonania z uprawnieniami tego użytkownika.

Konstrukcja zmienia użytkownika wykonania dla bloku. Nie wybiera sprawy, na której pracuje reguła. Jeżeli trzeba wykonać operację na innej sprawie, wybór sprawy należy opisać przez forcase().

Konfigurację oraz zasady używania konta systemowego opisuje artykuł Konto SYSTEM USER w AMODIT.

Efekt działania

Instrukcje zawarte w bloku są wykonywane z uprawnieniami użytkownika systemowego. Poza blokiem reguła wraca do wcześniejszego użytkownika wykonania.

runassystem() nie zmienia bieżącej sprawy. Odwołania do pól i tabel pozostają w tym samym kontekście sprawy, chyba że reguła jawnie zmieni go inną konstrukcją, na przykład forcase().

Składnia

runassystem()
{
    [Pole wymagające uprawnień] = "Wartość";
}

Argumenty

runassystem() nie przyjmuje argumentów.

Zwracana wartość

runassystem() jest blokiem wykonania reguły i nie zwraca wartości do użycia w przypisaniu lub warunku.

Przykłady

Przykład 1: aktualizacja pola przez użytkownika systemowego

Gdy reguła ma zaktualizować pole wymagające uprawnień użytkownika systemowego, umieść tylko to przypisanie w bloku.

runassystem()
{
    [Status techniczny] = "Zaktualizowano";
}

Przypisanie do pola Status techniczny jest wykonywane z uprawnieniami użytkownika systemowego. Reguła nadal działa na tej samej sprawie, na której została uruchomiona.

Przykład 2: zmiana uprawnień i sprawy jako dwa osobne wybory

Jeżeli operacja wymaga jednocześnie uprawnień użytkownika systemowego i pracy na sprawie wskazanej przez pole, każdą decyzję zapisz osobno.

runassystem()
{
    forcase([Sprawa powiązana])
    {
        [Status integracji] = "Do weryfikacji";
    }
}

runassystem() określa użytkownika wykonania, a forcase() wybiera sprawę tylko dla własnego bloku.

Dobre praktyki

  • Obejmuj blokiem wyłącznie operację, która rzeczywiście potrzebuje uprawnień użytkownika systemowego.
  • Przed użyciem konstrukcji ustal, czy problemem są uprawnienia, czy wybór sprawy. Do zmiany sprawy użyj forcase().
  • Zachowaj zwykłe uprawnienia dla pozostałych instrukcji reguły, gdy nie muszą wykonywać się jako użytkownik systemowy.

Typowe błędy

  • Używanie runassystem() do przejścia na sprawę wskazaną w polu. Ta konstrukcja nie wybiera sprawy; zastosuj forcase().
  • Obejmowanie całej reguły blokiem, gdy podwyższonych uprawnień wymaga jedna instrukcja.
  • Traktowanie zakończenia bloku jako potwierdzenia powodzenia operacji. Sposób obsługi wyniku i błędu określaj dla konkretnej operacji.

Powiązane artykuły