AQL 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 fajla, a rezultat je takođe ASCII file. Ako se upit zada kao file REQUEST.AQL, rezultat je RESULT.AQL. Ako se upiti zadaju kao REQ001.AQL, REQ002.AQL, … rezultati se redom upisuju u RES001.AQL, RES002.AQL, … Zahtevi se mogu upisivati bez obzira što prethodni nije izvršen.

Kada se zada upit (na primer, REQUEST.AQL) Aql izvršava upit i rezultat upisuje u RESULT.AQL. Kada se izvršenje završi, briše se REQUEST.AQL. 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 fajla i čeka dok se ovaj file ne izbriše, što označava kraj obrade. Rezultat je u RESxxx.AQL. Kolone u okviru rezultata su razdvojene sa Chr(9) (Tab). Zbog preglednosti separator neće biti prikazivan. Na primer, umesto <id><tab><sifra> pisaće samo <id> <sifra>.

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:

<id_attr> <naziv_attr> <id_vrste>

Upis atributa se obavlja sledecim pozivom:

WITH Artikli
  AddAttr <art_id>, <attr_id>, <vrednost>
  ...
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
<sifra>, <naziv>, <kol>, <rez>, <refn>, <refp>, <x-cena>

LIST 5, 123, 1
<sifra>, <naziv>, <kol>, <rez>, <ref>, <refn>, <refp>, <x-cena>

LIST 5, , 2
<memo>, <sifra>, <vrsta>, <kol>

LIST 5, 123, 3
LIST 5, 123
LIST
<id>, <sifra>, <naziv>, <jm>, <kol>, <rez>, <cena>, <por>, <pop>, <vrsta>, <bar-kod>, <proizvodjac>, <boja-kol>, <namena>, <pakovanje>, <pak_jm>

gde je: 

<id> - N10
<sifra> - C15
<naziv> - C30
<jm> - C3
<kol> - N12,3
<rez> - N12,3
<cena> - N18,3
<por> - C5
<pop> - N6,2
<vrsta> - C10
<bar_kod> - C20
<proizvođač> - C25
<boja> - C5
<namena> - C35
<pakovanje> - N12,3
<pak_jm> - C3

LIST 5, , 4
<id>, <kol>, <rez>, <cena>, <boja-kol>, <rab>

LIST ,,5,<rec>
<id>, <sifra>, <naziv>, <jm>, <por>, <vrsta>, <bar-kod>, <proizvodjac>, <namena>

LIST ,,6,<rec>
<id>, <alt>

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,<rec>
##<id1>
<Napomena 1>
<Napomena 2>
...
<Napomena n>
##<id2>
<Napomena 1>
...

– Promena prodajnih atributa artikla obavlja se sledećom komandom:

WITH Artikli
  DefAttr 100, ANR
  DefAttr 236, P
  DefAttr 120, RO
  WriteAttr
END

Koriste se sledeće oznake:

A – Akcija
N – Novo
R – Rasprodaja
P – Preporuka
O – Povoljno

Vrste artikala


Pregled vrsta artikala:

WITH Vrste
  LIST ID, Sifra, Naziv
END

Cenovnici


– Listanje cenovnika:

WITH Cenovnik
  LIST CEN-01
END

– Upis cena u cenovnik:

WITH Cenovnik
  AddArt 123, 2000.00
  AddArt 674, 120.00
  AddArt 34, 240.00
  WriteCen CEN-01
END

Partneri


Šifarnik kupaca i dobavljača:

WITH Partneri
  LIST KD
END

rezultat:

<id> <sifra> <naziv> <adr1> <adr2> <tel1> <tel2> <status> <pib> <rabat> <id_komercijaliste> <kontakt> <mobilni> <mail> <radno_vreme> <mb> <limit> <račun>

gde je:

<id> – N10
<sifra> – C15
<naziv> – C35
<adr1> – C35
<adr2> – C35
<tel1> – C35
<tel2> – C35
<status> – C10
<pib> – C13
<rabat> – N6,2
<id_komercijaliste> – N10
<kontakt> – C35
<mobilni> – C35
<mail> – C35
<radno_vreme> – c15
<mb> – C10
<limit> – N7
<račun> – 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:
<id> <sifra> <naziv> <adr1> <adr2> <tel1> <tel2> <id_komercijaliste> <kontakt> <mobilni> <mail>

gde je:

<id> – N10
<sifra> – C15
<naziv> – C35
<adr1> – C35
<adr2> – C35
<tel1> – C35
<tel2> – C35
<id_komercijaliste> – N10
<kontakt> – C35
<mobilni> – C35
<mail> – C35

Metoda QList podržava učitavanje tabele iz delova: ukoliko ima više od 5000 stavki, ispisuje se poruka

CONTINUE <naredni_rec> <ukupno_rec>.

Kasnije se zadavanjem

QLIST <status>, <naredni_rec>

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 račun sa artiklima 001, 002 i 623. Može se zadati samo količina, količina i cena, rabat. Mogu se upisivati i usluge. NUMBER opciono forsira broj fakture, KOMERC forsira komercijalistu, VALUTA zadaje datum valute. Na primer:

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

