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; zastosujforcase(). - 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
- Spójny kontekst danych w regułach — wyjaśnia bieżącą sprawę i lokalny zakres
forcase(). - Konto SYSTEM USER w AMODIT — opisuje konto używane przy wykonywaniu operacji z uprawnieniami użytkownika systemowego.
