beszerzési logisztika támogatása az optimális beszállító...
TRANSCRIPT
Miskolci Egyetem, Gépészmérnöki és Informatikai Kar
Logisztikai Intézet
Beszerzési logisztika támogatása az optimális
beszállító kiválasztása révén Szakdolgozat
Név: Makláry Brigitta
Neptun kód: EQP49C
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
I
Tartalomjegyzék
1. BEVEZETÉS ............................................................................................................................................ 1
2. BESZERZÉS ............................................................................................................................................ 2
2.1. A BESZERZÉS FOGALMA ....................................................................................................................... 2
2.2. A BESZERZÉSI KOORDINÁCIÓ MÓDSZEREI ................................................................................................. 2
2.3. ANYAGBESZERZÉS .............................................................................................................................. 3
2.3.1. Anyagok ............................................................................................................................... 3
2.3.2. Anyagok csoportosítása ....................................................................................................... 3
2.4. ANYAGRENDELÉS TECHNOLÓGIAI ANYAGNORMÁK SZERINT .......................................................................... 3
2.4.1. Anyagszükséglet meghatározása ......................................................................................... 3
2.4.2. Készlet szükséglet összevetése ............................................................................................. 3
2.4.3. Szállítási ciklusidők rögzítése ................................................................................................ 4
2.4.4. Biztonsági készlet meghatározása ........................................................................................ 4
2.4.5. Anyagrendelés ..................................................................................................................... 4
2.5. A BESZERZÉS FELADATA ....................................................................................................................... 4
2.5.1. Rövid és hosszú távú ellátás biztosítása ................................................................................ 5
2.5.2. Anyagköltségek csökkentése ................................................................................................ 5
2.5.3. Ár versenyképesség javítása ................................................................................................. 5
2.5.4. Ártárgyalás .......................................................................................................................... 6
2.5.5. Szerep a termékfejlesztésben ............................................................................................... 6
2.5.6. Innováció és termékfejlesztés segítése ................................................................................. 7
2.6. BESZERZÉS CÉLKITŰZÉSEI ..................................................................................................................... 7
2.7. A BESZERZÉSI FOLYAMAT ..................................................................................................................... 8
2.7.1. Késztermék megrendelés ...................................................................................................... 9
2.7.2. Késztermék megrendelés feldolgozása ............................................................................... 10
2.7.3. Termelésprogramozás ........................................................................................................ 10
2.7.4. Alapanyag meghatározása és készletkövetés ..................................................................... 10
2.7.5. Rendelés előkészítés ........................................................................................................... 11
2.7.6. Beszállítás és gyáron belüli anyag elhelyezés ...................................................................... 11
2.8. BESZÁLLÍTÓK KOMPLEX MINŐSÍTÉSE ..................................................................................................... 12
2.9. INCOTERMS.................................................................................................................................... 13
2.9.1. Klauzulák fajtái a költség átszállása alapján ....................................................................... 13
2.9.2. Klauzulák fajtái a fuvarozási mód alapján .......................................................................... 13
2.9.3. Főbb klauzulák ................................................................................................................... 13
3. ADATBÁZIS ALAPOK ........................................................................................................................... 15
3.1. FOGALMAK .................................................................................................................................... 15
3.2. ADATMODELL ................................................................................................................................. 15
3.2.1. ER adatmodell .................................................................................................................... 16
3.2.2. Relációs adatmodell ........................................................................................................... 18
3.3. ADATBÁZIS LÉTREHOZÁS LÉPÉSEI ......................................................................................................... 18
3.4. AZ ADATBÁZIS SZERKEZETE ................................................................................................................. 19
4. HASZNÁLT NYELVEK, ALKALMAZÁSOK ISMERTETÉSE ......................................................................... 20
4.1. JDBC ........................................................................................................................................... 20
4.2. SQL NYELV .................................................................................................................................... 21
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
II
4.3. PL/SQL NYELV ............................................................................................................................... 22
5. A PROGRAM ISMERTETÉSE ................................................................................................................. 23
5.1. ÁLTALÁNOS LEÍRÁS .......................................................................................................................... 23
5.2. KÖVETELMÉNYEK ÉS RENDSZER LEÍRÁS .................................................................................................. 24
5.3. ADATBÁZIS LEÍRÁSA.......................................................................................................................... 24
5.4. HASZNÁLT ADATMODELLEK ................................................................................................................ 25
5.4.1. ER modell ........................................................................................................................... 26
5.4.2. Relációs modell .................................................................................................................. 26
6. TÁBLÁK FELÉPÍTÉSE ............................................................................................................................ 27
6.1. BESZÁLLÍTÓ TÁBLA LÉTREHOZÁSA......................................................................................................... 27
6.2. ALKATRÉSZ TÁBLA LÉTREHOZÁSA ......................................................................................................... 27
6.3. BESZÁLLÍTÓ-ALKATRÉSZ TÁBLA LÉTREHOZÁSA ......................................................................................... 28
6.4. RAKTÁR TÁBLA LÉTREHOZÁSA ............................................................................................................. 29
6.5. RENDELÉS TÁBLA LÉTREHOZÁSA .......................................................................................................... 29
6.6. NAPLÓ TÁBLA LÉTREHOZÁSA .............................................................................................................. 30
7. TÁBLAMŰVELETEK .............................................................................................................................. 31
7.1. ELMÉLETI ISMERTETÉS ...................................................................................................................... 31
7.2. CSOMAGOK ................................................................................................................................... 32
7.2.1. Alkatrész táblához tartozó csomag ..................................................................................... 32
7.2.2. Beszállító táblához tartozó csomag .................................................................................... 32
7.2.3. Besz_Alk táblához tartozó csomag ..................................................................................... 34
7.2.4. Rendelés táblához tartozó csomag ..................................................................................... 36
7.2.5. Raktár táblához tartozó csomag ........................................................................................ 39
8. PROGRAMFELÜLET BEMUTATÁSA ...................................................................................................... 43
8.1. HIÁNYOS KÉSZLET LISTÁZÁSA .............................................................................................................. 43
8.2. ALAPFELÜLET.................................................................................................................................. 44
8.2.1. Optimális beszállító kalkulálás............................................................................................ 44
8.2.2. Rendelés............................................................................................................................. 45
8.3. ÚJ ELEM FELVÉTELE .......................................................................................................................... 46
8.4. LISTÁZÁS ....................................................................................................................................... 47
8.5. KERESÉS ........................................................................................................................................ 47
8.6. MÓDOSÍTÁS ................................................................................................................................... 48
8.7. NAPLÓZÁS ..................................................................................................................................... 49
8.8. SÚGÓ ........................................................................................................................................... 50
9. ÖSSZEFOGLALÁS ................................................................................................................................. 51
10. SUMMARY ...................................................................................................................................... 52
11. IRODALOMJEGYZÉK ........................................................................................................................ 53
12. CD MELLÉKLET TARTALMA ............................................................................................................. 54
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
1
1. Bevezetés
2013 nyarán a Samsung Electronics Hungary Zrt.-nél töltöttem a nyári
gyakorlatomat, a Beszerzési osztályon. Kérésemre sikerült elegendő információt
gyűjtenem arról, hogy milyen szempontok szerint történik egy beszállító kiválasztása az
alkatrész megrendelésének esetében.
Manapság felgyorsult a világ melyben élünk, ezért egyáltalán nem mindegy, hogy
egy rendelt szállítmány mikor érkezik meg a gyárba. A beérkezés után nem lehet azonnal
felhasználni, mivel van lerakodási idő is, így hiába van a gyár területén az alkatrész a
termelés leállhat az anyaghiány miatt. Az előbbiből adódik, hogy mennyire fontos az
időzítés. A Beszerzőnek oda kell figyelnie a szállítási időre, különben leállíthatja a
gyártást, mely a cég szempontjából nem túl gazdaságos. A rendelés kiadásánál az időzítés
mellett fontos még a költség. Nem mindegy, hogy kitől, milyen szállítási feltételekkel és
költségekkel rendelünk egy alkatrészt. Minden beszállító más - más árakkal rendelkezik. A
Beszerzőknek ezeket az adatokat hatékonyan és gyorsan kell tudniuk kezelni.
Az általam készített programmal az ő munkájukat kívánom megkönnyíteni.
Lehetőséget adok arra, hogy pillanatok alatt szinte bármilyen információhoz
hozzáférjenek, ami egy alkatrész megrendelésénél szükséges. Egy alapanyagot kiválasztva
a rendszer kiszámolja a lehetséges költségeket, így a Beszerző eldöntheti, hogy az ár vagy
az idő kapja a magasabb prioritást az anyagrendelésnél. A rendszer nem választ a Beszerző
helyett, hiszen a választás nem minden esetben egyszerű. Ha nem felel meg a program által
felajánlott érték, akkor azt vissza kell utasítani, ami ronthatja a cégek KPI (Key
Performance Indicator) mutatóját.
A Logisztikai rendszerek szakirány tanulója vagyok. A szakirányomnak megfelelő
témát szerettem volna választani, ezért úgy döntöttem, hogy az általam kedvelt logisztika
témát, az anyagbeszerzést összekapcsolom az adatbázis kezeléssel és a programozással.
Eredménye SQL és PL-SQL alapú adatbázis, melyre JDBC segítségével felületet
készítettem.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
2
2. Beszerzés
Azt a folyamatot, amivel a vállalati logisztika általában foglalkozik, három részre
oszthatjuk: beszerzési, termelési, és értékesítési logisztika.
A beszerzési logisztika áll az anyagáramlási folyamatok kezdeténél, mivel biztosítja
azokat a bemeneti készleteket, amelyek a termelés elvégzéshez szükségesek. Egy átlagos
iparvállalat bevételének 55%-85%-át költi ezekre, így e feladat minél gazdaságosabb és
megbízhatóbb ellátása létkérdés.
2.1. A beszerzés fogalma
A beszerzés olyan folyamat, mely túllép az egyszerű, hétköznapi vásárláson. Magába
foglalja a beszerzés tervezését, a beszerzési stratégia kialakítását. Feladata a megfelelő
szállító kiválasztása, a szerződéskötés, a szállítók folyamatos ellenőrzése és fejlesztése,
valamint a vállalat egyéb szerveivel kialakítandó tevékenység koordinációja. Ezek révén
járul hozzá a beszerzés a vállalati eredményhez.
2.2. A beszerzési koordináció módszerei
Centralizált beszerzés: egy központi szerv szerzi be minden egység számára a
szükséges alapanyagokat, és látja el a beszerzés
megszervezésének teljes feladatát. Előnye, hogy egyetlen
egységként olcsóbb. Hátránya viszont, hogy az egyéni
igényeket kevésbé képes kielégíteni.
Decentralizált beszerzés: minden egység saját magának, másoktól teljesen
függetlenül szerzi be a számára szükséges alapanyagokat.
Előnye, hogy az egyéni igényeket maximálisan ki tudja
elégíteni. Hátránya pedig az, hogy nem kapnak
árkedvezményeket, ami a nagyobb mennyiségű
megrendelések után jár.
Beszerzés gazda: az a szervezeti egység szerzi be az alapanyagokat az összes
többinek, amely a legnagyobb mennyiségben használja azokat fel.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
3
2.3. Anyagbeszerzés
2.3.1. Anyagok
Az anyagok olyan vásárolt készletek, amelyeket termék előállításához vagy
szolgáltatások nyújtásához szereztek be. Az újratermelési folyamatban rendszerint egyszer
vesznek részt és általában elvesztik eredeti megjelenési formájukat, vagyis a vállalkozási
tevékenységet nem tartósan szolgálják.
2.3.2. Anyagok csoportosítása
Alapanyagok: azon nyersanyagok és termékek, amelyek feldolgozása az adott
gyártási folyamat legfontosabb célja, a fő termék fő alkotórészévé válik.
Segédanyagok: a gyártáshoz kisebb mennyiségben felhasznált anyagok. Javítják a
gyártmány minőségét.
Üzem és fűtőanyagok: elektromos vagy hő energia elő állítását szolgálják.
Tartalék-alkatrészek: a termelő berendezések alkatrészpótlására.
Egyéb anyagi eszközök: egy évnél rövidebb ideig szolgálják a vállalkozás
tevékenységét (pl.: munkaruhák, védőruhák).
2.4. Anyagrendelés technológiai anyagnormák szerint
2.4.1. Anyagszükséglet meghatározása
A gyártástechnológia igényének megfelelően műszaki, statisztikai adatok
felhasználásával, becsléssel határozható meg a termék előállításához szükséges
anyagszükséglet az anyagféleségre vonatkozóan.
2.4.2. Készlet szükséglet összevetése
Anyag típusonként meg kell vizsgálni a raktári állományt, hogy látszódjon, mely
anyagból mennyi van még készleten. Meg kell nézni, hogy ebből mennyi tartozik a
biztonsági készlethez, hiszen ennek mindig raktáron kell maradnia. Az összes készletből a
biztonsági készlet levonása után maradt készlettel kell számolni.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
4
2.4.3. Szállítási ciklusidők rögzítése
A beszállítóval tisztázni kell, hogy a hány nap a szállítási idő a megrendelés
kiadásától számítva. Az anyagrendelésnél ezt a szempontot figyelembe kell venni. A
szállítási határidőket folyamatosan karban kell tartani. A beszállítónak jeleznie kell az
esetleges változásokat, hogy a nyilvántartásban megtörténhessen az érték módosítása.
2.4.4. Biztonsági készlet meghatározása
A termelésben, valamint az anyagellátásban fellépő zavarokat ki kell küszöbölni,
erre szolgál a biztonsági készlet. A biztonsági készletet mindig meg kell tartani,
vészhelyzet esetére (pl.: nem érkeznek meg az anyagok, mert lezárták a repülőteret). A
készlet nagyságát általában több szempont határozza meg:
a termelő egység készletelőírása (terv),
az alkatrészek átfutási ideje,
a gyártási ciklusidő,
a gyártás bonyolultsági foka.
2.4.5. Anyagrendelés
A rendelkezésre álló adatok alapján ki lehet számolni az anyagigényt.
Anyagigény=(Gyártandó termék x anyag norma) - (Összes készlet-biztonsági készlet).
Anyagigényt továbbítani kell a beszállítók felé. Ez történhet levélben, faxon, elektronikus
úton.
2.5. A beszerzés feladata
A beszerzés feladata, hogy a vállalat működéséhez szükséges különböző anyagokat,
berendezéseket, szolgáltatásokat biztosítsa (iparvállatok bevételük 55-60%-át, élelmiszer
és vegyipari cégek 70-75%-át költik inputanyagokra).
Feladatai közé tartozik a logisztikai rendszer teljesítményének előmozdítása, a gyors
ellátáson, a minőség javításán, a költségcsökkentési lehetőségek feltárásán keresztül. A
beszerzés fontos információforrás, mivel az újabb potenciális beszállítókról, újabb
termékekről, technológiákról és a beszállítói piacon folyó versenyről is információt ad.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
5
2.5.1. Rövid és hosszú távú ellátás biztosítása
A beszerzés legfontosabb feladata a rövid és hosszú távú ellátás biztosítása. Az
anyag-ellátás és a szolgáltatás-ellátás hiánya esetén a termelés folyamatossága
megszakadhat, aminek következtében megreked a vállalkozás eredeti célja, a profit.
2.5.2. Anyagköltségek csökkentése
A beszerzés az átlagos feldolgozóipari vállalatok számára nagyon lényeges, mert
költségeinek akár 60%-át is kiteheti az anyagköltség. Ha egy cég akár 5%-kal is tudja
csökkenteni ezen költségeit, azzal már jelentősen növeli a nyereségét.
Az anyagellátási tevékenységnek fontos szerepe van a végtermék minősége és
technikai színvonala szempontjából is. A végtermék minősége és színvonala függ a
felhasznált anyagoktól és alkatrészektől, ezért a beszerzésnek arra kell törekednie,
hogy adott specifikációnak megfelelő minőségű, technikai színvonalú és árú terméket
szerezzenek be.
2.5.3. Ár versenyképesség javítása
Jelentős költségmegtakarítás, s ezen keresztül nyereségnövelés érhető el, ha a
beszerzendő anyag, termék vagy szolgáltatás árából csökkenteni tudunk. A
biztonságos rövid távú anyagellátás és az árcsökkentés együttes elérésekor
jelentkezhető ellentmondások:
A nagy tételben való vásárlás révén diszkontárat lehet elérni.
A magas raktárkészlet javítja az ellátás biztonságát és segíti kiküszöbölni a
minőségi és mennyiségi hullámzásokból származó problémákat.
A nagy készlet miatt nő a raktározási költség, illetve a forgóeszköz lekötés
kamatveszteséget okozhat.
Hosszú távú szerződések kötése nélkül, nem biztosítható a hosszú távú ellátás
biztonsága és minősége. Rövid távú ellátás esetén a szállító-gyártó együttműködés
nem megfelelő, nem járulnak hozzá az új termék kialakulásához, a termelési folyamat
modernizálásához vagy a további költségcsökkentéshez. Alacsony a kölcsönös
bizalom és együttműködés szintje.
Az ellentmondások oka, hogy egyrészt cél az ellátás biztosítása, másrészt, hogy
ez a biztonság pénzbe kerül. Ezért az optimális ellátási szint eléréséhez a különböző
tényezők mérlegelésére és összhangjára van szükség.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
6
2.5.4. Ártárgyalás
A beszerzési feladatok közül az egyik legjelentősebb a vételárról folytatott
tárgyalás. A termék, szolgáltatás egységárát befolyásoló tényezők:
Vásárolt mennyiség (tárgyalással elérhető kedvezmény a mennyiség
növekedésével javul, vagyis minél nagyobb tételben vásárol egy cég a
gyártótól annál nagyobb kedvezményre lesz jogosult),
Termék szabványos vagy egyedi volta (szabványosítással tovább
csökkenthetők a költségek),
Tervezhetően ismétlődő, illetve egyszeri beszerzés (visszatérő beszerzések
esetén kedvezőbb az alkupozíció),
Minőség (funkciónak megfelelő és feladat orientált minőség),
Termékkel, szolgáltatással együtt járó kiszolgálás milyensége,
Szállítási feltételek (paritás, távolság, szállítóeszköz),
Csomagolás (kis-nagy tételek).
2.5.5. Szerep a termékfejlesztésben
Beszerzésnek meghatározó szerepe van a termékfejlesztésben is. Napjainkban a
termékek életkora csökkent, a bevezetés és a növekedés szakasza rövidebb lett, s a
hanyatlást, a termék piacról való kivezetését sem szabad elhúzni. A beszerzés
összegyűjti, osztályozza és szétosztja az illetékes részlegek között az információit, így
ezzel folyamatos tájékoztatást nyújt a lerövidült termék életciklus időszakában a
kutatás, fejlesztésnek és a termelési részlegnek a beszerzési piac változásairól. A
megfelelő információáramlás előnyt biztosít a cég számára. A beszerzés feladata, hogy
nyomon kövesse a potenciális partnerek árait, technikai jellemzőit és rugalmasan
reagáljon a változásokra.
A beszerzés feladatkörébe tartozik a vállalti készletek számontartása is, ez
ugyanis befolyásolja a beszerzés időzítését. Anyagköltség szempontjából fontos a
beszerzés ütemezése a raktárkészletekkel összhangban. A szállítások megfelelő
ütemezésével optimalizálható az egyszeri szállítási mennyiség és a készlettárolási
költség.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
7
2.5.6. Innováció és termékfejlesztés segítése
A beszerzés egyik alapvető célja az optimális minőség biztosítása, hogy a
vállalat piacon megjelenő termékének, illetve szolgáltatásának minősége és technikai
színvonala kielégítse az elvárásokat. A beszerzésnek a kompetitív pozíció
fenntartásához vizsgálnia kell, hogy a vállalat minőségszintje ne legyen alacsonyabb,
mint a versenytársaké hasonló termékek esetén.
Lényeges, hogy partnerként kezelje a szállítót, s gondoskodjon a saját vállalatán
belül, illetve kifelé is a szállító jó híréről, mert az ilyen kapcsolat lehetővé teszi a
technikai segítségnyújtást, az innovációkban való segítést, költségcsökkentést, illetve
teljesítménynövelési technikák átadását. A jó személyes, illetve cég kapcsolatok az
ellátás biztonságát is garantálják.
A beszerzés célja és feladata a vállalaton belüli viszonyok fejlesztése, a
különböző részlegek egymás közötti kapcsolatainak és harmóniájának megteremtése,
mivel ez a részleg találkozik legkomplexebben a vállalat minden szervezetével.
2.6. Beszerzés célkitűzései
Maximálisan hozzájárulni a vállalat versenyképességéhez, a profit biztosításához,
a versenyben való túléléséhez.
Biztosítani az ellátás folyamatosságát, a vállalat működéséhez szükséges
minőségű anyagokkal és szolgáltatásokkal.
Az anyagok minimális árán való beszerzése, mely arányban áll az elfogadható
minőséggel és szállítással.
A raktározási kiadások összhangjának segítése az ellátási biztonsággal és a
gazdasági előnyökkel.
A gazdasági készletek biztonságos minimumon való tartása és kedvező áron
túladni a fölösleges készleteken.
Vállalati költségszerkezet javítása.
Elemzések készítése a hosszú távú ellátások biztonságáról és ennek költségeiről.
Más szervezetekkel való együttműködés az integráló szerep felhasználásával.
A célok elérése érdekében a beszerzési politika, az eljárások, az irányelvek, a
személyzeti állomány és az új termékek folyamatos fejlesztése.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
8
Szállító fejlesztése a jobb eredmények elérése érdekében.
Segíteni a szállító hírnevének kialakításban (ha megérdemli).
Minőség és az értékek megfelelő egyensúlyának fenntartása.
Beszerzési piac figyelése, új, megbízható szállítók keresése és kiválasztása.
2.7. A beszerzési folyamat
A termelő vállalatok logisztikai rendszere alrendszerekre tagozódik. Ezek a
következőek: beszerzési, termelési, elosztási és hulladékkezelési-újrahasznosítási
alrendszerek. A vállalati logisztikai rendszer tervezésénél, működtetésénél és
ellenőrzésénél a vállalat logisztikai menedzsmentje fontos szerepet játszik, melynek
feladata a vállalati általános stratégiák ismeretében az egyes logisztikai alrendszerek
számára működtetési stratégiák kidolgozása. Az általános stratégiák és a logisztikai
alrendszerek speciális stratégiáinak az együttes figyelembevétele eredményezheti csak a
logisztikai folyamatok sikeres és eredményes megvalósítását.
A 2.1. ábra a beszerzési logisztikai folyamatot foglalja össze, mely két részre
bontható fel:
Alapanyag rendelési folyamat, amelyben csak logisztikai információk áramolnak,
vagyis ez egy logisztikai információáramlási folyamat.
Az alapanyag rendelési folyamat eredményeként megvalósuló folyamat,
amelyben anyagáramlás és a hozzákapcsolódó információáramlás is megjelenik.
A 2.1. ábra jobb oldalán a beszerzési logisztikai tevékenység alapanyag-rendelési
folyamata látható. Az alapanyag rendelését általában két tényező befolyásolja. Az egyik a
piacról érkező késztermék megrendelések, míg a másik a piaci igények kielégítését
szolgáló termelési tervek megvalósulásához rendelkezésre álló alapanyagok raktári
készletei.
A 2.1. ábra bal oldalán található, a megvalósuló logisztikai folyamat. Itt a
beszállítótól a termelésbe történő anyagátadásig láthatóak folyamatorientáltan kezelve a
jelentkező logisztikai feladatok. Például, itt történik a beszállítók időzítése és a szállítás
lebonyolítása, illetve az áru megfelelő kezelésének folyamata.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
9
2.1. ábra: Beszerzési logisztikai folyamat
2.7.1. Késztermék megrendelés
A késztermék megrendelésénél a megrendelést különféle információk írják le. Ezek
az információk két csoportba oszthatók. Az egyik csoport a megrendelés tartalmára
vonatkozó információkat tartalmazza:
melyik vállalat a megrendelő és milyen terméktípusra vonatkozik a megrendelés;
a terméktípusokra vonatkoztatva milyen nagyságúak a megrendelt sorozatok,
mennyi a szállítási határidő;
terméktípusokra és sorozatokra vonatkoztatva mekkora az ár;
terméktípusokra vonatkozóan milyenek a minőségi megkötések;
a megrendelt késztermékre vonatkozóan, a vevő által igényelt logisztikai
szolgáltatások (R-S-T tevékenység, csomagolás, egységrakomány-képzés,
komissiózás, termékazonosítás);
a termékre és a megrendelőre vonatkozó prioritásokat.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
10
A második csoportba tartozó információk a megrendelések beérkezésével
kapcsolatosak:
mikor és milyen időközönként érkeznek a megrendelések. Érkezhetnek
tetszőleges vagy meghatározott időpontokban (naponta, hetente, havonta, stb.).
milyen módon, hogyan érkeznek a megrendelések (telefonon, levélben, faxon).
2.7.2. Késztermék megrendelés feldolgozása
A késztermék megrendelések feldolgozásának alapvető célja, hogy a vállalat a lehető
legrövidebb időn belül választ tudjon adni a megrendelőnek arra vonatkozóan, hogy a
vevői igényeket képes-e teljesíteni. A vevői igények teljesítésének több feltétele van. A
vállalatnak biztosítani kell a szükséges alapanyagfajta, mennyiség, gyártási kapacitás és
logisztikai szolgáltatások erőforrásainak adott időpontban való rendelkezésre állását.
2.7.3. Termelésprogramozás
A szükséges gyártási kapacitás megfelelő időpontban való rendelkezésre állását a
termelésprogramozás segítségével meghatározhatjuk. Ennek gyorsasága és pontossága
függ a vállalat termékstruktúráját leíró számítógépes adatbázistól, valamint a
termelésprogramozásnál alkalmazott szoftverektől és hardverektől
2.7.4. Alapanyag meghatározása és készletkövetés
A szükséges alapanyagfajta és mennyiség adott időpontra való rendelkezésre állását
a következő vizsgálatok alapján tudjuk eldönteni:
anyagszükséglet meghatározása a megrendelői igény kielégítésre vonatkozóan,
az alapanyag raktárak készlet szintjeinek percre kész követése anyag-fajtánként,
a szükséges alapanyag fajták és mennyiségek meghatározása a vevői igény
kielégítésre,
a szükséges beszállítói kapacitások feltárása és biztosítása az alapanyag-
ellátáshoz.
Az anyagszükséglet meghatározásának gyorsasága és pontossága függ a
termékstruktúrára vonatkozó anyagszükséglet adatbázis meglététől és annak tartalmától,
illetve az alkalmazott anyagszükséglet meghatározó szoftvertől.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
11
Az alapanyagraktárak készletszintjeit percre készen nyilvántartják. Ezek alapján
könnyen meghatározhatók a raktáron lévő, de még nem lekötött anyagmennyiségek, a
raktáron lévő, lekötött anyagmennyiségekből felszabadítható, későbbi időpontra
átütemezhető anyagmennyiségek, továbbá a termelési folyamatba jelenleg lehívott
anyagmennyiségek, amelyekből esetleges átütemezés lehetséges.
2.7.5. Rendelés előkészítés
A megrendelésekre ajánlatokat kell kérni a beszállítóktól. Nem kell ajánlatkérés, ha
stratégiai beszállítóról van szó, mivel ilyen esetben az árura egy hosszabb időszakra
keretszerződés lett megkötve.
Az ajánlatkérést piackutatás előzi meg, melyet a beszállítók körében kell elvégezni.
A kutatás mélysége attól függ, hogy már meglévő anyagot szeretnék rendelni vagy teljesen
új áruról van szó. Ha már meglévőt szeretnénk szállítatni, akkor meg kell nézni, hogy
akitől eddig rendeltünk az megfelelően teljesíti az elvárásokat, vagy felvetődik az a kérdés,
hogy van-e a vállalatnál olyan más beszállító, aki képes a szóban forgó anyagok
beszállítani. Ha még eddig nem rendelt anyagról van szó, akkor először a már meglévő
beszállítói körnél kell érdeklődni, az igény teljesítéséről, és ha ez nem kivitelezhető a
beszállítók szélesebb köréből kell választani.
A beérkező ajánlatok kiértékelésénél a következő szempontokat kell figyelembe
venni: ár, szállítási határidő, minőség, megbízhatóság, a beszállító közelsége, szállításra
ajánlott árufajták száma.
2.7.6. Beszállítás és gyáron belüli anyag elhelyezés
A rendeléseket mindig úgy kell összeállítani, hogy a szükséges anyagok mindig
rendelkezésre álljanak. A beszállítók ütemezése, a szállítási mód és eszköz kiválasztása
nagy odafigyelést igényel, hiszen egy vállalat szempontjából az sem gazdaságos, ha nincs
anyag és az sem, ha sok van belőle a raktárkészleten.
Az áru vállalathoz szállítása során el kell dönteni, hogy az anyag hol kerüljön
lerakodásra és, hogy meg kell-e bontani az egységrakományokat. Ezután a beszállított
anyagot a gyáron belül a megfelelő helyre és egységben kell elhelyezni. Az újonnan
beérkező árut mindenképpen fel kell venni a nyilvántartásba, hogy a készletet ellenőrizve
újabb rendeléseket lehessen kiadni. Végül indulhat a termelés.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
12
2.8. Beszállítók komplex minősítése
A már meglévő és új az beszállítókat a költséghatékonyság miatt értékelni kell. Az
értékelés akkor kezdődik, amikor először megrendelésre kerül egy anyag az adott
beszállítótól. A pontszámok alapján a beszállítók különböző kategóriákba kerülnek:
stratégiai vagy egyedi beszállító. Ha pontszám huzamosabb ideig egy adott szint alatt van,
akkor a vállalatnak érdemes felbontani a szerződést és új beszállító után nézni. Az
értékelés módját a 2.2. ábra mutatja be.
Értékelő kulcs:
2.2. ábra: Beszállítói minősítés
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
13
2.9. Incoterms
Az Incoterms (International Commercial Terms - Nemzetközi Kereskedelmi
Feltételek). A költségek szempontjából igen lényeges. Létrehozásának célja egy egységes
szabályozás megteremtése volt, amely az eladó és a vevő jogait szabályozza a nemzetközi
szállítási szerződésekben, úgynevezett klauzulák formájában. A szokvány nem jogszabály,
ezért csak azáltal lép életbe, hogy a szerződő felek elfogadják. Jelentősége abban áll, hogy
a szerződésekben nem kell részletesen szabályozni a szállítási feltételeket, elég utalni a
megfelelő incoterms klauzulára. A klauzulákat a 2.3.ábra ismerteti.
2.9.1. Klauzulák fajtái a költség átszállása alapján
Ha a költség ugyanott száll át az eladóról a vevőre ahol a kockázat, akkor a klauzula
1 pontos.
Ha a költség és a kockázat átszállása szétválik, akkor a klauzula 2 pontos.
2.9.2. Klauzulák fajtái a fuvarozási mód alapján
Az alkalmazott fuvarozási mód alapján a klauzulák lehetnek tengeri / belvízi
klauzulák vagy multimodális klauzulák. A multimodális klauzulák többféle fuvarozási mód
és különböző összekapcsolódási módok esetén alkalmazott.
2.9.3. Főbb klauzulák
EXW: Ex Works, (gyárból) Az eladó saját telephelyén köteles az árut megfelelően
csomagolva, számlázva a vevő rendelkezésére bocsátani.
FCA: Free Carrier, (költségmentesen a fuvarozónak) Az eladó köteles az árut saját
költségére és kockázatára a vevő által megjelölt fuvarozóhoz eljuttatni és neki
fuvarozás céljára átadni.
FOB: Free On Board, (költségmentesen a hajón) Az eladó köteles az árut saját
költségére és kockázatára az indulási kikötőbe eljuttatni és a hajó fedélzetén a vevő
rendelkezésére bocsátani.
CIF: Cost, Insurance and Freight, (költség, biztosítás és fuvardíj fizetve) Az eladó
köteles az árut saját költségére az érkezési kikötőbe eljuttatni, a kockázat és az áru
feletti tulajdonjog azonban az indulási kikötőben, amikor az áru áthalad a hajó korlátja
felett, átszáll a vevőre.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
14
CIP: Carriage and Insurance Paid To, (fuvarozás, biztosítás fizetve valameddig) Az
eladó köteles az árut saját költségére a rendeltetési helyre eljuttatni. A kockázat az első
fuvarozótól kezdve a vevőt terheli.
DAF: Delivered at Frontier, (határra szállítva) Az eladó köteles az árut saját költségére
és kockázatára a szerződésben megjelölt határig eljuttatni és a vámhatár előtt a vevő
rendelkezésére bocsátani. A vámmal kapcsolatos költségek a vevőt terhelik.
DEQ: Delivered Ex Quay, (leszállítva rakparton történő átadással) Az eladó köteles az
árut saját költségére és kockázatára az érkezési kikötőbe eljuttatni és a kikötő
rakpartján a vevő rendelkezésére bocsátani. A vámkezeléssel kapcsolatos költségek és
terhek a vevőt terhelik.
DDU: Delivered Duty Unpaid, (leszállítva vámfizetés nélkül) Az eladó köteles az árut
saját költségére és kockázatára a szerződésben megjelölt rendeltetési helyre eljuttatni.
Minden költséget és kockázatot köteles viselni, a vám kivételével.
DDP: Delivered Duty Paid, (leszállítva vámfizetéssel) Az eladó köteles az árut saját
költségére és kockázatára a rendeltetési helyre eljuttatni, minden költséget és
kockázatot viselni, beleértve a vámot is.
2.3. ábra: Incoterms klauzulák
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
15
3. Adatbázis alapok
3.1. Fogalmak
Adatbázis (Database, DB): Egy olyan integrált adatszerkezet, mely több különböző
objektum előfordulási adatait adatmodell szerint szervezetten perzisztens
módon tárolja olyan segédinformációkkal, úgynevezett metaadatokkal együtt,
melyek a hatékonyság, integritásőrzés, adatvédelem biztosítását szolgálják.
Adatbázis kezelő rendszer (Database Management System, DBMS): Az a program, mely
az adatbázishoz történő mindennemű hozzáférés kezelésére
szolgál. Feladata még az adatbázis belső karbantartási
funkcióinak végrehajtása.
Adatbázis rendszer (Database System, DBS): Az adatbázis, az adatbázis kezelő rendszer,
valamint az alkalmazói és segédprogramok együttese.
3.2. Adatmodell
Azokat a modelleket, amelyek az adatok struktúrájának (szerkezetének) leírására
alkalmasak, adatmodelleknek nevezzük. Nem a konkrét adatokkal, hanem azok típusaival
illetve a közöttük lévő kapcsolatokkal foglalkozik. Vagyis a valós világ objektumainak
csak a feladat megoldása szempontjából fontos jellemzőit emeljük ki és szerepeltetjük az
adatmodellünkben. Adatmodell egy eszközrendszer, amellyel leírható a valóság. Több
absztrakciós szinten is létezik. Az adatmodellnek a valóság teljes értékű megadásához az
alábbi komponenseket kell tartalmaznia:
Strukturális rész: az adattípusok és kapcsolatok megadására. (Statikus)
Pl.: rendszerelemek, kapcsolatok feltérképezése.
Műveleti rész: különböző módosítási vagy lekérdezési tevékenység elvégzésére.
(Dinamikus)
Integritási rész: az adatbázis belső törvényszerűségeinek betartására ad
szabályokat. Konzisztens legyen az adatbázis! Pl.: nem lehet negatív életkor.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
16
Az adatmodelleket 2 fő részre osztjuk: szemantikai adatmodellre és adatbázis
adatmodellre. A szemantikai adatmodell inkább csak a lényeget emeli ki. Ilyen például az
ER, az EER, az UML, stb. Az adatbázis adatmodell megadja a részleteket is. Ilyen például
a hálós, a relációs, a hierarchikus, stb..
A későbbiekben az ER modellt és a relációs adatmodellt fogom használni, ezért
ezeket nézzük meg részletesebben.
3.2.1. ER adatmodell
Egyed kapcsolat modell, más néven ER (Entity Relationship) modell. Csak
strukturális részt és elemi statikus integritási részt tartalmaz, továbbá egyszerű grafikus
jelölésrendszert is. Nem teljes adatmodell, de egyszerűsége révén elterjedt, és ma is széles
körben használatos tervezési segédeszköz a relációs adatbázisok tervezéséhez.
3 fő komponense van: az egyed, a kapcsolat és a tulajdonságok.
Egyed: egy objektumtípus, egy a külvilág többi részétől egyértelműen megkülönböztetett
dolog. Jellemzői, hogy önálló léttel bír és azt mutatja, amiről az információkat
tárolni kívánjuk.
Típusai: • normál: önmagában azonosítható. (3.1. ábra)
gyenge: más egyedhez való kapcsolatán keresztül azonosított. (3.2. ábra)
3.1. ábra: Normál egyed 3.2. ábra: Gyenge egyed
Kapcsolat: az egyedek között fennálló ideiglenes vagy tartós asszociáció. AZ ER
modellben csak az elsődleges kapcsolatokat adjuk meg.
Kötelező jelleg szerinti típusok:
opcionális: létezhet olyan egyed-előfordulás, melyhez nem kapcsolódik más egyed-
előfordulás a kapcsolatban. (3.3. ábra)
kötelező: minden egyed-előforduláshoz kell kapcsolódnia más egyed-
előfordulásnak a kapcsolatban. (3.4. ábra)
3.3. ábra: Opcionális kapcsolat 3.4. ábra: Kötelező kapcsolat
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
17
Számosság jelleg szerinti típusok:
1:1 (egy - az - egyhez): egy egyed-előforduláshoz maximum egy másik egyed
társul a kapcsolatban, mindkét viszonylatban. (3.5. ábra)
1:N (egy - a - többhöz): egy egyed-előforduláshoz több más egyed társulhat, de a
másik irányban csak egy kapcsolódó egyed-előfordulás létezhet. (3.6. ábra)
M:N (több - a - többhöz): mindkét irányban több kapcsolódó előfordulás létezhet.
(3.7. ábra)
3.5. ábra: 1:1 kapcsolat 3.6. ábra: 1:N kapcsolat 3.7. ábra: N:M kapcsolat
Tulajdonság: az egyedeket, kapcsolatokat jellemző mennyiség, a letárolandó
információelemeket tartalmazza.
Típusai:
Normál: a tulajdonság egy értékkel rendelkezik. (3.8. ábra)
Kulcs: a tulajdonságnak egyedinek kell lennie és pontosan meg kell határoznia a
tábla rekordjait. (3.8. ábra)
Többértékű: az egyed-előforduláshoz köthetően több értéke is lehet az adott
tulajdonságnak. (3.8. ábra)
Származtatott: olyan tulajdonság, amelynek értéke más tulajdonságokból
határozható meg. (3.9. ábra)
Összetett: a tulajdonság több tulajdonságokból tevődik össze. (3.9. ábra)
3.8. ábra: Normál (baloldali), kulcs (középső), többértékű (jobb oldali)
3.9. ábra: Származtatott és összetett
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
18
3.2.2. Relációs adatmodell
A relációs adatmodell legfontosabb eleme a matematikai reláció fogalma. Mint
minden adatmodell, ez is egyrészt definiálja azokat a jellemző adatszerkezeteket,
amelyeken dolgozik, illetve azokat a műveleteket, amelyek rajta értelmezettek. Fontos
kiemelni, hogy a relációs adatmodell a logikai adatbázis (vagy fogalmi adatbázis) kereteit
határozza meg. Nem foglalkozik azzal a problémával, hogy az adatokat ténylegesen
hogyan kell tárolni a háttértáron, hogyan kell módosítani és a memóriába betölteni a
felhasználó által igényelt adatokat.
Az adatokat táblázatokban tárolják. A táblázatot itt relációnak hívjuk.
o A táblázat oszlopára azt mondjuk, hogy mező.
o A táblázat egy sora a rekord.
A táblázatban szereplő rekordok azonos szerkezetűek, vagyis típusuk azonos! Ez
azt jelenti, hogy minden rekordban, ugyanabban a mezőben ugyanolyan típusú
adatoknak kell lenniük.
A táblázatban nem fontos a mezők sorrendje.
A táblázat nem lehet két azonos adatokkal feltöltött sora.
A táblázat rekordjainak sorrendje tetszőleges lehet.
3.3. Adatbázis létrehozás lépései
Követelmény analízis, feladat specifikáció
DBMS kiválasztása
Adatmodellezés:
o Szemantikai adatmodell elkészítése
o A szemantikai adatmodell konverziója a megfelelő adatbázis adatmodellre.
o Normalizálás
o Az adatbázisban tárolt adatok típusának, integritási feltételeinek
meghatározása.
Kódolás, implementálás
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
19
3.4. Az adatbázis szerkezete
Tábla: a logikailag összetartozó adatokat foglalja össze. A tábla oszlopokból és
sorokból áll, amelyeket mezőknek, illetve rekordoknak nevezünk.
Rekord: az adatbázis egy sora. Egy rekordban tároljuk az egymással összefüggő
adatokat.
Mező: az adatbázis egy oszlopa, amelyben az egyedek tulajdonságértékeit tároljuk.
Elemi adatok: a tábla celláiban szereplő értékek, amelyek az egyed konkrét
tulajdonságai.
Egyed (entitás): az, amit le akarunk írni, amelynek az adatait tároljuk és gyűjtjük az
adatbázisban.
Attribútum (tulajdonság): az egyed valamely jellemzője. Az egyed az attribútumok
összességével jellemezhető.
Egyedtípus: az egyedre vonatkozóan megadott tulajdonságok összessége.
Egyed-előfordulás: az egyedre vonatkozóan megadott konkrét tulajdonságok.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
20
4. Használt nyelvek, alkalmazások ismertetése
4.1. JDBC
A JDBC (Java Database Connectivity) programozói felület (API - Application
Programming Interface) a Java programozási nyelvhez, vagyis Java osztályok, metódusok
és interfészek halmaza. A relációs adatbázishoz biztosítanak alacsonyszintű hozzáférést:
kapcsolódást; SQL utasítások végrehajtását; SQL lekérdezések eredményeinek
feldolgozását.
Az SQL parancsok végrehajtása különböző interfészeken keresztül valósul meg.
Ilyen interfész például: Statement, PreparedStatement és a CallableStatement. A Statement
egyszerű SQL parancsokhoz (statikus), a PreparedStatement a bemenő paraméterekkel
rendelkező SQL parancsokhoz (kvázi-statikus, dinamikus), és a CallableStatement a
kimenő és/vagy bemenő paraméterekkel rendelkező SQL parancsokhoz és tárolt
eljárásokhoz szükséges. Az interfészeket saját meghajtói implementálják. A meghajtóknak
a Java működésének megfelelően elegendő futási időben rendelkezésre állniuk, ezáltal a
programfejlesztőnek lehetősége van a Java alkalmazást az adatbáziskezelő-rendszertől
függetlenül elkészíteni.
A JDBC meghajtók menedzselését DriverManager osztály végzi. Azon okból
kifolyóan, hogy egyszerre több adatbázishoz is kapcsolódhassunk, létezik egy lista,
melyben a regisztrált meghatók vannak eltárolva. Ebből a listából a DriverManager
automatikusan kiválasztja az adott adatbázishoz megfelelő meghajtót, levéve ezt a terhet a
vállukról. A JDBC meghajtó betöltődésekor automatikusan regisztrálja magát ebbe a
listába, oly módon, hogy minden meghajtónak van egy statikus inicializátora, melyben a
DriverManager osztály registerDriver statikus metódusát meghívja. Meghajtót betölteni
kétféleképpen lehet, vagy név szerint hivatkozunk rá és a Class.forName statikus
metódussal töltjük be, vagy pedig a jdbc.drivers rendszerparaméterben felsoroljuk –
kettősponttal elválasztva – és a DriverManager tölti be őket az inicializáció során. Applet-
ek esetén az utóbbi megoldás nem használható, mert azok nem állíthatnak be
rendszerparamétereket.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
21
4.2. SQL nyelv
Az SQL (Structured Query Language) egy strukturált lekérdezőnyelv, mely a
relációs adatbázis kezelő rendszerek (RDBMS - Relational Database Management System)
(ilyen például az Oracle) szabvány adatkezelő nyelve. Segítségével hozzáférhetünk az
adatbázisban tárolt adatokhoz, metaadatokhoz, és különböző műveleteket hajthatunk végre
(pl.: lekérdezés, bővítés, módosítás) rajtuk. Az SQL segítségével az adatok kezelése
rugalmasan történik, de mégsem tekintjük valódi programozási nyelvnek. Oka, hogy az
SQL nyelv nem tartalmaz vezérlési elemeket, illetve olyan utasításokat, amelyekkel a nem-
adatbázis felé történő adatforgalom szabályozható, hiszen csak egy meghatározott
tevékenységi kört fed le. Ennek következtében önmagában nem használható alkalmazások
készítéséhez. Az SQL jelen van alkalmazásokban, amikor az RDBMS-t kell megszólítani,
de az egyéb vezérlési elem, adatforgalom, ideiglenes változók kezelésénél már nem
használható, így ezen feladatok elvégzésére más megoldást kell keresni.
Az SQL nyelvi elemeket négy részre oszthatjuk:
DDL - Data Definition Language, vagyis adatdefiníciós nyelv;
Utasítások: - CREATE (készítés);
- ALTER (módosítás);
- DROP (eldobás).
DML - Data Manipulation Language, vagyis adatkezelési nyelv;
Utasítások: - INSERT (feltöltés);
- UPDATE (frissítés);
- DELETE (törlés).
DQL - Data Query Lanhuage, vagyis adatlekérdező nyelv;
Utasítás: - SELECT (lekérdezés).
DCL – Data Control Language, vagyis adatvezérlő nyelv;
Utasítások: - GRANT (jogosultság adás);
- REVOKE (jogosultság elvétel);
- COMMIT (tranzakció elfogadás);
- ROLLBACK (tranzakció visszagörgetés);
- SAVEPOINT (tranzakció mentési pont);
- LOCK (zárolás);
- UNLOCK (felszabadítás).
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
22
4.3. PL/SQL nyelv
Az előzőekben megismert SQL nyelv egyik legfontosabb jellemzője, hogy nem
tartalmaz procedurális elemeket. Ennek következtében nem lehet csak SQL utasításokra
építve komplett alkalmazásokat készíteni, hiszen nem tartalmaz elágazási, ciklus vezérlési
vagy éppen terminál felület működését leíró nyelvi elemeket. Ezért az SQL nem tekinthető
egy alkalmazásfejlesztő nyelvnek. Az SQL kizárólagos célja az adatbázissal történő
adatforgalom biztosítása. Ebből még az is következik, hogy az alkalmazások készítéséhez
egy más jellegű procedurális nyelvre van szükség.
Ezt az elvárást elégíti ki a PL/SQL nyelv, amely az Oracle SQL „kibővítése”. A
„kibővítés” szóhasználat nem tökéletes, mivel a PL/SQL nem tartalmazza az SQL teljes
utasításkészletét, például hiányoznak belőle az adatdefiníciós és a védelmet szabályozó
utasítások. Azon utasításokat foglalja magában, melyek az adatkezelő eljárások során
nagyobb szereppel rendelkeznek. Így lehetőség van az SQL adatkezelő utasításainak, a
kurzor szerkezetnek és a tranzakció kezelő utasításoknak a használatára.
Tartalmazza az alapvető vezérlési elemeket is, így a WHILE ciklust és az IF
elágazást is. Lehetőséget nyújt a memóriaváltozók készítésére, melyekkel közbenső
számítási eredmények tárolhatók. Erős a nyelvhez kapcsolódó hibakezelési komponens, s a
rugalmas és hatékony programfejlesztést számos függvény segíti.
A PL/SQL eljárások feldolgozása programegységekben, úgynevezett blokkokban
történik. A blokk általános felépítése:
DECLARE
- deklarációs rész (a blokk saját, lokális változóit, memória változói)
BEGIN
- műveleti rész (kötelező rész, SQL és procedurális utasítások)
EXCEPTION
- hibakezelő rész (felmerülő hibákra való válaszok definiálása)
END;
A blokkok deklarálásánál hiányzik a blokk azonosítója. A PL/SQL-ben nincs
felhasználó által adott egyedi neve a blokkoknak, így a blokkok önmagukban nem
hívhatók meg más blokkokból. A blokkok ritkán használatosak önmagukban, mindig
valamilyen más típusú objektumok (pl. tárolt eljárások, triggerek) részeként jelenik meg,
melyeknek van egyedi azonosító neve, így a befoglaló objektumokon keresztül tudunk a
blokkokra hivatkozni.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
23
5. A program ismertetése
5.1. Általános leírás
A termelési folyamat egyik legfontosabb alap pillére a készlet beszerzése, mivel
ezen művelet nem megfelelő teljesítése vonzhat magával gyártás leállást és költség
kiesését. Ahhoz, hogy az alkatrész utánpótlás gyors és egyszerű legyen, célszerű az
adatokat adatbázisban tárolni, és ezt kezelő rendszert alkalmazni. Segítségükkel a rengeteg
papírmunka elhanyagolható, illetve használatával könnyedén rákereshetünk egy-egy
termékre vagy megnézhetjük, hogy az egyes anyagból mennyi van készleten.
A rendszer melyet elkészítek egy LED TV gyártásának a készlet beszerzését
reprezentálja, az optimális beszállítótól. (A programban csak 1 féle termék alkatrészeinek a
megrendelésre van lehetőség.) Megmutatja, hogy az alkatrész megrendelésénél, milyen fő
szempontokat kell figyelembe venni, attól függően, hogy melyik beszállítótól vásároljuk
meg a terméket, változik a megrendelt anyag költsége. A beszállítók egymástól eltérő áron
adják az általuk legyártott alkatrészeket, és más a szállítási költségük és idejük is, hiszen
nem mindegy, hogy belföldről vagy külföldről történik a küldés. Ezeket a tényezőket mind
össze kell hangolni, és lehetőleg a legmegfelelőbbet kiválasztani, a különböző lehetőségek
közül.
A gyártásnál lényeges, hogy a kívánt készlet mindig elérhető legyen, ezért kell nagy
figyelmet szentelni az anyag beérkezésének megfelelő ütemezésére. Érdemes egyféle
alkatrészt több beszállítótól beszerezni, így gördülékeny és folyamatos lesz az áru
beérkeztetése. Pl.: Egy külföldi beszállító cég terméke olcsó, de a szállítási idő és költség
sok. Egy belföldi beszállító alkatrésze viszont drágább, de kevesebb idő alatt és olcsón
biztosítja termékét a beszerzőnek. Ilyen esetekben az összköltség lehet, hogy mindkettőnél
azonos, így az idő lesz a döntő tényező.
Nézzünk rá egy példát! Tegyük fel, hogy az adott alkatrészre október 10.-én és 11.-
én van szükség, de egy beszállító nem tudja ezt a mennyiséget garantálni. A belföldi
szállítási ideje 2 nap, a külföldié 5 nap. Október 10.-ére megrendelem a hazai szállítótól
10.08.-án és október 11.-ére a külfölditől rendelek 10.06.-án. Ezt a folyamatot nevezik
termeléstervezésnek, mikor tudni, hogy mely anyagra mikor van szükség, és ez által mikor
kell megrendelést rá kiadni.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
24
Összegezve: Az előzőekben láttuk, hogy érdemes több beszállítót is alkalmazni,
mivel eltérő az anyag – és szállítási költségük; a szállítási idejük; a kapacitásuk. Az
elkészülő rendszer, ezeket a szempontokat biztosítja, és lehetőséget ad a beszerzőnek, hogy
a számára szükségeset tudja kiválasztani.
5.2. Követelmények és rendszer leírás
A szerver gép, amin az adatbázis fut a saját számítógépem lesz. A szerver gépre
szükséges egy Oracle Database 11g Express Edition adatbázis kezelő rendszer, valamint
Java virtuális gép. Az alkalmazás működéséhez szükséges a stabil szélessávú
internetkapcsolat, és egy dedikált IP cím, amin keresztül kívülről is el lehet érni az
adatbázist.
A program NetBeans IDE 7.3 verziójú fejlesztő környezetben készült, melyben
JDBC segítségével megteremtem az elkészített adatbázishoz a hozzáférést. Az adatbázis
Oracle SQL nyelven lett megírva, és a tökéletesítéshez különböző PL/SQL nyelvi
eszközöket használtam, mint például eljárásokat/függvényeket, triggereket, jobokat és
kurzorokat. A működéshez JDK 1.7 –es java-t és ojdbc 6 –os Oracle drivert használtam.
A felhasználónak csak az a dolga, hogy az alkalmazást feltegye gépére, és elindítsa.
Nem igényel semmilyen fejlesztői környezetet. Fontos, hogy a felhasználónak legyen
működőképes internetkapcsolata, mert anélkül nem éri el az adatbázis elemeit. (A program
elindításának útvonala: …\Forraskod\Rendelés_készítés\dist\Rendeles_keszites.jar)
5.3. Adatbázis leírása
SQL nyelv segítségével felépítek egy adatbázist (táblák elkészítése, lekérdezése,
módosítása), melyben előre megadom, hogy a gyártáshoz milyen alkatrészekre van
szükség, s ezeket melyik beszállító cég tudja biztosítani, hány nap alatt érkezik meg, illetve
milyen áron, módon, paritással, kiszerelésben és kapacitásban szerezhető be.
Megrendelhető alkatrészek: előlap (A1), hátlap (A2), talp (A3), kijelző (B2),
hangszóró (C1), panel (B3), csavar (B1), PC (C3) és RGB LED szalag (C2).
Természetesen egy LED TV nem csak ennyi és nem pont ilyen anyagokból tevődik össze.
Az általam használt adatok, beszállítók kitaláltak. Beszállító cégek: Műanyag Kft;
Hangzásért Zrt.; Kép a képben Zrt.; Infotech Kft.; Látványkép Zrt.; Csavarog Zrt. és Műalk
Zrt.. Nyilvánvalóan mód van új alkatrész, beszállító és kapcsolat felvételére is.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
25
A felhasználónak a feladata, hogy a rendeléseket kiadja a kívánt alkatrészre, ezáltal
a Rendelés tábla sorait folyamatosan tölti fel. Ezek már bonyolultabb utasításokat
igényelnek, így PL/SQL nyelvi eszközöket (trigger, job, kurzor, eljárás készítés) használok
megvalósításukra. Minden kiadott rendelés más és más azonosítót (R_ID) kap, melyet a
rendszer automatikusan generál, az aktuális dátummal együtt. Majd megadja, hogy mit
szeretne megrendelni, hány darabot és kitől. Az egyes beszállítóknak eltérő a szállítási
ideje (Becsult_ido), így a raktárkészlet folyamatos feltöltését úgy oldottam meg, hogy
a szállítási időt (Becsult_ido) felszoroztam 10 perccel. Ennek oka, hogy 1-20 napig
állítottam be az értékeket és, ha ez tényleg nap lenne, nem lehetne megfigyelni a rendszer
helyes működését.
A gyártást is szerettem volna valahogy szimulálni, így gondoskodtam a raktári
készlet folyamatos csökkenéséről. Ezt a folyamatot Job utasítás segítségével oldottam meg,
így 40 percenként egy véletlenszerűen kiválasztott alkatrészből csökkentek. A csökkentés
az adott anyag 10%-a, mely csökkenési értéke belekerül a Napló táblába is, mint készlet
levonás.
A Napló tábla, nem csak a készletből való levonást jegyzi fel, hanem mindenfajta
anyagmozgást. A rendelések felvételénél eltárolja, hogy rendelés lett kiadva egy
alkatrészre, és azt is rögzíti, amikor megérkezik a rendelt szállítmány. A három
anyagmozgatási folyamatot eltérő módon jelöltem, így a felhasználó rögtön látja, hogy az
alkatrész mikor csökken vagy növekszik.
5.4. Használt adatmodellek
Az átláthatóság érdekében a már korábban említett adatmodellek közül az ER
modellt és a Relációs adatmodellt találtam a legszemléletesebbnek, így ezt a két
modelltípust használtam. Segítségükkel könnyedén áttekinthető a rendszer felépítése és
összetétele, illetve a táblák közötti kapcsolatok is jól megfigyelhetőek segítségükkel. (Az
elkészített modelleket az 5.1. ábra és az 5.2. ábra ismerteti.)
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
26
5.4.1. ER modell
5.1. ábra: ER modell
5.4.2. Relációs modell
5.2. ábra: Relációs modell
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
27
6. Táblák felépítése
6.1. Beszállító tábla létrehozása
CREATE TABLE Beszallito (Nev CHAR(30) PRIMARY KEY,
Orszag CHAR(30),
Varos CHAR(30),
Mod CHAR(10),
Incoterms CHAR(10),
Becsult_ido NUMBER(3),
Koltseg NUMBER(6),
Telefon CHAR(11));
Beszállító tábla leírása
A tábla a különböző Beszállítókról tartalmaz alap információkat.
- Nev: a beszállító cég neve, a tábla kulcsa.
- Orszag: az ország neve, ahol a beszállító van.
- Varos: a város neve, ahol a beszállító van.
- Mod: a szállítás módja. (vízi, légi vagy kamionos).
- Incoterms: a megkötött incoterms klauzula.
- Becsult_ido: a szállítás becsült ideje, napban megadva.
- Koltseg: a szállítás költsége, Ft-ban. (Nem tartalmazza az alkatrész árát!)
- Telefon: a beszállító elérhetősége.
6.2. Alkatrész tábla létrehozása
CREATE TABLE Alkatresz (Alk_kod CHAR(2) PRIMARY KEY,
Megnev CHAR(30));
Alkatrész tábla leírása
A tábla a különböző Alkatrészekről tartalmaz alap információkat.
- Alk_kod: az alkatrész azonosító kódja, a tábla kulcsa. (1betű+1szám, a betű:
nagybetű A-Z-ig, a szám: 1-9-ig. Pl.: A1)
- Megnev: az alkatrész megnevezése.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
28
6.3. Beszállító-Alkatrész tábla létrehozása
CREATE TABLE Besz_Alk (Alk_kod CHAR(2) REFERENCES Alkatresz,
Beszallito CHAR(30) REFERENCES Beszallito,
Db_ar NUMBER(6),
Kiszereles NUMBER(6),
Min NUMBER(6),
Max NUMBER(6),
Osszkoltseg NUMBER(8),
E_ar NUMBER(6),
Azon NUMBER(3),
PRIMARY KEY (Alk_kod,Beszallito));
Beszállító-Alkatrész tábla leírása
A tábla arra szolgál, hogy a rendszerben felvett Alkatrészeket és Beszállítókat
összekapcsolja, és újabb információkat szolgáltasson róluk.
- Alk_kod: Az alkatrész kódja, csak olyan kód vehető fel, mely már az
Alkatrész táblában szerepel. Elsődleges és idegenkulcs, a táblák
összekapcsolásához kell.
- Beszallito: A beszállító neve, csak olyan név vehető fel, mely már a
Beszállító táblában szerepel. Elsődleges és idegenkulcs, a táblák
összekapcsolásához kell.
- Db_ar: az alkatrész darab ára, Ft-ban.
- Kiszereles: az alkatrész kiszerelése, db-ban.
- Min: minimum mennyit lehet rendelni az alkatrészből, db-ban.
- Max: maximum mennyit lehet rendelni az alkatrészből, db-ban
- Osszkoltseg: a minimális összköltség a termék megrendelésénél.
Összköltség = Minimum rendelhetőség * Darab ár + Szállítási költség.
- E_ar: az alkatrész egység ára, Ft-ban.
- Azon: sorazonosító, a sorok azonosításához kell.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
29
6.4. Raktár tábla létrehozása
CREATE TABLE Raktar (RAlk_kod CHAR(2) PRIMARY KEY,
Keszlet NUMBER(8));
Raktár tábla leírása
A tábla a Raktár készletről tartalmaz alap információkat.
- RAlk_kod: a raktárban eltárolt alkatrész azonosítója, a tábla kulcsa.
(1betű+1szám, a betű: nagybetű A-Z-ig, a szám: 1-9-ig. Pl.: A1)
- Keszlet: a raktáron lévő készlet, db-ban megadva.
6.5. Rendelés tábla létrehozása
CREATE TABLE Rendeles (R_ID NUMBER(5) PRIMARY KEY,
Datum DATE,
Alk_kod CHAR(2),
Db NUMBER(6),
Beszallito CHAR(30),
Fiz_ossz NUMBER(8),
FOREIGN KEY (Alk_kod, Beszallito)
REFERENCES Besz_alk (Alk_kod,
Beszallito));
Rendelés tábla leírása
A tábla arra szolgál, hogy rendeléseket lehessen készíteni. Ennek módja, hogy csak
olyan rendelések adhatóak ki, melyek kompatibilisek a Besz_alk tábla soraival.
- R_ID: a rendelés azonosítója, a tábla kulcsa.
- Datum: a rendelés kiadásának dátuma, mely a rendszer dátumára van
beállítva.
- Alk_kod: Az alkatrész kódja, csak olyan kód vehető fel, mely már az
Besz_Alk táblában szerepel. Idegenkulcs, a táblák
összekapcsolásához kell.
- Db: a rendelt alkatrész darabszáma.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
30
- Beszallito: Az beszállító neve, csak olyan név vehető fel, mely már az
Besz_Alk táblában szerepel. Idegenkulcs, a táblák
összekapcsolásához kell.
- Fiz_ossz: A megrendelés költsége. Fizetési összeg = Darab szám * Darab
ár + Szállítási költség.
6.6. Napló tábla létrehozása
CREATE TABLE Naplo (Kod CHAR(2),
D DATE,
Db NUMBER(6),
M VARCHAR2(30),
Mozgas CHAR(1));
Napló tábla leírása
A tábla naplózza a készlet mozgatását. Segítségével nyomon lehet követni, hogy
mikor történt rendelés kiadás, rendelés megérkezés és készlet levonás.
- Kod: az alkatrész kódja.
- D: a készletmozgás dátuma, melyet a rendszer dátumára állítottam be.
- Db: a mozgatott darabszám.
- M: a készlet mozgatását jelölő megjegyzés. (Készlet növelés, Rendelés kiadás,
Készlet levonás)
- Mozgas: a készlet mozgatásának jelölése. (+, ,-)
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
31
7. Táblaműveletek
7.1. Elméleti ismertetés
- Csomag (package): A csomag olyan, magas szintű adatabsztrakciós eszköz, mellyel
az összetartozó változókat, konstansokat és alprogramokat írhatjuk le, és
egy egységként kezelhetjük. A csomagban lehetnek eljárások, függvények,
típus definíciók, változó deklarációk, konstansok, kivételek, kurzorok. A
csomag két fő részből áll: a specifikációs részből és a törzsből (body). A
specifikáció a csomag nyilvános része. A csomag kívülről elérhető elemeit
adja meg, melyeken keresztül a felhasználók a csomag objektumaira
hivatkozhatnak. A törzs a csomag privát része, melynek elemei a
felhasználók számára nem hozzáférhetők. A csomag specifikációban
megadott eljárások és függvények teljes definícióit tartalmazza (fejléccel és
törzzsel együtt). Tartalmazhat még típusdefiníciókat, konstans, változó és
kurzor deklarációkat is.
- Tárolt eljárás: Lényege, hogy az adatkezeléshez kapcsolódó több helyen alkalmazott
eljárásokat, függvényeket elhelyezhetjük az adatbázisban. Előnye,
hogy csak egy helyen szükséges a kódot nyilvántartani, de többen is
hozzáférhetnek. Ez a módosításukat is megkönnyíti, hiszen csak egy
helyen kell elvégezni. A tárolt eljárások alkalmazása esetén gyorsabb
lesz a végrehajtás is, mivel elő-feldolgozott formában tárolódik a
művelet, másrészt felesleges részek nem ismétlődnek a memóriában a
konkurens felhasználások során.
- Job (munkaköteg): a feladatok ütemezésére használható. Végrehajtásukról egy
folyamatosan a háttérben futó folyamat (SNP) gondoskodik. A munkakötegek
egy várakozó sorban foglalnak helyet, minden Job-hoz hozzá van rendelve a
következő futtatási idő. Az SNP megadott gyakorisággal felébred és megnézi,
van-e alvó munkaköteg. Ha van, akkor elindítja. A lefutott Job-oknál az SNP
meghatározza a következő futás időpontját. Így egy új munkaköteg kerül be a
várakozó sorba.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
32
- Trigger: Bizonyos tevékenységek a felhasználó közvetlen beavatkozása nélkül
végrehajtódnak. A trigger dinamikus integritási feltételt jelent, amelyben
adott egy kiváltó esemény és egy választevékenység. Működése egyszerű,
ha a kiváltó esemény bekövetkezik, akkor végrehajtódik a
választevékenység.
7.2. Csomagok
7.2.1. Alkatrész táblához tartozó csomag
Alkatresz_csomag: A csomag tartalmazza a tábla feltöltését.
feltolt: az eljárás beszúr egy rekordot az Alkatrész táblába.
Alkatresz_csomag létrehozása:
CREATE OR REPLACE PACKAGE Alkatresz_csomag AS
PROCEDURE feltolt (kod IN Alkatresz.alk_kod%TYPE, nev IN
Alkatresz.megnev%TYPE);
END Alkatresz_csomag;
Alkatresz_csomag törzse:
CREATE OR REPLACE PACKAGE BODY Alkatresz_csomag AS
PROCEDURE feltolt (kod IN Alkatresz.alk_kod%TYPE, nev IN
Alkatresz.megnev%TYPE) AS
BEGIN
INSERT INTO Alkatresz VALUES (kod,nev);
END;
END Alkatresz_csomag;
7.2.2. Beszállító táblához tartozó csomag
Beszallito_csomag: A csomag tartalmazza a tábla feltöltését, a incoterms és
költség módosítását, illetve a szállítási idő és mód módosítását.
feltolt: az eljárás beszúr egy rekordot a Beszállító táblába.
modosit_ik: a beszállító neve alapján, módosítja a Beszállító táblában az incoterms és a
költség értéket.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
33
modosit_ido: a beszállító neve alapján, módosítja a Beszállító táblában az idő és a mód
értéket.
Beszallito_csomag létrehozása:
CREATE OR REPLACE PACKAGE Beszallito_csomag AS
PROCEDURE feltolt (n IN Beszallito.nev%TYPE, o IN
Beszallito.orszag%TYPE, v IN
Beszallito.varos%TYPE, m IN
Beszallito.mod%TYPE, inc IN
Beszallito.incoterms%TYPE, bi IN
Beszallito.becsult_ido%TYPE, k IN
Beszallito.koltseg%TYPE, t IN
Beszallito.telefon%TYPE);
PROCEDURE modosit_ik (n IN Beszallito.nev%TYPE, inc IN
Beszallito.incoterms%TYPE, k IN
Beszallito.koltseg%TYPE);
PROCEDURE modosit_ido (n IN Beszallito.nev%TYPE, m IN
Beszallito.mod%TYPE, bi IN
Beszallito.becsult_ido%TYPE);
END Beszallito_csomag;
Beszallito_csomag törzse:
CREATE OR REPLACE PACKAGE BODY Beszallito_csomag AS
PROCEDURE feltolt (n IN Beszallito.nev%TYPE, o IN
Beszallito.orszag%TYPE, v IN
Beszallito.varos%TYPE, m IN
Beszallito.mod%TYPE, inc IN
Beszallito.incoterms%TYPE, bi IN
Beszallito.becsult_ido%TYPE, k IN
Beszallito.koltseg%TYPE, t IN
Beszallito.telefon%TYPE) AS
BEGIN
INSERT INTO Beszallito VALUES (n,o,v,m,inc,bi,k,t);
END;
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
34
PROCEDURE modosit_ik (n IN Beszallito.nev%TYPE, inc IN
Beszallito.incoterms%TYPE, k IN
Beszallito.koltseg%TYPE) AS
BEGIN
UPDATE Beszallito SET Incoterms=inc, Koltseg=k WHERE
nev=n;
END;
PROCEDURE modosit_ido (n IN Beszallito.nev%TYPE, m IN
Beszallito.mod%TYPE, bi IN
Beszallito.becsult_ido%TYPE) AS
BEGIN
UPDATE Beszallito SET Mod=m, Becsult_ido=bi WHERE
nev=n;
END;
END Beszallito_csomag;
7.2.3. Besz_Alk táblához tartozó csomag
Besz_alk_csomag: A csomag tartalmazza a tábla feltöltését és darab ár
módosítását.
feltolt: az eljárás beszúr egy rekordot a Besz_alk táblába. Az azon mező
automatikusan kitöltődik. Minden feltöltéskor lekérdezi a maximum azon
értéket, és megnöveli egyel. Az e_ar és osszkoltseg mezőket a rendszer
számolja ki. Az egység ár = darab ár * kiszerelés. Az összköltség = minimum
rendelhetőség * darab ár + szállítási költség. A rendszer ellenőrzi, hogy a
minimum érték magadása után a maximum értéke ne legyen kisebb, ellenkező
esetben a kivétel dobódik.
modosit_ar: az alkatrész kódja és a beszállító neve alapján, módosítja a Besz_alk
táblában az darab ár értékét. A rendszer megkeresi a megadott érték párhoz
tartozó azonosítót, ha nem talál ilyet, akkor kivétel dobódik. Ha talál
azonosítót, akkor módosítja a darab árat, illetve az egység árat (egység ár =
új darab ár * kiszerelés).
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
35
Besz_alk_csomag létrehozása:
CREATE OR REPLACE PACKAGE Besz_alk_csomag AS
PROCEDURE feltolt (kod IN Besz_alk.alk_kod%TYPE, besz IN
Besz_alk.beszallito%TYPE, d IN
Besz_alk.db_ar%TYPE, k IN
Besz_alk.kiszereles%TYPE, mi IN
Besz_alk.min%TYPE, ma IN Besz_alk.max%TYPE);
PROCEDURE modosit_ar (kod IN Besz_alk.alk_kod%TYPE, besz IN
Besz_alk.beszallito%TYPE, d IN
Besz_alk.db_ar%TYPE);
END Besz_alk_csomag;
Besz_alk_csomag törzse:
CREATE OR REPLACE PACKAGE BODY Besz_alk_csomag AS
PROCEDURE feltolt (kod IN Besz_alk.alk_kod%TYPE, besz IN
Besz_alk.beszallito%TYPE, d IN
Besz_alk.db_ar%TYPE, k IN
Besz_alk.kiszereles%TYPE, mi IN
Besz_alk.min%TYPE, ma IN Besz_alk.max%TYPE)
AS
bk Beszallito.koltseg%TYPE;
id besz_alk.azon%TYPE;
rossz exception;
BEGIN
SELECT koltseg INTO bk FROM Beszallito WHERE nev=besz;
SELECT max(azon) INTO id FROM Besz_alk;
IF ma>mi THEN
INSERT INTO Besz_alk VALUES
(kod,besz,d,k,mi,ma,mi*d+bk,d*k,id+1);
ELSE raise rossz;
END IF;
END;
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
36
PROCEDURE modosit_ar (kod IN Besz_alk.alk_kod%TYPE, besz IN
Besz_alk.beszallito%TYPE, d IN
Besz_alk.db_ar%TYPE) AS
id besz_alk.azon%TYPE;
bk Beszallito.koltseg%TYPE;
BEGIN
SELECT azon INTO id FROM besz_alk WHERE Alk_kod=kod AND
beszallito=besz;
SELECT koltseg INTO bk FROM Beszallito WHERE nev=besz;
IF (id =null) THEN raise no_data_found;
ELSE
UPDATE Besz_alk SET db_ar=d WHERE (Alk_kod=kod AND
beszallito=besz);
UPDATE Besz_alk SET e_ar=d*kiszereles WHERE
(Alk_kod=kod AND beszallito=besz);
UPDATE Besz_alk SET osszkoltseg=d*min+bk WHERE
(Alk_kod=kod AND beszallito=besz);
END IF;
END;
END Besz_alk_csomag;
7.2.4. Rendelés táblához tartozó csomag
Rendeles_csomag: A csomag tartalmazza a tábla feltöltését.
feltolt: az eljárás beszúr egy rekordot a Rendelés táblába. A r_id mező
automatikusan kitöltődik. Minden feltöltéskor lekérdezi a maximum r_id
értékét, és hozzáad egyet. Csak olyan rendelést lehet felvenni, ami szerepel a
Besz_alk táblában, vagyis az alkatrész kód és beszállító név értékpárok egy
sort alkotnak. A megadott darabszám esetében leellenőrzi, hogy az
értékpárnak megfelelő-e a kiszerelés és, hogy a minimum és maximum
rendelhetőség közé esik-e az érték. Ellenkező esetben kivétel dobódik. A
bekért értékek alapján kiszámolja a fizetendő összeget = darabszám * darab
ár + szállítási költség. A rendelés kiadásakor a Napló tábla is bővül egy
sorral. A sor tartalmazza a rendelésnél megadott alkatrész kódot és
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
37
darabszámot, az aktuális dátumot, a „Rendelés kiadás'” megjegyzést, illetve a
mozgást jelző üres karaktert.
Rendeles_csomag létrehozása:
CREATE OR REPLACE PACKAGE Rendeles_csomag AS
PROCEDURE feltolt (kod IN rendeles.alk_kod%TYPE, d IN
rendeles.db%TYPE, b IN
rendeles.beszallito%TYPE);
END Rendeles_csomag;
Rendeles_csomag törzse:
create or replace PACKAGE BODY Rendeles_csomag AS
PROCEDURE feltolt (kod IN rendeles.alk_kod%TYPE, d IN
rendeles.db%TYPE, b IN
rendeles.beszallito%TYPE) AS
id NUMBER(3);
megj CHAR(20);
rossz exception;
mi Besz_alk.min%TYPE;
ma Besz_alk.max%TYPE;
ki Besz_alk.kiszereles%TYPE;
da Besz_alk.db_ar%TYPE;
bk Beszallito.koltseg%TYPE;
BEGIN
SELECT max(r_id) INTO id FROM Rendeles;
SELECT Db_ar INTO da FROM Besz_alk WHERE Alk_kod=kod
AND Beszallito=b;
SELECT Koltseg INTO bk FROM Beszallito WHERE nev=b;
SELECT Besz_alk.min INTO mi FROM Besz_alk WHERE
Alk_kod=kod AND Beszallito=b;
SELECT Besz_alk.max INTO ma FROM Besz_alk WHERE
Alk_kod=kod AND Beszallito=b;
SELECT Besz_alk.kiszereles INTO ki FROM Besz_alk WHERE
Alk_kod=kod AND Beszallito=b;
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
38
IF d>=mi AND d<=ma And d mod ki = 0 THEN
INSERT INTO Rendeles VALUES (id+1, SYSDATE, kod, d,
b, d*da+bk);
ELSE raise rossz;
END IF;
megj:=' Rendelés kiadás';
INSERT INTO Naplo VALUES (kod, SYSDATE, d, megj, ' ');
END;
END Rendeles_csomag;
A Rendeles_csomag.feltolt hatására lefutó TRIGGER és JOB:
Egy rendelés feltöltésének hatására létrejön egy trigger, mely elindít egy
munkaköteget. A Trigger megkeresi a rendelésnél megadott beszállító nevéhez tartozó
szállítási idő. A jól tesztelhetőség érdekében a Beszállítókhoz tartoznak szállítási napok,
így amikor kiadunk egy rendelést, az nem íródik be rögtön a raktári készletbe, hanem a
napnak megfelelően fog hozzáíródni a készlethez. A rendszerben valójában nem napként
számítja a Szállítási időt, hanem percként, ami fel van szorozva 10-zel, vagyis 2 nap
valójában 2 * 10 perc = 20 perc. A Triggerben megadott Job, így mindig a Beszállító
táblában megadott érték szerint fog lefutni.
CREATE OR REPLACE TRIGGER Rendeles_T1
AFTER insert on Rendeles for each row
BEGIN
DECLARE
jobno NUMBER;
bi Beszallito.becsult_ido%TYPE;
BEGIN
SELECT becsult_ido INTO bi FROM Beszallito WHERE
nev=:new.beszallito;
dbms_job.submit (jobno, 'keszlet_modositas();',
SYSDATE+(bi*10/24/60), null);
END;
END;
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
39
A JOB által meghívott keszlet_modositas eljárás:
Az eljárás megkeresi az adatokat a maximum r_id alapján a Rendelés táblában,
mivel a rendelés kiadása után rögtön a Trigger fut le, melyben a Job meghívja ezt az
eljárás, így a maximum r_id értéke mindig helyes lesz. A rendelésnél kiadott darab
számmal megnöveli a raktári készletet, az adott alkatrésznél, illetve a Napló táblát bővíti
egy sorral. A sor tartalmazza az alkatrész kódját, a növelés idejét, a darab számot, a
„Készlet növelés” megjegyzést és a mozgást jelző „+” karaktert.
CREATE OR REPLACE PROCEDURE keszlet_modositas AS
d Rendeles%rowtype;
megj CHAR(20);
BEGIN
SELECT * INTO d FROM Rendeles WHERE r_id=(Select
max(r_id) from
Rendeles);
UPDATE Raktar SET keszlet=keszlet+d.db WHERE
ralk_kod=d.alk_kod;
megj:=' Készlet növelés';
INSERT INTO Naplo VALUES (d.alk_kod, SYSDATE, d.db,
megj ,'+');
END;
7.2.5. Raktár táblához tartozó csomag
Raktar_csomag: A csomag tartalmazza a tábla feltöltését és a Raktár készlet
módosítását.
feltolt: eljárás beszúr egy rekordot a Raktár táblába.
keszlet_naplozas: az eljárás véletlenszerűen kiválaszt egy alkatrész kódot a Raktár
táblából, és a készleten lévő anyag 10%-át levonja (természetesen
kerekített érték kerül levonásra, hiszen nincs fél alkatrész). A
Napló tábla naplózza, hogy milyen alkatrész, mennyi, mikor lett
levonva, illetve a „Készlet levonás” megjegyzés és a „-” mozgás
karakter is beíródik az új sorba.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
40
Raktar_csomag létrehozása:
CREATE OR REPLACE PACKAGE Raktar_csomag AS
PROCEDURE feltolt (kod IN raktar.ralk_kod%TYPE, db IN
Raktar.keszlet%TYPE);
PROCEDURE keszlet_naplozas;
END Raktar_csomag;
Raktar_csomag törzse:
CREATE OR REPLACE PACKAGE BODY Raktar_csomag AS
PROCEDURE feltolt (kod IN Raktar.ralk_kod%TYPE, db IN
Raktar.keszlet%TYPE) AS
BEGIN
INSERT INTO Raktar VALUES (kod, db);
END;
PROCEDURE keszlet_naplozas AS
szam NUMBER;
k Raktar.ralk_kod%TYPE;
BEGIN
SELECT ralk_kod INTO k FROM (SELECT ralk_kod FROM
Raktar ORDER BY
dbms_random.value ) WHERE
rownum = 1;
SELECT keszlet INTO szam FROM Raktar WHERE ralk_kod=k;
INSERT INTO Naplo VALUES (k, SYSDATE, ROUND(szam/10),
' Készlet levonás', '-');
UPDATE Raktar SET keszlet=szam-ROUND(szam/10) WHERE
Ralk_kod=k;
END;
END Raktar_csomag;
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
41
Keszlet_naplozas-t meghívó JOB:
A munkaköteg arra szolgál, hogy a raktáron lévő készlet ne csak növekedjen, hanem
csökkenjen is, így szimulálva a gyártást. A rendszer 40 percenként lefutatja a JOB-ot, mely
a fent leírt keszlet_naplozas eljárást hívja meg.
DECLARE
jobno NUMBER;
BEGIN
dbms_job.submit (jobno,
'raktar_csomag.keszlet_naplozas();',
SYSDATE, 'SYSDATE+(40/24/60)');
END;
Napló tábla karbantartása:
Az eljárás cursor segítségével kitörli a 4 nappal ezelőtti napló bejegyzéseket, így a
Napló tábla jobban átláthatóvá válik és a felesleges adatok nem terhelik le a rendszert.
CREATE OR REPLACE PROCEDURE naplo_torles AS
datum naplo.d%type;
CURSOR c1 IS SELECT d FROM Naplo;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO datum;
DELETE naplo WHERE d <(datum-3);
EXIT WHEN c1%notfound;
END LOOP;
CLOSE c1;
END;
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
42
A naplo_torles eljárást meghívó JOB:
A munkaköteg minden nap lefut egyszer és meghívja a naplo_torles eljárást.
DECLARE
jobno NUMBER;
BEGIN
dbms_job.submit (jobno, 'naplo_torles();', SYSDATE,
'SYSDATE+1');
END;
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
43
8. Programfelület bemutatása
8.1. Hiányos készlet listázása
Minden alkalommal, amikor a program elindításra kerül, egy ablakban a következő
kérdés jelenik meg: „Kívánja megtekinteni a hiányos anyagok listáját?” (8.1. ábra)
Az „Igen” gombra kattintva a Raktár tábla azon sorai jelennek meg, melyek
készleten levő darabszáma kisebb, mint 50. SQL parancsa: SELECT * FROM Raktar
WHERE keszlet < 50. A beszerző a lista segítségével látja, hogy milyen alkatrészre
kell rendelést kiadnia. Az átláthatóság érdekében a mezőnevekre kattintva megjelenik egy
kis nyilacska, mely által a táblázat értékei csökkenő vagy növekvő sorrendbe
rendezhetőek. A rendszer a táblázatból nem lép ki automatikusan, így a felhasználó addig
tudja használni, amíg szüksége van rá.
A „Nem” gombra vagy a jobb felső sarokban lévő „X” - re kattintva pedig, bezárja
ezt az ablakot, és csak a következő elindításkor jelenik meg újra.
8.1. ábra: Hiányos készlet listája
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
44
8.2. Alapfelület
8.2.1. Optimális beszállító kalkulálás
Az alapfelület 2 fő részből tevődik össze, ebből az egyik az Optimális beszállító
kalkulálás. Itt anélkül, hogy megrendelnénk az anyagot, meg tudjuk nézni, hogy melyik
beszállítótól lenne érdemesebb megrendeli, a kívánt alkatrészt, vagyis összehasonlítást
tudunk végezni. A legördülő listából ki kell választani, hogy melyik anyagról akarunk
összefoglaló információt kapni. A „Kalkuláció” gombra kattintva meg is kapjuk az
adatokat, egy táblázat formájában. (8.2. ábra)
SQL parancsa: SELECT beszallito, mod, koltseg, db_ar,
kiszereles, min, max, becsult_ido, osszkoltseg FROM Besz_alk
INNER JOIN Beszallito ON beszallito=nev WHERE alk_kod like ?.
Előfordul, hogy a táblában csak egy sor jelenik meg, ez azért van, mert a kiválasztott
alkatrészt csak egy beszállító tudja a vállalatnak biztosítani. Ha nem jelenik meg egy sor
sem a táblázatban, akkor még nincs az anyag és a beszállító között kapcsolat felépítve
(nincs nyilvántartva a Besz_alk táblázatban).
Ha új alkatrész került felvételre, akkor a rendszert újra kell indítani, mert nem lesz
benne a kalkulációs alkatrész listában., és nem lehet rá kalkulálást kiadni.
8.2. ábra: Optimális beszállító kalkulálás
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
45
8.2.2. Rendelés
Az alapfelület másik része a Rendelés. (8.3. ábra) Itt lehet egy anyagot megrendelni,
a megfelelő értékek megadásával. Fontos, hogy csak olyan rendelés adható ki, mely a
Beszállító - Alkatrész (Besz_Alk) táblában szerepel, hiszen itt van nyilvántartva, hogy az
anyagokat mely beszállítótól lehet beszerezni. A rendszer azt is ellenőrzi, hogy a
darabszám a minimum és maximum rendelhető érték közé esik-e, illetve a kiszerelést is
figyeli. Ha az értékeket rosszul adja meg a felhasználó, akkor hibaüzenet jelenik meg, és
nem történik meg a rendelés felvétele. Ha a rendelés kiadása sikeres, akkor azt a
„Rendelések listázása” gombra kattintva nézheti meg a beszerző, az eddig kiadott
rendelésekkel együtt.
8.3. ábra: Rendelés
A 8.3. ábrán látható, hogy a keret jobb felső sarkában van egy „?” feliratú gomb,
erre kattintva kapunk egy kis segítséget a rendelés elkészítéséhez. (8.4. ábra)
8.4. ábra: Rendelés súgó
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
46
8.3. Új elem felvétele
Minden tábla bővíthető új elemekkel, a folyamat menetét a 8.5. ábra mutatja. Az új
alkatrész és beszállító esetében a programot újra el kell indítani, hogy a későbbiekben
használni lehessen. Az elem feltöltése nagy odafigyelést igényel, mert nincs lehetőség a
törlésre, csak az adatbázist kezelő rendszergazdának van rá jogosultsága. Oka, hogy ne
lehessen alap információkat kitörölni.
Említettem már, hogy minden tábla lehet új értékeket felvenni, csak ki kell választani
a kívánt táblát a menüből. A kiválasztás után megjelenik egy ablak, melyben lehetőség van
az új adatok rögzítésére. Az értékek kitöltését követően a „Feltölt” gombra kell kattintani,
és a rendszer választ ad a feltöltés sikerességéről. Ha az értékek megadása helyes, akkor
bekerül az adatbázisba, ha helytelen, akkor hibaüzenetet kap a felhasználó.
Milyen hibák merülhetnek fel az értékek feltöltésénél? Nem megfelelő típusú
szöveget írunk a mezőbe (pl.: szám helyett szöveget). A mező értéke nem felel meg a
feltételeknek (pl.: nem megfelelő a szállítási mód megadása, a maximum rendelhetőség
értékét kisebbre szeretnénk állítani, mint a minimum rendelhetőség).
8.5. ábra: Új rekord felvétele
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
47
8.4. Listázás
A listázás menüpont alatt, a táblák tartalmát lehet megtekinteni. Itt kapunk arról
információt, hogy milyen alkatrészek és beszállítók vannak, ezek között milyen kapcsolat
van, és a raktárkészletet is megnézhetjük. A listázás elérését a 8.6. ábra mutatja.
8.6. ábra: Táblák listázása
8.5. Keresés
Az adatok gyorsabb elérésének érdekében, különböző kereséseket készítettem. A
menüből ki kell kiválasztani, hogy mely adatra szeretne a felhasználó keresést
végrehajtani, majd rákattint a megfelelőre. A kiválasztás után, megjelenik egy ablak,
melyben a legördülő lista segítségével választhatunk, majd a „Keresés” gombot kell
megnyomni. A keresés eredménye egy táblázatban lesz megtekinthető.
Milyen adatokat lehet a keresésekkel elérni?
Az „Alkatrész adatok” -ra kattintva, az alkatrész kódja alapján megkapjuk,
hogy mely beszállító, milyen egység és darab áron tudja szállítani az alkatrészt.
A „Beszállító adatok” –ra kattintva, a szállítás módját tudjuk kiválasztani, és a
mód alapján megkapjuk, hogy mely beszállító, honnan, milyen paritással, hány
nap alatt és mekkora költséggel szállít. A 8.7. ábra ezt a folyamatot ábrázolja.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
48
A „Rendelés” –re kattintva, kiválaszthatjuk annak az alkatrésznek a kódját,
melyre már volt rendelés kiadva. Eredményül megkapjuk, hogy kitől, mikor és
hány darab lett rendelve.
8.7. ábra: Keresés
8.6. Módosítás
Sokszor előfordul, hogy a beszállító cég változtat az általa szállított alkatrész árán,
vagy a beszállítási módon, stb. Ilyen esetekben a rendszer értékit is frissíteni/módosítani
kell. Erre szolgálnak a különböző módosításokat végrehajtó menüpontok.
Minden ablak jobb felső sarkában van egy „?” gomb, mely segítséget nyújt az
adatok helyes kitöltéséhez. A „Frissítés” gomb megnyomásakor a rendszer ellenőrzi, hogy
az értékek alapján végre hajthatja-e a módosítást. Ha nem tudja végrehajtani, akkor
hibaüzenetet küld, ellenkező esetben módosul az adatbázis.
Milyen módosításokat lehet elvégezni?
„Incoterms és költség” kiválasztásánál a beszállító neve alapján lehet
változtatni az értékeket. Figyelni kell az incoterms és a szállítási mód helyes
használatára.
„Szállítási idő és mód”-ra kattintva, egy legördülő listából kell kiválasztani,
hogy mely beszállító paramétereit szeretnénk megváltoztatni. Itt is fontos a
szállítási mód és a paritás helyes értékeinek megadása.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
49
„Alkatrész ár” kiválasztásánál, az alkatrész kódját és a beszállító cég nevét a
Besz_alk táblának megfelelően kell megadni, és ennek alapján lehet az új árat
beírni. (8.8. ábra)
8.8. ábra: Módosítás
8.7. Naplózás
A készlet mozgását a Napló tábla tárolja el. Nyomon lehet követni, hogy mikor lett
rendelés kiadva és az mikor érkezett meg, illetve a készlet levonást is feltünteti. A tábla
megadja, hogy melyik anyag, mikor és hány darab került mozgatásra. A tábla elérését a
8.9. ábra mutatja.
8.9. ábra: Naplózás
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
50
8.8. Súgó
A súgóban az alapfelületnek és a menüpontnak van leírva a használata. A különböző
menüpontokat külön fülekbe helyeztem el, így könnyedén megtalálható bármilyen
információ. Itt le van írva, hogy mit, hogyan és hol talál meg a felhasználó, illetve az is,
hogy az adott művelet mire szolgál. (8.10. ábra)
8.10. ábra: Segítség
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
51
9. Összefoglalás
A szakdolgozatom során elkészített program, olyan kis cégek számára készült, akik
nem rendelkeznek vállalatirányítási rendszerrel. Természetesen nem valósítottam meg egy
teljes vállalatirányítási rendszert, hanem csak egy általam fontosnak tartott modult, vagyis
egy logisztikával kapcsolatos részt készítettem el. A modul lényege, hogy a beszerző
könnyedén és hatékonyan tudjon anyagot megrendelni, valamint egy alkatrészről vagy
beszállító cégről pillanatok alatt bármilyen információhoz hozzájuthasson. A rendszer
engedélyezi a hozzáférést a raktárkészlethez, illetve a készlet mozgatását is figyeli, ennek
alapján tudja a beszerző, hogy pontosan mely alkatrészhez kell rendelést készíteni.
A szakdolgozat írásakor mélyebb ismeretekre tettem szert, az általam már
alkalmazott PL-SQL és JDBC közös használatáról. Segítségükkel sikerült megvalósítanom
az elképzeld beszerzői rendszert.
A jövőben az elkészített modult ki lehetne terjeszteni több termék gyártására, melyek
előállításához a különböző alkatrészekből eltérő darabszám kellene. Ezen kívül, egy raktár
modullal való bővítés esetében, nem lenne szükség a gyártás szimulálására, hiszen a
készlet csökkenést a raktárban dolgozó munkások végeznék el.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
52
10. Summary
The program that I have made in my thesis is for those companies which do not have
any kind of leading system. Naturally, I did not make a complete corporate leading system,
only a module which was thought important, so I have made a part in connection with
logistics. The main thing in the module is that the supplier can order staff easily and
effectively. It was also important to get any kind of information about the parts and the
supply company. The system authorizes the access for the stockpile and pays attention to
the stock movements. In addition the supplier knows how to make orders for which stuff.
As I was making my thesis I was able to get know effectively the PL-SQL and
JDBC. I was able to make the supplier system that I have planned.
In the future the module could be useful to make more kinds of stuffs and for these
manufacturing there would be different number of pieces for the different stuffs. In
addition, in a case of increasing a stock module, there would no need to symulate the
manufacturing because the dicreasing of the stock would be done by the workers in the
stock.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
53
11. Irodalomjegyzék
[1] http://hu.wikipedia.org/wiki/Beszerz%C3%A9si_logisztika
[2] http://logisztika.com/logisztika-szotar/beszerzes-fogalma (dr. Majoros 1998)
[3] http://web.alt.uni-
miskolc.hu/anyagok/logrend2/A%20beszerz%C3%A9si%20logisztikai%20folyama
t%20tervez%C3%A9s%C3%A9nek%20%C3%A9s%20muk%C3%B6dtet%C3%A
9s%C3%A9nek%20strat%C3%A9gi%C3%A1i%20I.pdf
(Prof. Dr. Cselényi József és Dr. Illés Béla)
[4] http://web.alt.uni-
miskolc.hu/anyagok/logrend2/A%20beszerz%C3%A9si%20logisztikai%20folyama
t%20tervez%C3%A9s%C3%A9nek%20%C3%A9s%20muk%C3%B6dtet%C3%A
9s%C3%A9nek%20strat%C3%A9gi%C3%A1i%20II.pdf
(Prof. Dr. Cselényi József és Dr. Illés Béla)
[5] http://zeus.nyf.hu/~jmgt/letolt/log_rendsz/berszerzes_logikaja.pdf
[6] http://hu.wikipedia.org/wiki/INCOTERMS
[7] http://www.sprintcamion.hu/hasznos_kepek/12_20100204144445.pdf
[8] http://leea.site40.net/02szemantika.pdf
[9] http://hu.wikipedia.org/wiki/Rel%C3%A1ci%C3%B3s_adatmodell
[10] http://users.iit.uni-miskolc.hu/~kovacs/db2/ora4.html
[11] https://www.db.bme.hu/sites/default/files/szglab5_segedlet.pdf
Linkek utoljára ellenőrizve: 2013.11.22.
Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén
54
12. CD melléklet tartalma
Dolgozat
o Bsc_Szakdolgozat_kiíras_Maklary_Brigitta.doc
o Osszefoglalas.docx
o Osszefoglalas.pdf
o Summary.docx
o Summary.pdf
o Szakdolgozat.docx
o Szakdolgozat.pdf
Forraskodok
o Rendelés_készítés (NetBeans Projekt)
o build mappa (az elkészített osztályokat tartalmazza)
o dist (a futtatható fájlt tartalmazza)
o nbproject (a felépítéshez szükséges fájlokat tartalmazza)
o src (az elkészített osztályok forráskódjait tartalmazza)
Elkészített osztályok listája
o Alkatresz
o Alkatresz_adatok
o Besz_alk
o Beszallito
o Beszallito_adatok
o Felulet
o Futtathato
o Hgtm
o Hgtm2
o Hgtm3
o Hgtm4
o Hgtm5
o Hgtm6
o Hgtm7
o Kalkulacio
o Kapcsolodas
o Ker_alk_adat
o Ker_besz_adat
o Kerdes
o Mod_ar
o Mod_ido_mod
o Mod_inc_kol
o Naplozas
o Raktar
o Raktar_lista
o Rendeles
o Rendeles_adatok
o Segitseg_keszites
o Uj_alkatresz
o Uj_besz_alk
o Uj_beszallito
o Uj_raktar
EREDETISÉGI NYILATKOZAT
Alulírott Makláry Brigitta; Neptun-kód: EQP49C; a Miskolci Egyetem Gépészmérnöki
és Informatikai Karának végzős Mérnök informatikus szakos hallgatója ezennel
büntetőjogi és fegyelmi felelősségem tudatában nyilatkozom és aláírásommal igazolom,
hogy Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén című
szakdolgozatom saját, önálló munkám; az abban hivatkozott szakirodalom felhasználása a
forráskezelés szabályai szerint történt.
Tudomásul veszem, hogy szakdolgozat esetén plágiumnak számít:
- szószerinti idézet közlése idézőjel és hivatkozás megjelölése nélkül;
- tartalmi idézet hivatkozás megjelölése nélkül;
- más publikált gondolatainak saját gondolatként való feltüntetése.
Alulírott kijelentem, hogy a plágium fogalmát megismertem, és tudomásul veszem, hogy
plágium esetén szakdolgozatom visszautasításra kerül.
Miskolc, 2013. november 22.
…….……………………………….…
Hallgató