j_insert_update.aspx automatyczny zapis do innej tabeli

Transakcja j_insert_update umożliwia automatyczne dopisanie rekordu do tabeli wskazanej przez użytkownika po wykonaniu akcji zapisującej dane formularza.

Parametry

Aby włączyć zapis do drugiej tabeli, należy dodać parametr konfiguracyjny:

  • event – kod wskazujący na odpowiednią pozycję skorowidza EVT np. event=CRM

Przykład wywołania:

../role_sys/j_insert_update.aspx?event=CRM&return=../role_sys/x_grid.aspx?refno=CRM_WIZYTY&status=0&kodtransakcji=CRM_INS_DPCRM&bufor=1&nrid=

Skorowidz EVT

W skorowidzu EVT w kolumnie Kod definiujemy kod identyfikujący rekord skorowidza.

W kolumnie Tabela podajemy nazwę tabeli, do której chcemy dodawać rekord po zapisaniu formularza j_insert_update.

W kolumnie Connection string podajemy connection string do bazy do której ma nastąpić zapis. W przypadku gdy pole jest puste następuje zapis do softwarestudioConnectionString.

W kolumnie Parametry podajemy kolumny z wybranej tabeli, a po znaku równości wartość, jaka ma zostać zapisana w bazie.

W kolumnie Klucz domyślny podajemy nazwę kolumny, która jest kluczem domyślnym (po której jednoznacznie identyfikujemy rekord w tabeli np. REFNO, NRIDASN, NRIDODN itd.)

zal1 300x187

Na podstawie kolumny Metoda zmieniany jest sposób dopisywania do tabeli. Gdy w kolumnie Metoda podane jest „insert” za każdym razem do bazy będzie trafiał nowy rekord (przykładowe zastosowanie: historia edycji danego wpisu), w przeciwnym wypadku, gdy kolumna Metoda jest różna od „insert” transakcja sprawdza czy dany rekord istnieje w tabeli do której dopisujemy, jeżeli tak robimy jego update, jeśli nie wykonywany jest insert.

Rodzaje wartości zapisywanych do bazy danych

  • @ – zmienne systemowe – po znaku @ podajemy zmienną systemową, której wartość zostanie odczytana z użytkownika np. KTO=@KTO
  • $ – wartość z formularza – po znaku $ podajemy nazwę kolumny z formularza j_insert_update. Wartość jaką posiada wskazane pole zostanie zapisana w bazie np. StartTime=$START
  • stałe – wartość stała, podawana jest bez poprzedzającego ją znaku specjalnego np. PRX=K03 (do bazy zapisana zostanie wartość K03)
  • | – zapytanie – po znaku | podajemy zapytanie. Wartość, którą zwróci zapytanie zostanie zapisana w bazie danych. W zapytaniu można używać wszystkich powyższych typów (zmiennych systemowych @, wartości z formularza $, oraz stałych) np. LOCATION=|SELECT TOP(1) (ULICA+’ ‚+MIEJSCOWOSC+’ ‚+KODPOCZTOWY) AS ADRESKON FROM knkon WHERE NRIDODN=$NRIDODN

zal1 300x187
zal1 300x187
zal1 300x187

 

 

PRZYKŁADY

Zapis w tabeli _historia

Chcemy, aby po zapisaniu danych za pomocą transakcji j_insert_update program automatycznie wykonał zapis w tabeli _historia. W tym celu definiujemy w skorowidzu EVT nowa kod np. DPUW_PASS

events dpuwa_pass

ustawiamy:

  • TABELA: _historia – dane zostaną zapisane w bazie SQL w tabeli _historia
  • PARAMETRY: przekazujemy listę parametrów wskazującą jakie informacje i w jaki sposób mają zostać dopisane w tabeli _historia (opis szczegółowy poniżej)
  • KLUCZ DOMYŚLNY: możemy podać nazwę kolumny REFNO choć nie jest to unikalna wartość, zamiast tego możemy podać nazwę kolumny z unikalną wartością.
  • METODA: ponieważ wskazaliśmy kolumnę REFNO jako klucz domyślny a chcemy aby zawsze wykonany był nowy zapis do bazy INSERT to w kolumnie metoda podajemy polecenie insert. W przeciwnym razie program zamiast dopisywać kolejno nowe rekordy wykonywałby update rekordu REFNO.

PARAMETRY

Listę parametrów rozdzielamy znakiem przecinka

PRX=PAS, REFNO=$REFNO, TYTUL=$TYTUL, KTRHID=$REFNO_POZ, UWAGI=|SELECT ‚Login:$ADRESAT Hasło:$NADAWCA Uwagi: $UWAGI’

gdzie w tabeli _historia:

w kolumnie PRX zostanie wpisana wartość PAS

w kolumnie REFNO zostanie wpisana wartość odczytana z kontrolki REFNO

w kolumnie TYTUL zostanie wpisana wartość odczytana z kontrolki TYTUL

w kolumnie KTRHID zostanie wpisana wartość odczytana z kontrolki REFNO_POZ

w kolumnie UWAGI zostanie wpisana wartość: „Login: ” + wartość odczytana z kontrolki ADRESAT + „Hasło:” + wartość odczytana z kontrolki NADAWCA + „Uwagi: ” + wartość odczytana z kontrolki UWAGI

Uruchomienie

Uruchamiamy transakcję np. j_insert_update.aspx?event=DPUWA_PASS&kodtransakcji=INT_SS_KNKON_PASS&return=ZamknijOkno&leftpanelwidth=0&_REFNO=