Skip to main content

Kontekst sprawy w regułach: bieżąca sprawa, forcase i powrót

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

Po co istnieje kontekst sprawy

Reguła potrzebuje jednoznacznego punktu odniesienia dla pól i tabel. Tym punktem jest bieżąca sprawa: sprawa, na której instrukcje w danym miejscu reguły odczytują i zmieniają dane.


Jak to działa

Na początku wykonywania reguły bieżącą sprawą jest ta, dla której regułę uruchomiono. Odwołania do pól i tabel są interpretowane względem tego kontekstu, dopóki reguła jawnie go nie zmieni.

forcase() pozwala wykonać wydzielony blok na innej sprawie. Po wejściu do bloku wskazana sprawa staje się bieżąca, dlatego odwołania do pól dotyczą właśnie jej. Zmiana ma zakres lokalny: obowiązuje tylko wewnątrz nawiasów bloku.

Po zakończeniu forcase() AMODIT przywraca sprawę, która była bieżąca przed wejściem. Instrukcje zapisane dalej znów działają w poprzednim kontekście. Jeżeli identyfikator wskazanej sprawy jest pusty albo niepoprawny, blok nie zostanie wykonany.


Kluczowe rozróżnienia

  • Bieżąca sprawa a sprawa wskazana w polu — wartość pola może identyfikować inną sprawę, ale dopiero forcase() ustawia ją jako bieżącą dla bloku.
  • Wnętrze bloku a kod po bloku — wewnątrz forcase() odwołania dotyczą wskazanej sprawy, a po wyjściu ponownie dotyczą wcześniejszej sprawy.
  • Kontekst danych a uprawnieniaforcase() wybiera sprawę; runassystem() służy do wykonania operacji z uprawnieniami użytkownika systemowego i nie zastępuje wyboru sprawy.

Przykład

Reguła zapisuje status w sprawie wskazanej przez pole Sprawa powiązana, a po wyjściu z bloku zapisuje informację w sprawie, od której rozpoczęto wykonanie.

relatedCaseId = [Sprawa powiązana];

forcase(relatedCaseId)
{
    [Status integracji] = "Do weryfikacji";
}

[Ostatnia operacja] = "Zaktualizowano sprawę powiązaną";

Wewnątrz forcase() pole [Status integracji] należy do sprawy powiązanej. Pole [Ostatnia operacja] po bloku ponownie należy do sprawy, która była bieżąca przed wejściem.


Uprawnienia są osobnym wyborem

Dodaj runassystem() tylko wtedy, gdy operacja wymaga uprawnień użytkownika systemowego. Ta konstrukcja nie wybiera sprawy i nie zmienia zakresu forcase(). Zobacz Konto SYSTEM USER w AMODIT.


Powiązane artykuły