– Kreiranje predračuna:

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 <art>, <kol>, <nab_cen>, <pro_cen>
  Datum <datum>
  Memo <napomena>
  Print <broj_kopija>
  AddDoc <reg>, <mag1>, <mag2>
END

– Logovanje korisnika:

WITH User
  LogUser PERA,12345
END

– Sinhronizacija sa PocketPC

WITH PocketPC
  Receive
  Send
END

– Učitavanje tekuće kursne liste.

WITH Valute
  GetVal
  GetVal EUR
END

– Pregled svih komercijalista:

WITH Komerc
  LIST Id, Ime, Sifra, Jmbg
END

– Pregled svih načina plaćanja:

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
  Version
  Parameters
  Quit
END

Magacinski nalozi


– Nalozi za prijem:

WITH MagCmd
  LIST DOS, <reg>
END

kao rezultat se dobija lista svih naloga u registratoru <reg>:

D<id> <idu> <lock> <datum> <dobavljac> <br_stavki> <napomena>

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<id>
END

rezultat – lista stavki na izabranom dokumentu <id>:

<art_id> <art_sifra> <art_naziv> <bar_kod> <kolicina> <cena>
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, a ako se stavi opcija ALL, listaju se svi magacini.

<mag_id> <mag_sifra> <mag_naziv>
WITH MagCmd
  LOCK D<id>
END

rezultat – lokuje se dokument <id>. Vraća se tekst True ili False u zavisnosti od toga da li je operacija uspela.

WITH MagCmd
  UNLOCK D<id>
END

rezultat – unlokuje se dokument <id>. Vraća se tekst True ili False u zavisnosti od toga da li je operacija uspela.

WITH MagCmd
  AddART <art1_id>, <kol1>
  AddART <art2_id>, <kol2>
  AddART <art3_id>, <kol3>
  ...
  DONE D<id>
END

rezultat – potvrđuje se realizacija dokumenta <id>. Ukoliko su zadate AddART stavke, menja se originalni dokument u skladu sa ovim stavkama.

Nalozi za izdavanje fakture


WITH MagCmd
  LIST FAK, <reg>
END

rezultat – dobija se lista svih naloga u registratoru <reg>:

 F<id> <idu> <lock> <datum> <kupac> <br_stavki> <napomena> <id-komercijaliste>

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<id>
END

rezultat – lista stavki na izabranom dokumentu <id>:

<art_id> <art_sifra> <art_naziv> <bar_kod> <kolicina> <cena>
WITH MagCmd
  LOCK F<id>
END

rezultat – lokuje se dokument <id>. Vraća se tekst True ili False u zavisnosti od toga da li je operacija uspela.

WITH MagCmd
  UNLOCK F<id>
END

rezultat – unlokuje se dokument <id>. Vraća se tekst True ili False u zavisnosti od toga da li je operacija uspela.

WITH MagCmd
  AddART <art1_id>, <kol1>
  AddART <art2_id>, <kol2>
  AddART <art3_id>, <kol3>
  ...
  DONE F<id>
END

rezultat – potvrđuje se realizacija dokumenta <id>. 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:

WITH MagCmd
  TAB_OS
END

rezultat – dobija se lista svih OS:

<id> <šifra> <inv.broj> <naziv> <bar-kod> <mesto>

Lista svih mesta na kojima su OS:

WITH MagCmd
  TAB_MOS
END

rezultat – dobija se lista svih mesta OS:

<id> <šifra> <naziv> <bar-kod>

Upis bar-koda određenog OS:

WITH MagCmd
SET_OS <id>, <bar-kod>
END

Upis popisanih količina OS:

WITH MagCmd
  POP_OS <id>, <kol>, <mesto>
  POP_OS <id>, <kol>, <mesto>
  POP_OS <id>, <kol>, <mesto>
  ...
  DONE_OS
END

Svaki red sadrži ID OS, popisanu količinu i opciono mesto na kome je zatečeno OS. Rezultat komande je kreiranje popisa u App-u, odakle se može učitati u popis OS.

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:

<Id> <sifra> <naziv> <bar-kod> <jm> <kol> <lokacija>

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 <id>, <kol>
  POP_ART <id>, <kol>
  ...
DONE_ART

Ovakva komanda upisuje skenirane artikle u sistemski clipboard.

Transport


Lista svih vozila:

WITH Vozila
  QLIST
END

Rezultat:

<id> <naziv> <reg.br> <šasija> <br.motora>

Lista vozača:

WITH Vozaci
QLIST
END

Rezultat:

<id> <ime.prezime> <adresa> <LK>

Narudžbenice


– Kreiranje nove narudžbenice:

WITH Order
  AddArt <art_id>, <kol>
  AddArt <art_id>, <kol>
  ...
  AddOrd <dob_id>
END

Zadaju se redom artikli i količine, a na kraju se kreira narudžbenica prema dobavljaču <dob_id>.

– Listanje porudžbenica od jednog dobavljača:

WITH Order 
 List <dob_id>
END

Dobija se rezultat:

<id_nar> <broj_nar> <prih-odb> <datum> <dobavljac>

– Listanje stavki porudžbenice:

WITH Order
  List_doc <nar_id>
END

dobija se rezultat:

<art_id> <art_sifra> <art_naziv> <kolicina> <cena>
...