AQL server AQL (App Query Language) server je jedan od modula App-a i koristi se za komunikaciju eksternih programa sa App-om (web serveri, WebAql, …). Komunikacija se obavlja preko upita koji se zadaju u obliku ASCII (American Standard Code for Information Interchange) fajla, a rezultat je takođe ASCII (American Standard Code for Information Interchange) file. Ako se upit zada kao file REQUEST.AQL (App Query Language), rezultat je RESULT.AQL (App Query Language). Ako se upiti zadaju kao REQ001.AQL (App Query Language), REQ002.AQL (App Query Language), … rezultati se redom upisuju u RES001.AQL (App Query Language), RES002.AQL (App Query Language), … Zahtevi se mogu upisivati bez obzira što prethodni nije izvršen. Kada se zada upit (na primer, REQUEST.AQL (App Query Language)) Aql izvršava upit i rezultat upisuje u RESULT.AQL (App Query Language). Kada se izvršenje završi, briše se REQUEST.AQL (App Query Language). Zato program koji zadaje upit treba da čeka na brisanje fajla sa upitom, jer to označava kraj obrade. Eksterni program zadaje upit kreiranjem odgovarajućeg REQxxx.AQL (App Query Language) fajla i čeka dok se ovaj file ne izbriše, što označava kraj obrade. Rezultat je u RESxxx.AQL (App Query Language). Kolone u okviru rezultata su razdvojene sa Chr(9) (Tab). Zbog preglednosti separator neće biti prikazivan. Na primer, umesto pisaće samo . U osnovnoj varijanti podržani su sledeći upiti: Artikli Pregled artikala po željenim kolonama. Ovaj upit može prikazati željene kolone, ali se nešto sporije izvršava nego upit LAGER. WITH Artikli LIST Id, Naziv, Sifra, Kol, Jm, Cena, Vrsta END Pregled svih artikala koji imaju kolicinu > 0: WITH Artikli FOR Kol > 0 LIST Id, Naziv, Sifra, Kol, Jm, Cena, Vrsta END Za upisivanje novih artikala koristi se sledeći zahtev: WITH Artikli SetName Cokolada NENA SetName2 Cokolada u komerc.pakovanju SetSif A-002 SetVrs 5001 SetTA R SetJM kom SetNap Ovo je napomena SetBK 9987123456789 SetPak 10 SetPakJM kut SetPor P18 AddArt END Ovako se definišu elementi artikla i metod AddArt upisuje novi artikal u evidenciju. Vraća se ID broj novog artikla. NAPOMENA: za vrstu se upisuje ID broj. Listanje svih atributa artikala: WITH Artikli AttrList END Dobija se sledeća tabela: Upis atributa se obavlja sledecim pozivom: WITH Artikli AddAttr , , ... END na primer: WITH Artikli AddAttr 1200, 34, Maticna ploca AddAttr 1200, 35, Intel END Takođe se može dobiti tabela svih atributa: WITH Artikli ATTRALL END Brzi pregled lagera ima osnovni oblik: WITH Lager List [nMag], [nPar], [nVar] END nMag - ID magacin nPar - ID partnera nVar - Varijanta upita Primeri: LIST 5, 123, 0 , , , , , , LIST 5, 123, 1 , , , , , , , LIST 5, , 2 , , , LIST 5, 123, 3 LIST 5, 123 LIST , , , , , , , , , , , , , , , - N10 - C15 - C30 - C3 - N12,3 - N12,3 - N18,3 - C5 - N6,2 - C10 - C20 - C25 - C5 - C35 - N12,3 - C3 LIST 5, , 4 , , , , , LIST ,,5, , , , , , , , , LIST ,,6, , Listanje pojedinih artikala sa zadatim ID-om se izvodi sledecom varijantom upita: WITH Lager DEFART 5012 DEFART 1023 LIST 5, 123, 3 END LIST ,,7, ## ... ## ... Vrste artikala Pregled vrsta artikala: WITH Vrste LIST ID, Sifra, Naziv END Partneri Šifarnik kupaca i dobavljača WITH Partneri LIST KD END rezultat: - N10 - C15 - C35 - C35 - C35 - C35 - C35 - C10 - C13 - N6,2 - N10 - C35 - C35 - C35 - c15 - C10 - N7 - C18 - Pregled podataka za kupca 00234: WITH Kupci Seek 00234 LIST Sifra, Naziv, Adresa1, Adresa2, Tel, Status, Pib, Rab END - Pregled kartice kupca, najvise 999 stavki: WITH Kartica SetPar 1234 SetLim 9999 List Datum, Valuta, Doc, Dug, Pot Saldo Dospelo END - Logovanje kupca. Unet user i pass mora da odgovara podacima na partneru. WITH Partner Login PERA, PP END Pregled objekata partnera na osnovu ID-a partnera: WITH Partneri QObjList 257 END rezultat: - N10 - C15 - C35 - C35 - C35 - C35 - C35 - N10 - C35 - C35 - C35 Metoda QList podržava učitavanje tabele iz delova: ukoliko ima više od 5000 stavki, ispisuje se poruka CONTINUE . Kasnije se zadavanjem QLIST , dobija nastavak tabele. Dodavanje novog kupca: WITH Partneri SetName XY KOMERC SetSif KOMXY SetAdr1 Bajeva BB SetAdr2 Beograd SetTel 123-456 SetKom 134 SetPib 123456789 SetKon Mika SetFax 77766553 SetMob 063/2356789 SetMail mika@laza.com SetRV 8-15 SetKD K SetKla A1 SetKontakt Mika AddPar END Kreiranje dokumenata - Kreira se racun sa artiklima 001, 002 i 623. Moze se zadati samo kolicina, kolicina i cena, rabat. Mogu se upisivati i usluge. NUMBER opciono forsira broj fakture, KOMERC forsira komercijalistu, VALUTA zadaje datum valute. WITH Invoice AddArt 001, 1 AddArt 002, 2, 100 AddArt 623, 1, 100, 5 AddUsl "Usluga 001", 5, 10, [5] Number 1200 Komerc 456 Valuta 22.12.05 LimKol YES -- da li se limitira kolicina SetKD K -- forsira status kupca Memo Ovo je napomena Memo u dva reda. Print 2 -- print u 2 kopije AddInv f-, K-001, O-3, PDV, VP END - Predracun: WITH ProInvoice AddArt 001, 1 AddArt 002, 2, 100 AddArt 623, 1, 100, 5 Number 1200 Komerc 456 Valuta 22.12.05 DPR 27.12.05 SetKD K -- forsira status kupca Datum 22.12.05 Memo Ovo je napomena! Print 1 -- stampa AddPro pf-, K-001, O-3, PDV18, VP END Kreiranje internog prenosa: WITH IntDoc AddArt , , , Datum Memo Print AddDoc , , END Razno - Logovanje korisnika: WITH User LogUser PERA,12345 END - Sinhronizacija sa PocketPC WITH PocketPC Receive Send END - Ucitavanje tekuce kursne liste. WITH Valute GetVal GetVal EUR END - Pregled svih komercijalista: WITH Komerc LIST Id, Ime, Sifra, Jmbg END - Pregled svih nacina placanja: WITH NacinPlacanja LIST Id, Naziv END Kreiranje racuna za KU kasu: WITH KuRacun Art 001,2,100 Art 003,1,120 Art 004,1,45 Placanje 2, 1000 Placanje 3, 500 AddKu 2,101 END - Sistemske informacije: Quit gasi Aql server, Version vraća verziju Aql-a, a Parameters vraća sve parametre iz App-a. WITH System Quit Version Parameters END Magacinski nalozi Nalozi za prijem WITH MagCmd LIST DOS, END rezultat - dobija se lista svih naloga u registratoru : D id - id naloga za prijem N10 idu - user id naloga C10 lock - da li je nalog lokovan C1 datum - D dobavljac - C35 br_stavki - N5 napomena - C35 WITH MagCmd LIST_ART D END rezultat - lista stavki na izabranom dokumentu : WITH MagCmd LIST_MAG [ALL] END rezultat - lista magacina sa ID, šifrom i nazivom. Uzimaju se samo magacini koji su selektovani za prikaz u AQL (App Query Language), a ako se stavi opcija ALL, listaju se svi magacini. WITH MagCmd LOCK D END rezultat - lokuje se dokument . Vraća se tekst True ili False u zavisnosti od toga da li je operacija uspela. WITH MagCmd UNLOCK D END rezultat - unlokuje se dokument . Vraća se tekst True ili False u zavisnosti od toga da li je operacija uspela. WITH MagCmd AddART , AddART , AddART , ... DONE D END rezultat - potvrđuje se realizacija dokumenta . Ukoliko su zadate AddART stavke, menja se originalni dokument u skladu sa ovim stavkama. Nalozi za izdavanje (fakture) WITH MagCmd LIST FAK, END rezultat - dobija se lista svih naloga u registratoru : F id - id naloga za prijem idu - user id naloga lock - da li je nalog lokovan datum - kupac - br_stavki - napomena - id-komercijaliste - WITH MagCmd LIST_ART F END rezultat - lista stavki na izabranom dokumentu : WITH MagCmd LOCK F END rezultat - lokuje se dokument . Vraća se tekst True ili False u zavisnosti od toga da li je operacija uspela. WITH MagCmd UNLOCK F END rezultat - unlokuje se dokument . Vraća se tekst True ili False u zavisnosti od toga da li je operacija uspela. WITH MagCmd AddART , AddART , AddART , ... DONE F END rezultat - potvrđuje se realizacija dokumenta . Ukoliko su zadate AddART stavke, menja se originalni dokument u skladu sa ovim stavkama. Primeri: Bar-kod terminal komunicira sa Aql-om prilikom izdavanja robe. Prvo se traži spisak naloga koje treba isporučiti: WITH MagCmd LIST FAK, if- END dobija se lista: F105 265 22.05.10 XY Trade 3 Hitna isporuka F106 266 L 26.05.10 Pera komerc 10 F107 268 29.05.10 BB trade 5 Zaključava se nalog id=105, pa ostali korisnici ne mogu da mu pristupe. WITH MagCmd LOCK F105 END Traže se stavke ovog naloga: WITH MagCmd LIST_ART F105 END Dobija se: 1205 00045 Cokolada MILKA 9012345678910 5 120.00 2056 02035 Keks XY 6782999908910 1 230.00 1102 01125 Mleko 5567775678910 2 66.00 Posle pakovanja šalje se poruka da je nalog spakovan: WITH MagCmd DONE F105 END Ako je bilo izmena u količinama: WITH MagCmd ART 1205, 6 ART 2056, 2 ART 1102, 2 DONE F105 END Nalog se na kraju otključava: WITH MagCmd UNLOCK F105 END Podrška za OS Lista svih OS (Operating System): WITH MagCmd TAB_OS END rezultat - dobija se lista svih OS (Operating System): <šifra> Lista svih mesta na kojima su OS (Operating System): WITH MagCmd TAB_MOS END rezultat - dobija se lista svih mesta OS (Operating System): <šifra> Upis bar-koda određenog OS (Operating System): WITH MagCmd SET_OS , END Upis popisanih količina OS (Operating System): WITH MagCmd POP_OS , , POP_OS , , POP_OS , , ... DONE_OS END Svaki red sadrži ID OS (Operating System), popisanu količinu i opciono mesto na kome je zatečeno OS (Operating System). Rezultat komande je kreiranje popisa u App-u, odakle se može učitati u popis OS (Operating System). Stavke dokumenata - artikli Preko ovih komandi se mogu definisati stavke dokumenata i preneti u bilo koji dokument. Stavke se upisuju u clipboard odakle se mogu učitavati. Standardna primena je kod skeniranja artikala za popis i sl. Tabela svih artikala: WITH MagCmd TAB_ART END Rezultat je lista svih artikala: Na primer: 123 0034 Cokolada 1234567890345 kom 1 B-03 Svaki artikal ima šifru i bar-kod. Količina u normalnim uslovima je 1. Ako postoje alternativne šifre, one se ispisuju ispod glavnog artikla, sa istim ID-om, nazivom, jedino što je šifra uvek ”-” i za količinu se uzima količina u pakovanju: 123 - Cokolada 333444553432423423 pak 20 A-02 Upis stavki u clipboard: WITH MagCmd POP_ART , POP_ART , ... DONE_ART Ovakva komanda upisuje skenirane artikle u sistemski clipboard. Transport Lista svih vozila: WITH Vozila QLIST END Rezultat: <šasija> Lista vozača: WITH Vozaci QLIST END Rezultat: Narudžbenice Kreiranje nove narudžbenice: WITH Order AddArt , AddArt , ... AddOrd END Zadaju se redom artikli i količine, a na kraju se kreira narudžbenica prema dobavljaču . Cenovnik Listanje cenovnika (za id se koristi NAZIV cenovnika iz programa) : WITH Cenovnik LIST END Rezultat: <šifra>