Komputerowe implementacje hierarchicznego modelu struktury zasobów magazynowych Software implementations of a hierarchical model of a warehouse structure WITOLD MAROWSKI Streszczenie. W pracy przedstawiono koncepcj hierarchicznego modelu struktury przestrzennej magazynu. Model ten wykorzystano w prostym systemie wspomagajàcym wyszukiwanie miejsc sk adowania poszczególnych produktów. Omówiono sposób budowy takiego systemu jako aplikacji relacyjnej bazy danych, jako arkusza kalkulacyjnego i jako projektu programu TreeLine. Szczególnà uwag zwrócono na techniki pozwalajàce na transfer danych êród owych do wersji systemu zbudowanej wed ug innej koncepcji przechowywania danych, ale korzystajàcej z tego samego modelu magazynu. Techniki omówione w pracy mogà byç przydatne tak e w innych przypadkach zarzàdzania zasobami informacji o strukturze hierarchicznej. S owa kluczowe: magazyn, struktura hierarchiczna, relacyjna baza danych, arkusz kalkulacyjny, program TreeLine Abstract. The concept of hierarchical model of spatial structure of a warehouse was presented in the paper. That model was been implemented in simple computer systems supporting searching out locations of particular products in the store. These systems was developed as a relational database application, as a worksheet and as the TreeLine program project. Particular attention was paid to techniques of the source data transfer between versions of the system developed according to different data storage concepts, but applying the same warehouse model. Techniques described in the paper can be useful also in other problems concerning managing hierarchically ordered information resources. Keywords: warehouse, hierarchical structure, relational database, worksheet, TreeLine program Nowoczesne magazyny sà w coraz szerszym zakresie obs ugiwane w trybie automatycznym (p. np. [1]) i w zwiàzku z tym muszà mieç ÊciÊle okreêlonà struktur przestrzennà, zdefiniowanà w postaci hierarchicznie uporzàdkowanego zbioru lokalizacji magazynowych. Zarzàdzanie zasobami takich magazynów (rozumiane jako konkretne operacje na towarach i ich lokalizacjach) jest wspomagane przez systemy komputerowe, tzw. magazynowe systemy informatyczne, okreêlane cz sto angloj zycznym skrótem WMS (Warehouse Management System). Przyst pny przeglàd zagadnieƒ zwiàzanych z tymi systemami mo na znaleêç np. w [2] lub [3]. Do zadaƒ systemów WMS nale y m.in. wskazywanie miejsca lub miejsc przechowywania konkretnych produktów. Realizacja tej funkcji wymaga stworzenia takiego modelu struktury przestrzennej magazynu, który mo na wyraziç w kategoriach w aêciwych dla wybranego narz dzia wspomagania komputerowego. Gospodarka magazynowa jest z perspektywy ekonomiczno-ksi gowej cz Êcià ogólnego procesu zarzàdzania zasobami przedsi biorstwa, wspomaganego w du ych organizacjach przez systemy klasy MRP II lub ERP. Systemy WMS odnoszà si do operowania zasobami z odmiennej, fizycznej, perspektywy, jednak mimo to powinny byç zintegrowane z systemami MRP II lub ERP, przynajmniej pod wzgl dem korzystania ze wspólnych zasobów danych. Dr hab. in. Witold Marowski Instytut Maszyn Roboczych Ci kich, Politechnika Warszawska, ul. Narbutta 84, 02-524 Warszawa, e-mail: Witold.Marowski@ipbm.simr. pw.edu.pl Tego rodzaju kompleksowe rozwiàzania sà z przyczyn ekonomicznych na ogó niedost pne dla ma ych firm. Niewielkich rozmiarów system wspomagajàcy wyszukiwanie produktów w magazynie mo na jednak zbudowaç tak e przy u yciu ogólnie znanych i atwo dost pnych programów narz dziowych, opierajàc si na dostosowanym do specyfiki konkretnego przypadku hierarchicznym modelu struktury przestrzennej magazynu. W pracy przedstawiono koncepcj takiego modelu oraz omówiono sposoby jego wykorzystania przy tworzeniu narz dzi komputerowych wspomagajàcych zarzàdzanie zasobami magazynu w postaci aplikacji relacyjnej bazy danych, arkusza kalkulacyjnego oraz projektu programu TreeLine. Wybór jednej z tych koncepcji nie musi byç traktowany jako ostateczny, je eli istniejà techniki pozwalajàce na transformacj zgromadzonych zasobów danych w zasoby udost pniane za pomocà innego narz dzia. Mo liwoêci wykonywania tego typu operacji w odniesieniu do omawianych systemów wspomagajàcych zarzàdzanie zasobami magazynu przeanalizowano w koƒcowej cz Êci pracy. PodejÊcie proponowane w pracy mo e byç równie zastosowane w innych przypadkach projektowania niewielkich systemów wspomagajàcych zarzàdzanie hierarchicznie uporzàdkowanymi zasobami materialnymi lub informacyjnymi. Model magazynu Rozwa any magazyn jest przeznaczony do przechowywania produktów o stosunkowo niewielkich wymiarach, takich jak np. cz Êci zamienne do sa- ROK WYD. LXXI ZESZYT 5/2012 13
mochodów. Dlatego te wyró niono w nim (w kierunku rosnàcej szczegó owoêci) nast pujàce szczeble hierarchii opisu lokalizacji: magazyn jako ca oêç, obszar, poziom, alejka, rega, pó ka i pojemnik. Model ten pokazano na rys. 1, na którym linie przerywane oznaczajà mo liwoêç definiowania kolejnych elementów nale àcych do tego samego poziomu szczegó owoêci opisu. Za o ono, i w normalnym trybie wykorzystywania magazynu produkty o wi kszych rozmiarach sà przechowywane bezpoêrednio na pó kach rega ów, zaê drobniejsze cz Êci umieszcza si w ustawianych na pó kach pojemnikach. Nie wyklucza to jednak umieszczania produktów w lokalizacjach nale àcych do wy szych hierarchicznie szczebli struktury modelu. W takich wypadkach nie mo na jednak tworzyç podporzàdkowanych im lokalizacji hierarchicznie ni szych. Ka demu elementowi hierarchii lokalizacji jest przypisywany jednoznaczny identyfikator o sk adni odwzorowujàcej Êcie k prowadzàcà do tej lokalizacji z obszaru, w którym si ona znajduje. Na rys. 2 pokazano szablon takiego identyfikatora dla pojemnika, czyli elementu z najni szego szczebla hierarchii lokalizacji. Pozwala to objaêniç pe nà struktur sk adni. Kratki w górnej cz Êci rys. 2 odpowiadajà kolejnym znakom identyfikatora. Umieszczone w nich symbole okreêlajà dopuszczalnà zawartoêç konkretnej pozycji (A wielka litera, 0 cyfra). Jak widaç, obszary sà oznaczane pojedynczà wielkà literà, która w oznaczeniach poziomów danego obszaru jest uzupe niana pojedynczà cyfrà. Identyfikatory lokalizacji nale àcych do ni szych szczebli hierarchii tworzy si przez do àczenie dwóch cyfr do identyfikatora odpowiedniego elementu nadrz dnego. Liczba znaków identyfikatora jest zmienna, gdy identyfikatory lokalizacji znajdujàcych si na wy szych szczeblach hierarchii nie zawierajà cz Êci przeznaczonej na opis szczebli hierarchicznie od nich ni szych. Taka sk adnia identyfikatora elementu hierarchii lokalizacji bardzo u atwia wyszukiwanie w relacyjnej bazie danych elementów podrz dnych i nadrz dnych w stosunku do elementu o zadanym identyfikatorze (p. [4]). Rys. 1. Schemat hierarchicznej struktury magazynu Rys. 2. Struktura jednoznacznego identyfikatora lokalizacji magazynowej Przedstawiony model przestrzennej struktury magazynu zosta zastosowany przy tworzeniu trzech prostych systemów wspomagajàcych zarzàdzanie zasobami magazynowymi: aplikacji bazy danych, arkusza kalkulacyjnego i projektu programu TreeLine. Aplikacja bazy danych Aplikacj bazy danych wspomagajàcà zarzàdzanie zasobami magazynowymi wykonano w programie Microsoft Access. Na rys. 3 pokazano fragment struktury logicznej bazy danych z tabelami odwzorowujàcymi przestrzennà struktur magazynu i rozmieszczenie towarów w poszczególnych lokalizacjach. Ka da z lokalizacji magazynowych mo e byç fragmentem tylko jednej lokalizacji nadrz dnej, zatem do zamodelowania struktury hierarchicznej wystarcza wprowadzenie do tabeli Lokalizacje kolumny identyfikatora rodzica lokalizacji oraz zdefiniowanie zwiàzku typu jeden do wielu, àczàcego kolumn klucza podstawowego tej tabeli ze wspomnianà ju kolumnà rodzica (jest to tzw. powiàzanie unarne, tworzone w obr bie tej samej tabeli i wià àce ze sobà jej ró ne wiersze, p. np. [5]). Na rys. 3 zwiàzek ten jest pokazany jako linia àczàca okna Lokalizacje_1 oraz Lokalizacje, które reprezentujà t samà tabel bazy danych. Rys. 3. Fragment struktury logicznej bazy danych Tabele pokazane na rys. 3, a tak e pomini te na nim tabele z informacjami o producentach i klasyfikacji produktów, wykorzystano jako êród a danych dla formularzy interfejsu u ytkownika aplikacji. Formularze te pozwalajà m.in. na definiowanie lub modyfikowanie struktury przestrzennej magazynu i rozmieszczanie w nim towarów, a tak e na wyszukiwanie lokalizacji konkretnych produktów. Przy ich projektowaniu zastosowano zarówno wbudowane mechanizmy programu Microsoft Access, jak i kod j zyka Visual Basic. Przyk adowe rozwiàzania dwóch formularzy interfejsu aplikacji pokazano na rys. 4 i rys. 5. Hierarchicznà struktur magazynu mo na na formularzu interfejsu u ytkownika przedstawiç w postaci rozwijalnego drzewa w z ów reprezentujàcych poszczególne lokalizacje magazynowe, wyêwietlanego w formancie TreeView (p. rys. 4). Pozwala to na szybkie, intuicyjne dotarcie do àdanej lokalizacji w celu zapoznania si ze sposobem jej aktualnego wykorzystywania lub okreêlenia jej jako miejsca przechowywania pewnej partii produktów. W z y wyêwietlane w formancie TreeView sà elementami jego kolekcji Nodes. Kolekcja ta jest wype niana przez procedur zawartà w module kodu 14 ROK WYD. LXXI ZESZYT 5/2012
w u yciu i bezpoêrednio w komórkach arkusza mo e udost pniaç tylko informacje alfanumeryczne, ale ze wzgl du na swojà prostot bywa cz sto stosowane, np. w firmach oferujàcych ró nego rodzaju cz Êci zamienne. Znajdujàca si na arkuszu lista powinna byç zbudowana w ten sposób, aby ka dy jej wiersz opisywa jednà lokalizacj magazynowà, w razie potrzeby wraz z danymi przechowywanej w niej partii produktów. Zestaw kolumn listy nale y dopasowaç do àdanego zakresu i poziomu szczegó owoêci informacji. Warto tak e uwzgl dniç w nim kolumny przeznaczone na identyfikatory tych elementów struktury magazynu, które sà po o one wzd u Êcie ki àczàcej w ze magazynu z w z em lokalizacji opisywanej przez dany wiersz arkusza. Liczba tych kolumn musi odpowiadaç przypadkowi wiersza dotyczàcego lokalizacji na najni szym poziomie hierarchii, czyli pojemnika. WartoÊci nale- àcych do nich komórek mogà byç wyznaczane przez formu y korzystajàce z wbudowanych funkcji LEWY i D programu Excel, które odwo ujà si do wartoêci komórki identyfikatora lokalizacji z danego wiersza. W wierszach opisujàcych elementy z wy szych poziomów hierarchii lokalizacji magazynowych komórki przeznaczone dla identyfikatorów lokalizacji z poziomów hierarchicznie ni szych od poziomu lokalizacji z danego wiersza listy powinny oczywiêcie byç puste. Przyj cie takiego rozwiàzania pozwala na odwzorowanie hierarchicznej struktury magazynu na liêcie utworzonej na arkuszu kalkulacyjnym. Stwarza ono zarazem mo liwoêç filtrowania zawartoêci arkusza i wyodr bnienia z niej podzbioru wierszy odpozarówno w aêciwoêç Filter, jak i sklonowany zestaw rekordów odpowiedniego formularza oraz udost pniane za jego poêrednictwem techniki odnajdywania àdanych informacji. W operacjach filtrowania wykorzystywane sà kryteria bazujàce na wyborze producenta oraz regu ach klasyfikacji produktów. OkreÊlenie kryteriów filtrowania lub wyszukiwania danych nast puje przez wybór odpowiednich wartoêci na listach rozwijalnych. Rys. 4. Formularz definiowania i edycji lokalizacji towarów Arkusz kalkulacyjny Arkusz kalkulacyjny jest najprostszym interfejsem umo liwiajàcym operowanie zasobami magazynowymi. Rozwiàzanie takie jest niezbyt wygodne Rys. 5. Formularz wyszukiwania lokalizacji towarów formularza. Definicje lokalizacji, które sà reprezentowane przez w z y drzewa hierarchii, sà wyszukiwane w bazie danych przez kwerend. Zwraca ona identyfikator ka dej lokalizacji, jej nazw (stajàcà si póêniej etykietà w z a wyêwietlanego w formancie TreeView) i typ, a tak e identyfikator jej rodzica (ten ostatni atrybut jest wartoêcià pustà dla w z a magazynu, czyli lokalizacji rozpoczynajàcej hierarchi ). Z uwagi na wyst pujàcà w strukturze magazynu jednoznacznoêç zale noêci hierarchicznych (ka da lokalizacja magazynowa mo e byç fragmentem tylko jednej lokalizacji nadrz dnej), algorytm tworzenia hie- rarchii w z ów jest stosunkowo prosty. Najpierw do kolekcji Nodes formantu TreeView dodawane sà w z y odpowiadajàce kolejnym wierszom zbioru wyników kwerendy, ale bez okreêlania ich rodziców (tzn. zamiast struktury hierarchicznej tworzony jest jednopoziomowy zbiór w z ów typu root), przy czym kluczami elementów kolekcji Nodes stajà si identyfikatory lokalizacji magazynowych reprezentowanych przez poszczególne w z y. Nast pnie zestaw rekordów, utworzony ze zbioru wyników kwerendy, jest przeszukiwany powtórnie i dla ka dego wiersza, który zawiera dane lokalizacji magazynowej majàcej lokalizacj nadrz dnà (tj., gdy pole identyfikatora lokalizacji nadrz dnej ma wartoêç niepustà), wykonywane sà nast pujàce dzia ania: wyszukanie w kolekcji Nodes formantu TreeView w z a reprezentujàcego t lokalizacj, do czego wykorzystuje si warunek równych wartoêci pola identyfikatora lokalizacji w zestawie rekordów oraz klucza kolekcji Nodes, wyszukanie w analogiczny sposób, z wykorzystaniem wartoêci pola identyfikatora rodzica, w z a reprezentujàcego rodzica tej lokalizacji (tj. lokalizacj bezpoêrednio nadrz dnà), przypisanie do w aêciwoêci Parent w z a reprezentujàcego lokalizacj z aktualnego wiersza zestawu rekordów odwo ania obiektowego do w z a reprezentujàcego jej rodzica, odnalezionego w poprzednim kroku. W celu u atwienia dost pu do informacji formularze z rys. 4 i 5 zosta y wyposa one w mechanizmy wyszukiwania i filtrowania danych. Wykorzystujà one ROK WYD. LXXI ZESZYT 5/2012 15
Rys. 6. Definicje Êcie ek prowadzàcych do lokalizacji opisywanej w aktualnym wierszu listy Rys. 7. Formularz danych dla listy na arkuszu kalkulacyjnym wspomagajàcym zarzàdzanie magazynem (u góry formu- owanie kryteriów wyboru wierszy, u do u widok przyk adowego wiersza danych) wiadajàcych wybranej lokalizacji oraz lokalizacjom bezpoêrednio lub poêrednio hierarchicznie jej podporzàdkowanym albo wzgl dem niej nadrz dnym. Na rys. 6 pokazano fragmenty kilku wierszy listy z definicjami wspomnianych Êcie ek, zapisanymi w komórkach kolumn J P oraz przyk adowe formu y wyznaczajàce identyfikator magazynu (w przytoczonym przyk adzie jest nim ciàg znakowy Magazyn) oraz identyfikator jednego z w z ów Êcie ki. Lista zbudowana w opisany sposób stanowi kompletny opis struktury lokalizacji i zasobów magazynowych. Pos ugiwanie si nià jako ca oêcià by oby jednak ucià liwe ze wzgl du na znacznà liczb wierszy. Konieczne jest zatem stosowanie technik, które pozwalajà wyêwietlaç tylko podzbiór listy odpowiadajàcy aktualnym potrzebom u ytkownika. Najprostsze, ale cz sto stosowane, jest wybieranie udost pnianego podzbioru danych przy u yciu autofiltru, co daje doêç ograniczone mo liwoêci formu owania kryteriów wyboru. Innà technikà, pozwalajàcà na wygodne operowanie zawartoêcià pojedynczych wierszy kompletnej listy lub jej podzbioru spe niajàcego zadane kryteria wyszukiwania, jest zastosowanie tzw. formularza danych (p. np. [6]). Jest on generowany automatycznie dla listy przez program Excel i mo e s u yç zarówno do wyêwietlania zawartoêci konkretnego wiersza listy, jak i do formu- owania kryteriów wyboru wierszy, które nast pnie b dà udost pniane za jego poêrednictwem. Kryteria dotyczà poszczególnych kolumn listy i sà àczone operatorem koniunkcji, analogicznie jak kryteria wprowadzane przy u yciu autofiltru. Zatem formularz danych nie umo liwia budowy kryteriów wyboru o postaci bardziej z o onej w stosunku do autofiltru. Przyk ad formularza danych, utworzonego przez program Excel dla listy opisujàcej zawartoêç i struktur magazynu, pokazano na rys. 7. Mo liwoêci filtrowania zawartoêci listy istotnie zwi ksza zastosowanie filtru zaawansowanego, pozwalajàcego na budow kryteriów wyszukiwania w sposób analogiczny do u ywanego w technice Query-by-Example w odniesieniu do danych z baz relacyjnych. Definicj filtru zaawansowanego umieszcza si na arkuszu kalkulacyjnym zazwyczaj w zakresie komórek po o onym powy ej zakresu listy. Filtr zaawansowany musi odwo ywaç si do nazw kolumn listy, w zwiàzku z tym pierwszy wiersz jego zakresu jest kopià wiersza nag ówków listy. Poni ej znajdujà si wiersze, w których okreêla si kryteria wyboru danych. Kryteria te odnoszà si do tych kolumn listy, w których znajdujà si definiujàce je komórki. Kryteria z jednego wiersza zakresu filtru zaawansowanego sà àczone operatorami koniunkcji. Ostateczne kryterium filtrowania danych uzyskuje si przez po àczenie kryteriów z kolejnych wierszy zakresu filtru operatorami alternatywy. 16 ROK WYD. LXXI ZESZYT 5/2012
Rys. 8. Fragment arkusza kalkulacyjnego wspomagajàcego wyszukiwanie towarów w magazynie Aby zwi kszyç przejrzystoêç prezentacji danych, warto pogrupowaç wiersze listy, zdefiniowaç sumy poêrednie oraz utworzyç konspekt arkusza. Z tych wszystkich mo liwoêci skorzystano przy projektowaniu arkusza kalkulacyjnego, którego fragment pokazano na rys. 8. W rozwiàzaniu pokazanym na rys. 8 konspekt arkusza wraz z sumami poêrednimi odwzorowuje sposób klasyfikacji towarów. Mo na jednak zastosowaç tak e inne kryteria grupowania wierszy, np. wykorzystujàce wartoêci komórek z kolumn okreêlajàcych miejsce danej lokalizacji w hierarchicznej strukturze magazynu (kolumny te, pokazane na rys. 6, sà po o one na prawo od kolumn widocznych na rys. 8). Projekt programu TreeLine Program TreeLine (p. np. [7]) jest bezp atnie udost pnianym narz dziem do zarzàdzania zasobami informacji o strukturze hierarchicznej, którego pliki instalacyjne mo na pobraç ze strony http:// treeline.bellz.org. Pozwala on na definiowanie z o- onych typów danych oraz okreêlenie dla ka dego z nich zbioru atrybutów i formatu ich prezentacji w graficznym interfejsie u ytkownika. Post powanie to mo na uwa aç za odpowiednik tworzenia logicznej struktury bazy danych. Po jego zakoƒczeniu mo na t struktur wype niç danymi, tworzàc zbiór instancji poszczególnych typów danych i okreêlajàc zale noêci hierarchiczne mi dzy nimi. Zarówno definicja struktury, jak i wartoêci danych, sà zapami tywane przy u yciu formatu XML w pliku projektu programu TreeLine. Przeglàd zawartoêci zgromadzonego zbioru danych jest wyêwietlany przez program TreeLine na dwóch kartach lewej cz Êci okna interfejsu u ytkownika w postaci rozwijalnego drzewa hierarchii oraz listy elementów tej hierarchii bezpoêrednio lub poêrednio podporzàdkowanych zaznaczonemu w z owi drzewa. Szczegó owe dane elementu reprezentowanego przez zaznaczony w ze drzewa hierarchii lub pozycj listy mo na obejrzeç na karcie Data Output prawej cz Êci okna interfejsu. Karta Data Editor tej cz Êci okna umo liwia edycj danych, a karta Title List wyêwietla tytu zaznaczonego w z a oraz tytu y w z ów bezpoêrednio mu podporzàdkowanych. Formatowanie danych wyjêciowych dla poszczególnych typów danych polega na tworzeniu szablonów wyêwietlania tytu ów w z ów reprezentujàcych instancje tych typów danych w widoku struktury hierarchicznej oraz szablonów opisów ka dej z takich instancji, wyêwietlanych na karcie danych wyjêciowych prawego panelu. W obu typach szablonów mo na wykorzystywaç wprowadzane bez jakichkolwiek separatorów sta e znakowe i odwo ania do wartoêci atrybutów danej instancji z o onego typu danych, a na prawym panelu dodatkowo znaczniki formatujàce HTML. Warto zaznaczyç, i atrybutowi typu danych mo na nadaç typ obraz (Picture). Wówczas, je eli wartoêcià tego atrybutu dla konkretnej instancji typu danych b dzie Êcie ka do pliku mapy bitowej, w prawym panelu zostanie wyêwietlona zawartoêç tego pliku (rys. 9). Typem atrybutu mo e byç tak e powiàzanie wewn trzne (Internal link). Rys. 9. Interfejs systemu zarzàdzania zasobami magazynowymi wykonany jako projekt programu TreeLine ROK WYD. LXXI ZESZYT 5/2012 17
Wówczas wartoêç takiego atrybutu jest wyêwietlana na karcie danych wyjêciowych prawego panelu w postaci odsy acza, którego klikni cie powoduje zaznaczenie odpowiedniego w z a w widoku struktury hierarchicznej po lewej stronie okna interfejsu programu TreeLine i wyêwietlenie jego opisu na kartach po prawej stronie (tak zdefiniowanym atrybutem jest identyfikator B00202 widoczny na rys. 9). Program TreeLine udost pnia ró ne techniki przeszukiwania zasobów danych (wyszukiwanie zadanego ciàgu znakowego w polu dowolnego atrybutu dowolnego typu danych, przyrostowe wyszukiwanie w z ów, których tytu y zawierajà ciàg znaków na bie àco wprowadzany z klawiatury, wyszukiwanie na podstawie z o onych kryteriów wyszukiwania, sformu owanych dla konkretnego typu danych). Zbiór tych w z ów struktury hierarchicznej, które spe niajà kryteria wyszukiwania, jest wyêwietlany na karcie Flat View lewego panelu okna programu, podczas gdy na karcie Tree View wyêwietlana jest przez ca y czas kompletna struktura hierarchiczna. Po zaznaczeniu wybranych pozycji listy na karcie Flat View, w widoku struktury hierarchicznej sà zaznaczane odpowiadajàce tym pozycjom w z y (w ten sposób mo na np. szybko zorientowaç si w po o eniu lokalizacji magazynowych, w których sà przechowywane àdane produkty). Program TreeLine pozwala zatem na wygodne operowanie zasobami informacji o strukturze hierarchicznej i mo e byç u yty równie do zarzàdzania zasobami magazynowymi. Przyk ad interfejsu stworzonego w programie TreeLine dla magazynu o strukturze przyj tej w niniejszej pracy pokazano na rys. 9. W projekcie tym zastosowano jedynie dwa typy danych, reprezentujàce odpowiednio magazyn oraz dowolnà lokalizacj wraz z przechowywanym w niej produktem, aczkolwiek testowano równie rozwiàzania, w których tworzone by y oddzielne typy danych dla ka dego poziomu hierarchii lokalizacji oraz dla produktu. Zaletà rozwiàzania z dwoma typami danych jest wi ksza uniwersalnoêç, gdy wówczas tak e te elementy struktury hierarchicznej magazynu, które zgodnie z modelem teoretycznym nie powinny byç bezpoêrednio wykorzystywane do przechowywania produktów (obszary, poziomy, alejki i rega y), sà instancjami typu danych, którego zestaw atrybutów zawiera tak e atrybuty odnoszàce si do partii konkretnego produktu przechowywanej w danej lokalizacji. W normalnym trybie wykorzystywania magazynu atrybuty te majà wartoêci puste, ale w razie potrzeby pozwalajà na przypisanie do ka dej z takich niestandardowych lokalizacji partii produktu, która ma byç bezpoêrednio w niej przechowywana. Metody konwersji zasobów danych Wybór jednej z uprzednio omówionych koncepcji systemu zarzàdzania lokalizacjami i zasobami magazynowymi nie musi byç traktowany jako ostateczny, gdy w razie potrzeby mo liwa jest konwersja zbioru danych zgromadzonych za pomocà aktualnie stosowanej wersji systemu na format odpowiadajàcy innemu systemowi. Elementem poêrednim, u ywanym w trakcie tego procesu, jest w niektórych przypadkach plik tekstowy. Przebiegi ró nych procesów transformacji danych êród owych pokazano na rys. 10. Warto zwróciç uwag na to, i w przypadku eksportu zasobów bazy relacyjnej do systemu korzystajàcego z programu TreeLine lub arkusza kalkulacyjnego konieczne jest zastosowanie kwerendy, która w ka dym wierszu wyników zwraca kompletny zestaw informacji dotyczàcych jednej lokalizacji magazynowej. W bazie danych informacje te znajdujà si w ró nych tabelach, co pozwala uniknàç ich dublowania. Dla ka dego wiersza listy umieszczonej na arkuszu kalkulacyjnym nale y natomiast okreêliç wartoêci wszystkich komórek, a dla ka dej instancji zdefiniowanego w programie TreeLine typu danych Rys. 10. Konwersja zasobów danych mi dzy ró nymi rozwiàzaniami systemu zarzàdzania magazynem 18 ROK WYD. LXXI ZESZYT 5/2012
wartoêci wszystkich atrybutów. Mo e to niekiedy pociàgaç za sobà umieszczanie fizycznie tego samego zbioru informacji (np. danych konkretnego produktu) w kilku ró nych miejscach. Jest to jednak nieuniknione i wynika z innego ni relacyjne podejêcia do sk adowania informacji. Kwerenda dostarczajàca danych êród owych dla listy na arkuszu kalkulacyjnym powinna ponadto zwracaç definicje Êcie ek, które àczà danà lokalizacj z poczàtkowym w z em hierarchii (p. rys. 6). Ka da z takich definicji sk ada si z pól zawierajàcych identyfikatory lokalizacji, które sà w z ami danej Êcie ki. Ich wartoêci sà podciàgami identyfikatora lokalizacji z aktualnego wiersza zbioru wyników kwerendy, wyznaczanymi przez funkcje dokonujàce operacji na ciàgach znakowych, których wywo ania wchodzà w sk ad zbioru kolumn wyników kwerendy. Przy tworzeniu z poziomu aplikacji bazy danych listy na arkuszu kalkulacyjnym programu Microsoft Excel lub pliku tekstowego, stanowiàcego êród o danych dla programu TreeLine, mo na si pos u yç menu programu Microsoft Access lub kodem aplikacji bazy danych, korzystajàcym z metod TransferSpreadsheet, TransferText lub OutputTo obiektu DoCmd. Pierwsza z nich powoduje utworzenie na arkuszu kalkulacyjnym listy b dàcej kopià arkusza danych tabeli lub kwerendy, druga zapisuje zawartoêç arkusza danych do pliku tekstowego, pozwalajàc na pos u enie si wczeêniej stworzonà specyfikacjà eksportu, która okreêla zbiór eksportowanych kolumn i sposób interpretacji zawartych w nich danych, a trzecia dokonuje eksportu danych do arkusza kalkulacyjnego lub do pliku tekstowego, zgodnie z zadanà wartoêcià parametru okreêlajàcego ich wyjêciowy format. Procedura eksportu danych êród owych jest wówczas ca kowicie zautomatyzowana, a jej wykonanie mo e nastàpiç np. po klikni ciu przycisku na formularzu interfejsu u ytkownika aplikacji bazy danych. Import do bazy danych zawartoêci pliku tekstowego lub listy znajdujàcej si na arkuszu kalkulacyjnym odbywa si z poziomu programu Microsoft Access przy wykorzystaniu odpowiedniego kreatora. W trakcie tego procesu nale y pominàç kolumny zawierajàce zb dne informacje, jak na przyk ad kolumny listy Excela przeznaczone na definicje Êcie ek wiodàcych do poszczególnych lokalizacji. W wyniku otrzymuje si pojedynczà tabel bazy danych, którà trzeba podzieliç na kilka tabel, przechowujàcych informacje pogrupowane zgodnie z wymogami formalizmu relacyjnego. Wykorzystuje si w tym celu dost pny w programie Access analizator tabel. W procesie tworzenia nowych tabel nale y wyjêç z za o enia, i po jego zakoƒczeniu tabela wyjêciowa b dzie si znajdowaç wy àcznie po stronie wiele zwiàzków typu jeden do wielu definiowanych w trakcie jej podzia u. To samo musi dotyczyç kolejnych tworzonych tabel, je eli tak e one b dà podlegaç podzia owi. Procedura polega zatem na wyodr bnieniu z ka dej z dzielonych tabel zbioru kolumn, które mogà byç przeniesione do tabeli po stronie jeden zwiàzku typu jeden do wielu i wprowadzeniu w ich miejsce klucza obcego. Pierwszy krok procesu podzia u tabeli zaimportowanej z pliku tekstowego lub z listy na arkuszu kalkulacyjnym pokazano na rys. 11, na którym u góry przedstawiono stan wyjêciowy, a u do u stan po wykonaniu tego kroku. Po zakoƒczeniu procedury podzia u tabeli wyjêciowej nale y przejrzeç zawartoêç i projekty tabel powsta ych w jej trakcie i w razie potrzeby dokonaç niezb dnych korekt. Eksport danych z listy na arkuszu kalkulacyjnym do pliku tekstowego wymaga utworzenia wersji arkusza pozbawionej dodatkowych elementów analizy danych lub ich formatowania (np. tytu y, sumy po- Êrednie, konspekt lub filtr zaawansowany) i ewentualnie kolumn zawierajàcych definicje Êcie ek wiodàcych do poszczególnych lokalizacji. Tak przygotowany arkusz nale y zapisaç w formacie txt. Dane przechowywane w systemie zbudowanym jako projekt programu TreeLine mogà zostaç przeniesione do innej wersji systemu za poêrednictwem pliku tekstowego. Przed dokonaniem eksportu nale y zaznaczyç poczàtkowy w ze struktury hierarchicznej i przy u yciu polecenia Flatten by Category menu Data programu TreeLine przekszta ciç t struktur w dwupoziomowà (najwy szy w hierarchii w ze Root i podporzàdkowany mu poziom z o ony ze wszystkich pozosta ych w z ów, niezale nie od ich pierwotnej Rys. 11. Pierwszy krok procesu podzia u tabeli zaimportowanej z zewn trznego êród a do bazy danych (u góry stan wyjêciowy, u do u stan koƒcowy) pozycji w hierarchii). Operacja ta powoduje uzupe nienie definicji typów danych wszystkich w z ów przeniesionych na drugi poziom hierarchii o pola identyfikatorów, które pierwotnie nale a y do definicji typów danych w z ów hierarchicznie od nich wy szych, le àcych na Êcie ce àczàcej przenoszony w ze ROK WYD. LXXI ZESZYT 5/2012 19
z poziomem, na którym si ostatecznie znalaz. Identyfikatorem jest pole o wartoêci unikatowej, okreêlone przy konfiguracji typu danych jako link reference field (je eli nie okreêlono go w inny sposób, program TreeLine domyêlnie przyjmuje, i jest nim pierwszy atrybut typu). WartoÊci tych dodatkowych pól sà oczywiêcie przejmowane z definicji wspomnianych w z ów. Nast pnie, przy u yciu okna konfiguracji typów danych (okno Configure Data Types), trzeba dokonaç przedefiniowania danych wyjêciowych w taki sposób, aby usunàç z definicji ich formatu ewentualne sta e tekstowe oraz w razie potrzeby zmieniç typy pól na akceptowane przez plik tekstowy (np. typ Picture na typ Text). Nale y te zadbaç o to, aby wyprowadzane by y wszystkie pola danych, àcznie z tymi, które zosta y dodane do definicji typu danych przez operacj sp aszczania struktury hierarchicznej. KolejnoÊç wyprowadzania pól, którà mo na okreêliç na liêcie na karcie Field List okna konfiguracji typów danych, powinna odpowiadaç wymaganiom aplikacji, która b dzie pobieraç dane z tworzonego pliku tekstowego (np. powinna ona byç zgodna z projektowanà kolejnoêcià kolumn listy na arkuszu kalkulacyjnym). Otrzymany plik tekstowy mo e wymagaç dodatkowego formatowania (np. usuni cia zb dnych kolumn), które mo na wykonaç w programie Excel. Plik tekstowy z danymi, wczytywany do programu TreeLine, powinien byç zapisany jako tekst rozdzielany separatorami (np. znakiem tabulatora) i zbudowany w taki sposób, aby pola jego pierwszej kolumny by y zawsze wype nione (najlepiej umieêciç tam identyfikatory lokalizacji). Musi on te zawieraç kolumn identyfikatora lokalizacji nadrz dnej, której wartoêci sà wykorzystywane do budowy struktury hierarchicznej. Korzysta si w tym celu z polecenia Arrange by Reference w menu Data programu TreeLine, wskazujàc t kolumn jako êród o identyfikatorów w z- ów nadrz dnych. Przy otwieraniu pliku tekstowego w programie TreeLine trzeba podaç w aêciwe okreêlenie jego struktury, w szczególnoêci zwracajàc uwag na to, czy ma on wiersz nag ówków i jak sà rozdzielane definicje poszczególnych elementów hierarchii oraz wartoêci poszczególnych atrybutów w tych definicjach. W najcz Êciej wyst pujàcym przypadku pliku z wierszem nag ówków, opisami pojedynczych elementów hierarchii w kolejnych wierszach i polami opisów rozdzielonymi separatorami (np. znakami tabulacji) nale y wybraç opcj Text table with header row, one node per line. Zostanie wówczas utworzony w ze poczàtkowy typu Root oraz jednopoziomowy zbiór podporzàdkowanych mu w z ów typu Default, reprezentujàcych kolejne wiersze pliku tekstowego. Nast pnie, przy u yciu polecenia menu Arrange by Reference, buduje si hierarchicznà struktur w z ów (przed rozpocz ciem tego etapu warto zapami taç i zamknàç plik projektu programu TreeLine, a nast pnie otworzyç go ponownie). Na zakoƒczenie mo na w razie potrzeby okreêliç sposób sortowania w z ów i formatowania ich opisów. Mo na tak e zmieniç typy danych niektórych pól (np. na typ Picture dla pól zawierajàcych Êcie ki dost pu do plików graficznych, których zawartoêç powinna byç wyêwietlana w interfejsie programu TreeLine lub na typ Internal Link dla pól definiujàcych powiàzania z innymi w z ami hierarchii). Uwagi koƒcowe DoÊwiadczenia zdobyte w trakcie testowania prototypów systemów omawianych w pracy potwierdzi y ich przydatnoêç do wspomagania zarzàdzania zasobami magazynowymi oraz innymi zasobami informacji o strukturze hierarchicznej. Dotyczy to tak e systemu zbudowanego przy u yciu bezp atnego programu TreeLine. Warto zauwa yç, i przekazanie do niego, za poêrednictwem pliku tekstowego, danych zapisanych na arkuszu kalkulacyjnym nie powinno nastr czaç wi kszych trudnoêci. Walory u ytkowe interfejsu programu TreeLine sà wy sze ni arkusza kalkulacyjnego, mi dzy innymi ze wzgl du na wygod pos ugiwania si rozwijalnym drzewem w z ów hierarchii oraz mo liwoêç prezentowania zawartoêci plików graficznych. W przypadku pos ugiwania si systemem zbudowanym jako arkusz kalkulacyjny warto wi c rozwa yç celowoêç migracji do projektu programu TreeLine. Porównawczà ocen poszczególnych rozwiàzaƒ systemów omówionych w pracy, wynikajàcà zarówno z obiektywnej analizy ich mo liwoêci, jak i z subiektywnych odczuç autora, przedstawiono w tabeli. Liczby umieszczone w polach jej wierszy okreêlajà miejsca zajmowane przez poszczególne systemy przy porównywaniu stopni spe niania kryteriów z pierwszej kolumny tabeli. Porównawcza ocena omówionych rozwiàzaƒ Kryterium Excel TreeLine Access Rozbudowana struktura modelu danych 3 2 1 atwoêç budowy systemu 1 2 3 Zakres prezentowanych informacji 3 2 1 PrzejrzystoÊç odwzorowania struktury informacji 2 1 1 atwoêç obs ugi interfejsu u ytkownika 2 3 1 Ochrona danych 2 3 1 Trzeba jednak podkreêliç, i ze wzgl du na konsekwentnà struktur zapisu danych, w której ka dy element informacji mo e byç przechowywany tylko w jednym miejscu, oraz mechanizmy ochrony zasobów informacyjnych przed dost pem osób niepowo anych najwy ej trzeba oceniç systemy b dàce aplikacjami relacyjnych baz danych. LITERATURA 1. Itasse S.: Neues Konzept zur Teil-Automatisierung von Prozessabläufen in der Lagerhaltung, Maschinenmarkt. Das Industrie Portal, 28.04.2011, www.maschinenmarkt.vogel.de. 2. Piasecki D.: Warehouse Management Systems, Inventory Operations Consulting L.L.C., www.inventoryops.com, 2001-2003 3. Wierzbicki M.: Idealny WMS, Informatyka w du ym magazynie, www.qsort.biz. 4. Marowski W.: Wykorzystanie techniki IDEF0 i relacyjnej bazy danych we wspomaganiu procesów projektowych. Przeglàd Mechaniczny nr 10, 2010, ss. 18 25. 5. Riordan R. M.: Projektowanie systemów relacyjnych baz danych. RM Publishers, Warszawa 2000. 6. Monsen L.: Microsoft Excel 97 w zastosowaniach. LT&P, Warszawa 1999. 7. Popov D.: Aplikacja hybrydowa. To i owo, Linux-Magazine nr 78/2010, ss. 70 72. 20 ROK WYD. LXXI ZESZYT 5/2012