Wykonywanie zapytań do bazy danych za pomocą skryptów JS lub jako wyniki podstawione dla kontrolki typu COMBO (WebCombo oraz WebComboFly) wymaga zdefiniowania zapytań po stronie bazy danych w tabeli _code_sql. Z poziomu modułu konfiguracja program udostępnia opcje przeglądania, edycji i dopisywania kodów zapytań.
Definicje zapytań SQL
Formularz dopisywania i edycji zapytań SQL to standardowa transakcja j_insert_update uruchamiana z kodem (kodtransakcji=SQL_INS_CODE_SQL).
Formularz zawiera następujące pola:
- Rola – możliwość zdefiniowania do jakiej grupy należy dane zapytanie. Systemowe zapytania zapisujemy kod SYS
- Unique Id – unikalny kod zapytania, jest generowany automatycznie i pozwala identyfikować rekord, jest to kod używany później do wskazywania jakie zapytanie chcemy uruchomić.
- Opis – treść podpowiadająca do czego używać należy dane zapytanie
- Rodzaj kontrolki – opis wskazujący przeznaczenie zapytania np.
- Combo – zapytanie zwracane dla kontrolki WebCombo
- CombFly – zapytanie zwracane dla kontrolki WebComboFly
- Tabela – zapytanie zwraca dane w postaci tablicy wyników, wykorzystane w skryptach JS
- Insert – zapytanie dopisujące dane do bazy
- Update – zapytanie aktualizujące dane w bazie
- Nazwa połączenia z bazą danych (connectionstring, albo baza root, albo custom, odczyt ze skorowidza prx=SQL)
- Zapytanie SQL – polecenie do wykonania
- Parametry – opis parametrów jakie należy przekazać do zapytania – pole opcjonalne, stanowi zapis dokumentacji – instrukcja użycia
- Przykład użycia – przykład wykorzystania zapytania
Zapytania WebCombo
Przykładowe zapytanie SQL odwołujące się do skorowidza, przyjmuje dwa parametry:
- ROLASYS
- PRX
Przykład użycia w kodzie JS
data-ssUID=\”450E175F-7969-4D65-B3B4-57ACD2986ACC\” data-ssPAR=\”WMS|MAG\”
Przykład użycia w definicji WebCombo w transakcji j_insert_update
data-ssUID=450E175F-7969-4D65-B3B4-57ACD2986ACC data-ssPAR=WMS|MAG
Uwaga: poszczególne parametry rozdzielone są znakiem |
Zapytania WebComboFly
Przykład zapytania dla kontrolki ComboFly, przyjmuje dwa parametry
- {0} – szukana,
- {1} identyfikowator kontrahenta NRIDODN
Przykład uruchomienia w skrypcie JS
data-ssUID=\”434BDF33-FC7D-4D3C-8E7C-070449E353D6\” data-ssPAR=\”$$SearchString|0\”
przykład użycia w transakcji j_insert_update
data-ssUID=434BDF33-FC7D-4D3C-8E7C-070449E353D6 data-ssPAR=$$SearchString|0
Uwaga: poszczególne parametry rozdzielone są znakiem |
Podstawianie danych w trybie edycji
W celu ustawienia kontrolki z danymi w trybie edycji danych, gdy podstawiamy wartość domyślną za pomocą ssvalue, należy zdefiniować zapytanie zwracające dany rekord i podstawić go pod atrybut data-ssUIDE, oraz przekazać parametr za pomocą atrybutu data-ssPARE np.
W kartotece asortymentowej edytowanej za pomocą transakcji insert_update ustawiamy:
data-ssUID=ED6286DE-C4B5-4A8E-9B1B-4EDBB84229C2 data-ssPAR=$$SearchString|KON data-ssUIDE=E4FD0962-FD3B-4F8F-B728-6DC939023D3E data-ssPARE=$$SearchString
gdzie atrybut data-ssUID wskazuje na zapytanie (SELECT TOP(50) NRIDODN as id, SKROCO + ' (' + upper(MIEJSCOWOSC) + ')' as label FROM knkon WHERE ROLASYS='WMS' AND AKTYWNE=1 AND PRX='{1}' AND ACH='1' AND ODDZIAL=(select top(1) ODDZIAL from _users where username=@KTO) AND NAZWA+SKROCO LIKE '%{0}%' ORDER BY SKROCO) wykorzystywane do odszukania rekordów
a atrybut data-ssUIDE wskazuje na zapytanie(SELECT TOP(1) NRIDODN as id, SKROCO + ' (' + upper(MIEJSCOWOSC) + ')' as label FROM knkon WHERE NRIDODN = {0})
, które zwraca 1 rekord z danymi.
Tabela
Przykład zapytania SQL wykorzystywanego w skryptach JS do pobierania danych tabelarycznych, powyższy przyjmuje 1 parametr (numer referencyjny) za pomocą którego zwracamy dane dla danego dokumentu magazynowego.
Przykład wykorzystania w skrypcie JS za pomocą funkcji ssDataSQL()
ssDataSQL("5D6DEE90-3495-44D1-8045-77E5B0F5E778", gcRefno)
funkcja przyjmuje dwa parametry:
- Unique Id zapytania SQL
- numer referencyny
Insert
Przykład użycia, definiujemy zmienną cPar i wypełniamy listą parametrów rozdzielonych znakiem |
let cPar = gcRefno + "|" + $("#NRIDODN").jqxComboBox('val') + "|" + $("#NRIDASN").jqxComboBox('val');
cPar += "|" + $("#NRIDWMS").jqxComboBox('val'); // {3}
cPar += "|" + $("#PALETAKOD").jqxComboBox('val'); // {4}
cPar += "|" + $("#NRPALETY").val(); // {5}
cPar += "|" + $("#NRSERII").val(); // {6}
if ($("#TERMINWAZNOSCI").val().length > 0) {
cPar += "|'" + $("#TERMINWAZNOSCI").val() + "'"; // {7}
}
else {
cPar += "|NULL";
}
if ($("#DATAPRODUKCJI").val().length > 0) {
cPar += "|'" + $("#DATAPRODUKCJI").val() + "'"; // {8}
}
else {
cPar += "|NULL";
}
cPar += "|" + $("#ILOSC").jqxNumberInput('val'); // {9}
cPar += "|" + $("#UWAGIPOZ").val(); // {10}
Uruchamiamy funkcje ssExSQL()
AddSuccessEnd(ssExSQL("99784D40-2117-442B-BB22-563AD3DDB1ED", cPar));
Po wykonaniu zapytania uruchomiona zostanie funkcja AddSuccessEnd();
Update
ssExSQL("5D6DEE90-3495-44D1-8045-77E5B0F5E778", ssVar[1])
Execute Stored Procedure
Za pomocą definicji _code_sql możemy uruchomić dowolną procedurę składowaną i przekazać do niej parametry.
Przykład użycia:
EXECUTE [dbo].[sp_wms_dpmag_from_dpzle] {0},{1},@KTO
Chcemy uruchomić procedurę składowania sp_wms_dpmag_from_dpzle, która wymaga trzech parametrów: dpmag.REFNO, dpzle.REFNO oraz nazę login użytkownika. Wartości {0} oraz {1} zostaną podstawione z przekazanych parametrów.
Uruchamiamy funkcje w js np.:
ssExSQL("FB12449A-A235-430C-ADE5-DC07CB87CB95", gcRefno + "|" + OdczytValue("refno_zlecenie"));
Czytaj więcej:
_CODE_SQL CRM
Idea wykorzystania tabeli _code_sql dla CRM ogranicza się do zabezpieczenia bazy danych i zapytań przed dostępem dla użytkowników aplikacji www i Android. Wykorzystywanie unikalnych identyfikatorów UID po stronie klienta i przeniesienie logiki biznesowej na stronę serwera wydaje się obecnie najlepszym rozwiązaniem pod kątem bezpieczeństwa. Rola CRM UID: A6DCDB67-0DEB-4E01-B230-14F814530379 Rodzaj kontrolki: WebCombo TYTUŁ: Skorowidz DrawIo PRX=DRAW Zapytanie: SELECT UPPER(NRIDKAR) as id, NAZWA
_CODE_SQL MMS
Idea wykorzystania tabeli _code_sql dla MMS ogranicza się do zabezpieczenia bazy danych i zapytań przed dostępem dla użytkowników aplikacji www i Android. Wykorzystywanie unikalnych identyfikatorów UID po stronie klienta i przeniesienie logiki biznesowej na stronę serwera wydaje się obecnie najlepszym rozwiązaniem pod kątem bezpieczeństwa.
_CODE_SQL REK
Idea wykorzystania tabeli _code_sql ogranicza się do zabezpieczenia bazy danych i zapytań przed dostępem dla użytkowników aplikacji www i Android. Wykorzystywanie unikalnych identyfikatorów UID po stronie klienta i przeniesienie logiki biznesowej na stronę serwera wydaje się obecnie najlepszym rozwiązaniem pod kątem bezpieczeństwa.
_CODE_SQL SQL
Idea wykorzystania tabeli _code_sql ogranicza się do zabezpieczenia bazy danych i zapytań przed dostępem dla użytkowników aplikacji www i Android. Wykorzystywanie unikalnych identyfikatorów UID po stronie klienta i przeniesienie logiki biznesowej na stronę serwera wydaje się obecnie najlepszym rozwiązaniem pod kątem bezpieczeństwa.
_CODE_SQL SYS
Idea wykorzystania tabeli _code_sql ogranicza się do zabezpieczenia bazy danych i zapytań przed dostępem dla użytkowników aplikacji www i Android. Wykorzystywanie unikalnych identyfikatorów UID po stronie klienta i przeniesienie logiki biznesowej na stronę serwera wydaje się obecnie najlepszym rozwiązaniem pod kątem bezpieczeństwa.