SlideShare a Scribd company logo
1 of 64
Mob Ellposs
Projektna dokumentacija
v6
Autor:
dr.sc. Slaven Brumec, dipl.inž.rač.
Koris d.o.o.
za Ellabo d.o.o., 2020.
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
Mob Ellposs: projektna dokumentacija
Ova stranica je namjerno prazna.
Dokument je prilagođen dvostranom ispisu.
4
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Mob Ellposs: projektna dokumentacija
23
Slika 9: Stanja međuskladišnice
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
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
Mob Ellposs: projektna dokumentacija
Ova stranica je namjerno prazna.
Dokument je prilagođen dvostranom ispisu.
26
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
Mob Ellposs: projektna dokumentacija
IZRAVNI LINK NA OSNOVNI RELACIJSKI MODEL MOB ELLPOSSA.
28
Slika 12: Osnovni relacijski model Mob Ellpossa
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
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
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
Mob Ellposs: projektna dokumentacija
Ova stranica je namjerno prazna.
Dokument je prilagođen dvostranom ispisu.
32
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
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
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)
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

More Related Content

Similar to Mob Ellposs - projektna dokumentacija

Spring - preddiplomski 2018./2019.
Spring - preddiplomski 2018./2019.Spring - preddiplomski 2018./2019.
Spring - preddiplomski 2018./2019.Mario Kušek
 
