StudioSystem

Transakcja JQS - uniwersalne formularze JS

Transakcja JQS w systemie SoftwareStudio umożliwia szybkie i elastyczne przetwarzanie danych w środowisku aplikacji webowej.

studiosystem.softwarestudio.com.pl/transakcje/
Panel startowy platformy StudioSystem z modułami przypisanymi do roli użytkownika
Panel startowy platformy StudioSystem z modułami przypisanymi do roli użytkownika

Uniwersalna transakcja pozwalająca na tworzenie dowolnych formularzy w języku javascript i JQuery.

Transakcja JQS to aplikacja sieciowa stworzoną przy użyciu ASP.NET, JavaScript i komponentów powiązanych z technologią WebForms. Oto uproszczone wyjaśnienie działania aplikacji:

Jak działa aplikacja?

  1. Inicjalizacja i konfiguracja strony: Gdy użytkownik otwiera stronę, mechanizmy w pliku jqs.aspx.cs odpowiadają za inicjalizację danych sesyjnych i parametrów użytkownika, takich jak identyfikator sesji, nazwa użytkownika czy przypisany oddział. Wartości te są pobierane z bazy danych za pomocą zapytań SQL oraz przechowywane w sesji użytkownika.
  2. Dynamiczne generowanie interfejsu: W pliku jqs.js znajduje się kod JavaScript, który dynamicznie konfiguruje elementy interfejsu użytkownika, takie jak listy rozwijane, pola kalendarza czy pola liczbowe. Ustawiane są też różne style i lokalizacja strony w zależności od języka użytkownika.
  3. Obsługa danych i operacje na bazie: Plik jqs.aspx.cs zawiera metody umożliwiające interakcję z bazą danych. Operacje takie jak dodawanie, aktualizacja czy usuwanie danych są wykonywane za pomocą zapytań SQL przesyłanych z serwera do bazy. W aplikacji zastosowano dynamiczne przypisywanie parametrów, np. użytkownik, czas wykonania operacji czy identyfikatory sesji, co pozwala na personalizację działań.
  4. Zabezpieczenia i weryfikacja: Sprawdzana jest autoryzacja użytkownika oraz poprawność danych przesyłanych do serwera. Na przykład metody takie jak ssSQL i InsertData uwzględniają mechanizmy szyfrowania danych oraz weryfikację parametrów wejściowych, co zmniejsza ryzyko błędów i ataków, takich jak SQL Injection.
  5. Personalizacja działania: Na podstawie roli użytkownika, która jest pobierana w pliku jqs.js, aplikacja dopasowuje funkcje interfejsu. Na przykład użytkownicy o wyższych uprawnieniach mogą widzieć dodatkowe opcje w interfejsie.

Podsumowując, aplikacja opiera się na płynnej integracji elementów serwera i klienta, zapewniając elastyczny i bezpieczny system zarządzania danymi dla użytkowników.

Sposób działania

Parametry wejściowe

Transakcja przyjmuje parametry przekazane w adresie URL (QueryString). istotne parametry to:

  • kod - unikalny identyfikator operacji, np. dopisania danych lub wyświetlenia formularza.
  • Opcjonalnie dodatkowe dane, takie jak refno (numer referencyjny), które mogą być rozdzielone znakiem |.

Przykład przetwarzania parametrów:

  • Jeśli kod zawiera wartość, następuje zapytanie do bazy danych (x_skorowidze) w celu pobrania szczegółów konfiguracji danej operacji, takich jak:
    • Skrypty (script) do załadowania.
    • Styl CSS (cssstyles).
    • Logika wczytywana przy starcie (scriptonload).

Odczyt danych z _code_sql

Tabela _code_sql zawiera definicje zapytań SQL i ich parametrów. Dla każdej operacji określony jest:

  • UID - unikalny identyfikator operacji.
  • ZAPYTANIE - definicja zapytania SQL z dynamicznymi parametrami {0}, {1} itp.
  • PARAMETRY - opis znaczenia poszczególnych zmiennych.
  • CONNECTION - wskazuje na nazwę łańcucha połączenia z bazą danych.

Przykład z _code_sql: Zapytanie INSERT INTO DPMAG... umożliwia dodanie nowych rekordów do tabeli. Parametry takie jak {0}, {1} są wypełniane przez dane przesłane przez użytkownika lub wyliczane na podstawie sesji użytkownika.

Parametry

script=/role_wms/jqs_dpmag_wz.js?v@#appversion|scriptonload=MojaOnLoad()

  • script - wskazanie skryptu do uruchomienia, wartość @ zostanie zamieniona na znak=, można użyć zmiennej #appversion, która podstawi wartość zmiennej wersji aplikacji (zalecana metoda wersjonowania plików js, tak aby przeglądarka pobierała najnowsze wersje)
  • scriptonload - wskazanie nazwy funkcji uruchamianej po załadowaniu strony

Przykład działania

Działanie jqs_dpinw_insert.js

Skrypt jqs_dpinw_insert.js to komponent kliencki odpowiadający za przygotowanie interfejsu użytkownika i wysyłanie danych do serwera, realizując operację dodawania inwentaryzacji.

  1. Inicjalizacja:
    • Pobierane są dane użytkownika za pomocą funkcji ssDataSQL i identyfikator referencyjny (funkcja PobierzRefno).
    • Na podstawie roli użytkownika (cUserRole) konfiguracja interfejsu zmienia się, np. dodając więcej opcji dla użytkowników z uprawnieniami SuperVisor.
  2. Dynamika formularza:
    • W zależności od wybranego typu inwentaryzacji (mag, lok, aso, ktr), dynamicznie generowany jest interfejs:
      • Magazyn (mag) - pobiera dane o magazynie.
      • Lokalizacja (lok) - pozwala wyszukać lokalizację.
      • Asortyment (aso) - umożliwia wyszukiwanie produktów.
      • Kontrahent (ktr) - pozwala wyszukać kontrahenta.
  3. Przetwarzanie danych:
    • Użytkownik wypełnia formularz, który pobiera dane z pól i komboboxów (np. #ssID), a następnie dane te są konwertowane na format parametrów używanych w zapytaniach SQL (cPar).
    • Zapytanie SQL jest wykonywane przez funkcję ssExSQL, która przesyła dane do serwera, gdzie jqs.aspx.cs przetwarza żądanie.

Przykład wykorzystania zapytania z _code_sql:

  • UID: 5169E3D1-45C7-49F0-AACD-AB90867C4970 odnosi się do zapytania pobierającego dane asortymentowe z bazy (SELECT ... WHERE AKTYWNE=1).

Przykład obsługi:

  1. Użytkownik wybiera typ inwentaryzacji (np. mag - magazyn).
  2. Formularz generuje elementy UI w zależności od typu inwentaryzacji.
  3. Dane wprowadzone przez użytkownika (np. Oddział, Magazyn) są konwertowane na ciąg parametrów cPar.
  4. Parametry cPar są przekazywane do serwera przez ssExSQL, gdzie jqs.aspx.cs realizuje odpowiednie zapytanie SQL, np. dodanie nowego rekordu inwentaryzacji do tabeli DPMAG.

Ten mechanizm pozwala na elastyczne zarządzanie procesem inwentaryzacji i obsługę różnych scenariuszy zdefiniowanych w _code_sql.

Chcesz zobaczyć transakcje w działaniu?

Uruchom demo modułów StudioSystem i sprawdź platformę na żywo.