Projektna dokumentacija za Mob Ellposs, mobilni informacijski sustav za skladišno poslovanje. Mob Ellpos je zajedničko rješenje tvrtki KORIS d.o.o. i Ellabo d.o.o. te je u svakodnevnoj uporabi u skladišnom poslovanju Ellaba. Ova projektna dokumentacija je ogledni primjer kako KORIS d.o.o. "obavlja posao" projektiranja informacijskog sustava radi daljnjega razvoja. Dokumentacija se može smatrati kao jedan od isporučenih dokumenata - "deliverable" - prema TOGAF paradigmi. Po ovoj dokumentaciji razvijeno je mobilno rješenje za skladišno poslovanje temeljeno na Android aplikaciji, dotnet Core REST web-servisima i MSSQL bazi podataka.
3. Mob Ellposs: projektna dokumentacija
Sadržaj
1 Uvod......................................................................................................................5
1.1 Bilješka o projektantskoj platformi i programima...........................................................6
2 Skladišni procesi........................................................................................................7
2.1 Proces Zaprimiti robu (ZAP).....................................................................................8
2.2 Proces Prikupiti robu za izlaz (PKI)...........................................................................11
2.3 Događajni podproces Odložiti robu na izlaz (ODI)..........................................................13
2.4 Proces Otpremiti robu (OPM)..................................................................................14
2.5 Proces Premjestiti robu unutar skladišta (PUS).............................................................16
2.6 Proces Evidentirati robu (EVD)................................................................................18
2.7 Proces Izuzeti robu u maloprodaji (MPR)....................................................................20
2.8 Dijagrami stanja naloga zaprimanja, otpreme i međuskladišnice.......................................22
2.9 Evidencija nedostajućih naljepnica..........................................................................24
2.10 Prijedlog poboljšanja: skladišni nalozi "bez papira"......................................................25
3 Podatkovni model......................................................................................................27
3.1 Temeljne značajke podatkovnog modela....................................................................29
3.1.1 Skladišni nalog.............................................................................................29
3.1.2 Stavke Naloga..............................................................................................29
3.1.3 Robne transakcije.........................................................................................30
3.1.4 Moguće integracije s eventualnim budućim vanjskim sustavima..................................30
3.1.5 Ovjere i ovlasti............................................................................................30
3.2 Osvrt na Robne transakcije i Robni izlaz.....................................................................31
4 Korisnička sučelja.....................................................................................................33
4.1 Razvrstavanje robe..............................................................................................35
4.2 Smještaj robe....................................................................................................39
4.3 Priprema za otpremu...........................................................................................45
4.3.1 Pregled proizvoda u izmještaju (PLL)..................................................................50
4.4 Otprema..........................................................................................................51
4.5 Premještaj robe unutar skladišta.............................................................................52
4.6 Evidencija robe (inventura)....................................................................................52
4.7 Maloprodaja......................................................................................................53
4.8 Dodjela bar koda................................................................................................56
4.9 Lokacije robe....................................................................................................57
4.10 Sortiranje stavki skladišnog naloga..........................................................................58
5 Aplikacijska programska sučelja (API) za integraciju s vanjskim sustavima..................................59
5.1 Zadavanje naloga................................................................................................60
5.1.1 POST /api/nalozi..........................................................................................60
5.1.2 NalogCreate................................................................................................61
5.1.3 Objašnjenja................................................................................................61
5.2 Zatvaranje ulaznog naloga.....................................................................................62
5.2.1 PUT /api/nalozi/ulazni/zakljuci........................................................................62
5.2.2 KrajNalogaCreate.........................................................................................62
5.3 Ažuriranje stanja na lokacijama..............................................................................63
5.3.1 POST /api/tx/inventurna................................................................................63
5.3.2 RobnaTxInventurnaCreate...............................................................................64
5.3.3 Objašnjenja................................................................................................64
4. Mob Ellposs: projektna dokumentacija
Ova stranica je namjerno prazna.
Dokument je prilagođen dvostranom ispisu.
4
5. Mob Ellposs: projektna dokumentacija
1 Uvod
Ovom projektnom dokumentacijom je opisan izvedbeni projekt novog mobilnog rješenja za
skladišno poslovanje u tvrtki Ellabo d.o.o: Mob Ellposs. Mob Ellposs će biti trokomponentni
softver sastavljen od:
1. Korisničke aplikacije za mobilne uređaje pod operacijskim sustavom Android.
2. Web servisa za komunikaciju između korisničke aplikacije i Mob Ellpossove baze
podataka. Taj web servis će biti tako izveden da ga u budućnosti mogu koristiti i druge
korisničke aplikacije, a ne samo ona za Android razvijena ovim projektom.
3. Baze podataka i pohranjenih procedura (stored procedures).
Ovim izvedbenim projektom su opisana slijedeća tematska područja:
1. Model poslovnih procesa u Ellabovom skladišnom poslovanju. Taj model je osnova za
daljnji aplikativni razvoj. Model je izrađen u grafičkom obliku, kao radni (workflow)
dijagram po normi BPMN 2.0, te je dodatno tekstualno dokumentiran.
2. Relacijski model baze podataka Mob Ellposs za skladišno poslovanje. Baza podataka je
osmišljena s naglaskom na normalizaciju kako bi se značajno podigle performanse čitavog
Mob Ellpossa i omogućila buduća proširenja funkcionalnosti.
3. Skice (wireframe) sučelja korisničke aplikacije za mobilne uređaje. Tim skicama
prikazano je kako će mobilna aplikacija podržati Ellabove poslovne procese i jednostavne
CRUD1
funkcionalnosti.
4. Definiranje programskih sučelja (application programming interface: API) za povezivanje
Mob Ellpossa s budućim glavnim informacijskim sustavom Ellaba zvanim Ellposs. To
povezivanje će biti provedeno preko web servisa razvijenog po REST paradigmi koji radi s
podacima u JSON formatu.
Uvođenjem Mob Ellpossa, Ellabovo skladišno poslovanje bit će temeljeno na modernoj,
dugoročno podržanoj i održivoj tehničkoj platformi. Uz to, ostvarit će se slijedeće prednosti:
1. Moderno klizno sučelje (bez scrollbara i stilusa) za povećanje produktivnosti.
2. Bolje informiranje o poslovnim problemima skladišta i eventualnim tehničkih greškama.
3. Bolja prilagođenost raznim uređajima, mobilnim i klasičnim, te mogućnost ostvarenja
višeplatformnosti (uz Android, otvaranje opcija podrške za Windows i Linux).
4. Mogućnost daljnjih proširenja kao što su dodavanje funkcionalnosti za dostavu, digitalno
potpisivanje zaprimanja robe, poboljšanje inventurnih poslova, dodavanje maloprodajnih
funkcionalnosti uključivo i fiskalizaciju, itd.
Za izradu projektne dokumentacije korišten je program Visual Paradigm Standard Edition.
Projektnim datotekama Visual Paradigma se može pristupiti na dva načina:
1. Uvozom (import) projektne vpp datoteke. Ta datoteka je uključena u isporuku ove studije
pod nazivom mob-ellposs_<gg-mm-dd>.vpp.
2. Povlačenjem čitavog projekta iz zaštićenog internetskog repozitorija "u oblaku".
1 CRUD: kratica za create, read, update delete. Tom sintagmom se označavaju temeljne poslovne funkcionalnosti
nekog programa. Takve funkcionalnosti nisu složeni proces od mnogo radnih koraka, nego se svode na jednostavnu
evidenciju u bazi podataka u obliku zapisivanja (create), čitanja (read), ažuriranja (update) i brisanja (delete).
5
6. Mob Ellposs: projektna dokumentacija
U oba slučaja, na radnoj stanici treba biti instaliran Visual Paradigm Standard Edition ili
besplatni preglednik Visual Paradigm Project Viewer. U slučaju 2, Koris treba dodijeliti
ovlaštenom osoblju Ellaba ovlasti za pristup repozitoriju (lozinku) te URL repozitorija.
Iz Visual Paradigma je generirana projektna dokumentacija koja je također dio isporuke: mob-
ellposs-autogen-dok_<gg-gg-dd>.zip. Iako korisna, takva autogenerirana dokumentacija
uglavnom nije adekvatna za neinformatičare. Zato je za poslovne stručnjake napisan ovaj
dokument. U njemu su linkane one sekcije autogenerirane dokumentacije gdje je to ne smeta
općem razumijevanju. Autogenerirana dokumentacija se nalazi u obliku web stranica na adresi:
HTTPS://KORIS.HR/MOB-ELLPOSS
Za pristup je potrebno korisničko ime i lozinka koje Koris treba dodijeliti ovlaštenom osoblju
Ellaba. Učitane stranice povremeno osvježite tipkom F5 radi dohvata najnovije verzije slika.
1.1 Bilješka o projektantskoj platformi i programima
Ovaj projekt izrađen je na računalu sa 64-bitnim procesorom amd64 (x86-64) arhitekture, pod
operacijskim sustavom Linux, distribucija Ubuntu 18.04.
Sistemski programi:
• Microsoft SQL Server 2019 za Linux (MSSQL) za smještaj baze podataka i pohranjenih
procedura. MSSQL je smješten u Docker kontejneru.
• Docker kontejner za pokretanje MSSQL-a. Uvijek posljednja stabilna inačica
(latest/stable), instalirana i ažurirana kao snap paket. Slobodni softver.
• Radna okolina (framework) AspNet Core 3.1 (dio DotNet Core 3.1) za razvoj web API-ja.
Instalirana i ažurirana iz Microsoftovih repozitorija za Ubuntu Linux. Slobodni softver.
• Kestrel web-server za smještaj i pokretanje web API-ja. Kestrel je dio AspNet Core radne
okoline (te također slobodni softver).
Korisnički programi:
• Visual Paradigm Standard za razvoj modela poslovnih procesa, relacijskog modela
podataka, skica korisničkih sučelja, dijagrama stanja te autogeneriranje web
dokumentacije, uvijek u najsvježijoj inačici (16.2 u studenome 2020.).
• Azure Data Studio v1.19 za izradu baze podataka i programiranje pohranjenih procedura
(stored procedures). Slobodni softver.
• Visual Studio Code za programiranje web API-ja u AspNet Core 3.1 okolini. Uvijek u
najsvježijoj inačici, instaliran i ažuriran iz Microsoftovih repozitorija za Ubuntu Linux.
Slobodni softver.
• C# for Visual Studio Code (powered by OmniSharp). Microsoftovo proširenje (extension)
za Visual Studio Code namijenjeno programiranju u C# jeziku. Korišteno za programiranje
AspNet Core web API-ja. Slobodni softver.
• Postman, za testiranje web API-ja.
• LibreOffice Writer za pisanje ovoga dokumenta. Writer je slobodni softver i dio paketa
LibreOffice.
6
7. Mob Ellposs: projektna dokumentacija
2 Skladišni procesi
Skladišni procesi grafički su opisani kao radni dijagrami oblikovani po normi BPMN 2.0,
općepriznatoj za modeliranje poslovnih procesa. Ta norma i njeni simboli vuku korijen iz
klasičnih workflow tj. flowchart dijagrama te su zato BPMN dijagrami (business process diagram:
BPD) prilično raspoznatljivi i bez posebnog podučavanja i prilagodbi:
• Kružnicama su označeni početak procesa (tanka), međudogađaj koji se zbio tijekom
provedbe poslovnog slučaja (koncentrične) i završetak (debela).
• Pravokutnicima zaobljenih rubova su označene aktivnosti, radnje pri obavljanju poslovnog
slučaja koje imaju trajanje, jednog ili više izvođača (ljudskog ili automatiziranog) te
potrebne resurse (informacijske ili materijalne).
• Rombovima su označene skretnice. Uz klasične, ekskluzivne ("ili") skretnice, moguće su i
razne druge koje su označene dodatnim simbolom ucrtanim u romb.
• Valjcima su označena spremišta. Za poslovne procese čije izvođenje je podržano
informacijskim tehnologijama, ta "spremišta" su relacijske baze podataka tj. relacijske
sheme ("tablice").
• Ikonom dokumenta su označeni papirni ili elektronički dokumenti.
Elegantan pregled osnovnih BPMN 2.0 simbola je u nastavnoj prezentaciji kolegija Modeliranje
poslovnih procesa na Visokom učilištu Algebra, slajdovi 51 - 60: LINK2
. (Dalje u tekstu: MPP
prezentacija.)
Osnovni BPMN simboli se mogu precizirati ucrtavanjem dodatnih simbola. Na primjer, "plus"
ucrtan u skretnicu (tj. romb) znači da je skretnica paralelna, tj. da će se se poslovni slučaj
nastaviti po svim granama nakon skretnice, a ne po samo jednoj kao što bi bio slučaj s
ekskluzivnom skretnicom. U MPP prezentaciji, detaljno razjašnjenje dodatnih simbola nalazi se
na slajdovima 64 - 99. Specifične konvencije za dijagrame poslovnih procesa u ovoj studiji su:
• Slova C, U i D na strelicama koje vode ka spremištima i dokumentima označavaju
podatkovne operacije: C (create) za stvaranje sadržaja, U (update) za ažuriranje
sadržaja. Čitanje (read) nije posebno označeno.
• Sivom bojom su označene tzv. ručne aktivnosti: one koje se ne provode pomoću računala.
Sve takve aktivnosti imaju ucrtan simbol šake.
• Bijelom bojom su označene sve računalno podržane aktivnosti, ljudske ili automatizirane.
Ako ih provodi čovjek, onda su to korisničke aktivnosti, označene ikonom čovječuljka, i
za njih treba razviti korisnička sučelja u Mob Ellpossu. Ostale bijele aktivnosti su
automatizirane, provodi ih računalo i za njih treba razviti programski kod koji se izvodi
bez ljudskog upliva.
• U tabličnom opisu procesa, kurzivom su označene one riječi koje se odnose na relacijske
sheme u bazi podataka (npr. Nalog, RobnaTx ili Sadržaj).
2 Skraćeni lik za cijelu prezentaciju jest: BIT.LY/MPP-ALGEBRA
7
8. Mob Ellposs: projektna dokumentacija
2.1 Proces ZAPRIMITI ROBU (ZAP)
Proces ZAPRIMITI ROBU prikazan je kao kolaboracija procesa RAZVRSTATI ROBU i SMJESTITI ROBU. Za
svaki poslovni slučaj (instancu) procesa RAZVRSTATI ROBU odvija se jedan ili više poslovnih
slučajeva procesa SMJESTITI ROBU. Simbolički nazivi procesa:
• ZAPRIMITI ROBU: ZAP
• RAZVRSTATI ROBU: ZAP-R
• SMJESTITI ROBU: ZAP-S
RAZVRSTATI ROBU opisuje preuzimanje robe od dobavljača u smislu "istovara s kamiona". Rezultat je
zaprimljena roba razvrstana na palete, u privremeni smještaj, ali još ne na smještajnu skladišnu
lokaciju. Kada se zaprima veća količina robe, po više ulaznih naloga, ta roba je za transport
često pomiješana tj. dobavljač ju nije razvrstao po Ellabovim primkama. Osim toga, neki artikli
iz jedne pošiljke mogu biti namijenjeni standardnom skladištu, a neki tranzitnom. Ovim
procesom ti se proizvodi razvrstavaju po ulaznim nalozima po kojima su nabavljeni. Smještaj
robe na skladišne lokacije obavlja se idućim procesom SMJESTITI ROBU.
SMJESTITI ROBU je postupak smještaja zaprimljene i razvrstane robe s privremenih na stalne
skladišne lokacije. Tim procesom roba se s privremene lokacije smješta na stalnu, smještajnu te
se evidentira količina robe na toj lokaciji. Taj proces sasvim je nalik onome koji se provodi
pomoću mobilnih uređaja u staroj aplikaciji Mob Trenis.
8
Slika 1: Proces ZAPRIMITI ROBU
9. Mob Ellposs: projektna dokumentacija
U kontekstu ovog procesa, "primka" označava bilo koji nalog zaprimanja ("ulazni nalog"): primku
(PRS), povratnicu iz interne potrošnje (POI), Povratnicu od kupca (POK) i povratnicu iz
maloprodaje (POP). Također, po ovome modelu se obrađuje zaprimanje robe na skladište ("ulaz
robe") po međuskladišnici (PSS).
Tablica 1: Proces RAZVRSTATI ROBU
Objekt Opis
Primka ispisana Fizički, papirni ispis ulaznog Naloga (primke) na skladišni pisač.
U trenutku ispisa, elektronički zapis o tom Nalogu već se nalazi u
Mob Ellpossovoj bazi podataka, u tablicama Nalog i Stavka naloga
te nekim drugima (npr. Komitent), ovisno o točnoj vrsti ulaznog
Naloga.
Elektronički zapis o Nalogu ušao je u bazu podataka Mob
Ellpossovom web metodom ZADAJ NALOG.
Skenirati primke Skladištar očitava oznake jednog ili više ulaznih Naloga (primki)
ispisanih na skladišnom pisaču. Očitanje se provodi skeniranjem
bar koda Naloga, na mobilnom uređaju pomoću aplikacije Mob
Ellposs. Po skeniranju, automatski se (web servisom) dohvaćaju i
prikazuju podaci o ulaznom Nalogu i pripadnim Stavkama. Od tih
podataka izrađuje se memorijski popis s kojim aplikacija Mob
Ellposs dalje radi.
Korisničko sučelje opisano je u Poglavlju 4.1, Slika 43.
Pripremiti privremeni
smještaj
Organizacija prihvatnih kutija i paleta za privremeni smještaj robe
istovarene s kamiona. Kutije su označene primkama.
Skenirati proizvod i
prikazati primke
Opetovana radnja. Istovareni Proizvodi se skeniraju i broje jedan
po jedan. Za svaki skenirani Proizvod se prikazuje popis ulaznih
naloga na kojima se taj Proizvod nalazi.
Korisničko sučelje opisano je u Poglavlju 4.1, Slika 16.
Privremeno smjestiti
proizvod
Skenirani i pobrojani Proizvod se privremeno razvrstava na za to
pripremljenu paletu ili kutiju, po načelu jedna paleta/kutija -
jedan ulazni Nalog.
Svi proizvodi razvrstani? Skretnica koja provjerava da li su svi istovareni Proizvodi razvrstani
prema ulaznim Nalozima?
Roba zaprimljena i
privremeno smještena
Skladištari zaduženi za zaprimanje robe (Proizvoda) objavljuju da
su gotovi s razvrstavanjem. Smještaj na Lokacije može započeti.
Primke Ispis jednog ili više ulaznih Naloga (primki). Svaki Nalog je
barkodiran:
<oznVrste>-<oznSkla>-<godina>-<broj>
Bez ikakvih vodećih nula!
Nalozi i stavke Memorijski popis primki (sa Stavkama).
9
10. Mob Ellposs: projektna dokumentacija
Tablica 2: Proces SMJESTITI ROBU
Objekt Opis
Roba zaprimljena i
privremeno smještena
Skladištari zaduženi za smještaj robe (Proizvoda) dobivaju dojavu da je
razvrstavanje gotovo. Smještaj na Lokacije može započeti.
Skenirati netranzitnu primku Skladištar očitava oznaku ulaznog Naloga (izvorno ispisanog na
skladišnom pisaču) koji je zalijepljen na privremeni smještaj (kutija ili
paleta). Očitanje se provodi skeniranjem bar koda Naloga, na mobilnom
uređaju pomoću aplikacije Mob Ellposs. Po skeniranju, automatski se
(web servisom) dohvaćaju i prikazuju podaci o tom ulaznom Nalogu i
pripadnim Stavkama koje stoje razvrstane na privremenom smještaju.
Skenira se netranzitni nalog - onaj čije Stavke trebaju završiti u ovom, a
ne nekom drugom Skladištu.
Korisničko sučelje opisano je u Poglavlju 4.2, slike 18 i 19.
Smjestiti proizvod na
lokaciju
Proizvod se fizički prebacuje s privremenog smještaja na standardnu
Lokaciju. Opetovana aktivnost.
Evidentirati proizvod na
lokaciji
Za Proizvod fizički smješten na određenu lokaciju bilježi se količina i
sama Lokacija. To se obavlja Mob Ellpossovom web metodom (i
pohranjenom procedurom) ZapisiRobnuTx.
Korisničko sučelje opisano je u Poglavlju 4.2, slike 20 i 21.
Svi proizvodi smješteni? Skretnica koja provjerava da li su svi Proizvodi, zaprimljeni i razvrstani
prema skeniranoj primki, smješteni na stalnu, smještajnu Lokaciju.
Svi proizvodi smješteni na
lokacije
Kraj zaprimanja i smještanja robe po jednom ulaznom Nalogu.
10
11. Mob Ellposs: projektna dokumentacija
2.2 Proces PRIKUPITI ROBU ZA IZLAZ (PKI)
Proces prikupljanja proizvoda za otpremu po izlaznom nalogu (najčešće otpremnici). Obuhvaća
izuzimanje robe sa skladišta i jednokratno ili višekratno stavljanje izuzete robe na izlaznu
lokaciju. Stavljanje izuzete robe na izlaz može se provesti bilo kada tijekom prikupljanja robe.
Simbolički naziv procesa: PKI.
U kontekstu ovoga procesa, "otpremnica" označava bilo koji nalog otpreme ("izlazni nalog"):
otpremnicu (OTP), izdatnicu u internu potrošnju (IZD) i povratnicu dobavljaču (POD). Također, po
ovome modelu se obrađuje prikupljanje robe za otpremu ("izlaz robe") po međuskladišnici (PSS).
11
Slika 2: Proces PRIKUPITI ROBU ZA IZLAZ
12. Mob Ellposs: projektna dokumentacija
Tablica 3: Proces PRIKUPITI ROBU ZA IZLAZ
Objekt Opis
Ispisana otpremnica Fizički, papirni ispis izlaznog Naloga (npr. otpremnice) na skladišni pisač.
U trenutku ispisa, elektronički zapis o tom Nalogu već se nalazi u Mob
Ellpossovoj bazi podataka, u tablicama Nalog i Stavka naloga te nekim
drugima (npr. Komitent), ovisno o točnoj vrsti izlaznog Naloga.
Elektronički zapis o Nalogu ušao je u bazu podataka Mob Ellpossovom
web metodom ZadajNalog.
Skenirati otpremnicu Skladištar očitava oznaku jednog izlaznog Naloga (otpremnice) ispisanog
na skladišnom pisaču. Očitanje se provodi skeniranjem bar koda Naloga,
na mobilnom uređaju pomoću aplikacije Mob Ellposs. Po skeniranju,
automatski se (web servisom) dohvaćaju i prikazuju podaci o izlaznom
Nalogu i pripadnim Stavkama. Stavke su sortirane po Lokaciji tako da
put prikupljanja Proizvoda po Skladištu bude optimalan.
Korisničko sučelje opisano je u Poglavlju 4.3, slike 24 i 25.
Izuzeti proizvod s lokacije Skladištar fizički izuzima Proizvod s Lokacije (na kolica ili u ruke) i
prebrojava izuzetu količinu.
Evidentirati izuzimanje s
lokacije
Skladištar skenira Proizvod izuzet s Lokacije i upisuje izuzetu količinu.Pri
tome se: 1) ažurira relacijska shema Sadržaj te automatski očitava njeno
novo stanje kojega su mogli mijenjati i drugi skladištari koji rade na
istome Nalogu, 2) upisuje nova Robna transakcija (u tablicu RobnaTx) i
3) podacima iz Sadržaj i RobnaTx se osvježava prikaz izuzetih i
neizuzetih Stavki u Mob Ellpossu. Za sve to služi pohranjena procedura i
web metoda ZapisiRobnuTx.
Dodatno (prema novim zahtjevima, ne utječe na PLL):
1. Ako Skladište kojemu je izdan Nalog nije tranzitno, izuzimani
Proizvod se dodatno skenira. Ako Bar kod ne pripada Proizvodu s
Naloga, baca se greška.
2. Pri upisu količine, prikazuje se količina s Naloga. Ako je količina
dovoljna na jednoj (odabranoj) Lokaciji, onda se samo
potvrđuje, inače upisuje.
Korisničko sučelje opisano je u Poglavlju 4.3, slike 26, 27 i 28.
Prikupljeni svi proizvodi? Skretnica koja provjerava da li su prikupljeni svi Proizvodi s otpremnice.
Svi proizvodi na izlaznoj
lokaciji?
Skretnica koja provjerava da li su svi Proizvodi s otpremnice dobili Robni
Izlaz (tj. smještaj na izlaznu Lokaciju).
Čekanje na smještaj svih
proizvoda na izlaznu
lokaciju
Ovaj međudogađaj će biti okinut nakon jedne ili više provedbi poslovnog
slučaja događajnog podprocesa Odložiti robu na izlaz.
Skladištar može pratiti odlaganje robe na izlaz osvježavanjem prikaza
statusa Stavki naloga.
Roba prikupljena za izlaz Sva roba je prikupljena za izlaz po izlaznom Nalogu i stavljena na jednu
ili više izlaznih Lokacija.
Otpremnica Papirni ispis jednog izlaznog Naloga (npr otpremnice). Svaki takav ispis
Naloga je barkodiran:
<oznVrste>-<oznSkla>-<godina>-<broj>
Bez ikakvih vodećih nula!
12
13. Mob Ellposs: projektna dokumentacija
2.3 Događajni podproces ODLOŽITI ROBU NA IZLAZ (ODI)
Bilo kada pri provedbi poslovnog slučaja procesa PRIKUPITI ROBU ZA IZLAZ, skladištar može odlučiti
da trenutno prikupljene proizvode odloži na neku izlaznu lokaciju. Nadalje, to može odlučiti više
puta tijekom prikupljanja robe. Tako mogu činiti svi skladištari koji prikupljaju robu po jednoj te
istoj otpremnici. Kada nastupi taj događaj - da jedan ili više skladištara odloži prikupljenu robu
na izlaznu lokaciju - onda se pokreće ovaj događajni podproces3
ODLOŽITI ROBU NA IZLAZ. Simbolički
naziv procesa: ODI.
Taj podproces već je grafički prikazan u crvenom polju na Slici 2 u sklopu matičnoga procesa
PRIKUPITI ROBU ZA IZLAZ pa će ovdje biti samo tablični pregled njegovih objekata.
Tablica 4: Događajni podproces ODLOŽITI ROBU NA IZLAZ
Objekt Opis
Pokrenut smještaj na izlaznu
lokaciju
Tijekom (ili nakon) prikupljanja robe po Skladištu, skladištar je odlučio
odložiti do sada prikupljene Proizvode na izlaznu lokaciju (relacijska
shema Robni izlaz).
Skenirati izlaznu lokaciju Skeniranje izlazne Lokacije uz provjeru ispravnosti u tablici Lokacija.
Korisničko sučelje opisano je u Poglavlju 4.3, Slika 31.
Staviti proizvode na izlaz Fizičko stavljanje prikupljenih Proizvoda na odabranu izlaznu Lokaciju.
Evidentirati stavljanje na
izlaz
Stavke izlaznog Naloga (tj. Proizvodi izuzeti s Lokacije) se evidentiraju
kao stavljeni na izlaznu Lokaciju. To se izvodi tako da se svim Robnim
transakcijama određenog Naloga dodijeli Robni izlaz. Jedna vrsta
Proizvoda iz Stavki naloga može biti smještena na više izlaznih Lokacija.
Sustav funkcionira tako da jedan skladištar može Robnim transakcijama
drugih skladištara dodijeliti Robni izlaz, a ne samo vlastitim Robnim
transakcijama! Budući da to nikome nije problem, za sada ćemo ostaviti
tako.
Korisničko sučelje opisano je u Poglavlju 4.3, Slika 32.
Proizvodi smješteni na izlaz Do sada prikupljeni Proizvodi smješteni su na izlaznu Lokaciju.
3 Više o događajnim podprocesima može se saznati na slajdovima 104 - 106 MPP prezentacije: LINK.
13
14. Mob Ellposs: projektna dokumentacija
2.4 Proces OTPREMITI ROBU (OPM)
Otpremanje robe kupcu. Provedivo je samo nad izlaznim nalozima čije su sve stavke smještene
na izlaznu lokaciju. Kupcu se roba fizički predaje. Tijekom jednog poslovnog slučaja ovoga
procesa može se otpremiti roba po više otpremnica. Kupac može biti i drugi odjel Ellaba ako
izlazni nalog nije otpremnica, nego međuskladišnica. Simbolički naziv procesa: OPM.
14
Slika 3: Proces OTPREMITI ROBU
15. Mob Ellposs: projektna dokumentacija
Tablica 5: Proces OTPREMITI ROBU
Objekt Opis
Kupac želi preuzeti robu Otprema počinje kada čovjek fizički dođe po robu ili kada robu treba
utovariti na kamion.
Skenirati otpremnicu i
prikazati izlaze
Otpravnik skenira oznaku izlaznog Naloga (otpremnicu) po kojemu Kupac
preuzima robu. Za svaki takav Nalog prikazuju se Robni izlazi na
izlaznim Lokacijama. Opetovana aktivnost.
Ako se skenira Nalog čije Stavke nisu sve zapakirane na izlazne Lokacije,
onda se otpravniku prikazuje greška u obliku ažuriranog popisa takvih
Naloga.
Korisničko sučelje opisano je u Poglavlju 4.4, slike 34 i 35.
Skenirane sve kupčeve
otpremnice?
Skretnica za ispitivanje da li su skenirane sve otpremnice kupca kojem
se treba isporučiti roba.
Predati robu Naručeni Proizvodi se fizički predaju Kupcu odnosno utovaruju u teretno
vozilo.
Evidentirati otpremu Primopredaja se elektronički evidentira zapisom imena i prezimena
osobe koja je preuzela robu te, automatski, datum-vremenom
preuzimanja. TODO: uvesti digitalni potpis (kao na Wacom tabletima u
bankama).
Korisničko sučelje opisano je u Poglavlju 4.4, također na slikama 34 i 35.
Izlazni dokument zaključen Izlazni dokument je skladišno zaključen (još ne i po drugim kriterijima).
Finalno zaključenje provodi se u Ellpossu.
Prikazati neodrađene
otpremnice
Prikaz otpremnica kod kojih nisu sve Stavke odložene na izlazne
Lokacije.
Nastaviti? Skretnica za ispitivanje treba li nastaviti sa skeniranjem otpremnica ako
se ustanovi da postoje one koje još nisu odrađene tj, kod kojih nisu sve
Stavke prikupljene i stavljene na izlaznu Lokaciju.
Poziv na odradu otpremnice Otpravnik poziva Skladište na odradu neodrađenih otpremnica, tj. na
izuzimanje Proizvoda sa Skladišta na izlazne Lokacije, prema
(neodrađenim) Nalozima.
Kupčeve otpremnice Ispisi izlaznih Naloga - otpremnica - onoga kupca koji želi preuzeti robu.
Svaki Nalog je barkodiran.
Neodrađeni nalozi i stavke Memorijski prikaz neodrađenih izlaznih Naloga (otpremnica), onih kod
kojih nisu sve Stavke izuzete sa Skladišta i pripremljene na izlaznoj
Lokaciji.
15
16. Mob Ellposs: projektna dokumentacija
2.5 Proces PREMJESTITI ROBU UNUTAR SKLADIŠTA (PUS)
Postupak premještanja robe unutar
skladišta, među skladišnim
lokacijama, u svrhu optimizacije
smještaja, kako bi se brže
provodilo zaprimanje robe na i
izuzimanje robe sa skladišta. Ovaj
proces uzrokuje robne transakcije
koje se bilježe u odgovarajućoj, ali
ne mijenja ukupno stanje robe na
skladištu. Stoga i nalog prijenosnice
(PLL) po kojem se provodi ovaj
proces nema stavke, tj. možemo
reći da ima bjanko stavke.
Pri premještanju robe nema
posebnog redoslijeda: nakon što je
barem jedan proizvod izuzet sa
svoje lokacije, može ga se odmah
staviti na drugu, ili pak nastaviti sa
izuzimanjem drugih proizvoda pa ih
onda postaviti, itd.
16
Slika 4: Proces PREMJESTITI ROBU UNUTAR SKLADIŠTA
17. Mob Ellposs: projektna dokumentacija
Tablica 6: Proces PREMJESTITI ROBU UNUTAR SKLADIŠTA
Objekt Opis
Oglašenje prijenosnice Vodstvo skladišnog poslovanja je oglasilo prijenosnicu PLL.
Učitati PLL Skladištar odabire prijenosnicu s popisa otvorenih PLL-ova.
Korisničko sučelje opisano je u Poglavlju 4.5.
Izuzeti proizvod s lokacije Skladištar fizički izuzima Proizvod s Lokacije (na kolica ili u ruke) i
prebrojava izuzetu količinu.
Evidentirati izuzimanje s
lokacije
Skladištar skenira Proizvod izuzet s Lokacije i upisuje izuzetu količinu.Pri
tome se:
1. Ažurira relacijska shema Sadržaj te automatski očitava njeno
novo stanje kojega su mogli mijenjati i drugi skladištari koji rade
na istome Nalogu PLL.
2. Upisuje nova Robna transakcija (u relacijsku shemu RobnaTx).
3. Podacima iz Sadrzaj i RobnaTx se osvježava prikaz izuzetih i
neizuzetih Stavki u Mob Ellpossu.
Za to služi pohranjena procedura i web metoda ZapisiRobnuTx.
Korisničko sučelje opisano je u Poglavlju 4.5.
Premještati robu Izuzimanje Proizvoda s Lokacije i premještanje na drugu može se
odvijati bez nekog posebnog redoslijeda. Na primjer, skladištar može
izuzeti 10 proizvoda na kolica, potom smjestiti njih 5, nastaviti onda s
izuzimanjem još 7 te ih potom smjestiti 11, itd.
Na Kraju PLL-a, zbrojevi moraju štimati, tj. ne smije biti robe koja još
nije smještena na novu Lokaciju, nego je ostala na kolicima (ili rukama).
Ovaj podproces je ad hoc tipa i ilustrira izuzimanje i smještaj upravo
bez zadanog redoslijeda.
Smjestiti proizvod na
lokaciju
Proizvod se fizički prebacuje s privremenog smještaja (ruku, kolica,
viličara) na standardnu Lokaciju.
Evidentirati proizvod na
lokaciji
Za Proizvod fizički smješten na određenu lokaciju bilježi se količina i
sama Lokacija. To se obavlja Mob Ellpossovom web metodom (i
pohranjenom procedurom) ZapisiRobnuTx.
Korisničko sučelje opisano je u Poglavlju 4.5.
Nastaviti izuzimanje? Ispitivanje da li se nastavljaju izuzimanja po PLL-u.
Nastaviti smještaj? Ispitivanje da li se nastavljaju smještaji po PLL-u.
17
18. Mob Ellposs: projektna dokumentacija
2.6 Proces EVIDENTIRATI ROBU (EVD)
Postupak evidencije robe na skladišnim lokacijama pri provedbi inventure. Sama inventura se
zadaje, rezultati konsolidiraju te inventura zaključuje u drugome procesu. Simbolički naziv
procesa: EVD.
Postupak zaključenja inventure također se obavlja kao Robna transakcija te bilježi u tablicu
RobnaTx!
18
Slika 5: Proces EVIDENTIRATI ROBU
19. Mob Ellposs: projektna dokumentacija
Tablica 7: Proces EVIDENTIRATI ROBU
Objekt Opis
Oglašenje inventure/
kontrole
Voditelji skladišnog poslovanja oglašavaju inventuru, prethodno
organiziravši inventurne timove.
Učitati inventurni nalog Inventurni Nalog učitava se iz baze podataka Mob Ellpossa.
(Na sličan način bi se mogli učitavati i skladišni Nalozi, umjesto
skeniranja ispisanih.)
Korisničko sučelje opisano je u Poglavlju 4.6.
Doći na dodijeljenu lokaciju Inventurna ekipa dolazi do dodijeljene Lokacije.
Evidentirati artikle na
lokaciji
Skladištar (sam ili u timu) prebrojava Proizvode na Lokaciji. Rezultat
prebrojavanja upisuje u bazu podataka Mob Ellpossa kao Inventurnu
transakciju.
Korisničko sučelje opisano je u Poglavlju 4.6.
Obiđene sve zadane
lokacije?
Ispitivanje da li su sve inventurne ekipe obišle sve zadane Lokacije.
Evidencija robe gotova Posljednja inventurna ekipa objavljuje da je gotova sa zadanim poslom
pa se, iz Ellpossa, može započeti s konsolidacijom rezultata.
19
20. Mob Ellposs: projektna dokumentacija
2.7 Proces IZUZETI ROBU U MALOPRODAJI (MPR)
Ovaj model opisuje isporuku robe kupcu u maloprodaji. Takva isporuka se obavlja putem izlaznog
naloga dostavnice (DOS). Dostavnica se izrađuje u Ellpossu i odmah je čitljiva (putem web
metode/ procedure ZadajNalog) u Mob Ellpossu. Kada bi se u maloprodaji primjenjivao
"običan" model procesa nalik na PRIKUPITI ROBU ZA IZLAZ, onda bi isporuka robe kupcu predugo
trajala. Stoga je u ovome procesu uvedeno slijedeće pravilo:
"Ako proizvod sa stavke dostavnice postoji na maloprodajnoj lokaciji, onda se izuzimanje tog
proizvoda sa skladišta provodi samo skeniranjem te lokacije." To pravilo ujedno opisuje čitav
proces koji je opisan Slikom 6.
Ovim preustrojem ukida se automatsko izuzimanje proizvoda s lokacija!
20
Slika 6: Proces IZUZETI ROBU U MALOPRODAJI
21. Mob Ellposs: projektna dokumentacija
Tablica 8: Proces IZUZETI ROBU U MALOPRODAJI
Objekt Opis
Dostavnica izrađena Izrađena je nova dostavnica u maloprodajnoj aplikaciji i odmah je
zabilježena u Mob Ellpossovoj bazi podataka pozivom metode
ZadajNalog.
Odabrati i učitati dostavnicu Dostavnica je već upisana u sustav (metodom ZadajNalog) te se samo
učitava, skupa sa stavkama, s popisa nezaključenih.
Lokacije Proizvoda sa Stavki su sortirane:
1. po vrsti, tako da maloprodajne budu na vrhu te
2. silazno po stanju, tako da Lokacija s najvećim stanjem bude pri
vrhu.
Korisničko sučelje opisano je u Poglavlju 4.7, slike 36, 37 i 38.
Izuzeti proizvod s
maloprodajne lokacije
Proizvod sa stavke dostavnice se fizički izuzima u kolica ili na ruke.
Evidentirati izuzimanje
skeniranjem lokacije
Skladištar evidentira izuzimanje Proizvoda s Lokacije samo skeniranjem
te Lokacije. Ako je na Lokaciji stanje Proizvoda dovoljno, onda se
cjelokupna količina bilježi kao izuzeta. Ako nije, onda se količina
jednaka stanju bilježi kao izuzeta (tj. Lokacija se prazni od Proizvoda).
U tom slučaju, skladištar mora preostalu količinu Proizvoda izuzeti s
idućih Lokacija.
Korisničko sučelje opisano je u Poglavlju 4.7, Slika 39.
Prikupljeni svi proizvodi? Skretnica koja ispituje da li su svi Proizvodi s dostavnice izuzeti sa svojih
Lokacija.
Zaključiti dostavnicu Skladištar potvrđuje završetak izuzimanja robe po dostavnici te ju tako
skladišno zaključuje.
Korisničko sučelje opisano je u Poglavlju 4.7, Slika 41.
Dostavnica zaključena Dostavnica je zaključena, a Proizvodi po njenim stavkama uručeni
kupcu.
21
22. Mob Ellposs: projektna dokumentacija
2.8 Dijagrami stanja naloga zaprimanja, otpreme i
međuskladišnice
Dijagrami stanja naloga zaprimanja ("ulaznih naloga"), naloga otpreme ("izlaznih naloga") i
međuskladišnice prikazani su slikama 7, 8 i 9. Kratki tumač:
• Puni crni krug kojim započinju svi dijagrami stanja označava početno stanje kada je nalog
stvoren u Ellpossu.
• Zaobljeni pravokutnici označavaju stanja tijekom životnog ciklusa naloga. Natpisi u tim
pravokutnicima, npr. "Nalog zadan", označavaju stanje.
• Strelice označavaju prijelaz iz jednog stanja u drugo. Masni natpisi uz strelice, npr. Zadaj
Nalog, označavaju web metode kojima se okida prijelaz između stanja.
• Rombom i pripadnim natpisom u kurzivu, npr. Svi proizvodi smješteni na izlaz? označava
se eventualna provjera uvjeta za prijelaz između stanja.
• Crna traka na slici Stanja naloga otpreme u koju ulazi jedna, a izlaze dvije strelice,
označava račvanje (fork).
• Kružnica s punim crnim koncentričnim krugom kojom završavaju svi dijagrami stanja
označava završno stanje koje nalog poprimi nakon potpune obrade.
22
Slika 8: Stanja naloga zaprimanja
Slika 7: Stanja naloga otpreme
24. Mob Ellposs: projektna dokumentacija
2.9 Evidencija nedostajućih naljepnica
Evidencija nedostajućih naljepnica zapravo je CRUD funkcionalnost, a ne složeni poslovni proces,
no zbog svoje specifičnosti zavređuje opis u okviru posebnoga podpoglavlja. U skladišnom
poslovanju, "naljepnice" su tiskane oznake:
1. Lokacije. Na lokacijskoj naljepnici otisnuta je oznaka lokacije i, iznad te oznake,
barkodirana vrijednost lokacije. Primjer starog tipa (iz 2008. godine) je na Slici 10.
Dimenzije današnjih lokacijskih naljepnica su 100 mm × 50 mm.
2. Proizvoda (robe) s nekim detaljima robe. Robne naljepnice postoje u dvije varijante:
a) Za robu kojoj je Ellabo uvoznik: uvoznička robna naljepnica.
b) Za robu kojoj je Ellabo distributer: distributerska robna naljepnica.
Na Slici 11 jest primjer distributerske robne naljepnice starog tipa (također iz 2008.
godine) iz doba kada je na takvim naljepnicama morala pisati zemlja podrijetla i naziv
proizvođača.
Dimenzije današnjih robnih naljepnica su 62 mm × 42 mm.
Današnje uvozničke robne naljepnice imaju slijedeću opću shemu:
<Ellabova oznaka proizvoda> <Prvih 30-ak znakova naziva>
Uvoznik: ELLABO d.o.o., Zagreb, Kamenarka 24
ellabo@ellabo.hr VPC / MPC
<VPC na dvije decimale>
<barkod> <MPC na dvije decimale>
Distributerske robne naljepnice su vrlo slične, ne sadrže jedino labelu Uvoznik:
<Ellabova oznaka proizvoda> <Prvih 30-ak znakova naziva>
ELLABO d.o.o., Zagreb, Kamenarka 24
ellabo@ellabo.hr VPC / MPC
<VPC na dvije decimale>
<barkod> <MPC na dvije decimale>
Funkcionalnost ispisa naljepnica ima dvije komponente:
1. Priprema ispisa. Obuhvaća:
a) Evidenciju nedostajućih naljepnica, upisom oznake lokacije ili šifre robe.
b) Dohvat podataka za ispis lokacijske odnosno robne naljepnice. Ti podaci su opisani u
početnom dijelu ovoga podpoglavlja i precizirani u podatkovnim modelu (IZRAVAN
LINK).
c) Generiranje sličica za ispis, npr. kao PDF ili JPEG datoteke.
24
Slika 10: Lokacijska naljepnica
starog tipa
Slika 11: Robna naljepnica
starog tipa
25. Mob Ellposs: projektna dokumentacija
2. Ispis. Da bi bio moguć ispis iz Mob Ellpossa tj. s mobilnih uređaja, Ellabovi stručnjaci se
trebaju pobrinuti da ti mobilni uređaji imaju postavljene odgovarajuće upravljačke
programe (drivers) te da funkcionira mrežna veza između mobilnih uređaja i pisača za
naljepnice.
Točan postupak ispisa s Androida trenutno nije poznat jer ovisi o verziji Androida,
tipu pisača naljepnica, upravljačkim programima i njihovom korisničkom sučelju te
SDK-u za generiranje sličica za ispis (točka 1.c) koji još nije odabran upravo zato jer
može ovisiti u prethodno navedenim čimbenicima. Stoga niti skice sučelja za tu
evidenciju još nisu raspoložive u ovoj projektnoj dokumentaciji, nego će biti dodane
naknadno, nakon uspostave svih drugih funkcionalnosti.
Ostale važne značajke ove funkcionalnosti evidencije nedostajućih naljepnica su:
• Na obje vrste robnih naljepnica, uvozničkoj i distributerskoj, cijene su opcionalne.
• Sve vrste naljepnica, lokacijske, uvozničke robne i distributerske robne trebaju se moći
ispisivati i s mobilnih uređaja tj. Mob Ellpossa, i iz glavnog programa Ellposs. Zato se
evidencija nedostajućih naljepnica pamti u bazi podataka Mob Ellpossa, a ne na mobilnim
uređajima.
• Jednom ispisana naljepnica ne može se više ispisati, nego ju treba opet evidentirati kao
nedostajuću.
2.10 Prijedlog poboljšanja: skladišni nalozi "bez papira"
Trenutno, provedba ulaznih i izlaznih naloga uvelike ovisi o fizičkom ispisu odgovarajućega
naloga na papir. Jedina iznimka bi bila obrada dostavnice kako je predložena ovom projektnom
dokumentacijom, a koja ima sličnosti s trenutnim načinom obrade dostavnice (u Trenisu i Mob
Trenisu). Predlažemo da ispis na papir bude opcionalan te da se dohvat svih ulaznih i izlaznih
naloga na mobilne uređaje provede kao u procesu IZUZETI ROBU U MALOPRODAJI: učitavanjem naloga
(aktivnost ODABRATI I UČITATI DOSTAVNICU) umjesto ispisom na papir pa skeniranjem.
Svjesni smo prikladnosti papirnog ispisa skladišnog naloga, pogotovo pri otpremi robe, pa bismo
predložili da ostane takva mogućnost te da skladišne naloge bude moguće ispisati iz Mob
Ellpossa.
Ovakav prijedlog skladišnih naloga bez papira ni u kom slučaju neće dovesti do
zabuna stoga što se na sučelju za odabir naloga (za dostavnice prikazanom na Slici
37) obrađene dostavnice naprosto neće pojavljivati, dok će djelomično obrađene
dostavnice biti posebno označene.
25
26. Mob Ellposs: projektna dokumentacija
Ova stranica je namjerno prazna.
Dokument je prilagođen dvostranom ispisu.
26
27. Mob Ellposs: projektna dokumentacija
3 Podatkovni model
Podatkovni model Mob Ellpossa temelji se na slijedećim zamislima:
• Potpuna normalizacija baze podataka, u skladu s teorijom i najboljim praksama, do
minimalno Treće normalne forme (3NF).
• Konsolidacija bilježena robnih transakcija tako da se sve promjene stanja neke robe na
određenoj lokaciji bilježe u jednu transakcijsku tablicu: RobnaTx. To uključuje i stvarne
promjene stanja zbog unutarskladišnog premještanja robe (opisano procesom), i virtualne
promjene stanja po zaključivanju inventure.
Konvencijama u ovoj studiji koje se tiču podatkovnog modela su:
• Narančastom bojom pozadine su označeni atributi čija detaljnija specifikacija može biti
predmet daljnje razrade zbog interesantnih mogućnosti koje se otvaraju primjenom novih
tehnologija u mobilnom skladišnom poslovanju te, općenito, uvođenjem Mob Ellpossa.
• Plavom bojom teksta su označeni atributi ograničenih vrijednosti (check constraint).
• Cijan bojom pozadine su označene komponente alternativnog ključa. Sve takve ujedno
imaju i oznaku U.
• Sivom bojom pozadine su označene tablice čiji se sadržaj smije upisivati i ažurirati
izravnim SQL naredbama.
• Bijelom bojom pozadine su označene tablice čiji bi se sadržaj trebao upisivati ili ažurirati
samo putem pohranjenih procedura (stored procedures) u bazi podataka.
Osnovni pogled na podatkovni model prikazan je Slikom 12. Na slici 13 prikazan je detaljniji
pogled na relacijske sheme specifične za inventuru. Čitav podatkovni model i svi njegovi
elementi mogu se detaljno pregledati u autogeneriranoj dokumentaciji, pod Diagram Navigator
> Entity Relationship Diagram > (klik na dijagram, tablicu ili atribut). Izravan link na pojedine
dijagrame ispisan je ispod odgovarajuće slike.
Uz podatkovne modele sa Slika 12 i 13, u autogeneriranoj dokumentaciji nalaze se i podatkovni
modeli za evidenciju nedostajućih naljepnica (Poglavlje 2.9) te za ovjeru i ovlasti (autentikaciju
i autorizaciju).
27
28. Mob Ellposs: projektna dokumentacija
IZRAVNI LINK NA OSNOVNI RELACIJSKI MODEL MOB ELLPOSSA.
28
Slika 12: Osnovni relacijski model Mob Ellpossa
29. Mob Ellposs: projektna dokumentacija
IZRAVNI LINK NA DETALJNI RELACIJSKI MODEL ZA INVENTURU.
3.1 Temeljne značajke podatkovnog modela
Radi temeljitijeg usvajanja relacijskog podatkovnog modela, ovdje će, u obliku natuknica, biti
opisane njegove temeljne značajke. Sve te značajke proizlaze iz znanstveno dokazanih te u
praksi potvrđenih saznanja o najboljim načinima projektiranja baza podataka.
3.1.1 Skladišni nalog
Skladišni nalog ("skladišni dokument" u Ellpossu) je organiziran kao zaglavlje i stavke: tablice
Nalog odnosno StavkaNaloga. Prirodni ključ naloga je četverokomponentni pa je zato uveden
surogat OznNaloga oblika <oznVrste>-<oznSkla>-<godina>-<broj>. Za komunikaciju s
Ellpossom koristi se isključivo prirodni ključ.
Glede internih naloga, u jednom trenutku na određenome skladištu može biti otvorena samo
jedna instanca određenog internog naloga. Dakle, samo jedna premještajnica odnosno inventura.
3.1.2 Stavke Naloga
Jedna stavka naloga odnosi se samo na jedan proizvod. Ne mogu postojati dvije ili više
različitih stavki istoga naloga koje obuhvaćaju isti proizvod. To je osigurano primarnim
ključem stavke naloga koji je dvokomponentni te se sastoji od surogatnog ključa naloga i
Ellabove oznake (šifre) proizvoda. Interni nalozi nemaju stavke.
29
Slika 13: Detaljni relacijski model za inventuru
30. Mob Ellposs: projektna dokumentacija
3.1.3 Robne transakcije
Sve robne transakcije, ulazne, izlazne i interne, bilježe se u tablici RobnaTx. Dakle, i
prijenosnica PLL i zaključivanje inventure. Stanje sve robe na svakoj skladišnoj lokaciji mora
biti jednako svim transakcijama u samo i jedino RobnaTx od uključivo posljednjeg
zaključenja inventure. U tom smislu, identificirane su tri vrste robnih transakcija:
1. Skladišna: mijenja stanje čitavog skladišta i pojedinih lokacija. Pokretač skladišne
transakcije je ulazni ili izlazni nalog.
2. Lokacijska: mijenja stanja pojedinih lokacija dok stanje skladišta ostaje nepromijenjeno.
Pokretač lokacijske transakcije je premještajnica PLL.
3. Inventurna: mijenja stanje čitavog skladišta i pojedinih lokacija. Pokretač inventurne
transakcije je zatvaranje inventurnog naloga tj. zaključenje inventure. Za razliku od
skladišne transakcije, inventurna postavlja novu vremensku točku za izračun stanja.
Drugim riječima, nakon inventurne transakcije, iz RobnaTx se mogu izbrisati sve ranije
robne transakcije koje se odnose na određeni Sadržaj tj. ulaz i izlaz proizvoda (robe) na
lokaciju.
3.1.4 Moguće integracije s eventualnim budućim vanjskim sustavima
Atributi Komitent.Naziv i Otprema.Preuzimatelj su kandidati za buduće integracije Mob
Ellpossa s eventualnim Ellabovim CRM sustavom (Customer Relationship Management). Nakon
takve integracije:
1. Atribut Komitent.Naziv bi bio zamijenjen stranim ključem.
2. Atribut Otprema.Preuzimanje bi bio dopunjen blobom4
za pohranu potpisa te, zajedno
s tim blobom, izdvojen u posebnu tablicu.
3.1.5 Ovjere i ovlasti
Zapisi o korisnicima i rolama čuvaju se u tablicama MobEllpossUser i MobEllpossRole i
MobEllpossUserRole. Te tablice služe autentikacijsko-autorizacijskom sustavu web API-ja (tj.
sustavu za ovjere i ovlasti). Tablice su logički kompatibilne s AspNet Core Identity5
bibliotekama
za ovjere i ovlasti, ali su fizički ponešto drukčije izvedene (prilagođene, "customized") nego li
one zadane (default) AspNet Core Identityjem. Također, za sada su uvedeni samo oni atributi
koji trebaju za autentikaciju u Mob Ellpossu (tako da nema podrške za npr. ovjeru putem
Facebook računa).
Općenito gledano, atribut MobEllpossUser.UserName, primarni ključ tablice
MobEllpossUser, se prenosi kao strani ključ u većinu tablica koje imaju atribut nazvan
UserName. I to je logično, tako da npr. RobnaTx.UserName znači "Mob Ellpossovog korisnika
koji je proveo transakciju". Takav relacijski integritet jedino nije uspostavljen na atributima
Nalog.UserName i KrajNaloga.UserName:
4 BLOB je kratica za Binary Large Object. Označava podatak koji se sprema u obliku "sirovog" polja bajtova,
redovito zato što se ne može opisati tekstualno, nego u obliku datoteke kao što je slikovna (npr. jpg ili png) ili
dokumentna (npr. PDF). U kontekstu relacijskih baza podataka, blobovi se mogu spremati izravno u bazu podataka
ili pak na datotečni sustav, "na disk", kao obična datoteka (fajl), s tim da se u bazi podataka tada pamti putanja
(path) do te datoteke na disku.
5 AspNet Core Identity je biblioteka za ovjere i ovlasti (autentikaciju i autorizaciju) koju koristi AspNet Core
programska platforma. Na toj platformi će biti izveden web servis (web API) za komunikaciju između korisničke
aplikacije i Mob Ellpossove baze podataka (spomenuto u Uvodu).
30
31. Mob Ellposs: projektna dokumentacija
A) Izvor za Nalog.UserName je uvijek u vanjskom sustavu - Ellpossu. Korisnik koji je
otvorio nalog u tom sustavu i potom ga poslao u Mob Ellposs ne mora biti (i uglavnom niti
nije) skladištar tj. korisnik Mob Ellpossa. Zbog toga nije uspostavljena relacija prema
MobEllpossUser tablici. Stoga su tip i duljina ovoga atributa, NVARCHAR(256),
izabrani tako da mogu podržati razna korisnička imena, a posebice ona kakva su početno
zadana u AspNet Core Identity autentikacijsko-autorizacijskom sustavu.
B) Izvora za KrajNaloga.UserName može biti dva:
1. Korisničko ime zapisano u MobEllpossUser tablici. Tada je kraj naloga zadan iz Mob
Ellpossa, tipično pri otpremi izlaznog naloga.
2. Korisničko ime iz vanjskog sustava - Ellpossa. Tada je i kraj naloga zadan iz tog
vanjskog sustava, tipično pri zadavanju inventurnog ili zatvaranju ulaznog naloga.
Kako je već spomenuto pri analizi atributa Nalog.UserName, korisnik u tom
vanjskom sustavu ne mora biti (i uglavnom niti nije) korisnik Mob Ellpossa.
Zbog drugog razloga također nije uspostavljena relacija prema MobEllpossUser tablici
te su tip i duljina ovoga atributa, NVARCHAR(256), također izabrani tako da mogu
podržati razna korisnička imena, posebice ona iz zadane izvedbe AspNet Core Identity
autentikacijsko-autorizacijskog sustava.
3.2 Osvrt na Robne transakcije i Robni izlaz
Pažljivom čitatelju možda se čine neobičnima upravo relacijske sheme RobnaTx i s njom
povezan RobniIzlaz.
Zapisi u RobnaTx (preciznije, atribut Iznos) nisu kumulativni, nego dnevnički.
Jedan zapis ne sadrži podatke o ukupnoj količini određenog proizvoda stavljenog
na/ izuzetog sa određene lokacije, nego o jednoj akciji stavljanja na/ izuzimanja sa
određene lokacije. Negativan iznos znači poništenje, djelomično ili potpuno, ranijeg
stavljanja na/ izuzimanja sa određene lokacije. Drugim riječima, RobnaTx nije i
ne može biti modelirana kao kolica (shopping cart).
RobnaTx je, efektivno, historijat promjena Sadržaja, tj. robnog prometa na lokaciji. Prirodan
ključ robne transakcije bi mogla biti n-torka (OznSkla, OznLok, OznProd, UserName,
Vrem). Jedan član te n-torke, Vrem, je ionako automatski generiran te uzlazan pa na tu n-torku
nije postavljen jedinstveni indeks stoga što će ta n-torka ionako biti uvijek jedinstvena zbog
prirodnih, fizikalnih zakona prema kojima vrijeme uvijek teče naprijed. Zbog velike dimenzije
takvog ključa uveden je surogat kao autoinkrementirajući cjelobrojni "ID": RobnaTxId. Taj ID
je, zapravo, "pokazivač zapisa" poput onih u starim, predrelacijskim record filing sustavima
(RFS), no njegovo postojanje zapravo ne stvara nikakve poslovne probleme pa smatramo da je,
za ovu specifičnu situaciju, optimalno upravo takvo rješenje s dvije RFS tablice "nalijepljene" na
relacijske tablice.
31
32. Mob Ellposs: projektna dokumentacija
Ova stranica je namjerno prazna.
Dokument je prilagođen dvostranom ispisu.
32
33. Mob Ellposs: projektna dokumentacija
4 Korisnička sučelja
Korisnička sučelja prikazana su metodom skiciranja (wire frame).
Važno je naglasiti da su prikazi korisničkih sučelja u ovome poglavlju samo skice, a
ne prijedlozi finalnog rješenja, te da su svojstva tih skica (posebice boje i Comic
Sans font) uvelike određena projektantskim programom Visual Paradigm. Stvarni
izgled sučelja bit će ponešto drukčiji, uz uzimanje u obzir nekih općih smjernica za
pristupačnost (accessibility).
Početno sučelje i glavni izbornik za poziv svih ostalih sučelja i njihovih funkcionalnosti prikazan
je slijedećom Slikom 14.
U glavnome izborniku je, za sada, 10 stavki:
1. Zaprimanje: razvrstavanje: pokreće poslovni slučaj procesa RAZVRSTATI ROBU (Poglavlje
2.1). Takav poslovni slučaj pokreće se nalogom primke PRS.
2. Zaprimanje: smještaj: pokreće poslovni slučaj procesa SMJESTITI ROBU (Poglavlje 2.1).
33
Slika 14: Početno sučelje Mob Ellpossa
34. Mob Ellposs: projektna dokumentacija
3. Priprema za otpremu: pokreće poslovni slučaj procesa PRIKUPITI ROBU ZA IZLAZ (Poglavlje
2.2). Instanca događajnog podprocesa ODLOŽITI ROBU NA IZLAZ ne pokreće se izravno s
glavnoga izbornika, nego sa sučelja procesa PRIKUPITI ROBU ZA IZLAZ.
4. Otprema: pokreće poslovni slučaj procesa OTPREMITI ROBU (Poglavlje 2.4).
5. Maloprodaja: pokreće poslovni slučaj procesa IZUZETI ROBU U MALOPRODAJI (Poglavlje 2.7).
6. Premještaj: pokreće poslovni slučaj procesa PREMJESTITI ROBU UNUTAR SKLADIŠTA (Poglavlje
2.5).
7. Dodjela bar koda: poziva sučelje za dodjelu bar koda proizvodu u skladištu. To je obična
CRUD funkcionalnost, a ne (složeni) poslovni proces.
8. Naljepnice: poziva sučelje za evidenciju naljepnica. To je obična CRUD funkcionalnost, a
ne (složeni) poslovni proces, no detaljnije je opisana u Poglavlju 2.9.
9. Inventura: pokreće poslovni slučaj procesa EVIDENTIRATI ROBU (Poglavlje 2.6).
10. Lokacije robe: poziva sučelje za prikaz lokacija određene robe. To je obična R(ead)
funkcionalnost, a ne (složeni) poslovni proces.
Osnovne paradigme pri projektiranju korisničkih sučelja Mob Ellpossa su:
1. Paradigma oslanjanja na bar kodove. Naglasak je na automatizme vezane za očitanje
bar koda, uz što je moguće manje ljudskog odlučivanja temeljenog na vizualnom uvidu u
lokacije i proizvode.
2. Paradigma alternativnih upisa. Mogućnost obavljanja svake akcije ručnim upisom
vrijednosti bar koda ili alternativnim načinom očitanja, običnom kamerom ugrađenom u
skoro svaki Android uređaj.
Prvom paradigmom oslanjanja na bar kodove ubrzava se rad skladištara i smanjuju greške u
skladišnom poslovanju.
Drugom paradigmom alternativnih upisa omogućuje se rad sa širom lepezom mobilnih uređaja,
uključivo i komercijalne, a ne samo industrijske, te značajno olakšava razvoj i debugiranje jer
sve ostale funkcionalnosti osim samog očitanja bar koda programeri mogu isprobati bez
posjedovanja skupih i malobrojnih industrijskih mobilnih uređaja s namjenskim bar kod čitačima.
Paradigma alternativnih upisa se na korisničkim sučeljima očituje ikonama fotoaparata odnosno
tipkovnice:
Svuda gdje su prikazane te dvije ikone, klikom na njih otvaraju se sučelja za alternativne upise
vrijednosti odnosno očitanja bar kodova: ugrađenom kamerom odnosno tipkovnicom (fizičkom ili
virtualnom). Ta sučelja nisu radi preglednosti prikazana u ovoj dokumentaciji.
Poruke o greški se prikazuju korištenjem uobičajenih mehanizama koje pruža Android operacijski
sustav, npr. tzv. Toast. Zbog toga te također zbog preglednosti dokumentacije, korisnička sučelja
nisu prikazivana u stanju greške.
34
35. Mob Ellposs: projektna dokumentacija
4.1 Razvrstavanje robe
Odabirom stavke Zaprimanje: razvrstavanje (u glavnom izborniku početnog sučelja Mob Ellpossa
na Slici 14), otvara se sučelje za skeniranje naloga zaprimanja (pri razvrstavanju) prikazano
Slikom 43.
Sučelje za skeniranje naloga zaprimanja podržava aktivnost SKENIRATI PRIMKE procesa
RAZVRSTATI ROBU opisanoga u Poglavlju 2.1.
Na slici 15, sučelje je prikazano nakon uspješnog skeniranja tri ispravne primke: PRS-1-2020-3,
PRS-1-2020-7 i PRS-1-2020-8. Popis se automatski širi svakim idućim skeniranjem ispravne
primke. U retku svake primke su linkovi:
• > Stavka za detaljan prikaz stavki ulaznog naloga (vidi donju sliku) .
• x Ukloni za uklanjanje skeniranog naloga i njegovih stavki iz postupka razvrstavanja
zaprimljene robe.
Paradigma alternativnih upisa je na ovome sučelju
ostvarena ikonama fotoaparata i tipkovnice u
Androidovoj akcijskoj traci (Action Bar).
35
Slika 15: Skeniranje naloga zaprimanja (pri
razvrstavanju)
36. Mob Ellposs: projektna dokumentacija
Skeniranjem bar koda koji nije Code 39 pojavit će se sučelje za skeniranje proizvoda
(množina!) prikazano Slikom 16, ako skenirani bar kod pripada nekom proizvodu sa skeniranih
ulaznih naloga (primki). Ako nije, pojavit će se odgovarajuća poruka o greški (nije ovdje
prikazana).
Sučelje za skeniranje proizvoda podržava aktivnost SKENIRATI PROIZVOD I PRIKAZATI PRIMKE
procesa RAZVRSTATI ROBU opisanoga u Poglavlju 2.1.
Sučelje za skeniranje proizvoda ima dva glavna dijela:
• U gornjemu su detaljni podaci o proizvodu: bar kod, Ellabova šifra, naziv, mjerna jedinica
i šifra dobavljača.
• Ispod detaljnih podataka je popis ulaznih naloga (primki) koje sadrže skenirani proizvod.
36
Slika 16: Skeniranje proizvoda
37. Mob Ellposs: projektna dokumentacija
Ako se na sučelje za skeniranje proizvoda stiglo ručnim klizanjem (sa sučelja za skeniranje
ulaznih naloga) onda će ono biti prazno, bez ikakvih detaljnih podataka o proizvodu i ulaznim
nalozima.
Klizanjem ili skeniranjem bar koda tipa Code 39 otvorit će se opet sučelje za skeniranje ulaznih
naloga (samo ako bar kod pripada ispravnom ulaznom nalogu, inače poruka o greški).
Paradigma alternativnih upisa je na ovome sučelju također ostvarena ikonama fotoaparata i
tipkovnice u Androidovoj akcijskoj traci (Action Bar).
Oba prethodno opisana sučelja imaju link > Stavke uz svaku oznaku skeniranog ulaznog naloga.
Dodirom tog linka, otvara se sučelje za detalje naloga, prikazano Slikom 17.
37
Slika 17: Detalji naloga zaprimanja
38. Mob Ellposs: projektna dokumentacija
Ovo sučelje ima dva dijela:
• U gornjem su prikazani detalji naloga: vrsta i oznaka, oznaka i naziv skladišta kojemu je
nalog zadan te datum-vrijeme naloga.
• Ispod je tablični popis stavki tj. proizvoda koji se zaprimaju po nalogu: Ellabova šifra,
naziv proizvoda te količina.
Povratak na prethodno, pozivajuće sučelje, za skeniranje ulaznih naloga ili za skeniranje
proizvoda, se izvodi na uobičajen način, dodirom Androidove tipke za "natrag" (back), na Slici 17
zaokruženoj crveno.
Budući da na sučelju za detalje naloga nema nikakve mogućnosti upisa, nema niti ikona
fotoaparata i tipkovnice za provedbu paradigme alternativnih upisa.
Tok prikaza korisničkih sučelja za proces RAZVRSTATI ROBU može se vidjeti u autogeneriranoj
dokumentaciji pod Android Phone Wireframe, skica Mob Ellposs: ZAP ili izravno na: LINK.
38
39. Mob Ellposs: projektna dokumentacija
4.2 Smještaj robe
Odabirom stavke Zaprimanje: smještaj (u glavnom izborniku početnog sučelja Mob Ellpossa na
Slici 14), otvara se sučelje za skeniranje naloga zaprimanja (jednina!) prikazano Slikom 18.
Sučelje za skeniranje naloga zaprimanja podržava aktivnost SKENIRATI NETRANZITNU
PRIMKU procesa SMJESTITI ROBU opisanoga u Poglavlju 2.1.
Paradigma alternativnih upisa je na ovome sučelju također ostvarena ikonama fotoaparata i
tipkovnice u Androidovoj akcijskoj traci (Action Bar).
39
Slika 18: Skeniranje naloga zaprimanja (pri
smještaju)
40. Mob Ellposs: projektna dokumentacija
Nakon očitanja bar koda naloga (tipa Code 128), otvara se sučelje za nalog zaprimanja
prikazano Slikom 19.
Sučelje za nalog zaprimanja također podržava aktivnost SKENIRATI NETRANZITNU PRIMKU
procesa SMJESTITI ROBU opisanoga u Poglavlju 2.1.
Sučelje ima dva glavna dijela. Gore su detalji naloga: oznaka, skladište na koje se odnosi i
datum-vrijeme zadavanja naloga. Dolje je tablični popis stavki naloga u tri stupca:
1. Ellabova šifra robe, mjerna jedinica i prvih N slova naziva proizvoda koji se smješta na
skladište.
2. Količina koju treba smjestiti na skladište: Zadano.
3. Količina koja jest smještena na skladište: Provedeno.
40
Slika 19: Nalog zaprimanja
41. Mob Ellposs: projektna dokumentacija
Ako se te dvije količine, zadana i provedena, razlikuju, onda je pripadni redak tablice stavki
"upozoravajuće" označen. Na Slici 19, to upozoravajuće označavanje je izvedeno zacrvenjenim
tekstom, no ta izvedba će zasigurno biti ponešto drukčija u stvarnom programu, kako je
objašnjeno na početku ovoga poglavlja6
.
Kada skladištar klikne bilo gdje u određenoj stavki naloga (tj. na bilo koji stupac određenog
retka), otvara se sučelje za lokacije proizvoda iz kliknute stavke naloga. Prikazano je Slikom
20.
Sučelje za lokacije proizvoda podržava aktivnost EVIDENTIRATI PROIZVOD NA LOKACIJI
procesa SMJESTITI ROBU iz Poglavlja 2.1.
Sučelje za lokacije proizvoda na Slici 20 sastoji se od nekoliko dijelova:
6 Na primjer, u Mob Ellpossu će također, kao i u Mob Trenisu, biti sasvim izbjegnuto istovremeno označavanje
crvenom i zelenom bojom (na istom sučelju) zato što je zabuna između te dvije boje relativno česta (tzv.
daltonizam).
41
Slika 20: Lokacije proizvoda
42. Mob Ellposs: projektna dokumentacija
1. Na vrhu je je navigacijska putanja (breadcrumb) do trenutno otvorenog sučelja i
poslovnog slučaja. Putanja završava oznakom naloga na kojemu se trenutno radi:
Smještaj > Nalog zaprimanja > PRS-1-2020-7
2. Slijede detalji stavke naloga: Ellabova oznaka proizvoda i mjerna jedinica, naziv
proizvoda (do duljine N znakova) te nalogom zadana i provedena količina. Također se
koristi upozoravajuće označavanje ako te količine još nisu izjednačene.
3. Ispod detalja stavke naloga je tablični popis lokacija na kojima se proizvod iz stavke
naloga već nalazi te količina proizvoda na lokaciji.
4. Ispod tabličnog popisa lokacija je prazno, zasivljeno polje u kojem će se ispisati
skenirana ili s tabličnog popisa odabrana lokacija. Na toj lokaciji će biti smješten
proizvod.
Nakon skeniranja ili odabira, sučelje za lokacije
proizvoda će izgledati kao na Slici 21. U primjeru s te
slike, za smještaj proizvoda AA1803003 odabrana je ili
skenirana lokacija KN12. Potom se prikazao gumb za
poništenje odabira lokacije, tekstualno polje za upis
količine proizvoda koju skladištar planira smjestiti na
odabranu lokaciju te gumb Upiši.
42
Slika 21: Odabir lokacije i upis količine
43. Mob Ellposs: projektna dokumentacija
Nakon što je upisana količina jednaka zadanoj, 4 komada, sučelje je poprimilo izgled kao na Slici
22. Sada je upozoravajuće označavanje (plavo) uporabljeno tako da ističe kako je provedena
količina jednaka zadanoj.
Skladištar može ispraviti upis (što je i razlog zašto ovo sučelje ostaje prikazano) ili se vratiti na
prethodno sučelje dodirom standardnog Androidovog gumba Natrag, na Slici 22 zaokruženog
crvenim. Ako se vrati natrag, prikazat će se opet sučelje sa Slike 19, ali izmijenjeno tako da
pokazuje ažuriranja, kao na Slici 23.
Ispravak upisa se ostvaruje upisom negativne količine, baš kao i u starome Mob Trenisu!
43
Slika 22: Proizvod smješten na lokaciju
44. Mob Ellposs: projektna dokumentacija
I ovdje je je primijenjeno upozoravajuće označavanje. Skladištaru se signalizira da je jedna
stavka ulaznog naloga, AA1803003, u potpunosti riješena tj. da su svi ti proizvodi smješteni na
skladišne lokacije.
Tok prikaza korisničkih sučelja za proces SMJESTITI ROBU može se vidjeti u autogeneriranoj
dokumentaciji pod Android Phone Wireframe, skica Mob Ellposs: ZAP ili izravno na: LINK (kao i
za RAZVRSTATI ROBU).
44
Slika 23: Ažurirani nalog zaprimanja
45. Mob Ellposs: projektna dokumentacija
4.3 Priprema za otpremu
Sučelja za pripremu otpreme ("prikupljanje robe za izlaz") uvelike su slična sučeljima za
smještaj robe, što je i logično uzme li se u obzir da je priprema otpreme poput smještaja robe,
ali "sa suprotnim predznakom".
Sučelja za skeniranje i prikaz naloga otpreme vidljiva su na slikama 24 i 25. Ta
sučelja podržavaju aktivnost SKENIRATI OTPREMNICU procesa PRIKUPITI ROBU ZA IZLAZ iz
Poglavlja 2.2.
Daljnji rad s nalogom otpreme teče slično kao i rad s nalogom zaprimanja. Kada skladištar klikne
bilo gdje na stavku naloga (tj. bilo gdje u određenom retku), otvara se sučelje za lokacije
proizvoda iz kliknute stavke naloga. Prikazano je Slikom 26. Lokacija za izuzimanje proizvoda
može se odabrati prstom, što je na slici simbolizirano blijedo crvenim krugom, ili skenirati. U
45
Slika 24: Skeniranje naloga otpreme Slika 25: Nalog otpreme
46. Mob Ellposs: projektna dokumentacija
oba slučaja, odabrana lokacija prikazuje se ispod tabličnog popisa lokacija, zajedno s poljem za
upis izuzete količine i gumbom Upiši. To je prikazano Slikom 27. Lokacija odabrana za
izuzimanje je upozoravajuće označena, u ovim primjerima plavom bojom teksta.
46
Slika 26: Lokacije proizvoda Slika 27: Odabir lokacije i upis količine
47. Mob Ellposs: projektna dokumentacija
Klikom na gumb Upiši, prikaz se mijenja i izgleda kao na Slici 28. Skladištar može ispraviti upis
(što je i razlog zašto ovo sučelje ostaje prikazano) ili se vratiti na prethodno sučelje dodirom
standardnog Androidovog gumba Natrag, na Slici 28 zaokruženog crvenim. Ako se vrati natrag,
prikazat će se opet sučelje sa Slike 25, ali izmijenjeno tako da pokazuje ažuriranja, kao na Slici
29.
Ispravak upisa se ostvaruje upisom negativne količine, baš kao i u starome Mob Trenisu.
Sučelje za lokacije proizvoda, sa slika 26, 27 i 28 podržava aktivnost EVIDENTIRATI
IZUZIMANJE S LOKACIJE procesa PRIKUPITI ROBU ZA IZLAZ iz Poglavlja 2.2.
47
Slika 28: Proizvod izuzet s lokacije
48. Mob Ellposs: projektna dokumentacija
Nakon daljnjeg ponavljanja takvih akcija s drugim stavkama naloga, količina upozoravajuće
označenih stavki se povećava, kao na Slici 30.
U bilo kojem trenutku, dakle i ako još nisu svi proizvodi s izlaznog naloga izuzeti sa svojih
lokacija i stavljeni u kolica, skladištar može trenutno izuzete proizvode staviti na izlaznu
lokaciju i tako ih evidentirati dodirom ikonice paketa u akcijskoj traci. Ta ikonica je na Slici 30
zaokružena crveno i izgleda ovako:
Dodirom te ikonice otvara se sučelje za skeniranje izlazne lokacije na Slici 31.
Sučelje za skeniranje izlazne lokacije podržava aktivnost SKENIRATI IZLAZNU LOKACIJU
događajnog podprocesa ODLOŽITI ROBU NA IZLAZ iz Poglavlja 2.3.
48
Slika 29: Ažurirani nalog otpreme Slika 30: Daljnje ažuriranje naloga otpreme
49. Mob Ellposs: projektna dokumentacija
Nakon skeniranja (ili upisa) bar koda izlazne lokacije, prikazuje se sučelje za potvrdu izlazne
lokacije sa Slike 32.
Sučelje za potvrdu izlazne lokacije podržava aktivnost EVIDENTIRATI STAVLJANJE NA IZLAZ
događajnog podprocesa ODLOŽITI ROBU NA IZLAZ iz Poglavlja 2.3.
Klikom na gumb Potvrdi, sve dosadašnje robne transakcije dobivaju izlaznu lokaciju. To znači da
će na određenoj izlaznoj lokaciji biti registrirane one količine proizvoda koje su do tada izuzete
sa svojih smještajnih lokacija.
Nakon klika na Potvrdi, opet se prikazuje sučelje za nalog otpreme sa slika 25, 29 i 30 .
Tok prikaza korisničkih sučelja za proces PRIKUPITI ROBU ZA IZLAZ može se vidjeti u autogeneriranoj
dokumentaciji pod Android Phone Wireframe, skica Mob Ellposs: PKI ili izravno na: LINK.
49
Slika 31: Skeniranje izlazne lokacije Slika 32: Potvrda izlazne lokacije
50. Mob Ellposs: projektna dokumentacija
4.3.1 Pregled proizvoda u izmještaju (PLL)
Pri radu s nalogom otpreme, ako je prikazano sučelje za lokacije proizvoda (slike 26 - 28) valja
obratiti pažnju na dodatnu funkcionalnost, dostupnu dodirom ikone natovarenog viličara u
akcijskoj traci Androida. Ta ikona je na Slici 28 zaokružena crvenim, a inače izgleda ovako:
Ta funkcionalnost jest prikaz robe u unutarskladišnom izmještaju, po nalogu prijenosnice (PLL).
Ako je proizvod na kojem se radi po stavki izlaznog naloga u premještaju, onda će se na sučelju
prikazanom Slikom 33 prikazati tko je izmjestio taj proizvod, s koje lokacije, u kojoj količini i
kada.
Povratak na pozivajuće sučelje provodi se dodirom Androidovog gumba za Natrag.
50
Slika 33: Proizvod u izmještaju
51. Mob Ellposs: projektna dokumentacija
4.4 Otprema
Odabirom stavke Otprema (u glavnom izborniku početnog sučelja Mob Ellpossa na Slici 14),
otvara se sučelje za otpremu prikazano slikama 33 i 34. To sučelje se sastoji od dvije kartice
(tab): Nalozi otpreme i Izlazne lokacije. Ispod tih kartica je zajednička rubrika Preuzimatelj s
upisnim poljem i gumbom Otpremi.
Obje kartice sučelja za otpremu podržavaju sve korisničke aktivnosti procesa
OTPREMITI ROBU.
51
Slika 34: Izlazni nalozi za otpremu Slika 35: Izlazne lokacije
52. Mob Ellposs: projektna dokumentacija
Postupak otpreme teče na slijedeći način:
1. Kada dođe preuzimatelj (tipično, kupac ili autoprijevoznik), skladištar redom skenira
izlazne naloge za tog preuzimatelja. To je prikazano Slikom 34.
◦ Uz svaki skenirani nalog postoji opcija Ukloni, ako je nalog skeniran zabunom, te >
izlazne lokacije naloga za filtrirani prikaz izlaznih lokacija na kartici Izlazne lokacije -
samo onih gdje su proizvodi s odabranog naloga.
2. Kada je skladištar gotov sa skeniranjem naloga, dodirom kartice Izlazne lokacije
prikazuje mu se zbir svih izlaznih lokacija po svim skeniranim nalozima. To je prikazano
Slikom 35.
◦ Uz svaku izlaznu lokaciju postoji opcija > izlazni nalozi za filtrirani prikaz prikaz
izlaznih naloga na kartici Nalozi otpreme - samo onih čije su stavke na odabranoj
lokaciji
3. Da li je prikaz na karticama Nalozi otpreme i Izlazne lokacije filtriran ili ne, bit će
vidljivo u putanji (nije prikazano na slikama 34 i 35). Postavljanje zbirnog, nefiltriranog
prikaza, izvodi se ponovnim dodirom ili na Nalozi otpreme, ili na Izlazne lokacije.
4. Nakon što su preuzimatelj i skladištar utvrdili da je sve u redu, skladištar piše
preuzimateljevo ime i klikom na Otpremi evidentira otpremu te završava postupak.
Dvije su važne značajke ovog postupka:
1. Otpremanjem se nalog otpreme skladišno zaključuje, osim ako je nalog
međuskladišnica.
2. Moguća je jedna otprema po nalozima iz različitih skladišta.
Tok prikaza korisničkih sučelja za proces OTPREMITI ROBU može se vidjeti u autogeneriranoj
dokumentaciji pod Android Phone Wireframe, skica Mob Ellposs: OPM ili izravno na: LINK.
4.5 Premještaj robe unutar skladišta
Svi važni koncepti i novosti u Mob Ellpossu su već opisani u prethodnim podpoglavljima 4.1 - 4.4
Stoga provedba postupka premještaja robe unutar skladišta neće biti detaljnije opisana, ali se
skice sučelja mogu pogledati u autogeneriranoj dokumentaciji pod Android Phone Wireframe,
skica Mob Ellposs: PUS ili izravno na: LINK.
4.6 Evidencija robe (inventura)
Svi važni koncepti i novosti u Mob Ellpossu su već opisani u prethodnim podpoglavljima 4.1 - 4.4
Stoga evidencija robe neće biti detaljnije opisana, ali se skice sučelja mogu pogledati u
autogeneriranoj dokumentaciji pod Android Phone Wireframe, skica Mob Ellposs: EVD ili izravno
na: LINK.
52
53. Mob Ellposs: projektna dokumentacija
4.7 Maloprodaja
Maloprodajni izlazni nalog dostavnice se ne skenira, nego učitava. Skladištar će prvo odabrati
skladište čije dostavnice obrađuje s popisa na sučelju za odabir skladišta prikazanog Slikom 36.
Potom će se učitati popis otvorenih dostavnica odabranog skladišta, što je prikazano Slikom 37.
Odabirom određene dostavnice s popisa otvorenih otvara se detaljan prikaz te dostavnice i
omogućuje daljnji rad po njoj. Tome služi sučelje za prikaz dostavnice na Slici 38.
Sučelja na slikama 36, 37 i 38 podržavaju aktivnost ODABRATI I UČITATI DOSTAVNICU
procesa IZUZETI ROBU U MALOPRODAJI iz Poglavlja 4.7.
53
Slika 36: Odabir skladišta Slika 37: Otvorene dostavnice
54. Mob Ellposs: projektna dokumentacija
Na sučelju za prikaz dostavnice, stavke naloga su također upozoravajuće označene (kao i na
sučelju za obični izlazni nalog). Zacrvenjene su stavke koje još nisu izuzete s lokacija u punoj
količini zatraženoj dostavnicom. Ujedno su stavke poredane tako da će lokacije njihovih
proizvoda biti na putanji optimiranoj za izuzimanje, "u što manje koraka".
Dodirom neke stavke, otvara se sučelje za lokacije proizvoda s te stavke - Slika 39. Na tom
sučelju, lokacije proizvoda tablično su poredane optimalnim redoslijedom pa maloprodajni
referent izuzima robu odabirući samo lokaciju. Pri tome:
1. Ako je stanje proizvoda na lokaciji veće ili jednako količini koju treba izuzeti po stavki
dostavnice, onda se sva količina tog proizvoda bilježi kao izuzeta. Skladištar potom
obrađuje iduću stavku dostavnice.
2. Ako je stanje proizvoda na lokaciji manje od količine koju treba izuzeti po stavki
dostavnice, onda se također sva količina tog proizvoda bilježi kao izuzeta, ali skladištar
54
Slika 38: Dostavnica Slika 39: Lokacije proizvoda
55. Mob Ellposs: projektna dokumentacija
potom i dalje obrađuje istu stavku dostavnice (isti proizvod), no izuzimanjem s iduće
zadane lokacije.
Nakon što bude izuzeta tražena količina proizvoda, od prve ili s više lokacija, automatski se
prikazuje ažurirana dostavnica kao na Slici 40.
Nakon uspješnog izuzimanja sve robe zatražene dostavnicom, u punoj količini, u dnu sučelja za
prikaz dostavnice ukazat će se gumb Gotovo kojim se dostavnica skladišno zaključuje (i uklanja
iz prikaza otvorenih sa Slike 37). To je prikazano Slikom 41.
55
Slika 40: Ažurirana dostavnica Slika 41: Završena dostavnica
56. Mob Ellposs: projektna dokumentacija
4.8 Dodjela bar koda
Dodjela novoga bar koda proizvodu je CRUD postupak, a ne poslovni proces. Stoga je korisničko
sučelje za dodjelu bar koda jednostavno, prikazano Slikom 42.
Proizvod kojem treba dodijeliti bar kod može se pronaći utipkavanjem, u cijelosti ili djelomično,
dobavljačeve šifre, Ellabove oznake (šifre) ili naziva robe. Klikom na Pronađi, popunjava se
tablični prikaz proizvoda u skladu s kriterijima pretrage. Odabirom jednog proizvoda (dodirom)
omogućuje se skeniranje ili upis novog bar koda tog proizvoda koji se potom sprema u bazu
podataka klikom na gumb Spremi.
56
Slika 42: Dodjela bar koda
57. Mob Ellposs: projektna dokumentacija
4.9 Lokacije robe
Sučelje za prikaz lokacija robe prikazano je Slikom 43. Za korištenje, prvo treba odabrati
skladište. Nakon toga treba skenirati ili upisati bar kod ili šifru robe (u cijelosti). Nakon toga se
prikazuje puni naziv proizvoda i popis lokacija odabranoga skladišta koje sadrže taj proizvod.
Klizanjem u lijevo sučelje se prazni od svega osim odabranog skladišta te se može koristiti za
pretragu smještajnih lokacija nekog drugog proizvoda.
57
Slika 43: Lokacije robe
58. Mob Ellposs: projektna dokumentacija
4.10 Sortiranje stavki skladišnog naloga
Za prikaz stavki skladišnog naloga (Slika 19 za nalog zaprimanja, Slika 25 za nalog otpreme i Slika
38 za dostavnicu) vrijede određena pravila. Cilj tih pravila jest minimizacija skladištarevog
kretanja po skladištu tijekom obrade skladišnih naloga, u svrhu ubrzanja posla i smanjenja
"praznog hoda". Stavke7
(tj. artikli) sa skladišnog naloga su na navedenim sučeljima tako sortirani
da su njihove skladišne lokacije (s kojih se te artikli izuzimaju ili na koje se smještaju) na što je
moguće kraćem putu za skladištara.
Za dostavnicu:
1. Prvo se prikazuju stavke čiji su artikli na maloprodajnim lokacijama. Sortiranje
maloprodajnih lokacija (te, posljedično, stavki) jest po abecedi uzlazno.
2. Potom se pojavljuju stavke čiji su artikli na običnim skladišnim veleprodajnim
lokacijama. Sortiranje tih lokacija je također po abecedi uzlazno. Na primjer, stavka čiji
su artikli na lokaciji AB11 bit će prikazana ispred stavke čiji su artikli na lokaciji AB15.
Za ostale naloge, redoslijed prikaza stavki jest naprosto po abecednom redu lokacija na kojima
je smješten artikl stavke.
7 Valja naglasiti da stavku čini artikl (tj. proizvod) i količina (za izuzeti sa skladišta ili smjestiti na skladište).
Formalno gledano, stavke same po sebi nemaju skladišnu lokaciju, nego tu (smještajnu) lokaciju ima artikl stavke.
58
59. Mob Ellposs: projektna dokumentacija
5 Aplikacijska programska sučelja (API) za
integraciju s vanjskim sustavima
Mob Ellposs čine slijedeće softverske komponente:
1. Relacijska baza podataka kao temelj cijelog sustava: Mob Ellposs BP. Podaci u relacijskim
shemama (tablicama) se obrađuju pomoću pohranjenih procedura, ali su dozvoljeni i
izravni SQL upiti. Pohranjene procedure će se koristiti za sve transakcijske upise
(INSERT) i ažuriranja (UPDATE). Dakle, za složene radnje koje obuhvaćaju promjene
podataka u dvije ili više tablica. Izravni SQL upiti će se koristiti za sve jednostavne
upise i ažuriranja te za dohvat (SELECT) podataka. Dakle, za radnje "jednostavne" gdje
se promjena podataka izvodi u samo jednoj tablici ili pak da se podaci samo čitaju.
2. Web servis (s više web metoda) kao poveznica između baze podataka i korisničkih
aplikacija: Mob Ellposs Web API. U te korisničke aplikacije spada i mobilna aplikacija na
Android uređajima, ali su moguća i rješenja za druge uređaje i operacijske sustave.
Kolokvijalno rečeno, Mob Ellposs Web API je middleware.
3. Korisnička, mobilna aplikacija za neposredni rad s čitavim rješenjem: Mob Ellposs za
Android. Primjer izgleda i nekih funkcionalnosti takve aplikacije opisan je u Poglavlju 4.
Valja naglasiti da je Mob Ellposs za Android samo jedna od niza mogućih korisničkih
aplikacija za neposredni rad s Mob Ellpossom. Uz nju, vjerojatno će biti potrebno razviti i
druge slične aplikacije za klasična, stolna ili prijenosna računala, pod uobičajenim
operacijskim sustavima.
Mob Ellposs Web API je nužan za:
1. Rad korisničkih aplikacija, uključivo i Mob Ellposs za Android.
2. Poslovnu integraciju s Ellpossom, za rad s podacima vezanim za skladišno poslovanje.
3. Administrativnu integraciju s Ellpossom, za upravljanje katalozima (šifarnicima) te
korisnicima i korisničkim ulogama (rolama).
U ovoj projektnoj dokumentaciji su detaljno prikazane web metode nužne za
poslovnu integraciju s Ellpossom. Ostale će biti prikazane u tehničkoj, izvedbenoj
dokumentaciji, kao tzv. Swagger dokumentacija.
Budući da se radi o web metodama u REST paradigmi koje barataju podacima u JSON formatu,
vrijednosti za upis (request) i povratne vrijednosti (response) ovdje su prikazane u pseudo JSON
obliku. Masna slova označavaju uvijek obvezne vrijednosti. Masna slova u kurzivu označavaju
uvjetno, ponekad obvezne vrijednosti. U Objašnjenima na kraju svakog potpoglavlja su
precizirani takvi uvjeti.
Mob Ellposs radi na istoj bazi podataka kao i Ellposs (MSSQL). Oba sustava su namijenjeni istoj
organizaciji (tvrtki Ellabo) i najvjerojatnije će biti pokrenuta na sličnoj infrastrukturi te unutar
zajedničke lokalne mreže. Stoga su uz integracijske web metode spomenute i pohranjene
procedure "iza" tih web metoda jer se, uz spomenute uvjete, i te procedure mogu koristiti
za integraciju Mob Ellpossa s Ellpossom.
59
60. Mob Ellposs: projektna dokumentacija
5.1 Zadavanje naloga
5.1.1 POST /api/nalozi
Ovom web metodom se u Mob Ellposs upisuje skladišni nalog ("skladišni dokument") izvorno
zadan u Ellpossu. Ovom metodom se upisuju svi skladišni nalozi, i ulazni (npr. primka), i izlazni
(npr. otpremnica, dostavnica ili međuskladišnica), i interni (prijenosnica i inventurni nalog).
Shema zahtjeva (request body):
Nalog{
oznNaloga string
vrstaNaloga VrstaNaloga{
oznVrste string
smjer string
naziv string
}
skladiste Skladiste{
oznSklainteger($int32)
naziv string
}
godina integer($int32)
broj integer($int32)
vrem string($date-time)
userName string
krajNaloga KrajNaloga{
vremKraja string($date-time)
userName string
}
otpremaOtprema{...}
komitent Komitent{
naziv string
}
ulaznoSkladiste Skladiste{
oznSklainteger($int32)
naziv string
}
stavkeNaloga [
StavkaNaloga{
proizvod Proizvod{
oznProdstring
mjeJed MjeJed{...}
naziv string
}
količina number($double)
}
]
}
Shema odgovora: prazno.
60
61. Mob Ellposs: projektna dokumentacija
5.1.2 NalogCreate
Zapisuje skladišni nalog i pripadne stavke, ako postoje. Koristi se za zadavanje svih naloga,
uključivo međuskladišnicu, prijenosnicu/premještajnicu (PLL) i inventurni nalog.
Raspon oznaka greški: [50001, 50021]
CREATE OR ALTER PROCEDURE dbo.NalogCreate
@oznVrste CHAR(3)
, @oznSkla INT
, @godina INT
, @broj INT
, @userName NVARCHAR(255)
, @vrem DATETIME
, @stavkeNaloga TStavkaNaloga READONLY
, @nazivKomitenta VARCHAR(255) = NULL
, @vremKraja DATETIME = NULL
, @oznSklaUlaznog INT = NULL
5.1.3 Objašnjenja
Kraj naloga je obavezan samo ako je nalog interni: inventura ili prijenosnica PLL. Komitent je
obavezan samo ako je nalog ulazni ili izlazni, npr. otpremnica ili primka. Ulazno skladište je
obavezno samo ako je nalog međuskladišnica.
61
62. Mob Ellposs: projektna dokumentacija
5.2 Zatvaranje ulaznog naloga
5.2.1 PUT /api/nalozi/ulazni/zakljuci
Ovom web metodom se zatvara (zaključuje) ulazni nalog čije su stavke obrađene, tj. proizvodi s
tih stavki smješteni na skladišne lokacije.
Shema zahtjeva (request body):
Nalog{
oznNaloga string
vrstaNaloga VrstaNaloga{
oznVrste string
smjer string
naziv string
}
skladište Skladiste{
oznSklainteger($int32)
naziv string
}
godina integer($int32)
broj integer($int32)
vrem string($date-time)
userName string
krajNaloga KrajNaloga{
vremKraja string($date-time)
userName string
}
otpremaOtprema{
userName string
vrem string($date-time)
preuzimatelj string
}
komitent Komitent{...}
ulaznoSkladiste Skladiste{...}
stavkeNaloga [...]
}
Shema odgovora: prazno.
5.2.2 KrajNalogaCreate
Zatvara ulazni nalog, uključivo i ulaz međuskladišnice PSS.
Raspon oznaka greški: [50101, 50107].
CREATE OR ALTER PROCEDURE dbo.KrajNalogaCreate
@oznVrste CHAR(3)
, @oznSkla INT
, @godina INT
, @broj INT
, @userName NVARCHAR(255)
62
63. Mob Ellposs: projektna dokumentacija
5.3 Ažuriranje stanja na lokacijama
5.3.1 POST /api/tx/inventurna
Ovom metodom se upisuje ili ažurira stanje proizvoda na lokacijama, tj. sadržaj lokacija. Takvo
zapisivanje se provodi u sklopu zaključivanja inventure, iz vanjskog sustava (Ellpossa).
Shema zahtjeva (request body):
RobnaTx{
robnaTxId integer($int64)
nalog Nalog{
oznNaloga string
vrstaNaloga VrstaNaloga{...}
skladiste Skladiste{
oznSklainteger($int32)
naziv string
}
godina integer($int32)
broj integer($int32)
vrem string($date-time)
userName string
krajNaloga KrajNaloga{...}
otprema Otprema{...}
komitent Komitent{...}
ulaznoSkladiste Skladiste{...}
stavkeNaloga [...]
}
sadrzaj Sadrzaj{
lokacija Lokacija{
skladište Skladiste{
oznSklainteger($int32)
naziv string
}
oznLok string
}
proizvod Proizvod{
oznProd string
mjeJed MjeJed{...}
naziv string
}
stanje number($double)
}
userName string
vrem string($date-time)
iznos number($double)
}
Shema odgovora:
integer($int64)
63
64. Mob Ellposs: projektna dokumentacija
5.3.2 RobnaTxInventurnaCreate
Zapisuje stanje proizvoda na lokaciji ("sadržaj)", obično u sklopu zaključivanja inventure.
Raspon oznaka greški:[50071, 50073].
CREATE OR ALTER PROCEDURE dbo.RobnaTxInventurnaCreate
-- za OznVrste se PODRAZUMIJEVA da je 'INV'.
@oznSkla INT
, @godina INT
, @broj INT
, @oznLok VARCHAR(7)
, @oznProd CHAR(9)
, @stanje DECIMAL(14, 4)
, @userName NVARCHAR(255)
, @robnaTxId BIGINT OUT
5.3.3 Objašnjenja
Za sadržaj nije potrebno dojavljivati skladište jer se ono čita iz naloga, nego samo oznaku
lokacije. Za cijelu robnu transakciju nije potrebno dodjeljivati iznos jer se on čita iz
sadrzaj.stanje. Proslijeđeni userName se odnosi na provoditelja robne transakcije, a ne na
zadavatelja naloga.
64