Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
PW.EventActions.register("test-action", function(context) {
    const value = context.variable("zmienna_1").get();
    context.variable("zmienna_2").set("zmienna_1:" + value);
});

 

Zmiana rekordów w tabeli:

Code Block
languagejava
PW.EventActions.register("test-action", function(context) {
    const table = context.variableSet("table_1");
    table.variable("zmienna_1").add("new_value");
});

Zmiany wartości zmiennych przekazanych jako parametr

Akcje asynchroniczne

Akcje asynchroniczne to akcje w których zachodzi potrzeba wywołania asynchronicznego kodu (np. żądania http lub wyświetlenie modal'a z callbackiem). Aby taka akcja była w stanie zmieniać stan formularza i wyzwalać kolejne akcje w reakcji na zdarzenia wyemitowany poprzez  this.fireEvent() niezbędne jest zwrócenie kontroli do framework'u akcji.

...

Code Block
languagejava
linenumberstrue
PW.EventActions.register("async-action", function(context) {
    context.set("var1", "before"); // zmiana kontekstu jest dozwolona przed przejściem w tryb asynchroniczny
	this.fireEvent("before_async"); // tak samo jak wyzwalanie zdarzeń
	
    // wywołanie asynchroniczne (np. odpowiedź serwera, modala)
    // funkcje przekazywaną jako callback należy wcześniej przygotować używając funkcji this.async()
    setTimeout(this.async(() => {
            context.set("var1", "after");
            this.fireEvent("after_async");
    }), 1000);
 
    // w przypadku gdy nie użyjemy funkcji this.async() - dostęp do kontekstu bądź i wyzwalanie zdarzeń nie jest możliwe i zakończy się błędem
    setTimeout(() => {
            this.fireEvent("will throw");
    }, 1000);
});

Context API

 

Context
FunkcjaOpis

variable(id) : VariableContext

Zwraca VariableContext zmiennej o podanym identyfikatorze
variableSet(tableId) : VariableSetContext

Zwraca VariableSetContext tabeli o podanym identyfikatorze

VariableContext
FunkcjaOpis

set(newValue): this

Zmiana warto
get(): Object 

 

Troubleshooting

Logowanie wywołania akcji

...