poniedziałek, 11 sierpnia 2014

Jak zapisać wartość Item do sesji (apex.server.process)

Tym razem pokażę, jak w prosty sposób zapisać wartość Item do sesji bez przeładowania strony.
Do realizacji zadania zastosujemy funkcję JavaScript "apex.server.process", oferowaną przez
Oracle APEX API Reference.

apex.server.process  - pokrótce wywołuje "on-demand process PL/SQL", który może być zdefiniowanym
procesem aplikacyjnym lub procesem na wybranej stronie.

Przykład - zapisywanie wartości P100_ITEM_1 do sesji




apex.server.process ( "dummy", {
     pageItems: "#P100_ITEM_1"
     }
    );

Co potrzebujemy ?
1. Item
2. Proces aplikacyjny
3. Wyzwalacz powyższego kodu (np: przycisk)

#P100_ITEM_1 - nazwa "submitowanego" Item do sesji.

dummy - nazwa procesu aplikacyjnego "on-demand".
W tym wypadku chcemy tylko zapisać Item do sesji.
Z racji tego, iż funkcja wymaga podania parametru to
tworzymy atrapę procesu wpisując w źródle null;

To wszystko, wystarczy podpiąć powyższy kod do wybranej funkcjonalności (przycisk, Dynamiczna akcja, skrypt JS itp.)
W momencie wywoływania powyższej funkcji, wartość P100_ITEM_1 zostanie zapisana do sesji.
Rezultaty możemy podglądać z paska developerskiego kilkając w "Session", a następnie wybierając z listy "Session State".
Oczywiście apex.server.process oferuje większy zakres funkcjonalności niż pokazano w
powyższym przykładzie m.in. przekazywanie zmiennych do procesu, success, refreshObject, clear ... (po więcej funkcjonalności odsyłam do API)

W następnym wpisie pokażę, w jaki sposób przekazywać zmienne do procesu aplikacyjnego.

2 komentarze:

  1. Jeden wpis w miesiącu to trochę mało. Wieje nudą i marazmem.

    OdpowiedzUsuń
  2. Masz rację. Ale niestety ostatnio mamy bardzo dużo pracy.
    Myślę, że po październiku powinno być lepiej.

    pozdrawiam
    piotr

    OdpowiedzUsuń