ASP.NET MVC - desingning and implementing extensible web applications (WinDay...
ASP.NET MVC - desingning and implementing extensible web applications (WinDay...ASP.NET MVC - desingning and implementing extensible web applications (WinDay...
ASP.NET MVC - desingning and implementing extensible web applications (WinDay...Kresimir Meze
 
Python - na uzlazu ili silazu?
Python - na uzlazu ili silazu?Python - na uzlazu ili silazu?
Python - na uzlazu ili silazu?Robert Lujo
 
Information age 2010.oracle e business s
Information age 2010.oracle e business sInformation age 2010.oracle e business s
Information age 2010.oracle e business sOracle Hrvatska
 
AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević Kruno Ris
 
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptxPOSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptxLarlochLes
 
Developers' mDay 2017. - Veljko Manojlović Telenor
Developers' mDay 2017. - Veljko Manojlović TelenorDevelopers' mDay 2017. - Veljko Manojlović Telenor
Developers' mDay 2017. - Veljko Manojlović TelenormCloud
 
cloud computing završni
cloud computing završnicloud computing završni
cloud computing završniTomislav Pejić
 
IMPLEMENTACIJA QR KODOVA U BRODOSPLIT ZA NADZOR BRODOVA (Imaginaran projekt)....
IMPLEMENTACIJA QR KODOVA U BRODOSPLIT ZA NADZOR BRODOVA (Imaginaran projekt)....IMPLEMENTACIJA QR KODOVA U BRODOSPLIT ZA NADZOR BRODOVA (Imaginaran projekt)....
IMPLEMENTACIJA QR KODOVA U BRODOSPLIT ZA NADZOR BRODOVA (Imaginaran projekt)....LucijaPetri
 
Modeliranje poslovnih procesa: izvedbeni projekti
Modeliranje poslovnih procesa: izvedbeni projektiModeliranje poslovnih procesa: izvedbeni projekti
Modeliranje poslovnih procesa: izvedbeni projektiSlaven Brumec
 
Oracle information age co croz-neos v2.2.
Oracle information age co croz-neos v2.2.Oracle information age co croz-neos v2.2.
Oracle information age co croz-neos v2.2.Oracle Hrvatska
 
Projektovanje informacionih sist
Projektovanje informacionih sistProjektovanje informacionih sist
Projektovanje informacionih sistAlenGrgic1
 
Rp1 predavanja 02 - Koncepti objektno orijentiranog programiranja
Rp1 predavanja 02 - Koncepti objektno orijentiranog programiranjaRp1 predavanja 02 - Koncepti objektno orijentiranog programiranja
Rp1 predavanja 02 - Koncepti objektno orijentiranog programiranjaGoran Igaly
 
KAKO INTERNET GOVORI - Osnove HTML jezika
KAKO INTERNET GOVORI - Osnove HTML jezikaKAKO INTERNET GOVORI - Osnove HTML jezika
KAKO INTERNET GOVORI - Osnove HTML jezikaTomislav Kaučić
 
Upravljanje Web Uslugama u IT okruženjima
Upravljanje Web Uslugama u IT okruženjimaUpravljanje Web Uslugama u IT okruženjima
Upravljanje Web Uslugama u IT okruženjimaandrea132961
 
Osb studija slucaja sgsb-a.ppt [compatibility m
Osb studija slucaja sgsb-a.ppt [compatibility mOsb studija slucaja sgsb-a.ppt [compatibility m
Osb studija slucaja sgsb-a.ppt [compatibility mOracle Hrvatska
 
WebUG - Hibridne mobilne aplikacije
WebUG - Hibridne mobilne aplikacijeWebUG - Hibridne mobilne aplikacije
WebUG - Hibridne mobilne aplikacijeMatija Šmalcelj
 
Angular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayAngular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayNETMedia
 

Similar to Mob Ellposs - projektna dokumentacija (20)

Spring - preddiplomski 2018./2019.
Spring - preddiplomski 2018./2019.Spring - preddiplomski 2018./2019.
Spring - preddiplomski 2018./2019.
 
ASP.NET MVC - desingning and implementing extensible web applications (WinDay...
ASP.NET MVC - desingning and implementing extensible web applications (WinDay...ASP.NET MVC - desingning and implementing extensible web applications (WinDay...
ASP.NET MVC - desingning and implementing extensible web applications (WinDay...
 
Python - na uzlazu ili silazu?
Python - na uzlazu ili silazu?Python - na uzlazu ili silazu?
Python - na uzlazu ili silazu?
 
JavaCro'15 - API as a new architecture - Miroslav Rešetar
JavaCro'15 - API as a new architecture - Miroslav RešetarJavaCro'15 - API as a new architecture - Miroslav Rešetar
JavaCro'15 - API as a new architecture - Miroslav Rešetar
 
Information age 2010.oracle e business s
Information age 2010.oracle e business sInformation age 2010.oracle e business s
Information age 2010.oracle e business s
 
AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević
 
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptxPOSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
 
Developers' mDay 2017. - Veljko Manojlović Telenor
Developers' mDay 2017. - Veljko Manojlović TelenorDevelopers' mDay 2017. - Veljko Manojlović Telenor
Developers' mDay 2017. - Veljko Manojlović Telenor
 
cloud computing završni
cloud computing završnicloud computing završni
cloud computing završni
 
IMPLEMENTACIJA QR KODOVA U BRODOSPLIT ZA NADZOR BRODOVA (Imaginaran projekt)....
IMPLEMENTACIJA QR KODOVA U BRODOSPLIT ZA NADZOR BRODOVA (Imaginaran projekt)....IMPLEMENTACIJA QR KODOVA U BRODOSPLIT ZA NADZOR BRODOVA (Imaginaran projekt)....
IMPLEMENTACIJA QR KODOVA U BRODOSPLIT ZA NADZOR BRODOVA (Imaginaran projekt)....
 
Modeliranje poslovnih procesa: izvedbeni projekti
Modeliranje poslovnih procesa: izvedbeni projektiModeliranje poslovnih procesa: izvedbeni projekti
Modeliranje poslovnih procesa: izvedbeni projekti
 
Oracle information age co croz-neos v2.2.
Oracle information age co croz-neos v2.2.Oracle information age co croz-neos v2.2.
Oracle information age co croz-neos v2.2.
 
Projektovanje informacionih sist
Projektovanje informacionih sistProjektovanje informacionih sist
Projektovanje informacionih sist
 
Rp1 predavanja 02 - Koncepti objektno orijentiranog programiranja
Rp1 predavanja 02 - Koncepti objektno orijentiranog programiranjaRp1 predavanja 02 - Koncepti objektno orijentiranog programiranja
Rp1 predavanja 02 - Koncepti objektno orijentiranog programiranja
 
KAKO INTERNET GOVORI - Osnove HTML jezika
KAKO INTERNET GOVORI - Osnove HTML jezikaKAKO INTERNET GOVORI - Osnove HTML jezika
KAKO INTERNET GOVORI - Osnove HTML jezika
 
Upravljanje Web Uslugama u IT okruženjima
Upravljanje Web Uslugama u IT okruženjimaUpravljanje Web Uslugama u IT okruženjima
Upravljanje Web Uslugama u IT okruženjima
 
Uvod u aplikacije - Luka Mandić
Uvod u aplikacije - Luka MandićUvod u aplikacije - Luka Mandić
Uvod u aplikacije - Luka Mandić
 
Osb studija slucaja sgsb-a.ppt [compatibility m
Osb studija slucaja sgsb-a.ppt [compatibility mOsb studija slucaja sgsb-a.ppt [compatibility m
Osb studija slucaja sgsb-a.ppt [compatibility m
 
WebUG - Hibridne mobilne aplikacije
WebUG - Hibridne mobilne aplikacijeWebUG - Hibridne mobilne aplikacije
WebUG - Hibridne mobilne aplikacije
 
Angular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayAngular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump Day
 

More from Slaven Brumec

Odlučivanje u poslovnim procesima - modeliranje odlučivanja, norma DMN 1.3, o...
Odlučivanje u poslovnim procesima - modeliranje odlučivanja, norma DMN 1.3, o...Odlučivanje u poslovnim procesima - modeliranje odlučivanja, norma DMN 1.3, o...
Odlučivanje u poslovnim procesima - modeliranje odlučivanja, norma DMN 1.3, o...Slaven Brumec
 
ILBA: modeliranje poslovnih procesa
ILBA: modeliranje poslovnih procesaILBA: modeliranje poslovnih procesa
ILBA: modeliranje poslovnih procesaSlaven Brumec
 
Izvršivi BPM: Razvoj procesno-orijentiranih aplikacija
Izvršivi BPM: Razvoj procesno-orijentiranih aplikacijaIzvršivi BPM: Razvoj procesno-orijentiranih aplikacija
Izvršivi BPM: Razvoj procesno-orijentiranih aplikacijaSlaven Brumec
 
Modeliranje poslovnih procesa - uvod u BPMN
Modeliranje poslovnih procesa - uvod u BPMNModeliranje poslovnih procesa - uvod u BPMN
Modeliranje poslovnih procesa - uvod u BPMNSlaven Brumec
 
Business process maturity model
Business process maturity modelBusiness process maturity model
Business process maturity modelSlaven Brumec
 
Mobilne tehnologije za pristup središnjim bazama podataka
Mobilne tehnologije za pristup središnjim bazama podatakaMobilne tehnologije za pristup središnjim bazama podataka
Mobilne tehnologije za pristup središnjim bazama podatakaSlaven Brumec
 
Konstrukcija mjernih instrumenata za Balanced Scorecard
Konstrukcija mjernih instrumenata za Balanced ScorecardKonstrukcija mjernih instrumenata za Balanced Scorecard
Konstrukcija mjernih instrumenata za Balanced ScorecardSlaven Brumec
 
Identifying Mobile Processes in a Complex Information System
Identifying Mobile Processes in a Complex Information SystemIdentifying Mobile Processes in a Complex Information System
Identifying Mobile Processes in a Complex Information SystemSlaven Brumec
 
Računalni oblaci kao dio servisno orijentirane arhitekture
Računalni oblaci kao dio servisno orijentirane arhitektureRačunalni oblaci kao dio servisno orijentirane arhitekture
Računalni oblaci kao dio servisno orijentirane arhitektureSlaven Brumec
 
Modeliranje poslovnih procesa - uvod u BPMN
Modeliranje poslovnih procesa - uvod u BPMNModeliranje poslovnih procesa - uvod u BPMN
Modeliranje poslovnih procesa - uvod u BPMNSlaven Brumec
 

More from Slaven Brumec (10)

Odlučivanje u poslovnim procesima - modeliranje odlučivanja, norma DMN 1.3, o...
Odlučivanje u poslovnim procesima - modeliranje odlučivanja, norma DMN 1.3, o...Odlučivanje u poslovnim procesima - modeliranje odlučivanja, norma DMN 1.3, o...
Odlučivanje u poslovnim procesima - modeliranje odlučivanja, norma DMN 1.3, o...
 
ILBA: modeliranje poslovnih procesa
ILBA: modeliranje poslovnih procesaILBA: modeliranje poslovnih procesa
ILBA: modeliranje poslovnih procesa
 
Izvršivi BPM: Razvoj procesno-orijentiranih aplikacija
Izvršivi BPM: Razvoj procesno-orijentiranih aplikacijaIzvršivi BPM: Razvoj procesno-orijentiranih aplikacija
Izvršivi BPM: Razvoj procesno-orijentiranih aplikacija
 
Modeliranje poslovnih procesa - uvod u BPMN
Modeliranje poslovnih procesa - uvod u BPMNModeliranje poslovnih procesa - uvod u BPMN
Modeliranje poslovnih procesa - uvod u BPMN
 
Business process maturity model
Business process maturity modelBusiness process maturity model
Business process maturity model
 
Mobilne tehnologije za pristup središnjim bazama podataka
Mobilne tehnologije za pristup središnjim bazama podatakaMobilne tehnologije za pristup središnjim bazama podataka
Mobilne tehnologije za pristup središnjim bazama podataka
 
Konstrukcija mjernih instrumenata za Balanced Scorecard
Konstrukcija mjernih instrumenata za Balanced ScorecardKonstrukcija mjernih instrumenata za Balanced Scorecard
Konstrukcija mjernih instrumenata za Balanced Scorecard
 
Identifying Mobile Processes in a Complex Information System
Identifying Mobile Processes in a Complex Information SystemIdentifying Mobile Processes in a Complex Information System
Identifying Mobile Processes in a Complex Information System
 
Računalni oblaci kao dio servisno orijentirane arhitekture
Računalni oblaci kao dio servisno orijentirane arhitektureRačunalni oblaci kao dio servisno orijentirane arhitekture
Računalni oblaci kao dio servisno orijentirane arhitekture
 
Modeliranje poslovnih procesa - uvod u BPMN
Modeliranje poslovnih procesa - uvod u BPMNModeliranje poslovnih procesa - uvod u BPMN
Modeliranje poslovnih procesa - uvod u BPMN
 

Mob Ellposs - projektna dokumentacija

  • 1. Mob Ellposs Projektna dokumentacija v6 Autor: dr.sc. Slaven Brumec, dipl.inž.rač. Koris d.o.o. za Ellabo d.o.o., 2020.
  • 2.
  • 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
  • 23. Mob Ellposs: projektna dokumentacija 23 Slika 9: Stanja međuskladišnice
  • 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