Raktárhely besorolások importálása excel fájlból.
Minta Excel a Raktárhely besorolás lekérdezés eredményhalmaz futtatásával érhető el.
A fejléc sor alapján a következő adatokat dolgozza fel a szkript:
Kötelező oszlopok:
Raktár kód, Raktárhely Kód, Kategória név, Kategóriatétel kód
A munkalap neve: RaktarhelyBesorolas
Csak hibátlan Excelt olvasunk be, amíg hiba van, a szkript nem végez semmilyen adatbázis módosítást, hanem kiírja a problémás adat oszlopát és az Excel sort ahol az szerepel.
Módosítás naplózás nem történik, azonban a dbo.Raktar táblába bejegyezzük a felvevő/módosító felhasználót, ezek dátumát és a módosítások számát.
Sablon excel táblázat az importáláshoz: RaktarhelyBesorolasImport
Párbeszédablak:
- Teszt futtatás (az eredmény nem mentődik el),
- Csak felvétel [I]/N. A pipa állásától függ a hibakezelés is.
Igaz érték esetén csak kategória és tétel felvétel történik, módosítás és törlés nem.
Hamis érték esetén ha egy Raktárhoz / raktárhelyhez van úgy megadva kategória, hogy üres hozzá a tétel, akkor azt a kategóriát törölni fogjuk. Ezt vizsgáljuk elsőként, majd ez után végezzük el a besorolások felvételét, ha az Excel alapján ezt meg kell tenni.
Máshogy fogalmazva:
Csak felvétel = igen esetén olyan Excelt várunk, amelyben csak olyan sorok vannak, amelyek felvehetők a programba. Egyedi kategóriánál ez azt jelenti, hogy még nincs megadva az adott raktár / raktárhelyhez az Excelben szereplő kategória,
nem egyedi kategóriánál pedig azt, hogy az adott raktár / raktárhelyhez az Excelben megadott kategória és tétel még nem szerepel.
Csak felvétel = nem esetén olyan Excelt várunk, ami először törlésre utasítja a programot azzal, hogy egy raktár / raktárhely / kategória mellett a kategóriatétel egy soron üresen van hagyva (ebből tudjuk, hogy mely kategóriát kell törölnünk)
majd ha szükséges, akkor ezzel egyidőben más sorokban az újonnan felvételre kerülő kategóriatételekkel szerepel. Ezeket fogjuk a törlés után felvenni, természetesen betartva az egyedi kategóriával kapcsolatos szabályokat.
Hibakezelés:
- Hiányzó Raktár : Ha nincs kitöltve az Excelben, vagy ha az ott megadott nem létezik az adatbázisban
- Hiányzó Raktárhely : Ha nincs kitöltve az Excelben, vagy ha az ott megadott nem létezik az adatbázisban a megadott raktárhoz
- Hiányzó Kategória : Ha nincs kitöltve az Excelben, vagy ha az ott megadott nem létezik az adatbázisban
- Hiányzó Kategóriatétel : Ha nincs kitöltve az Excelben, vagy ha az ott megadott nem létezik az adatbázisban a megadott kategóriához és a Csak felvétel pipa Igaz értéken áll.
- A Kategória nem egyedi : Ha raktáron / raktárhelyen belül egy egyedi kategória több soron is szerepel az Excelben (mindegy hogy üres, vagy kitöltött kategóriatétel értékkel) és a Csak felvétel pipa Igaz értéken áll, vagy
ha hamis értéken áll és egynél több sorban van hozzá kategóriatétel megadva.
- A kategóriatétel nem egyedi : Ha raktáron / raktárhelyen belül egy kategóriához ugyan az a kategóriatétel többször is meg van adva az Excelben. (az üres értékkel való többszöri előfordulás is kimeríti ezt a feltételt)
- Ez a besorolás már létezik : Ha egy Raktár / raktárhelyen egy kategória + tétel már szerepel a programban és azt most az Excel alapján újra fel kéne venni
A hibakezeléssel és a Csak felvétel pipával az a cél, hogy a lehetőségekhez képest a legbiztosabbak legyünk a felhasználó szándékát illetően úgy, hogy a törlésre is mód nyíljon.
Ha csak felvenni akar, ne maradjon üres a kategóriatétel, mert az nyilvánvalóan Excel összeállítási hiba, ha pedig törölni akar, akkor ezt ne csak a pipa hamis értékével nyilvánítsa ki (véletlen kattintás is lehet) hanem ezen felül még egy ennek megfelelően összeállított Excel is álljon a törlés mögött.
Ezzel a működéssel azt is elérjük, hogy a programnak ne kelljen egy igen bonyolult módosítási algoritmust lekövetnie, ami esetleg a felhasználó számára is követhetetlen lenne. A pipától függően vagy csak felveszünk, ha lehet, vagy törlünk és ha kell, újra felveszünk.
Ez a szkript nem vizsgálja azt, hogy van-e a programban kötelező raktárhely kategória és az kitöltött-e az Excelben megadott raktárakban / raktárhelyeken. Csak azokkal a kategóriákkal foglalkozik, amelyek az Excelben szerepelnek.