ebr pmx mes v2.5
DESCRIPTION
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES)TRANSCRIPT
POLITECNICO DI MILANO Facoltà di Ingegneria dell’Informazione
POLO REGIONALE DI COMO Master of Science in Computer Engineering (For the Communication) An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) Supervisor: Prof. Marco Brambilla
Assistant Supervisor: Prof. ………………
Master Graduation Thesis by: Mohammad Jannatul Ferdous
Student Id. number 707241
Academic Year 2007/2008
POLITECNICO DI MILANO Facoltà di Ingegneria dell’Informazione
POLO REGIONALE DI COMO Corso di Laurea Specialistica in Ingegneria Informatica An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) Relatore: Prof. Marco Brambilla
Correlatore: Prof. ………………
Tesi di laurea di: Mohammad Jannatul Ferdous
Matr. 707241
Anno Accademico 2007/2008
I dedicate this work
to my parents Mostofa and Jahan
to my sistem mim
to all of my friends
and to my coming wife
……… the never missing support to my studies
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
1
Sommario
L'evoluzione delle Soluzioni di Warehouse Management (WMS) è una parte molto importante del
Sistema di Esecuzione Manifatturiero (Manufacturing Execution System). In origine le WMS erano
solo dei sistemi per il controllo degli spostamenti e dello stoccaggio dei materiali all'interno di un
magazzino. Oggi il ruolo delle WMS si sta espandendo, andando ad includere la produzione, la
gestione dei trasporti, la gestione degli ordini, fino anche a completi sistemi contabili. I WSM
presentano ancora alcuni problemi generali tra cui quelli di localizzazione degli impianti di
produzione, quelli legati alla definizione processi efficienti per la raccolta, e quelli che riguardano la
visualizzazione del magazzino. La visualizzazione del magazzino è il problema principale tra quelli
riscontrati e il prodotto Rockwell Automation PMX MES ne fornisce un esempio rappresentativo. Ho
quindi deciso di effettuare un lavoro di ricerca per trovare una soluzione al problema di
visualizzazione, provvedendo altresì a fornire la possibilità di importare le funzioni legate al trasporto
dall'interfaccia utente in maniera più soddisfacente, efficace ed efficiente.
In questo documento viene presentata un'implementazione della parte di visualizzazione e di trasporto
per un magazzino usando la Warehouse Management Solution MES, con lo scopo di migliorarne
l'interazione con l'utente, l'efficacia e l'efficienza. La parte introduttiva di questa tesi presenta le
caratteristiche del prodotto PMX MES di Rockwell Automation, la soluzione, la tecnologia e gli
strumenti utilizzati, l'architettura PMX MES, e il framework. La parte successiva comprende una
recensione dei prodotti usati e del lavoro svolto, evidenziando altri prodotti correlati a PMX MES,
progetti realizzati con WMS e teorie riguardanti il sistema. Successivamente si analizzando i requisiti
delle principali attività da svolgersi durante il lavoro di tesi, con particolare attenzione ai requisiti
funzionali e ad alcuni requisiti non funzionali della compagnia. Si passa in seguito al completamento
della progettazione del modello di struttura di dati, dei relativi diagrammi delle classi, delle attività di
trasporto, dei diagrammi sequenza che descrivono il trasporto e infine alla creazione dei diagrammi di
deployment. Vengono poi presentate l'implementazione scelta e le tecniche usate per risolvere alcuni
requisiti particolari come i linguaggi di programmazione ammessi, gli strumenti di sviluppo da usare, i
framwork e le librerie. Viene presentato anche un piano di sviluppo dettagliato per le prime tre
iterazioni dell'analisi dei requisiti, che includono le stima di costi, budget e allocazione delle risorse
effettuate nella fase iniziale del progetto e in quelle intermedie. Per finire viene sintetizzato l'output del
processo di implementazione, inclusi i passi intermedi per raggiungerlo e le schermate corrispondenti.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
2
Abstract
The evolution of Warehouse Management Solution (WMS) is very important part of Manufacturing
Execution System. Initially it is a system to control movement and storage of materials within a
warehouse. The role of WMS is expanding manufacturing, transportation management, order
management, and complete accounting systems. There are still some general problems in WMS such
as plant location problems, efficient order picking processes, visualization warehouse problem. The
warehouse visualization is one of the major problems among all and Rockwell Automation PMX MES
is the ideal example of that. I therefore decided to conduct a research work to find the solution of
visualization and how to import transport functionality from the visual interface with more user
satisfaction, efficiency and efficient way.
This paper presents an implementation of visualization and transportation of warehouse in to
Warehouse Management Solution regarding MES in order to increase the user interaction, efficient
and efficiency. The background of the thesis is presented by highlighting PMX MES of Rockwell
Automation’s solution, used technology and tools, PMX MES architecture, and frameworks. Then I
explain a review of the related products and work, highlighting other related product of PMX MES,
related works of WMS, and related theory of the system. After that, I analyze the requirements of the
main activities of thesis, with particular attention of the functional requirements as well as also some
non-functional requirements of the company. Then, I complete the design of data structure model,
related class diagram, activities of transportation, sequence diagram of transport creation and
deployment diagram as well. And then, I present my implementation choice to solve particular
requirement in terms of used programming languages, development tools, frameworks, class libraries
as well as solving techniques. I also present the detailed project plan for the first three iterations of the
requirement using initial and intermediate project planning in term of cost estimation and budgeting
and resource allocation. Finally, I summarize the output of the implementation including the steps to
reach the output and corresponding screen shots as well.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
3
Contents Sommario...............................................................................................................................1
Abstract..................................................................................................................................2
Acknowledgement..................................................................................................................7
1 Introduction....................................................................................................................8
2 Background ..................................................................................................................13
2.1 About PMX MES .................................................................................................13
2.2 Used Technology & Tools ....................................................................................14
2.3 PMX MES Architecture........................................................................................15
2.4 EBR PMX MES Framework.................................................................................19
3 EBR PMX Related Products and Works .......................................................................22
3.1 MES Related Product............................................................................................22
3.1.1 PMX Warehouse MES™ ..............................................................................23
3.1.2 PMX Visual MES™......................................................................................23
3.1.3 PMX Recipe MES™.....................................................................................24
3.1.4 PMX Schedule MES™..................................................................................24
3.1.5 PMX Dispense MES™..................................................................................25
3.1.6 PMX Connect MES™...................................................................................25
3.1.7 PMX SkillTrack MES™ ...............................................................................26
3.1.8 PMX EBR MES™ ........................................................................................27
3.1.9 PMX Equipment Management MES™..........................................................27
3.2 WMS Related Works ............................................................................................28
3.2.1 Warehouse Plant Related Algorithm..............................................................28
3.2.2 Other WMS System ......................................................................................30
3.3 EBR Related Theory.............................................................................................31
4 Requirements Analysis .................................................................................................33
4.1 Non-Functional Requirement ................................................................................33
4.1.1 Warehouse Visualization algorithm...............................................................33
4.1.2 Presentation framework.................................................................................35
4.2 Functional Requirement ........................................................................................36
4.2.1 Warehouse Transportation.............................................................................37
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
4
4.2.2 Warehouse Plant Visual Representation ........................................................39
4.2.3 Warehouse Plant Navigation .........................................................................42
4.2.4 Transportation in Warehouse Plant................................................................43
4.2.5 Batch Review Tree........................................................................................44
4.3 Use cases ..............................................................................................................47
4.3.1 Transportation...............................................................................................47
4.3.2 Warehouse Plant Navigation .........................................................................48
4.3.3 Transportation from Graphical Representation ..............................................50
5 Design ..........................................................................................................................52
5.1 Data Structure Model (ERD).................................................................................52
5.1.1 ERD Diagram ...............................................................................................52
5.1.2 Description of the Tables...............................................................................53
5.2 Class Diagram Construction..................................................................................54
5.2.1 Class Diagram...............................................................................................54
5.2.2 Description of Key Classes of the System .....................................................55
5.3 Activity Diagram Construction .............................................................................58
5.3.1 Activity Diagram of Transportation (Top Level) ...........................................58
5.3.2 Description....................................................................................................59
5.3.3 Decomposed Activity Diagrams....................................................................60
5.4 Sequence Diagram Construction ...........................................................................63
5.4.1 Sequence Diagram of Transport Order Creation (manual type)......................63
5.4.2 Sequence Diagram of Transport Order Creation (automatic type)..................64
5.5 Deployment Diagram Construction.......................................................................65
5.5.1 Deployment Diagram ....................................................................................65
5.5.2 Description....................................................................................................66
6 Implementation.............................................................................................................67
6.1 Development Strategy...........................................................................................67
6.1.1 Spiral Model .................................................................................................67
6.1.2 Extreme Programming ..................................................................................68
6.2 EBR Transportation ..............................................................................................69
6.2.1 Transport Order Creation ..............................................................................71
6.2.2 Transport Order Execution ............................................................................73
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
5
6.2.3 Transport Order View & Searching ...............................................................74
6.3 Warehouse Plant Algorithm..................................................................................76
6.3.1 Design WarehouseModeling Algorithm.........................................................76
6.3.2 Implement Visualization & Navigation .........................................................80
6.4 Transportation in Warehouse Plant........................................................................81
6.5 Presentation Framework........................................................................................81
6.6 Batch review Tree Implementation........................................................................85
7 Detailed Project Plan ....................................................................................................86
7.1 Cost Estimation and Budgeting .............................................................................86
7.1.1 Function Point (FP) Analysis.........................................................................86
7.2 Initial Project Planning..........................................................................................89
7.2.1 Resource Available for the Project ................................................................89
7.2.2 Allocation .....................................................................................................89
7.3 Description of Project Monitoring and Controlling................................................90
7.3.1 1st Internal check: Week 6 .............................................................................90
7.3.2 2nd Internal check: Week 8 ............................................................................94
7.3.3 3rd and final internal check: Week 10.............................................................98
7.4 Final scenario......................................................................................................102
8 Results of the Implementation ....................................................................................103
8.1 Transportation.....................................................................................................103
8.1.1 The steps of transportation ..........................................................................103
8.1.2 Screen shots of transportation......................................................................104
8.2 Visualization of warehouse plant and transportation............................................107
8.2.1 The steps of the visualization plant (Part 4) .................................................107
8.2.2 Screen shots of visualization plant (Part 4) ..................................................107
8.3 Batch review tree ................................................................................................108
8.3.1 The steps of the Batch Review tree..............................................................108
8.3.2 Screen shots of Batch Review tree...............................................................109
8.4 Configuration......................................................................................................111
8.5 How to install or update ......................................................................................111
9 Conclusion .................................................................................................................113
References: ........................................................................................................................114
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
6
Annex A (Screen shots of EBR)……………………………………………………….……115
Annex B (Screen shot of Project Plan)……………………………………………………...124
Annex C (Earned value calculation of Project Plan)………………………………………..126
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
7
Acknowledgement
I have put a lot of work into my thesis to complete the whole requirements which is related to
warehouse management fields and Manufacturing Execution System as well. This could not
have been possible without the kind assistance of some people to whom I would like to
express my gratitude.
A never-ending thanks to my parents Golam Mostofa Khan and Akter Jahan Mostofa, whose
love for their son has always been my point of reference. Thanks to my only sister also for her
encouragement.
A special thanks to Dr. Marco Brambilla, Assistant Professor, Department of Information
Technology, Politecnico do Milano, for good advice and suggestions. He also reviewed the
thesis and contributed valuable points of view and suggestions regularly. Thanking you very
much.
A special thanks to Professor Piero Fraternali, Department of Information Technology,
Politecnico do Milano, for introducing me as referee with the company before starting this
thesis, and for giving valuable comments to encourage me time to time. Thanking you too.
I would like to thanks all of my friends at Politecnico di Milano and colleagues at Rockwell
Automation for their support in validating and discussing the ideas presented in this work:
Pintu Chandra Shill, Md. Iqbal Mahmood, Lorenzo Cogliati, and also Valerio & Pierluigi.
Thanks to all.
Thanks also to my best friends who always support me from my home country in the good
and bad times: thank you Sultan-e-Alam Khan, Abdullah Al Mehedi Hasan, Syed Ziaur
Rahman, and Kazi Wahidur Rahman.
April 2008
MJ Ferdous
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
8
1 Introduction
The evolution of Warehouse Management Solution (WMS) is very similar to that of many
other software solutions. It is a key part of the Manufacturing Execution System and primarily
aims to control the movement and storage of materials within a warehouse and process the
associated transactions, including shipping, receiving and picking. The objective of a WMS is
to provide an application to automatically receive inventory, process orders, and handle
returns. There are still some general problems in WMS such as plant location problems,
efficient order picking processes, visualization warehouse problem.
This thesis project is proposed by Rockwell Automation S.r.l. with the title “An
implementation of visualization of Warehouse including Transportation on WMS
regarding Manufacturing Execution Systems (MES)”. The implementation of the project
will be an extension of Warehouse Management Solution porting some functionality from
stand-alone application architecture to a WEB application and developing a general algorithm
for warehouse visualization as well as adding some new features into the new architecture.
Warehouse Management Solution (WMS) – Desktop Application is a part of Manufacturing
Execution Solution (MES) of Rockwell Automation Solution [*Figure 1.1]. Here, Production
Management Execution (PMX) is the solution for pharmaceuticals field based on MES.
Electronic Batch Recording (EBR) – web application is another part of PMX. EBR is now
running under Apache web server and developed by Python, C++ and Spyce programming
language in the latest developing version.
There are some important functionality that are present in WMS such as allocation storage
area, relocation, transportation, data movement, check stock etc which are used by customers
frequently. Sometimes they also need transportation functionality when access EBR web
application from outside of the local network beside they also need to see the availability and
current status of the storage location in the warehouse. Most of the client currently use textual
records list to see storage location availability and status from the desktop application of
WMS and few of them use third party software to visualize warehouse plant separately.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
9
In both cases, the operator needs to remember storage location identifier or name when switch
back to the movement operation in the desktop application. Moreover, it is also less efficient
and time consuming work to make any operation by remote access of desktop application
while they are outside of local network. Since third party software is external based software,
there was no possibility to add any functionality there such as transportation. Rockwell
development team started to think how to solve this scenario in the next release version while
some companies were asking to integrate transportation functionality in EBR.
Finally, the research and development (R&D) team decided to make an experiment to
visualize warehouse plant in their EBR system and also import movement functionality from
WMS as well as use it from the graphical interface of warehouse plant if it is possible. After
that, they summarized the following problems to solve the above requirements:
1. Make available warehouse transportation functions into a WEB application;
2. Define an easy-configurable method for a visual definition and representation of a
high-rack warehouse plant;
3. Allow navigation trough warehouse starting from an high-level point of view (the
plant) through the intermediate levels (storage areas and location) till the low level
details (cells content);
4. Allow the movements management (relocations, transportations) using the new visual
application;
5. Integrate a presentation framework with new Spyce platform using MVC;
6. Implement a Batch Review Tree with a visual navigator to access process related data.
But it was not possible to be an experiment by R&D team at this moment because they were
extremely occupied with the current release product. And it was not wise decision to give this
task to the external company for developing because of security issue of existing source code
and money issue as well. In addition, there was no open source software for visualization of
warehouse plant in the same platform so that company can integrate it with their solution.
In my thesis, my intention was to build up an updated version to be used as web application
for fulfilling the growing demand of the present internet world with integrating the following
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
10
features. My preliminary work was to export these functionalities into web application so that
user can operate transportation from the outside of their local network. And then I design an
algorithm and develop some easy way with graphical representation to configuration /
navigate the high-rack warehouse plant and to integrate it with EBR web application as a new
module and using an appropriate presentation framework for that. Finally, I integrate a
presentation framework for new architecture. In addition, I also developed batch review tree
for shop order detail in old EBR version.
Warehouse Management Solution (WMS )
Oracle
Electronic Batch Recording ( EBR)
Server
Client
Socket
Client
Client
User
DB
Web server
Internet
WMS - Desktop Application
EBR - Web applicationWeb server - ApacheProgramming Language -Python , Spyce
Figure 1.1: General Architecture of Rockwell Automation PMX MES Solution
The overview of remaining chapters of the thesis is organized as follows:
Chapter 2 presents the background of the thesis, highlighting PMX MES of Rockwell
Automation’s solution, used technology and tools, PMX MES architecture, and frameworks.
As a result, this chapter will describe how solution support in the life science industry
regarding manufacturing, what are the technology and tools have been used behind this
solution, how components are architecturally layered as well as which framework has been
used in EBR application and how.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
11
Chapter 3 presents a review of the related products and work, highlighting other related
product of PMX MES, related works of WMS regarding Management Executing System
(MES), related theory of the system. As a result, this chapter point out key features of other
products, lacks of current approaches or algorithm with the issue relevant of my development
on WMS and the user understanding of related theories.
Chapter 4 analyses the requirements of the main activities of thesis, with particular attention
of the functional requirements as well as also some non-functional requirements of the
company where explains what are the requirements to develop new features such as importing
transportation functionality and which research is needed to implement visualization of
warehouse plant as well as integrating a presentation framework into the new architecture.
Chapter 5 shows the design overview of the implementation part, presenting data structure
model, partial class diagram, activities of transportation, sequence diagram of transport
creation and deployment diagram. It gives the static structure and behavioral view of the EBR
system.
Chapter 6 presents the implementation choice of particular requirement in terms of used
programming languages, development tools, frameworks, class libraries as well as solving
techniques. As a result, this chapter will point out what are the development strategy has been
used, how am I solved the requirements using particular technique or design algorithm and
how am I used presentation framework in the new system.
Chapter 7 presents the project plan detailed for the first three iteration of the requirement
using initial and intermediate project planning in term of cost estimation and budgeting and
resource allocation. It also shows initial as well as finial scenario with respect to project
statistics.
Chapter 8 summarizes the output of the implementation including the steps to reach the output
and corresponding screen shots as well. As a result, it describes the steps of each part to
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
12
generate the output and then describes how to perform those steps using textual description of
sub-steps as well as related screen shot of steps or sub-steps.
Finally, the conclusion shows the final results and future works of the thesis in terms of
benefits of the company, Research action will focus on the ongoing enhancement of the
features of the approach.
Appendix includes the related materials of the reports where project plan calculation of MS
Project 2003, Screen shot of the implementation as well as graphical representation of project
planning are present.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
13
2 Background
This section presents the background of the thesis, highlighting PMX MES of Rockwell
Automation’s solution, used technology and tools, PMX MES architecture as well as
frameworks. The interest was to design as well as develop something which is related to web
architecture, Service Oriented Architecture, Enterprise Resource Planning (ERP) & ASP.Net
platform. This project was related to SOA, ERP and also Web architecture. One of the
complex tasks was to show visual interface of WMS (Warehouse Management Solution) and
transportation from the visual interface of storage location through navigation. Another
challenging requirement was to implement current presentation framework into new Spyce
platform. The following sub-section will introduce the whole system of MES, used tools &
technology, general system architecture of PMX as well as EBR framework.
2.1 About PMX MES
Rockwell Automation's solutions for the Life Sciences Industry cover the entire life cycle of a
pharmaceutical or biotechnology product. The complete architecture includes Manufacturing
Execution Solutions (MES) — spanning the phases of the life cycle from Research &
Development (RDM) and Clinical Trial Management (CTM) through production utilizing
Integrated Architecture Solutions.
Rockwell Automation provides PMX MES for on-demand manufacturing information to help
improve productivity and reduce time-to-market. PMX MES offers increased flexibility in
state-of-the-art data management and process execution.
For example, the software helps to simplify the integration of information between resource
logistics and order fulfillment and obtaining raw materials and customer order information
from the Enterprise Resource Planning (ERP) system, it also makes sure the plant floor
receives, processes and documents the proper ingredients and thus enables process accuracy at
increased throughput.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
14
PMX MES allows Life Sciences companies to access key manufacturing information on
demand in order to optimize production processes and make manufacturing capabilities a
competitive advantage. The Figure 2.1 shows how Rockwell Automation's solutions support
different sections of the Life Sciences companies.
Figure 2.1: Graphical representation of Rockwell Automation solutions
2.2 Used Technology & Tools
The following technology & tools have been used to developed Management Execution
System (MES) solutions:
Table 1: Technology and Tools to support PMX MES solutions
Type Technology / Tools
Programming Language Python, Spyce, C++
Client Side Script JavaScript
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
15
Database Oracle 10g Server
Web Server Apache Server
Architecture Multi-tier Architecture
Development Environment Visual Studio 6.0, MED – Text Editor v3.02
Reporting Design List & Lables
Designing Tool Microsoft Visio 2003, SnagIt 8
Database Tool Keep Tool 6, Benthic Software
Source Control CVS server
2.3 PMX MES Architecture
This section will explain about overall architecture of PMX MES using Graphical User
Interface (GUI) layer, Business Layer (BL) & Data Access Layer (DAL). The Figure 2.2
shows three layer GUI layer, BL & DAL (Application, Scripting, Reporting & Database
interface) layer and Database system layer.
GUI layer represents the front-end part of windows or web application where OPENUI is for
the web application. Business Layer is developed using Python & C++ mostly and List &
Label for reporting. Then DAL (pddbaccess) is developed using C++ which interacts with the
database system.
The following table describes the tools & technologies that is used in the architecture
including motivation and properties to use.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
16
Figure 2.2: A system architecture of PMX MES of Rockwell Automation solutions
Table 2: Motivation and Properties of used Technology and Tools
Technology / Tools Description
GUI-Tool OpenUI is used as the GUI tool. Motivation:
Design of user interfaces Creation of libraries with
interface elements Controlling of the user interface Validation of user entries
Graphical User Interface
GUI
Database system SELECT FROM... WHERE...
Application
Database interface
Scripting
Reporting
ORACLE 10g SERVER
Trigger Stored
Procedures Stored Functions
ROQUE WAVE SourcePro
Core, DB, Net
C++ BASIS
LABEL & FORMS
LIST & LABEL
PYTHON
PDDBACCESS
OPEN UI
PDCORE
WINDOWS PRESENTATION MANAGER
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
17
Properties: Availability on all platforms Clear distinction and simple interface between application and
user interface Independence of the programming language OpenUI offers a simple but powerful (extendable) script language
for procedural control and layout design (OpenUI Programming Language).
Easy implementation of a graphic tool Simple creation of a library for interface elements (class for input
fields for order numbers, start- / end date and similar standard primitives)
Application The programming language for core development is C++.
Motivation: Object-oriented development Realization of basic classes Realization of data processing Properties: Extensive class libraries Wide propagation Many manufacturers of compilers Standardization by ISO Encapsulation of data
Script languages As macro language for calculations and program control ‘Python’ is used.
Python is available on all platforms (in source code), is widespread, includes an interface to C, and is freely extendable. As macro language e. g. for controlling the user interface or validation of the user entries OPL is used (OpenUI Presentation Language). Motivation:
Necessity of a simple script language e. g. for performing calculations or for program controlling
Customization without compiler C/C++ interface Error handling Interface to the database
Properties: Object-oriented interpreter language Automatic memory management (garbage collection) Exception handling Multiple inheritance Useful data structures: tuple, list, dictionary Database interface (Oracle, Informix, ODBC, ...) GUI interface Debugger Extensive API, hence easy integration with C as well as simple
extendibility through DLLs Powerful string functions (regular expressions) Extensive 'internet functions'
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
18
Report generation For the generation of reports the tool ’LIST&LABEL’ is used. The respective data is filled in by the program itself. The report layout is freely adjustable by the user. Motivation:
Realization of complex reports including the implementation of graphic elements
Properties: Library for Windows platforms Interface to Python Implementation of any objects (through callbacks) Availability on all platforms
Database connections
For the connection to the databases the class library DB is used (Rogue Wave). It provides a general interface to common SQL databases. Moreover it contains important basic classes (container, strings, files, persistence,time/date, ...).
Database system ORACLE 10g is used as the standard database system Motivation:
Efficient and safe storage and data management Properties:
Relational database Client/server architecture Management of large data quantities and many
competing database users Open industrial standard Data protection and data security concepts High availability Data integrity concept Distributed systems
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
19
2.4 EBR PMX MES Framework
EBR PMX MES is developed basically based on Thin Client architecture. Thin Client
architecture is a growing requirement of many companies today and it was a fundamental
requirement for the development of EBR. Typical reasons, among others, for a Thin Client
architecture are
absence of client installations on every user‘s PC because the browser on the end-
user‘s computer is used as application client
easy software upgrades and easy maintainability
These are the basic non-functional requirements “behind” the EBR architecture. EBR
architecture influences
the user interface that the GUI must be build in terms of HTML
the software’s usability that is necessity to spread modal dialogs over many HTML
pages instead of integrating modal dialogs into a “rich” GUI (e.g. by using tabs)
the use of HTTP as communication protocol between client and server (standard for
web applications) that HTTP, as the “communication medium” between client and
server, is a stateless protocol what leads to the necessity to control and protect the
application work flow with other “techniques” (essential for processing dialogs that
are spread over many requests) [see figure 2.3]
The Figure 2.3 shows the different tiers and how EBR is embedded into Mod_python is an
Apache module that embeds the Python interpreter within the server. EBR is a web
application integrated in mod_python. In the meantime there exist a couple of such
frameworks which are divided into event-driven and action-driven frameworks. EBR is based
in some parts on the Python framework, which itself was based on STRUTS, that has
established as a de-facto standard in the Java world.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
20
Figure 2.3: A system architecture of PMX MES of Rockwell Automation solutions
The Presentation Framework is counted among the action-driven frameworks. It is based on
the MVC paradigm. The Presentation Framework particularly deals with the following tasks:
HTTP-Request Handling and Session Management ⇓ as the basis for workflow
controlling
Workflow processing
HTML generation
Browser (IE), dynamic HTML pages & JavaScript
PALETTI
DB
SCADA Historian
EBR MOD_PYTHON
APACHE
WebWeb
TierTier
BusinesBusines
ss
TierTier
ClienClien
tt
TierTier
EISEIS
TierTier Enterprise
Information System
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
21
Figure 2.4: A system architecture of PMX MES of Rockwell Automation Solutions
WeWe
bb
TierTier
BusinessBusiness
TierTier
ClienClien
tt
TierTier
EBR
PRESENTATION FRAMEWORK
Batch Review
PMX Core
Components
Procedure Step
Processing
(based on the MVC paradigm)
MOD_PYTHON APACHE
Request Response
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
22
3 EBR PMX Related Products and Works
This section represents other related product of MES which uses in different section of
manufacturing company depending on the size of industry as well as related works of WMS
regarding Management Executing System (MES). Each of related product MES has different
visual interfaces, purpose to develop for the same industry. It also presents the theories related
to Electronic Batch Recording application as well as MES.
3.1 MES Related Product
PMX MES mesh customer manufactures with these following powerful function sets
(products) though I only worked with the PMX EBR MES. Every function set describes by
providing general description and key features of that.
Figure 3.1: Graphical overview of different products of PMX MES
Wa rehouse & Wa rehouse & Ma te r ia ls MgmtMa te r ia ls Mgmt
Ba tc hBa tc h Exe cu tionExe cu tion
Qual if ic at iQual if ic at ionon
In te rfacIn te rfaceses
Equipme ntEquipme nt Ma na ge mentMa na ge ment
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
23
3.1.1 PMX Warehouse MES™
PMX Warehouse MES uses for inventory and materials management from goods receiving to
goods issue. It consolidate warehouse management among the function sets of the PMX MES
suite, PMX Warehouse MES handles all the tasks related to material management in a GMP-
compliant environment. From inventory and material movement control to storage condition
maintenance, this tool allows you to concentrate on your creative resources for advanced
innovation.
The key features are
Complete material and batch tracking
Maintenance of storage locations and warehouses
Material allocation
Status control for batches and load carrie
Expiry date control
Inventory reporting and documentation
Automatic material identificationing data
3.1.2 PMX Visual MES™
PMX Visual MES uses to process visualization/monitoring and data acquisition and reporting.
It establish compliance in Data Acquisition among the function sets of the PMX MES suite,
PMX Visual MES contributes extensive monitoring features to your manufacturing process.
This human machine interface for supervisory control and data acquisition (SCADA)
consolidates your management, e.g., with applied reports, monitoring, and facility overviews.
The key features are
Direct machine data collection
Line monitoring
Integrated material flow control (MFC)
Log of failures, stoppages
Event-triggered processing of checklists and in-process controls (IPC)
Detailed balances
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
24
Comprehensive set of prepared reports
Object linking and embedding for process control (OPC) compliant client
3.1.3 PMX Recipe MES™
PMX Recipe MES uses to audit trailed and veion-controlled management of master data and
production recipes. It eases client Recipe Handling among the function sets of the PMX MES
suite, PMX Recipe MES provides you with targeted functions for efficient and safe recipe
development. The reusability of existing procedures and controlled veioning are just some of
the features that will help you improve your throughput rates and the quality of your master
batch records.
The key features are
21 CFR Part 11 compliant electronic signatures
Configurable veion control and release workflow
Audit trail
Graphical recipe definition
Procedure library
Archiving
3.1.4 PMX Schedule MES™
PMX Schedule MES uses for order management and finite planning on short-term bases. It
optimizes client Resource Utilization among the function sets of the PMX MES suite, PMX
Schedule MES serves as an electronic planning board with a variety of valuable features. The
clearly structured graphical user interface allows you to schedule orders, facilities, and setup
times in order to achieve optimum resource exploitation.
The key features are
Graphical planning board
Optimum order sequencing
Optimum setup times
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
25
Resource requirements
Checking of dates and resources
Simulation of alternative plans
Order progress monitoring
Interface with ERP ( PMX Connect MES)
3.1.5 PMX Dispense MES™
PMX Dispense MES uses to integrate weighing & dispensing tailored to the needs of
pharmaceutical dispensing operations. It enables a Compliant Weigh and Dispense Process
among the function sets of the PMX MES suite, PMX Dispense MES comprises forceful
features for optimum material utilization. Process-specific calculation, identification, and
control functions form the basis for you to improve regulatory compliance while at the same
time reducing costs.
The key features are
21 CFR Part 11 compliance
Prevalidated
Enforcement of compliant workflow
Extensive predefined functions
Labeling and reporting
Barcode identification
Tolerance checking
Potency calculations
3.1.6 PMX Connect MES™
PMX Connect MES uses to interface for ERP systems (SAP certified) and other connected
systems such as DMS, LIMS. It connects to the World Outside MES among the function sets
of the PMX MES suite, PMX Connect MES bares the intelligence and power required for
seamless integration. This univeal, interface allows you to link your manufacturing solution to
all relevant systems and thus reduces the chance of data alteration and loss.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
26
The key features are
Configurable to your needs:
o ERP
o LIMS
o DMS
Warehouse / inventory control systems interfacing
Data exchange with XML connector
Developed in Java™
SAP certified
3.1.7 PMX SkillTrack MES™
PMX SkillTrack MES uses for peonnel qualification, skill management and training
scheduling. It keeps customer Staff Trainings Compliant among the function sets of the PMX
MES suite, PMX SkillTrack MES supplies you with reliable management and verification
features for internal training and qualification. Extensive forecasting, planning, and
scheduling functions, as well as qualification-related access restriction will improve your
compliance considerably.
The key features are
Maintenance, routing, and veion control of standard operating procedures (SOP)
Definition of training plans
Forecasting of training requirements
Scheduling of trainings
Access based on training status
Record of all training activities
Reporting
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
27
3.1.8 PMX EBR MES™
PMX EBR MES uses for paperless electronic batch recording, workflow definition,
execution, exception handling and review functionality. It improves Performance without
Paper among the function sets of the PMX MES suite, PMX EBR MES delivers all you need
for complete electronic data handling in the manufacturing and packaging area. The
comprehensive automated documentation, electronic signature, and online plausibility check
functions, e.g., allow you to omit costly paper production and archiving.
The key features are
Paperless production
21 CFR Part 11 compliance
Thin client architecture
Graphical recipe definition
Reusable procedures
Bill of paramete
Configurable veion control and release workflow
Audit trail
Integrated material flow control
Electronic signature
Review by exception
Single repository for all compliant manufacturing data
3.1.9 PMX Equipment Management MES™
PMX Equipment Management MES uses to enhance your equipment overview. It enhances
Your Equipment Overview among the function sets of the PMX MES suite, PMX
Equipment Management MES complements your system with comprehensive, cross-PMX
features for all equipment used in the manufacturing environment. Besides othe, the
classification, scheduling, tracking, and log functions provide valuable support for your
execution and validation activities.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
28
The key features are
Highly generic structure definition
Extendible template library for freely definable types of equipment
Bill of equipment
Equipment orde with cross-PMX functionality
Automated / manual status changes
Electronic logbooks
Consolidated logbook views for powerful analysis and statistics
Complete genealogy of all types of equipment
Open client/server architecture — defined interfaces to external systems (API)
3.2 WMS Related Works
This section presents related algorithm of warehouse plant where most of them related to
solve storage location problem as well as some other WMS software developed by other
companies (I described only two) so far I found in the web. It does not match with my
requirement that is related to visualization of warehouse plant based on existing record. Here
are the following details of some existing algorithms and software.
3.2.1 Warehouse Plant Related Algorithm
Resolution of simple plant location problems using an adapted genetic algorithm: This
investigation presents an adapted genetic algorithm to resolve simple plant location problems.
The proposed algorithm applies a clustering technique as mutation guidance and a novel local
search method to enhance the solution quality. The proposed algorithm is then applied to the
fifteen test problems taken from Beasley's OR-Library (J.E. Beasley, 1990). Empirical results
indicate that the error rate of the proposed adapted GA is less than 0.3 percent. In addition, the
computational time is bounded by a polynomial function of the problem size [1].
An efficient branch and bound algorithm for the warehouse location problem: This
paper introduces an efficient and bound algorithm for a special class of mixed integer
programming problems called the warehouse location problem. A set of branching decision
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
29
rules is proposed for selecting warehouse to be constrained open and closed from any node of
the branch and bound tree. These rules are tested for their efficiency in reducing computation
times and storage requirements to reach optimal solutions. An improved method of solving
the linear programming problems at the nodes which substantially reduces the computations is
also introduced in this paper [2].
Planning of order picking processes using simulation and a genetic algorithm in multi-
criteria scheduling optimization: In profit-oriented environments, such as warehousing, the
minimization of labor costs, and thus the flexibility of labor force is an increasingly important
issue. Such an operating policy requires effective capacity planning methods to determine the
number of personnel and equipment per activity and scheduling procedures to define the
sequence of tasks by considering their strict deadline. In the following, the use of a discrete
event simulation model for multi-criteria scheduling optimization of order picking activities in
a warehouse with genetic algorithm (GA) is presented. The operative planning system
consists of a database, a discrete event simulation model, an application for capacity
estimation and a scheduling algorithm. The system was designed to support operative
warehouse management personnel in order picking process scheduling and planning [4].
A particle swarm optimization algorithm for the multiple-level warehouse layout design
problem: Warehouse operation and management is one of the essential parts of
manufacturing and service operations. The warehouse layout problem is a key to warehouse
operations. Generally, warehouse layout design models attempt to optimize different
objectives such as the orientation of storage racks, the allocation of space among competing
uses, the number of cranes, the overall configuration of the facility, etc. The warehousing
strategies can be classified as distribution-type, production-type and contract-type warehouse
strategies. In this study, a distribution-type warehouse considered that various type products
are collected from different suppliers for storing in the warehouse for a determined period and
for delivery to different customers. The aim of the study is to design a multiple-level
warehouse shelf configuration which minimizes the annual carrying costs. The turnover rates
of the products are classified and they are considered while putting/picking them to/from
shelves regarding the distances between the shelves and docks. Since proposed mathematical
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
30
model was shown to be NP-hard, a particle swarm optimization algorithm (PSO) as a novel
heuristic was developed for determining the optimal layout [5].
3.2.2 Other WMS System
Lilly Software (ERP, WMS, CRM, and MRP): Announces New Features and
Enhancements in VISUAL Manufacturing Version 6.2. Version 6.2 is packed with beneficial
tools to help automate business processes and streamline workflow. VISUAL Manufacturing
now includes the much anticipated MRP by Warehouse capabilities, which allow companies
to set different planning policies for separate warehouses by part. Lilly Software also offers a
new Plant Maintenance module, which helps companies easily schedule and manage planned
and unplanned maintenance activities. Customers who use VISUAL Design Link will find
support for AutoCAD 2000 and EDI users will see integration enhancements [7].
Logility (WMS, TMS, B2B, Nasdaq: LGTY): Announces Version 6.0; Logility Voyager
Solutions Version 6.0 expands Logility's Microsoft-centric platform to include SQL Server
2000 and extends its native support of the IBM eServer iSeries (AS/400). Logility Voyager
Solutions 6.0 also delivers significant functional enhancements to help trading partners
collaborate across both private and public marketplaces increasing supply chain optimization,
expanding visibility and providing supply chain event management [7].
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
31
3.3 EBR Related Theory
Warehouse
– Named warehouse (A, B, C..) and type: internal/external warehouse
– A warehouse contains storage areas
Storage Area
– Named storage area (e.g. production area, goods receipt). The storage type
describes the area (e.g. line warehouse)
– Define QC-statuses of storage areas (quarantined, released, blocked)
– A storage area contains storage locations
Storage location (SL)
– Shelf A01, shelf C04, …
– Spatial arrangement (topology) of the individual locations is defined
Storage location type
– Characterizes the properties of equal storage locations by attributes
Figure 3.2: Graphical representation of different objects of PMX MES
Inventory:
Warehouse Storage Area
Material in trading unit
Storage Location
Batch
Load Carrier (LC) = single transfer unit
Container = (TU)
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
32
– administrated on the level of TU´s
– always refers to a batch
– is always on a load carrier / in a trading unit (TU).
Load carrier (LC):
– determines exactly one LC (transfer unit).
Trading Unit (TU):
– describes the smallest unit of a batch
– usually describes material in a container.
Batch:
– Homogenous manufactured material related to an order
– Result of one process
Thin Client: The term Thin Client architecture is based upon the emphasis on
doing as less as possible on the client side. So this architecture places the storage
and processing burden on the server side and relegating the end-user's computer to
the minimal role of web browser access. May be advantage for the customer:
– Ease of client installation and configuration management
– Ease of application configuration management
– Just-in-time deployment
CVS - Concurrent Versions System: CVS is a version control system, an important
component of Source Configuration Management (SCM). Using it, you can record
the history of sources files, and documents. It fills a similar role to the free
software RCS, PRCS, and Aegis packages[3]:
– Client/server CVS enables developers scattered by geography or slow modems
to function as a single team.
– Unreserved checkouts, allowing more than one developer to work on the same
files at the same time.
– CVS provides a flexible modules database that provides a symbolic mapping
of names to components of a larger software distribution
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
33
4 Requirements Analysis
One of the most important phases is analyzing requirements of the main activities, in
collaboration with the stakeholders, such as customers or users of the Rockwell Automation’s
PMX MES system. The new system requirements are to be deliverable for a single client at
this moment but the target is to be general for others system as well.
The requirement of the project is to extension of Warehouse Management Solution (WMS)
porting some functionality from stand-alone application architecture in to WEB application,
developing new features such as importing transport functionality, researching to develop an
optimized algorithm to implement visualization of warehouse plant as well as integrating a
presentation framework into the new architecture.
This section will summarize the most important requirements during analysis phase, with
particular attention of the functional requirements and also some non-functional requirements
of the company. Each section is described by relevant pictures, diagrams, use cases and
functional and non-functional description of the main steps.
4.1 Non-Functional Requirement
This section will define the non-functional requirement of the new system, aiming to
implement it in the functional requirement. The formal textual description and graphical
figure are provided for each requirement including conceptual sketch of the implementation if
needed. The textual description will give the general idea of the requirement as well as the
graphical figure will give the visualization concepts.
4.1.1 Warehouse Visualization algorithm
Since the warehouse plant has common attributes for any kind of manufacturing company, it
is important to generalize the algorithm to use it for others. The requirement is optionally
extended to develop a general algorithm for warehouse plant and implement it for Life
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
34
Science manufacturing company warehouse plant. The algorithm has to be work with Aisle,
High Rack Level, Bay and Direction attributes and able to manipulate matrix and generate a
graphical view from the existing data of any warehouse management system (WMS).
The following figure 4.1 is given to get the idea of generating algorithm of warehouse plant
visualization. Here we assume that a sample warehouse has one storage area including several
storage locations using two Levels high rack, number of Aisles, Directions (Left & Right) and
numbers of Bays. Level 1 and 2 are presented in two parts and Bay and Aisle are represented
horizontally for each where storage location and they are presented one after another depends
on maximum length of Bay. For example, each storage location has the following
information:
For each Storage Location Level 1…n
Aisle 1…n
Direction L / R
Bay 1 …n
High rack warehouse
IN
OUT
1
IN
OUT
High rack warehouse
IN
OUT
2
IN
OUT
Level
Level
Aisle1
Aisle1
Bay
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
35
Figure 4.1: Graphical representation of a part of storage area (2 levels) of a warehouse plant
It is easily distinguishable from the figure 4.1 that it is only possible to represent one level
graphical representation of storage area at the same time in the 2-Dimentional view. So, the
implementation of the above algorithm would be look like the following table for each Level
of Storage Area.
Where:
[ B = Bay,
A= Aisle,
Left/Right = Direction,
X = SL,
- = Empty SL ]
Bay/
Aisle
Left Right Left Right Left
B1 X X X X …
B2 X X X X …
B3 X - X X …
B4 - X X X …
B5 X X X X …
B6 X
A1
X
X
A2
X
…
Figure 4.2: Conceptual sketch of a part of storage area of a warehouse plant
4.1.2 Presentation framework
It is necessary to implement a presentation framework with new Spyce platform using MVC
(Model view Controller) after completing all functional requirements but there is no well
defined framework for Spyce + python application using MVC like Apache Struts. However,
they developed a presentation framework by their German research development team
according to the following figure 4.3.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
36
It could be possible with the help of old version presentation framework which is based on
Struts principles even though Struts is not directly used because it is only available for Java 2
EE web application and the presentation framework of existing platform is programmed in
Python & HTML + PDL-SQL.
So, the complete principles “behind” Struts that are responsible for the world-wide success of
this open source framework were implemented of their HTML + PD-SQL version. Now the
challenging task is to integrate this presentation framework with new Spyce platform using
this. The current presentation framework of the old version is working look like the following
diagram and the requirement is to implement it for the Spyce platform according to their
suggestions.
Figure 4.3: Architectural representation of presentation framework of the old system
4.2 Functional Requirement
V C
HTTP request HTTP response
FRONT CONTROLLER
Deployment Descriptor 1
Deployment Descriptor 2
REQUEST PROCESSOR
1
REQUEST PROCESSOR
2
...
Action A Action B Action C ...
HTML generati
ng scripts (executed on the server
side)
Tag- Librarie
s
M
HTML JavaScript Cookies
CLIENT (Browser)
Business Delegate
System State Business Logic
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
37
This section will describe about the functional requirement related to EBR module of the
Rockwell Automation’s PMX (MES) system. Each requirement will explain with the textual
description, functional requirement table as well as related figure. The textual description will
describe about the general idea of the problem and the concrete steps will identify in the table
including references steps. Moreover, the related figure will give the complete understanding
of the requirement graphically.
4.2.1 Warehouse Transportation
It is necessary to make available warehouse transportation functions into a WEB application.
Transportation is basically done by transports and relocates Trading Unit (TU) / Load Carrier
(LC) from one storage location (source) in to another storage location (target). Transport order
is necessary to control the movement of goods through the warehouse. When a transport order
is generated, the system executes various plausibility checks, to determine whether the storage
attributes of the selected target location match those of the load carrier or trading unit to be
transported.
Transportation can be done among storage locations of one storage area or among storage
locations of different storage area or even among storage locations of different storage area of
two different warehouses. The figure 4.4 shows how transportation works from Warehouse A
to Warehouse B by creating transport order manually or automatically and then execution
manually and so on. Here the creation means the order is created in the system to transport TU
/LC and the execution means the TU/LC physically moved to target location.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
38
Figure 4.4: Graphical representation of Transportation among warehouse A & B
The following table 4.1 will represent the required main steps of implementing transportation
function where F1, F2 & F3 indicates the Function Requirement Step (FRS) Number.
Table 3: Functional description of warehouse transportation
FRS
No.
Description of Requirement Reference to Function
or Activity (ID)
F1 The steps of creation transport order so that the user is guided to
create order in an easy and predictable way
F2 The steps of execution transport order so that the user is guided to execute a created order in an easy and predictable way
F3 The steps of view list of transport orders which are already created,
executed or moving.
FRS F1: When the user request for the steps of creation transport order, the system need to
take LC/TU number from the keyboard or barcode reader and creation type (automatic or
manual) as input. Then the system will check the validation of LC/TU as well as availability
to create order and go for 2nd step of creation if it is valid otherwise throw an exception from
LC/TU identification at target SL
Warehouse A Warehouse B
Target Storage Area Source Storage Area
LC/TU identification (option)
Target Storage Location
Source Storage Location F2: At execution manually
F1: At creation automatically
F1: At creation manually
Other Storage Area
Other Storage Area
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
39
the system. In the 2nd step, the system will ask for target storage area and location (if creation
type is manually) and send it to the server to check the valid area & location. If the location
and area are valid and compatible for LC/TU then the creation will be done successfully. User
will be able to cancel the transaction from any intermediate step of the above flow of creation
order.
FRS F2: When the creation is done, the LC/TU is ready to move physically and the steps of
execution of the transport order will be start when LC/TU starts to move. The system will take
LC/TU number from the keyboard or barcode reader as input before start to move and the
status would be Moving of that transport order. The system will take again LC/TU number
from the keyboard or barcode reader as input after reach into target location and the status
would be Finish of that transport order. The system would be ready again to create another
transport order (FRS F1) of this LC/TU after this status.
FRS F3: When the user create, start to execute (moving), execute transport order, it is also
necessary to view the list transport orders which are already created, executed or moving. The
user will able to search using TO number, LC/TU number, as well as by status including list
of all transport orders. The logical AND, OR & XOR options have to be available with each
item of them and user will able to choose according to their choice.
4.2.2 Warehouse Plant Visual Representation
This has to be an easy-configurable method for a visual definition and representation of a
high-rack warehouse plant using a generalized algorithm which is developed as not-functional
requirement. The components of a warehouse have a hierarchical structure. The component
“storage area” defines a physical area in a warehouse and is relevant to goods receipt and
goods issue transactions. Each storage area consists of a specified number of storage
locations. This number depends on the warehouse type (e. g. high-rack warehouse). Storage
locations with identical dimensions are grouped as types. This facilitates the management of
the storage locations and reduces the time required for data input.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
40
Figure 4.5: Graphical representation of warehouse plant in 2D view.
Here, Warehouse Plant (WP) is represented in the graphical view of Storage Area & Storage
Location of a WP in 2- dimensional view in figure 4.5. Storage Area 1 is showing single
Level, 2 Aisle and 10 Bays for each side of Direction (Left / Right). The LC/TU will OUT
between the creation of transport order and start to execute order. ). The LC/TU will IN
between start to execute and to finish executing order. The representation of the warehouse
has to implement in the web page only representing the storage areas inside each warehouse
and storage location inside each storage area indicating current Level, Aisle, Bay, and
Direction.
Warehouse Plant
Storage Area1
IN
reject
High rack warehouse I-Point
Shuttle
IN IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT/IN
Storage Area2
. . .
Aisle1
Aisle2
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
41
The conceptual view of the warehouse plant can be look like the following figure 4.6 in the
web page and has to be accessible from warehouse to storage area and storage area to storage
locations. It is a graphical interface of storage of the warehouse plant where user can see all
Storage Area of the WP and can also see the inside view of each SA. Each SA consists by a
list of Storage Location which contains Load Carrier or Trading Unit. User will able to see
the list of Load Carrier inside Storage Location. Table 4.2 represents the required main steps
of implementing warehouse visualization.
Figure 4.6: Conceptual sketch of warehouse plant in 2D view.
Table 4: Functional description of warehouse visualization
FRS
No.
Description of Requirement Reference to Function
or Activity (ID)
Warehouse
Storage Location
Storage Location
Storage Location
Storage Area 1
Storage Area 2
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
42
F4 The steps of view Storage Areas (SA) of a Warehouse Plant (WP)
F5 The steps of view Storage Location (SL) for each Storage Area of WP
FRS F4: User will be able to see a list of Storage areas by selection warehouse like a small
block or any visual object to understand an area. The warehouse boundary will be defined
depending on the number of Storage areas of that plant. Each block will contain the name of
storage area and other related information according to importance.
FRS F5: When the user selects each storage area, the storage locations will be visible for this
area and each location have to be set according to the attributes value from the database. The
empty storage locations have to be distinguishable from the others using different colour or
any other technique.
4.2.3 Warehouse Plant Navigation
This functional requirement will allow navigation through warehouse starting from a high-
level point of view (the warehouse plant) through the intermediate levels (storage areas and
location) till the low level details (cells content). User will be able to view the warehouse
plant inside several storage areas (SA) and each SA has to be clickable to view storage
locations (SL) of that SA and then also each SL has to be clickable to see the list of trading
unit (TU) or load carrier (LC) of that SL. The following table will show the main functional
steps of implementing navigation.
Table 5: Functional description of warehouse navigation
FRS
No.
Description of Requirement Reference to Function
or Activity (ID)
F6 The steps of view Storage Areas (SA) of a Warehouse Plant (WP) so
that the user is guided through the SA
F4
F7 The steps of view Storage Location (SL) for each Storage Area so
that the user is guided through the SL
F5
F8 The steps of view list of TU/LC for each Storage location.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
43
FRS F6: This step follows the enhanced of FRS F4 implementing the navigation functionality
among different storage areas of warehouse plant including backward and forward technique
so that user can easily enter into a warehouse plant and navigation through storage areas
easily.
FRS F7: This step follows the enhanced of FRS F5 implementing the navigation functionality
among different storage locations of each storage area of warehouse plant including
navigation between different level & aisle of the same storage area.
FRS F8: When user selects a storage location to see inside, they will able to see the list of
Trading Unit or Load Carrier of that location in a grid view and able to backward for another
location. The current status of the TU/LC have to be shown with the list to understand what is
the available operation could be possible using it.
4.2.4 Transportation in Warehouse Plant
It is necessary to allow the transportation movements management (relocations,
transportations) using the new visual application here. User will able to TO creation,
execution automatically or manually from the list of LC/TU of the storage location instead of
putting manual entry or using barcode scanner to set LC/ TU identification to start creation or
execution TO. The functional requirement is basically the integration among transportation
function and visual representation. The process will be start from the warehouse visual
representation, navigation among different intermediate levels (storage areas and location),
and finish with creation or execution of TO. The following Table 4.4 will show the main
functional steps of implementing navigation where F1, F2, F6-8 are the reference functional
number for implementing this step.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
44
Table 6: Functional description of transportation in warehouse plant
FRS
No.
Description of Requirement Reference to Function
or Activity (ID)
F9 The steps of enabling Warehouse Transporting Function (Creation,
Execution) from each Storage Location
F1, F2, F6-8
FRS F9: When the user select an operation (create or execute) from the list of Trading Unit
/Load Carrier of a Storage Location, this step will start to perform transportation from
graphical representation. Here system will take the Trading Unit /Load Carrier number
automatically and will perform transportation according to FRS F1 & FRS F2. The sub steps
of transportation will be similar to the previous implementation.
4.2.5 Batch Review Tree
Batch Review is to be performing in a bottom-up direction which is another part of EBR
(Electronic Batch Processing) to get shop order details and there is no relation with the
transportation. It is another vast part of PMX system related to shop order.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
45
Figure 4.7: Conceptual sketch of tree representation of batch review process of shop order.
Table 7: Functional description of transportation in warehouse plant
FRS
No.
Description of Requirement Reference to Function
or Activity (ID)
F10 The steps of creating a Batch Review Tree for list of shop order
where user can navigate among the nodes of Figure 4.7
F11 The steps of enabling navigational system among Tree leaf where user can get the details part each leaf of Figure 4.7
FRS F10: When user expands the nodes of the batch review tree the buttons to the right of the
tree nodes will indicate which functions are available for the individual items of the tree such
as order details, order steps, event logs in the first level. Order steps will be expanding more
in the 2nd level and so on like Figure 4.7 tree.
Procedure step
Check List
Material log
Procedure Work center
Instance Instance
Event Log
Order details Order steps
Batch Review
Instance Instance
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
46
FRS F11: The tree has to be shown as pop-up and the content of the leaf has to be shown in
the parent frame according to user interactions. The content will be refreshed by new one each
time in the parent frame during the interaction request with the leaf of the tree. There has be a
functionality to hiding and showing popup in the front by user interaction and also retrieve
popup mechanism if the popup tree is close accidentally by user during interaction and
checking duplicate popup mechanism as well when switch one batch review to another
without closing the previous one.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
47
4.3 Use cases
4.3.1 Transportation
Table 8: Textual Description of Use case 'Transportation'
Name Transportation of the EBR system
Purpose To show how EBR Client (User) will perform transportation using PALETTI server and EBR server from the top level view.
Primary Actor EBR Client, PALETTI server and EBR server.
Pre-Condition PALETTI server is stopped. EBR server is running.
Post-Condition PALETTI server is running
Main Success Scenario
1. The client start PALETTI server. 2. Start Transport Order (TO) creation 3. Set LC/TU number and TO type to start Creation or execution TO. 4. Perform checking validation of LC/TU number by PALETTI server. 5. Perform Creation or execution by setting target storage location (SL) &
storage area (SA 6. Finish creation or execution of TO 7. View created or executed TO.
Alternatives *.A.1 The client can cancel TO whenever he wants. 3.A.1 LC/TU number can comes from another device (bar code reader) 5.A.1 Creation Automatically 5.A.2 Creation Manually
Exceptions *.A.1 The system alerts the user if there are technical problems or system failure. 4. A.1 The system alerts the user if LC/TU number is wrong. 5. A.1 The system alerts the user if target SA/SL number is wrong.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
48
Transportation
TO Creation
TO Execution
View Transport
Order
EBR ClientPALETTI Server
EBR Server
Run Server
Automatically
Manually
«uses»
«uses»
Figure 4.8: Use case diagram of transportation of EBR system.
4.3.2 Warehouse Plant Navigation
Table 9: Textual Description of Use case 'Warehouse Plant Navigation'
Name Navigational system in warehouse plant
Purpose To show how EBR Client (User) will perform navigation from warehouse plant to
each storage location.
Primary Actor EBR Client, EBR server
Pre-Condition EBR server is running
Post-Condition Generated Warehouse Plant (WP) graphically
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
49
Main Success
Scenario
1. To view the storage areas of the WP
2. Navigate to Storage Location of each storage area
3. The list of LC/TU is shown for each storage location
Alternatives *.A.1 The client can go backward from any step.
2.A.1 To view the storage location of another level
Exceptions *.A.1 The system alerts the user if there are technical problems or system failure.
2.A.1 The system alerts if no storage location is available for the storage area
Warehouse Plant
View Storage Area
View Storage
Location
View List of LC/TU
EBR Client
EBR Server
Generate W. Plant
Figure 4.8: Use case diagram of warehouse plant navigation.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
50
4.3.3 Transportation from Graphical Representation
Table 10: Textual Description of Use case 'Transportation form graphical representation'
Name Transportation from graphical representation
Purpose To show how EBR Client (User) will perform transportation from the storage location of a warehouse plant.
Primary Actor EBR Client, PALETTI server and EBR server.
Pre-Condition PALETTI server is stopped. EBR server is running.
Post-Condition PALETTI server is running Generated Warehouse Plant (WP) graphically
Main Success Scenario
1. To view the storage areas of the WP 2. Navigate to Storage Location of each storage area 3. The list of LC/TU is shown for each storage location 4. Perform checking validation of LC/TU number by PALETTI server. 5. Perform Creation or execution by setting target storage location (SL) &
storage area (SA) 6. Finish creation or execution of TO 7. View created or executed TO.
Alternatives *.A.1 The client can go backward from any step.
2.A.1 To view the storage location of another level 5.A.1 Creation Automatically 5.A.2 Creation Manually
Exceptions *.A.1 The system alerts the user if there are technical problems or system failure. 2.A.1 The system alerts if no storage location is available for the storage area 5. A.1 The system alerts the user if target SA/SL number is wrong.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
51
Warehouse Plant
View Storage Area
View StorageLocation
View List of LC/TU
EBR Client
EBR Server
Generate W. Plant
TO Creation
TO Execution
PALETTI Server
Run Server
Figure 4.8: Use case diagram of transportation from graphical representation.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
52
5 Design
5.1 Data Structure Model (ERD)
5.1.1 ERD Diagram
PALSarea
PK ID
IDENTIFIER
NAME
FK1 PALWAREHOUSE
FK3 STATUS
FK2 STORAGE _TYPE
REMARK
...
PALSloc
PK ID
AISLE
BAY
DIRECTION
HEIGHT_LEVEL
IDENTIFIER
NAME
FK2 PALSAREA
FK1 PALSLOCTYPE
REMARKS
...
...
PLASLocType
PK ID
NAME
...
...
PALWarehouse
PK ID
IDENTIFIER
NAME
REMARK
FK1 SITE
FK2 TYPE
...
PALWarehouse _Site
PK ID
NAME
...
...
PALWarehouse _Type
PK ID
NAME
...
...
PALTransportOrder
PK ID
IDENTIFIER
LOADCARRIER
NUMBEROFSTEPS
PALROUTE
FK3 PALSAREA _DEST
FK4 PALSAREA _SOURCE
FK1 PALSLOC _DEST
FK2 PALSLOC _SOURCE
PRIORITY
SLOCSELTYPE
...
...
PALTransOrderStep
PK ID
IDENTIFIER
LOADCARRIER
NUMBEROFSTEPS
FK4 PALSAREA _DEST
FK3 PALSAREA _SOURCE
FK1 PALSLOC _DEST
FK2 PALSLOC _SOURCE
PALSUBROUTE
FK5 PALTRANSPORTORDER
PRIORITY
STARTTIME
FINISHTIME
STATUS
STEP
...
PALSarea _Status
PK ID
NAME
...
...
PALSareaStorage _Type
PK ID
NAME
...
...
Figure 5.1: A partial Database structure model of EBR PMX MES
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
53
5.1.2 Description of the Tables
I started to design after completing the requirement analysis phase according to the
development strategy and first task was to design database structure. Since it is not possible to
show the whole system database in a page section 5.1.1 shows only the partial structure of the
EBR PMX MES system database. The following key tables are necessary for implementation:
PALWarehouse
o Contains warehouse name, identifier, site, type and other related attributes
information.
o Attributes site & type contains foreign key as reference of
PALWarehouse_Site & PALWarehouse_Type primary key.
PALSarea
o Contains Storage Area name, identifier, status, storage type,
WAREHOUSE and other related attributes information.
o Attributes PALWAREHOUSE, status & type contains foreign key as
reference of PALWarehouse, PALSarea_Status & PALSareaStorage_Type
primary key
PALSloc
o Contains Storage Loc name, identifier, status, storage type & area, aisle,
bay, direction, level and other related attributes information.
o Attributes type &PALSAREA contains foreign key as reference of
PALSloc_Type & PALSarea primary key
PALSTransportOrder
o Contains order information such as Load Carrier, Source & Target location
and area as well as other related attributes information.
PALSTransportOrderStep
o Contains sub-order information such as Load Carrier, Source & Target
location and area as well as other related attributes information
o It refers the Primary key of PALSTransportOrder as foreign key.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
54
5.2 Class Diagram Construction
5.2.1 Class Diagram
+ getStorageLocation () : PALSloc
+ getId() : long
+ getName() : string
-id : object
-identifier : string
-name : string
-palWarehouse : PALWarehouse
-status : long
-storage _Type : long
-remark : string
PALSarea
+getId ()
+getName()
+getAttribute () : object
-id : long
-identifier : string
-aisle : int
-bay : int
-direction : int
-hight_Level : int
-name : string
-palsArea : PALSarea
-palsLocType : int
-remarks : string
PALSloc
+getTransportOrderbyId () : PALTransportOrder
+creationTOmanually ()
+creationTOAutomatically ()
+executeTO ()
+viewTransportOrder ()
-id
-identifier
-loadcarrier
-numberofsteps
-palRoute
-palsArea _Dest : PALSarea
-palsArea _Source : PALSarea
-palsLoc _Dest : PALSloc
-palsLoc _Source : PALSloc
-priority : int
PALTransportOrder
+getId ()
+getName ()
-id : long
-name : string
PALSareaStorage _Type
1..* 1
1
1..*
1..*
1
1..*
1
+getLCID() : LoadCarrier
+getLoadCarriers()
-id : long
-name : double
-identifier : double
-status : int
-type : long
-palsLoc : PALSloc
LoadCarrier
+generateStorageArea ()
+getStorageArea () : PALSarea
-id : long
-warehouseId : long
-
View _Warehouse _Plant
+changeStatus () : bool
-statusID : long
-name : string
LC_Status
1 1
11..*
11
+getId ()
+getName ()
-id : long
-name : string
PALSarea _Status
+getId ()
+getName ()
-id : long
-name : string
PALWarehouse _Type
+getId ()
+getName()
-id : long
-name : string
PALWarehouse _Site
+getId ()
+getName()
+getStorageArea () : PALSarea
-id : long
-name : string
-identifier : string
-remark : string
-site : int
-type : int
PALWarehouse
1
0..*
0..* 1
1
0..*
+ getId()
+ getName()
-id : long
-name : string
PALSloc _Type
+getTOStepbyId () : PALTransportOrderStep
+checkPALSArea () : bool
+checkPALSloc () : bool
-id
-identifier
-loadcarrier
-numberofsteps
-palRoute
-palsArea _Dest : PALSarea
-palsArea _Source : PALSarea
-palsLoc _Dest : PALSloc
-palsLoc _Source : PALSloc
-priority : int
-palsSubRoute : long
-palTransportOrder : long
-startTime : object
-finishTime : object
-status : int
-step : int
PALTransportOrderStep
1
1..*
+generateStorageLoc ()
+getLocation () : PALSloc
-id : long
-storageAreaId : string
View _Storage _Area
1
1..*
Figure 5.2: A partial Class diagram of EBR PMX MES
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
55
5.2.2 Description of Key Classes of the System
The class diagram are composed of several classes and there relationship between these
classes. Using the above class diagram we represent the vocabulary of partial EBR PMX MES
system. It is built and refined when system is developed. Each class description consists of a
class name, state variables, reference variables and methods. We make a clear distinction
between variables containing the state of an object and variables that express which other
objects a given object knows. A class description defines the types of each variable as well as
a signature for each method.
The objectives of class diagram are:
Names and models concepts existing in the system.
Specifies collaboration paths.
Specifies the basic logical schema.
Table 11: Textual description of Key Classes
Class Name Description
PALWarehouse This class represents a Warehouse structure which contains all the relative data and methods to manage of a warehouse or a collection of warehouse data. It is a primary class for transportation which is interrelated to the different classes i,e PALSarea, View_Warehouse_Plant, PALWarehouse_Site, PALWarehouse_Type and so on. Relationship: The degree of relationship among PALWarehouse class and PALSarea, View_Warehouse_Plant classes are One To Many, One To One respectively.
PALSarea This class represents a Warehouse Storage Area structure which contains all the relative data and methods to manage of a warehouse Storage Area or a collection of warehouse storage areas data. It is an important class for transportation as well as visualization area which is associated with the different classes i,e PALSLoc, PALSWarehouse, PALSarea_Status, and PALSareaStorage_Type. Relationship: The degree of relationship among PALSarea class and PALWarehouse, PALSloc classes are Many To One, One To Many respectively. There is also a dependency relationship with the View_Warehouse_Plant.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
56
PALSloc This class represents a Storage Location of Warehouse which contains all the relative data and methods to manage of a Storage Location or a collection of Storage Location of a warehouse data. It is a class to represent actual position of Trading Unit or Load Carrier using Level, Bay, Aisle, and Direction. It is associated with the different classes i,e PALSarea, LoadCarrier, PALSloc_Type and so on. Relationship: The degree of relationship among PALSloc class and PALSarea, LoadCarrier classes are Many To One, One To One respectively. There is also a dependency relationship with the View_Storage_Area.
PALTransportOrder This class represents a Transport Order which contains all order creation or execution related data and methods to manage of a transport order or a collection of transport order data. It is a most important class for transportation which is dependent with the Warehouse related classes i,e PALSLoc, PALSarea, LoadCarrier, and associate with PALTransportOrderStep . Relationship: The degree of relationship among PALTransportOrder class and PALTransportOrderStep is One To Many. There are also dependency relationships among PALTransportOrder, PALSarea, and PALSloc classes.
PALTransportOrderStep This class represents sub-steps of Transport Order which contains all sub-routes of order creation or execution related data and methods to manage of a transport order or a collection of transport order data. It is a important class for transportation which is dependent with the Warehouse related classes i,e PALSLoc, PALSarea, LoadCarrier, and associate with PALTransportOrder. Relationship: The degree of relationship among PALTransportOrderStep class and PALTransportOrder is Many To One. There are also dependency relationships among PALTransportOrder, PALSarea, and PALSloc classes.
LoadCarrier This class represents a Load Carrier / Trading Unit which contains related data and methods to manage of a Load Carrier / Trading Unit or a collection of Load Carrier / Trading Unit data. It is one of the most important class for transportation where other classes are dependent with the Warehouse related classes i,e PALSLoc, PALSarea and associate with LC_Status and PALSloc . Relationship: The degree of relationship among LoadCarrier class and PALSLoc, LC_Status classes are One To One, Many To One respectively.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
57
View_Warehouse_Plant This class used to visualize warehouse which contains all the relative data and methods to visualization of a warehouse. It is a class for graphical representation of storage areas Where PALSarea is depending class and View_Storage_Area is associated class. Relationship: The degree of relationship between View_Warehouse_Plant and View_Storage_Area classes are One To Many.
View_Storage_Area This class used to visualize warehouse Storage Area which contains all the relative data and methods to visualization of a Storage Area. It is a class for graphical representation of storage locations Where PALSloc is depending class and View_Warehouse_Plant is associated class. Relationship: The degree of relationship between View_Warehouse_Plant and View_Storage_Area classes are Many To One.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
58
5.3 Activity Diagram Construction
5.3.1 Activity Diagram of Transportation (Top Level)
Transportation
Access Transportation module
Transport Creation
Transport Execution
Complete Transaction
Login authenticate user
View Transport Order
View Warehouse plant
Runing EBR server
Starting EBR client
[Go Back ]
[Exit ]
Figure 5.3: Activity diagram of Transportation of EBR PMX MES
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
59
5.3.2 Description
In Electronic Batch Recording (EBR) system, the activity diagram of Transportation is shown
in the above figure where diagram are composed of several activities, sub-activities and there
relationship between these activities. The activities are described in the following:
Table 12: Textual description of Activities
Activity Name Activity Description
Running EBR server It is the first activity to work with EBR System which initialized the set-up environment variable for the system.
Starting EBR client The activity is to run the EBR application in a browser according to configuration startEBR.bat
Login authenticate user
It is user authentication to make any operation in the EBR module.
Access Transportation module
The activity is simple to go in to Transportation module to transport order creation, execution, view or warehouse plant generation.
Transport creation This is a composition sub-activity of transportation where several sub-activities are presents for transport creation. The Figure 5.4 is showing the decomposition this sub-activity of transportation.
Transport execution This is another composition sub-activity of transportation where several sub-activities are presents for transport execution. The Figure 5.5 is showing the decomposition this sub-activity of transportation.
View Transport order
This is presents for viewing transport order of creation or execution as well as search transport order.
View warehouse plant
This is a composition sub-activity of visualization warehouse plant where several sub-activities are presents for visualization. The Figure 5.6 is showing the decomposition this sub-activity of visualization warehouse.
Complete Transaction
This is the end state of any transaction of the transportation module.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
60
5.3.3 Decomposed Activity Diagrams
SystemClient
Select Transport Creation
Opening new thread of Creation
Get exception msg
Checking LC identifier and status
Set Target Area
Checking Target area or location
Set Target Area & Location
Runing PALLETI server
Set source LC
Get exception msg
Set TO creation type
[Manually ]
[Automatic ]
Complete Order
Figure 5.4: Sub-Activity diagram of Transport creation of EBR PMX MES
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
61
Client System
Select Transport Execution
Opening thread of TO execution
Get exception msg
Start Transport order execution
Set Target Location by system
Next to finish order
Set Target Location
Run PALLETI server
Set source Load Carrier for execution
Get exception msg
[Manually]
[Automatic ]
finish Order
Request for execution
Change System Target Loc
Figure 5.5: Sub-Activity diagram of Transport execution of EBR PMX MES
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
62
Customer System
Getting warehouse configuration
generate List od LC /TU of SL
Request for view warehouse plant
Retrieve storage areas from DB
Generate Storage Area
View storage areas of WP
[No Storage area ]
Request for Storage Loc Generate Storage Loc of SA
View storage loc of SA
view LC /TU
TO creation or execution
Figure 5.6: Sub-Activity diagram of view warehouse plant of EBR PMX MES
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
63
5.4 Sequence Diagram Construction
5.4.1 Sequence Diagram of Transport Order Creation (manual type)
pt:PALTransportOrder pts:PALTransportOrderStep pa:PALSArea pl:PALSloc
createTOmanually(pt)
checkPALSArea()
calculate_Route
LC
checkPALSloc()
Location exist
<<destroy>>
lc:LoadCarrier
getLoadCarrier()
Area Exist
TO created
Fig
ure 5.7: Sequence diagram of Transport order creation (manual type)
PALTransportOrder class create an object to call createTOmanually() method by accessing
PALTransportOrdeStep Class. PALTransportOrdeStep object call getLoadCarrier for creating
transport order and check Storage by calling checkPALSArea(). PALSArea object returns
after checking that is exist or not. Pts: PALTransportOrdeStep object calculate the route for
transportation and check for Storage Location by checkPALSloc() whether the location is
exist and available for load carrier. PALTransportOrder destroy PALTransportOrdeStep
object after TO creation.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
64
5.4.2 Sequence Diagram of Transport Order Creation (automatic type)
pt:PALTransportOrder pts:PALTransportOrderStep pa:PALSArea pl:PALSloc
createTOautomatically(pt)
checkPALSArea()
calculate_Route
LC
getAutomatedPALSloc()
system sends Location
<<destroy>>
lc:LoadCarrier
getLoadCarrier()
Area Exist
TO created
Fig
ure 5.8: Sequence diagram of Transport order creation (automatic type)
PALTransportOrder class create an object to call createTOautomatically() method by
accessing PALTransportOrdeStep Class. PALTransportOrdeStep object call getLoadCarrier
for creating transport order and check Storage by calling checkPALSArea(). PALSArea
object returns after checking that is exist or not. Pts: PALTransportOrdeStep object calculate
the route for transportation and ask for suitable Storage Location by getAutomatedPALSloc()
whether the location is defined by the system for particular type of load carrier.
PALTransportOrder destroy PALTransportOrdeStep object after TO creation.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
65
5.5 Deployment Diagram Construction
5.5.1 Deployment Diagram
Database Server
Server
Web service 1 (ERP Interface )
Web Service 2 (Credit Card Validation )
Application Server
Business Logic
Web Server (Apache)
EBR PMX MES 4.2
RDBMS (Oracle 10g)
<<SOAP >>
EDB PMX MES
Thin Client
EBR Client (GUI )
FAT Client
WMS(GUI)
<<LAN>>
<<Internet>>
<<LAN >>
Data Access Layer
1
0..*
1
1 .. *
1 .. *
1
Figure 5.9: Deployment diagram of overall PMX MES solutions
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
66
5.5.2 Description
The Deployment Diagram (Figure 5.9) shows the overall setup of the PMX MES System
applications. The operators of the life science industry use the WMS or other desktop module
over the LAN (Local Area Network). They are treated as the FAT Client in the architecture.
The operator or the users of the system access the EBR PMX MES through web server from
the outside of LAN or inside as well. They are treated as the Thin Client in the architecture.
Web server has the web service for the Thin Client. Application Server (e.g. PALLETI server)
serves the clients with business logics and DB Server with Data. Web services are used ERP
interface and Credit Card validation. Database Server stores the data and serves Web Server
and Application Server with necessary Data.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
67
6 Implementation
This section represents the implementation choice of particular requirement in terms of used
programming languages, development tools, frameworks, class libraries as well as solving
techniques. It also describes development strategy and some particular algorithms of
implementation as well.
The programming languages C++, Python, Spyce are mostly used to develop Transportation
section in EBR module as well as JavaScript is used as client side script. An existing
architecture has been followed to make new module and old presentation framework has been
integrated for new Spyce technology as well.
6.1 Development Strategy
It has been decided to use Spiral model as development lifecycle of my project because of
iterative way and extreme programming as development methodology due to pair
programming. Here are the following details of project lifecycle and methodology:
6.1.1 Spiral Model
The main idea of this model is to organize phases in an iterative way using a cycle. The
project has five iterative phases for the deliverable product. Those are:
Iterative 1: Implementing transportation module into EBR system
Iterative 2: Implementing visual interface of warehouse plant and navigation through
intermediate steps
Iterative 3: Implementing transportation function from storage location of of
warehouse plant
Iterative 4: Implementing presentation framework for spyce module
Iterative 5: Implementing Batch Review Tree in EBR system
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
68
Figure 6.1: A sketch of development life cycle of Spiral Model
If Iterative 1 is successfully implemented and tested then the Iterative 2 will be go on and
Iterative 2 will be develop depending on iterative 2. That’s why this model is perfect for my
project for constructing development cycle. Each of the Iterative phases will have sub-
Iterative for the prototype version of each.
At first, the goal of my project is to implement Iterative 1 prototype and testing my QA team.
After that it will send to the customer end for verification requirement and end-user testing.
We will go for final product for according to the customer suggestions in an iterative way.
Then we will go for Iterative 2 prototype after completing the Iterative 1 finished product and
go on.
6.1.2 Extreme Programming
XP Programming methodology has been adopted as an agile programming practice. I have
been decided to take this methodology for the advantages of pair programming. The core of
XP is pair programming. Meaning, two programmers work together and share a computer.
This is like two brains working on one computer. This always poses questions on productivity
compared to two programmers working independently on separate computer. Programming
always involves writing code, checking for quality, code refactoring and meeting standards.
Since the development language (Spyce and Python) is new for the developer, it is most
necessary to use it for avoiding complexity of task.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
69
XP enables all of the above to be executed in a much efficient way in a shorter time compared
to the traditional methodology. The team size also attributes to the success of XP
methodology. Team size of 4 to 12 has reported greater success compared to larger teams.
Since our team size is 4, so there is no barrier to use this methodology. In summary, when
the requirements are dynamic and there is an increased risk of meeting deadlines, XP practice
proves to be the methodology to adopt. Also, XP does not mandate a Strict Process to follow.
It creates a very flexible, and fun to work environment, which results in increased
productivity and quality output.
6.2 EBR Transportation
Transportation is already implemented in the Desktop application of other Warehouse
Management Solution (WMS) where the requirement is to implement it in to EBR to access
from outside of the local network. The creation and execution of transport order together is
called transportation where searching or viewing transportation is an additional requirement. I
started to work with database after designing though the tables were already there. I review
database from Oracle 10g server and make a new developing instance of that as well as
modified necessary changes according to design.
Here, one of the critical aspects was to unchanged database table as much possible as well as
adding new attributes instead of introducing new table according to company instructions.
The tool Keep Tool 6 & Benthic Software have been used as database designing tool for
running script or query and modifying table, relationship on Oracle 10g Server as well. The
partial database diagram is shown in Figure 5.1 which is mostly used for implementing
transportation as well as some other reference table is used also.
Data access layer is same compare to desktop application because of same functionality which
is developed by C++ but there was some modification for changing in the database. I have
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
70
been used Visual Studio 6.0 as integrated development environment for editing, debugging &
compiling as well.
Business Layer and Server-Side code has been developed by Python where several Python
library has been used commonly for all workflows such as pddbaccess. The following section
will describe more about used libraries of each part. Finally the front-end has been developed
by Spyce.
The first task was to create a new folder (path:\ebr\ebrroot\workflow\[new folder]) for
creation new workflow including a __init__.py initialized and configuration file according to
framework convention. There are also 4 folders have to be created for action, CVS, forms and
templates to keep action files, CVS repository configuration, necessary forms, and Spyce
templates (e.g. createTO1Mask.spy)
It is necessary to set workflow of each process in the root folder of process according to the
architecture as well as configure the configuration file web-config.xml in the same location
for <action-mappings> …</action-mappings>. The presentation framework section will
explain more about implementation of configuration. Here is the example of setting workflow
where workflow is set for initialize folder.
from pmx.ebrroot.workflow.esignworkflowbaseext import ESignWorkflowBaseExt
from pmx.ebrroot import workflow
class Workflow(ESignWorkflowBaseExt):
""" Class to initialize the paletti workflow"""
def __init__( self, session, name ):
ESignWorkflowBaseExt.__init__(self, session, name, __path__[0])
self.current_state = None
# Last called action, needed for going back in SOP state
self.last_action = 'selectShopOrder'
self.initializeWfl = self.session.getWorkflow("initialize")
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
71
MED – Text Editor V3.02 has been used as a development environment to edit any Python
and Spyce Script of implementing Transportation as well as JavaScript has been used in the
Spyce file as client-side interaction.
6.2.1 Transport Order Creation
The implementation of transport order creation has been started by making workflow folders
and necessary configuration in the configuration file. For example, I developed an action class
called CreateTO1Action.py using following libraries. [Libraries]
from pmx.ebrroot.workflow.workflowbase import Action
import pddbaccess
import pmx.ebrconst
import pmx.ebrconst_wes
import pdvalue
import customer.checkBarcodes
There are three possibilities of creation has been considered during implementation according
to the requirements. Those are in the following:
Table 13: Type of Transport Creation
Type Definitions
At execution manually
After you started the sub-transport order the system forces the operator to enter the target storage location.
At creation manually
If you create a transport order you are forced by the system to enter the target storage location.
At creation automatically
If you create a transport order PALETTI will take care for an appropriate target storage location according to storage location constraints and further possible optimization algorithm.
I have been implemented this options in the business logic layer and added options in the
Spyce createTO1Mask.spy file where user will give the LC number and choose creation type.
The following sample code will take the user options and send to the action class to validated
and execute. [[.import names="pdsession"]]
[[.taglib name=pdTaglib as=pd]]
[[\
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
72
s = pdsession
form = pdsession.form()
]]
<form name="createTO1Form" method="post"
action="[[=s.action('createTO1')]]">
. . . //Script code
</form>
Here is the example of partial Action class code of implementation in abstract view.
class CreateTO1Action(Action):
def __call__(self, form, req, res):
fc = self.namespace.functionContext
# perform initialize functions code
# Save value of scanned TU/LC and TO creation type in context
# Check if scanned object is LC or TU
return self.workflow.forward("next")
else:
return self.workflow.forward("self")
# open Paletti client/session
try:
self.workflow.openPalClient()
except Exception, ex:
# When LC control function switch to this action
# forward
return self.workflow.forward("self")
There are several file has been implemented for different type action of creation and steps. All
of them are implemented like the above sample codes. The source is executed according to
the following diagram logic (implemented in the business layer) when user perform request
for new transport order. PALLETI server calculates the intermediate route for target location.
In figure 6.2 source LOC is A and Target LOC is B where three intermediate LOC is
calculated as route to move from A to B but it could be direct transport from A to B
depending on type of location and transfer path.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
73
Figure 6.2: Graphical representation of creation Transport Order (TO)
6.2.2 Transport Order Execution
The implementation of transport order execution has been started while creation is ready for
transaction using the same technique, libraries, framework, languages, tools and others except
business logic. There are two implicit possibilities of execution has been considered during
implementation according to the requirements but user can not choose it from the front-end. It
is only depend of the status of order. Those are in the following:
Table 14: Type of Load carrier status
Type Definitions
Moving If the transport order status is ‘created’ then it is ready to execute for moving LC/TU
Finish If the transport order status is already ‘moving’ then it is ready to execute for finishing transport order
I have been implemented this options in the business logic layer and added options in the
Spyce executeTO1Mask.spy & executeTO2Mask.spy files where user will give the LC number
only. The corresponding action classes ExecuteTO1Action.py & ExecuteTO2Action.py is also
Location Location AA
Location Location BB
Location Location C1C1
Location Location C2C2
Location Location C3C3
TO from Loc. A to Loc. B
Route: A C1 C2 C3 B
Sub-TO A C1
Sub-TO C1 C2 Sub-TO
C2 C3
Sub-TO C3 B
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
74
implemented like creation with different logic. The following figure 6.3 shows how TU/LC
physically execute during moving status of transport order and executing become finish when
is totally moved in to target LOC.
Figure 6.3: Graphical representation of execution Transport Order (TO)
6.2.3 Transport Order View & Searching
The implementation of transport order view & searching has been implemented using existing
processing workflow folders and same presentation framework. For example, I developed an
action class called transportOrderAction.py using following libraries where
selectionHelper helper class has been used additionally for searching. [Libraries]
import pddbaccess
from pmx.ebrroot.workflow.workflowbase import Action
import selectionHelper
import pmx.ebrconst
The transportOrder.spy has been developed for interface where the following taglib and user
control (grid) is used as example. Figure 6.5 shows the 3 selection criteria for searching
AGV System
Warehouse: south
LOC 1 area: line storage
Warehouse: south
DIS 2 area: dipensing
Source Destination
Intermediate destination
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
75
including logical condition for each and results is reflected in a grid view. pd:gridLayout &
pd:gridControl have been used for generating search options and grid where pd is pdTaglib. [[.import name=pdsession]]
[[.taglib name=core as=spy]]
[[.taglib name=pdTaglib as=pd]]
[[submitAction = pdsession.action('transportOrder')]]
<spy:let var="form" val="=pdsession.form()">
<pd:page>
[[-- -------------------Selection criteria ---------------- --]]
<pd:gridLayout debug="false">
<pd:layoutItem y="1" x="1"></pd:layoutItem>
// more layout added
</pd:gridLayout>
<form style="display:inline" method="post" action="[[=submitAction]]">
<fieldset>
[[.include file="select_results.spi"]]
[[-- --------------------------Grid ------------------------------ --]]
<pd:gridControl
// set properties
/>
</fieldset>
</form>
</pd:page>
</spy:let>
Figure 6.4: View & searching example of Transport Order (TO)
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
76
6.3 Warehouse Plant Algorithm
The aim of warehouse plant algorithm is to visualization of warehouse plant which is one of
the major requirements in this project. I started to design a generalized warehouse algorithm
to implement this requirement and also for my thesis as well. Then I implement visualization
a warehouse plant in the EBR web application on basis of algorithm part by part and develop
a navigational system from warehouse plant to load carrier or trading unit. The following sub-
sections will describe the implementation technique each of them separately.
6.3.1 Design WarehouseModeling Algorithm
Developing a correct algorithm can be a significant intellectual challenge. So, First I develop
a small algorithm for basic warehouse point of view which has some Storage Area only. This
algorithm will able to design warehouse plant with Storage Areas from 0 to n where set of SA
identifier stored in the DB Table referring a warehouse identifier.
Input Warehouse
Count <
StorageArea
Read Storage Areas
of Warehouse
Call StorageArea
Generator
FLOWCHART
Go to next line
Count ++
NO
Window Width
< MAXLIMITNO
YES
YES
Pseudo -Code
#define MAXLIMIT n
FUNCTION warehouseModeling(whouseID: warehouse,
saData: set of SA )
# To count the number of storage area
Initialize numberOfElement by 0
# Each row will generate one storage area in the
warehouse
# and will show the graphical interface of
storage location inside
FOR each element of all storage area(saData):
IF (numberOfElement MOD MAXLIMIT <> 0) THEN
Call storageAreaGenerator(each element)
ELSE
Go for next section and call again
ENDIF
INCREMENT numberOfElement
ENDFOR
END FUNCTION
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
77
Figure 6.5: Flow chart and Pseudo-code of generating storage area of a warehouse plant
The above Figure 6.5 shows the flowchart and pseudo-code of the design Storage Area part
and the below Figure 6.5 shows the flowchart and pseudo-code of the design Storage
Location part for each Storage Area and it is the complex one which has some common
attributes Level, Aisle, Bay like others warehouse plant.
In Figure 6.5, warehousModeling(…,…) takes warehouse name or identifier and set of
storage areas in matrix format like array of array from programming point of view. Then
Function will generate storage area one by one as separate block and call Figure6.5 for each
storage area to generate storage location.
In Figure 6.6, StorageAreaGenerator(…,…,…,…,…) takes each storage area name or
identifier and set of storage areas in matrix format like array of structure from programming
point of view and attributes of each storage location as well. Then Function will generate
storage location one by one as separate block and positioning correctly placing common
attributes Level, Aisle, Bay. The following function has been developed to check common
attributes of storage location to place the storage location correctly in the graphical view as
well as to find empty locations of storage areas.
# to check the matrix location which is exist or not in the recordset FUNCTION checkLocation(data, asile, bay, direction, level) j = 0 FOR each elem on the data INCREMENT j by 1 IF (elem[2] == asile and elem[3] == bay and elem[4] == direction and elem[5] == level) THEN return j ENFIF RETURN NULL END FUNCTION
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
78
Read Storage Area Data
Initialization of MAX limit of Level, Aisle, Bay
MAX Level > 0 && Aisle > 0
NO
Set current Level
Generate paging Index using MAX Aisle
Aisle < PAGE LIMIT && Aisle < Max Aisle
Generate column label
Bay < MAX Bay
Generate Bay Block
Generate Storage LOC BLOCK
Storage Location = true
Generate empty LOC BLOCK
Bay ++
Aisle ++
YES
NO
YES
NO
YES
YES
NO
Figure 6.6: Flow chart and Pseudo-code ⇓ of generating storage location of a warehouse plant
⇓Pseudo-code of generating storage location of a warehouse plant
Pseudo-Code ====================== storageAreaGenerator =========================== This algorithm is working for any kind of warehouse management system if the warehouse plant has at least aisle, bay and direction for each storage location. It will also work for single level warehouse plant. ======================================================================= #define MAXAILIMIT m ALGORITHM storageAreaGenerator(
storageAR: Storage Area, saData[][][]: Matrix storage location with Level,Aisle,Bay,Direct maxLevel: max Level of the warehouse plant,
maxBay: maximum Bay Length of Row of Storage Location, maxAisle: maximum Aisle of column of Storage Location)
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
79
# initialization IF (maxLevel or maxAisle or maxBay is NULL) THEN Initialize by ZERO(0) which is NULL ENDIF # If any storage area available IF (maxLevel > 0 and maxAisle > 0) THEN # Setting Level of the storage area IF Current Level is NONE THEN Initialize by 1 ELSE Initialize by current Level ENDIF # Generate paging between height level WP FOR p = 0 to range(maxLevel): GENERATE STORAGE_AREA_NAVIGATION_LINK for different LEVEL IF (Current Level == p + 1) THEN LEVEL(p+1) is HIGHLIGHTED ELSE LEVEL(p+1) is not HIGHLIGHTED ENDIF ENDFOR # Set start index(view area) of the storage loc IF controlIndex <> 1 THEN index = (controlIndex -1) * MAXAILIMIT + 1 k = (controlIndex -1) * MAXAILIMIT + 1 ELSE Initialize all by 1 ENDIF # Set total # of paging index for the Storage Loc control IF (maxAisle MOD MAXAILIMIT == 0) THEN countIndex = maxAisle / MAXAILIMIT ELSE countIndex = (maxAisle / MAXAILIMIT) + 1 ENDIF #Generate the paging index FOR r = 0 to range(countIndex): GENERATE STORAGE_AREA_NAVIGATION_LINK for AISLE & LEVEL ENDFOR flag = 0 WHILE(k <= range(maxAisle) and k < (index + MAXAILIMIT)) GENERATE Left + AISLE + Right label FOR i = 0 to range(maxBay)) IF (flag == 0) GENERATE BAY ELSE GENERATE SEPERATOR ENDIF #Check S Location for the left & right side of Aisle k #[ k = Aisle, i+1 = Bay, 1 = Left, 2 = Right, l = Level] checkIndexL = checkLocation(saData, k, i + 1, 1, l) IF (checkIndexL <> NULL) THEN GENERATE STORAGE_LOCATION ELSE GENERATE EMPTY LOCATION ENDIF INCREMENT i by 1 # to increase bay
ENDFOR flag = 1 INCREMENT k by 1 # to increase Aisle ENDWHILE ENDIF END ALORITHM
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
80
6.3.2 Implement Visualization & Navigation
Once i developed an algorithm, I started to implement with the existing platform since the
visualization will be in the transportation module of EBR application. It is already explained
before that EBR is developed by Spyce + Python. So, implement DHTML in the python script
using the above algorithm on the basis of database record of warehouse table. First I
implement only warehouse areas and then warehouse storage locations for each area as well
as navigation between them. The following figure 6.7 is shown some storage areas of a
warehouse plant.
Figure 6.7: Visual representation of implementation of a warehouse plant
JavaScript, DHTML, CSS has been used to generate interface where Python script generate it
dynamically according to algorithm. Storage area can be shown only 1 level at a time with
limited number of aisle. I also implemented paging between level and aisle so that user can
access frequently among all level or aisle. The following figure 6.8 is shown some storage
locations of a storage area of warehouse plant where all attributes are present such as Bay,
Aisle, and Directions & Level.
Here, the last step is to implement LC/TU of storage location and I implement it using another
python script redirecting in to another Spyce web page.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
81
Figure 6.8: Visual representation of implementation of a single storage area
6.4 Transportation in Warehouse Plant
This issue was come after implementing visualization and navigation while user can see the
list of load carrier or trading unit by accessing each Storage Location. I simple edit the SQL
stored procedure to get the current status of the Load Carrier and depending on status I
established an operation links like creation or execution for each of them as well as keeping
LC identifier. Then Transportation is implemented is this way that operation links will call the
specific Transport workflow for creation or execution.
Here, execution page directly go to the 2nd step of execution because it has already identifier
of LC from the operation link and creation page will take the creation type only.
6.5 Presentation Framework
One of the challenging tasks was to implement a presentation framework with new Spyce
platform using MVC but there was no well defined framework for Spyce + Python application
using MVC like Apache Struts. It becomes possible with the help of old version presentation
framework which is based on Struts principles even though Struts is not directly used because
it is only available for Java 2 EE web application and the presentation framework of existing
platform is programmed in Python & HTML + PDL-SQL.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
82
Figure 6.9: A Sketch of implementation of presentation Framework
New EBR Web application is based in Spyce and Python. So, I used Spyce instead of HTML
+ PD-SQL and integrate the RAStruts framework with the new system. The Presentation
Framework particularly deals with the following tasks:
1. HTTP-Request Handling and Session Management ⇓ as the basis for workflow controlling
2. Workflow processing
3. HTML generation
It is based on the MVC paradigm. So View contains Spyce templates, Model contains business
logic and Controller contains deployment Descriptor & Action class. One of the major
differences with STRURS is here different deployment descriptor web-config.xml for
different workflow of the same application where Struts has only one struts-config.xml.
Here is the example of sample deployment descriptor of TO creation.
V C
HTTP request HTTP response
FRONT CONTROLLER
Deployment Descriptor 1
Deployment Descriptor 2
REQUEST PROCESSOR
1
REQUEST PROCESSOR
2
...
Action A Action B Action C ...
Spyce
(executed on the server
side)
Tag- Librarie
s
M
HTML JavaScript Cookies
CLIENT (Browser)
Business Delegate
System State Business Logic
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
83
<form-beans>
<!-- Relocation function forms -->
<form-bean name="createTO1Form" type="ActionForm">
<form-property name="source_LC_TU" type="str"/>
<form-property name="TO_creation_type" type="int"/>
<form-property name="SLID" type="str"
scope="session"/>
</form-bean>
. . .
</form-beans>
<action-mappings>
<!-- Relocation function actions -->
<action path="createTO1" type="CreateTO1Action" name="createTO1Form">
<forward name="self" path="createTO1Mask.spy"/>
<forward name="main" path="showSubMenu_5_transport"
workflow="paletti" redirect="true"/>
<forward name="submain" path="selectLoadCarrier"
workflow="processing" redirect="true"/>
<forward name="next" path="createTO2" redirect="true"/>
</action>
. . .
</action-mappings>
Here is the following steps are needed to implement this framework in to spyce:
1. Create the .spy-files
Typically you need a “startpage.spy” for the user input (also used for displaying
error messages if the user input is invalid) and a “successpage.spy” where the
results will be displayed if processing was successful.
It is necessary to remember in the tag libraries there are already a lot of useful
functions for “building” a view templets.
It is necessary Remember the internationalization of form labels, paragraphs and
error messages. For any output text the message catalogs are to be used and not the
source code files! Use the <pd:i18ntext>-tag in SPYCE and define the message in
pmx/ebr/ebrconst.py
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
84
2. Extend the web-config.xml
Insert into the <form-beans> section the <form-bean> element with its <form-
property> elements according to the parameters of the form contained by
“startpage.spy”
Add an <action> element into the <action-mappings> section. Define the different
<forward> elements inside the action element among others by resorting the
created spy-files. By using the <action> element’s attributes specify if a syntactic
validation should be carried out, which form-bean is responsible for a syntactical
validation and finally specify the Action that gains the processing control (type /
path)
3. Create a subclass of ActionForm to implement the form-bean
Make use of the standard validation mechanism. Just override the valid()-method
in your subclass and the framework will automatically validate the input from the
request form using your method!
Creating a new ActionForm subclass is necessary only for new workflow cases, if
special form data should be sated up or a special syntax validation is necessary.
Remember complex validation and semantic validation should be done in the
Action and not in the ActionForm!
4. Create a subclass of Action
The goal of an Action class is to process a request and return an ActionForward
object that identifies where control should be forwarded.
Typically the __call__()-method is used for the semantic validation of the form
bean properties, the validation of the current state of the user session and the actual
processing performance (connecting the business logic).
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
85
Figure 6.9: A Sketch-code of how presentation Framework work
6.6 Batch review Tree Implementation
Batch Review has been implemented using advance JavaScript and editing old python script
mostly where Pop-up tree has been generated using some online JavaScript references but not
exactly same as it is. Here is the main difference of implementing batchre view tree.
Tree is implemented depend of the data of ShopOrderDetails
when user click for batch review order.
Each leaves is linked with the parent page middle-right frame
to show the details of leaves of that order
Special checking is implemented before opening a new tree
that any existing window is open of old order or not.
http://.../workflow1.pd?action=viewWC
<form-beans> <form-bean name="ViewWCForm" type="ActionForm"> <form-property name="arbpl.id" type="PDDecimal"/> </form-bean>
<action-mappings> <action path="viewWC" type="viewWCAction" name="ViewWCForm" validate="true" input="start"> <forward name="start" path="startpage.spy"/> <forward name="success" path="successpage.spy"/> </action> </action-mappings>
WORKFLOW 1
viewWCAction
web-config.xml Form Bean
s
Action Mappings
CLIENTCLIENT
startpage.spy
successpage.spy
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
86
7 Detailed Project Plan
Planning is one of the most important project management and time management techniques.
It prepares a sequence of action steps to achieve some specific goal. By following a plan, we
can always see how much we have progressed towards our project goal and how far we are
from our destination. Knowing where we are is essential for making good decisions on where
to go or what to do next.
So, this chapter shows the project plan detailed for the first three iterations (Iteration 1, 2 & 3)
of the requirement using initial and intermediate project planning in term of cost estimation
and budgeting as well as resource allocation. Function Point Analysis has been used for
estimation and MS Project 2003 has been used for planning in the following.
7.1 Cost Estimation and Budgeting
7.1.1 Function Point (FP) Analysis
It is necessary to make an estimation using some technique before starting project planning. I
have been used FP analysis to estimate the first three iteration of transportation module in to
EBR web application. It has already been explained about iteration in the section 6.1.1 Spiral
Model of development strategy part. So, there would be 12 web pages in the 1st iteration and
3& 5 web pages in the 2nd & 3rd iteration according to the requirement and estimation is the
following of that.
Assume that our team has four members. And one person is available twenty hours each week
for 16 weeks. And other three are available for 8 hours per week for 16 weeks.
I will use the information provided below to develop an estimate of:
The number or function points associated with our project;
The number of SLOC associated with our project;
The number of hours required for our project, effort;
The Five Components of Function Points are
Data Functions
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
87
Internal Logical Files (ILF) & External Interface Files (EIF)
Transactional Functions
External Inputs (EI), External Outputs (EO) & External Inquiries
Data
The following date will be consider to calculating function point
Iterative 1: 12 web pages
Iterative 2: 3 web pages
Iterative 3: 5 web pages
Total people: 3 people, 6 hours/week + 1 people, 20 hours/week
In each of these iterative projects, a consistent set of counting rules was used for estimating
function points. All function point estimates area developed assuming the “simple” level of
complexity. The factor used to convert to adjusted function points has been calibrated from
prior projects: 0.75.
Each new Web page includes 1 Spyce file, 2 image and 3 external links. Each HTML file is
counted as 1 internal logic file (Python script). Each image is counted as 1 internal logic file.
Each Web page is counted as 1 external output. Each external link is counted as 1 external
inquiry.
Assume the project teams will develop a factor of 10 SLOC per adjusted function point. They
have also calibrated a parametric equation for estimation the effort required. This equation is:
E = EAF * A(KSLOC)1.0
E = effort in labor hours
EAF = nominal value (1.0)
A: a constant developed from project data
KSLOC: source lines of code, in thousands
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
88
Calculations
Iterative 1 + Iterative 2 + Iterative 3
3 heads * 5 hours/week * 16 weeks + 1 heads * 20 hours/week * 16 weeks = 240 +320 = 560
head-hours available
Adjusted Function Point (AFP) calculation SPYCE * ILF 1 * 7 = 7 Image * ILF 2 * 7 = 14 Py Script * EO 1 * 4 = 4 Link * EI 3 * 3 = 9
Unadjusted Function Points (UAF) = 34
AFP / page = UAF * conversion factor
= 34 * 0 .75
= 25 .5
AFP(Iteration 1) = AFP/page * pages = 25.5 AFP/ page * 12 pages = 306 AFP
AFP(Iteration 2) = AFP/page * pages = 25.5 AFP/ page * 3 pages = 76.5 AFP
AFP(Iteration 3) = AFP/page * pages = 25.5 AFP/ page * 5 pages = 127.5 AFP
_________________________________________________________________________
Total = 509 AFP
SLOC calculation:
SLOC = SLOC/AFP * AFP = 10SLOC/AFP * 509AFP = 5090 SLOC
Effort calculation:
E = A (KSLOC)1.0(EAF)
E = A (KSLOC)1.0(1.0)
E = 3 heads * 5 hours/week * 16 weeks + 1 heads * 20 hours/week * 16 weeks = 240 +320 =
560 head-hours
KSLOC = 20 (12 + 3 + 5) pages * 25.5 AFP/page * 10 SLOC/ AFP = 5100 SLOC = 5.1
KSLOC
560 head-hours = A * 5.1 A = 109.8
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
89
For my project the calculation would be:
KSLOC = 5090 SLOC/1000 = 5.09 KSLOC
E = 109.8 * 5.09 = 558.88 head-hours
Time comparison:
Time available – time required = 560 hours – 558.88 hours = 1.12 head-hours reserve
7.2 Initial Project Planning
EBR project has been started from 24th April 2007 and will be end on 26th September 2007
according to baseline planning. Here is the all information in the following:
7.2.1 Resource Available for the Project
Total 4 resources over the entire project.
1 resources are dedicated full time
Figure 7.1: Total resources of ERB
7.2.2 Allocation
Elapsed Time: 67.75 Working days (5 Months)
Total Effort: 477 working units hours
Allocate Estimate:
Figure 7.2: Estimated hour of the task of project
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
90
7.3 Description of Project Monitoring and Controlling
7.3.1 1st Internal check: Week 6
I have started my internal check from the 6th week of start date of my project. Because of the
regular schedule of my internship has been started from 28th of May’07. The following figure
is showing the difference before and after monitoring on 5th June.
Figure 7.3: Project plan status according to base plan
The blue mark block is showing the actual duration with the start and end date. So, it is easily
define the difference with the baseline plan.
Figure 7.4: Project Plan status after monitoring on 5th June
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
91
Analysis
Date: June 05, 2007
Earn Value Management: it depends on three key data points.
Planed Value (PV) = Budgeted Cost of Work Scheduled (BCWS) = 846.00
Earned Value (EV) = Budgeted Cost of Work Performed (BCWP) = 738.00
Actual Cost (AC) = Actual Cost of Work Performed (ACWP) = 1224.00
Budget at Completion (BAC) = Total PV = 5922.00
Time Performance Analysis:
Schedule variance:
SV = EV – PV = 738 – 846 = -108
Comparison to the schedule:
SV%= SV/PV = -108/846 = -12.8%
So, Project has a delay of 12.8% compared to previous forecasts
Schedule Performance Index:
SPI = EV/ PV = 738/846 = 0.872
So, Project is now 87.2% Efficiency
Time Estimate at Completion:
EACt = (BAC/SPI)/(BAC/m) = (5922/0.872)/( 5922/5) = 5.73
So, if the project continues at these rates, I will need 0.73 more months to complete it.
Cost Performance Analysis:
Cost Variance:
CV = EV – AC = 738 – 1224 = -486
CV% = -486/738 = -65.86%
Project costs are 65.86 more than the value that I have created
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
92
Cost Performance Index:
CPI = EV/ AC = 738/1224 = 0.60
Project efficiency is 60%, it means that for every dollar spent only 0.60 $ create value
To-Complete Performance Index:
TCPI = (BAC-EV)/(BAC-AC) = (5922 - 738)/( 5922 - 1224) = 1.10
To reach project objectives, the efficiency that must be achieved is 1.10
Performance Analysis and Forecast:
Project Tracking_5th_June.mpp
$0.00
$500.00
$1,000.00
$1,500.00
$2,000.00
$2,500.00
4/22
/200
7
4/29
/200
7
5/6/
2007
5/13
/200
7
5/20
/200
7
5/27
/200
7
6/3/
2007
6/10
/200
7
6/17
/200
7
6/24
/200
7
7/1/
2007
7/8/
2007
Weeks
Cost
Total ACWP
Total BCWP
Total BCWS
Figure 7.5: Performance Analysis and Forecast on 5th June
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
93
Comments: At the end of analysis, I understood that we could not meet the base line plan
because of the complexity of system mainly and also for unknown technology specially
Spyce. The existing system is using own framework without using latest Development
Environment (IDE). If we see the following Tracking Gantt, the problem has been occurred
from task number 13 (Study Existing MES 4.1). Since I did not understand about the
complexity of the system before, I did a wrong plan for the task form number 13. So I have
taken the necessary action for that. Please check the action part.
Tracking Gantt:
Figure 7.6: Tracking Gantt with base line on 5th June
Action
I have just assigned new resources for the pending task to complete as soon as possible and
also added some overtime work for the full-timer developer in this project. The project cost
increased for that but reduced the delay of deadline.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
94
Re-planed
Figure 7.7: Project Plan status after taking action on 5th June
7.3.2 2nd Internal check: Week 8
I have taken my 2nd internal check (after 2 weeks) on the 8th week of start date of my project.
The following figure is showing the status after monitoring on 20th June.
Figure 7.8: Project Plan status after monitoring on 20th June
Analysis
Date: June 20, 2007
Earn Value Management:
Planed Value (PV) = 1086.00 Earned Value (EV) = 1042.80 Actual Cost (AC) =
2101.33
Budget at Completion (BAC) = 5922.00
Time Performance Analysis:
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
95
Schedule variance:
SV = EV – PV = 1042.8 – 1086.00 = -43.2
Comparison to the schedule:
SV%= SV/PV = -43.2/1086 = -3.98%
Project has a delay of 3.98% compared to previous forecasts
Schedule Performance Index:
SPI = EV/ PV = 1042/1086 = .9602
So, Project is in 96.02% Efficiency
Time Estimate at Completion:
EACt = (BAC/SPI)/(BAC/m) = (5922/0.96)/( 5922/5) = 5.21
So, if the project continues at these rates, I need 0.21 more months to complete it
Cost Performance Analysis:
Cost Variance:
CV = EV – AC = 1042.8 – 2101.33 = -1058.53
CV% = -1058.53/1042.8 = -102%
Project costs are 102% more than the value that I have created
Cost Performance Index:
CPI = EV/ AC = 1042.8/2101.33 = 0.5
Project efficiency is 50%, it means that for every euro spent only 0.50 $ create value
To-Complete Performance Index:
TCPI = (BAC-EV)/(BAC-AC) = (5922 - 1042.8)/( 5922 - 2101.33) =
1.28
To reach project objectives, the efficiency that must be achieved is 1.28
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
96
Performance Analysis and Forecast:
Project Tracking_20th_June.mpp
$0.00
$500.00
$1,000.00
$1,500.00
$2,000.00
$2,500.00
4/29
/200
7
5/6/
2007
5/13
/200
7
5/20
/200
7
5/27
/200
7
6/3/
2007
6/10
/200
7
6/17
/200
7
6/24
/200
7
7/1/
2007
Weeks
Cost
Total ACWP
Total BCWP
Total BCWS
Figure 7.9: Performance Analysis and Forecast on 20th June
Comments: At the end of 2nd analysis, I understood that we could not meet the updated plan
again because of the complexity of system mainly. Then I introduce some pair programming
according to XP methodology to solve more complex work of the system. So I have taken
following the necessary action for that.
Action
I have just assigned new resources for the new tasks to complete in next planned deadline
and also added some overtime work for the full-timer developer. The project cost again
increased for that but I did not get any way except that.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
97
Re-planed
Figure 7.10: Project Plan status after taking action on 20th June
Figure 7.11: Tracking Gantt with base line on 20th June (after re-planed)
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
98
7.3.3 3rd and final internal check: Week 10
This check is final before submitting my report based on 5th July’07. The following figure is
showing the status after monitoring on 5th July’07.
Figure 7.12: Project Plan status after monitoring on 5th July
Figure 7.13: Tracking Gantt with base line on 5th July
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
99
Analysis
Date: July 05, 2007
Earn Value Management:
Planed Value (PV) = 2454.00 Earned Value (EV) = 1878.00 Actual Cost (AC) =
2994.13
Budget at Completion (BAC) = 5922.00
Time Performance Analysis:
Schedule variance:
SV = EV – PV = 1878.00 – 2454.00 = -576
Comparison to the schedule:
SV%= SV/PV = -43.2/1086 = -23.4%
Project has a delay of -23.4% compared to previous forecasts
Schedule Performance Index:
SPI = EV/ PV = 1878.00 / 2454.00 = 0.7652
So, Project is in 76.52% Efficiency
Time Estimate at Completion:
EACt = (BAC/SPI)/(BAC/m) = (5922/.7652)/( 5922/5) = 6.53
So, if the project continues at these rates, I need 1.5 more months to complete it
Cost Performance Analysis:
Cost Variance:
CV = EV – AC = 1878.00 – 2994.13 = -1116.13
CV% = -1116.13/1878 = -59.4%
Project costs are 59.4% more than the value that I have created
Cost Performance Index:
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
100
CPI = EV/ AC = 1878/2994.13 = 0.62
Project efficiency is 62%, it means that for every euro spent only 0.62 $ create value
To-Complete Performance Index:
TCPI = (BAC-EV)/(BAC-AC) = (5922 - 1878)/( 5922 - 2994.13) =
1.38
To reach project objectives, the efficiency that must be achieved is 1.38
Performance Analysis and Forecast:
Project Tracking_5th_July
$0.00
$500.00
$1,000.00
$1,500.00
$2,000.00
$2,500.00
$3,000.00
$3,500.00
4/29
/200
7
5/6/
2007
5/13
/200
7
5/20
/200
7
5/27
/200
7
6/3/
2007
6/10
/200
7
6/17
/200
7
6/24
/200
7
7/1/
2007
7/8/
2007
7/15
/200
7
7/22
/200
7
Weeks
Cost
Total ACWP
Total BCWP
Total BCWS
Figure 7.14: Performance Analysis and Forecast on 5th July
Comments: At the end of 3rd analysis, I understood that we will not be able to meet the base
line plan (by only introducing some pair programming and assigning over allocation)
because of delay of task completion. We are already too much late from the initial milestone.
So I have taken following the necessary action for future. Figure 15 is showing how much far
from baseline to actual milestone
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
101
Action
Since the deadline is the major factor for this project, I have just started some parallel task
with the on going task which is not depended with the others and also added some overtime
work for the full-timer and part-time developers. As a result, the project cost again increased
for that but I am not getting any other way to solve that.
Re-planed
Figure 7.16: Project Plan status after taking action on 5th July
Tracking Gantt (Re-plan):
Figure 7.17: Tracking Gantt with base line on 5th July after re-planned
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
102
7.4 Final scenario
Figure 7.18: Project Statistics of final plan till 5th July
Project Tracking_5th_July_Action
$0.00
$200.00
$400.00
$600.00
$800.00
$1,000.00
$1,200.00
4/29
/200
7
5/6/
2007
5/13
/200
7
5/20
/200
7
5/27
/200
7
6/3/
2007
6/10
/200
7
6/17
/200
7
6/24
/200
7
7/1/
2007
7/8/
2007
7/15
/200
7
7/22
/200
7
Weeks
Cost
Total Actual Cost
Total Baseline1 Cost
Figure 7.19: Baseline and actual cost analysis graph till 5th July
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
103
8 Results of the Implementation
The result phase is the final phase of any kind of implementation before deployment of new
requirement of the system. It is the most important part to test or measure weather the
implementation is matched with the customer requirement or not and also to measure the error
of the system.
This section will summarize the output of the implementation including the following steps to
reach the output and corresponding screen shots as well. First, I will describe the steps of each
part to generate the output and then describe how to perform those steps using textual
description of sub-steps as well as related screen shot of steps or sub-steps.
8.1 Transportation
Transportation has four main parts in the EBR web application such as Transport Order (TO)
creation, execution, view Transport Order as well as graphical presentation of warehouse plan
from the resulting point of view.
8.1.1 The steps of transportation
The first three parts are related to core functional transportation of EBR module and the last
part is related to visualization of warehouse plant. The following steps are needed to see the
results of each part separately.
Part 1: In the TO creation, the user can create a transport order using the following steps. The
steps are:
1. Starting PALETTI Server to Creation or Execution of TO.
2. Getting transport order creation type
3. Select transport order creation type and put source LC
4. Select target area and target location depending on creation type
5. Finish transport order creation
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
104
Part 2: In the TO execution, the user can execute a transport order using the following steps.
The steps are:
1. Starting PALETTI Server to Creation or Execution of TO.
2. Putting source LC which is created
3. Select target area and target location depending on creation type
4. Finish transport order execution
Part 3: In the TO view, the user can view a list of transport orders using the following steps.
The steps are
1. Click for view transport order
2. Generate list of all transport order in to grid
3. User can filter and search TO by Order number, LC/TU and status
4. Back to the main module
8.1.2 Screen shots of transportation
The transport module appears when the user clicks from the top menu after authentication.
User needs to login and password to authenticate or to access this module like others section
of EBR application. The screen is look like the following *Figure 8.1 after authentication.
As you can easily see the transport button is present at the first-right position of the top menu.
The top menu is the only module navigator for this application. You will get the following
screen of main page of transportation when you click on the transport button:
All parts of the functional requirement will go forward from this page like creation, execution,
view, and warehouse plant graphical representation.
Part 1: In the TO creation, the user can create a transport order using the following steps.
Each step will be done by performing some tasks.
__________________________
* See Annex A for Screen Shot
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
105
1.1: Starting PALETTI Server is the first task to Creation or Execution of Transport order.
The relative path of the startapp.bat batch file is \MES4.2\runtime\palserver\startapp.bat
1.2: User will get the first page (*Figure 8.4) of the creation with transport order creation
type.
1.3: You have to select transport order creation type and put source LC which LC you want to
relocate in to a new target location. If the source LC is already moving to any target location
then system will generate an error and it will be unable to go forward. User can check the
status from the TO view (Part 3) section. Here we have chosen A00-FAT0002100 LC as an
example. So the screen will be like following.
1.4: You have to set target area for the Automatic creation type and target location will be
generated automatically from the system and you can also change it during execution. But you
have to set target location manually for the manual creation type and target location. So,
depending on creation type operation will be changed. Now you have to click on the next
button to confirm the target area or location for the final step. You can also go back from this
step and can choose different creation type or to cancel all operation.
1.5: You need only one click on OK button to finish transport order creation. After that, you
will go back to the main page (*Figure 8.2) of the transport module. Now the status of this
new transport order should be “Created” like the following screen if you go to view TO
section. It is described later how to view transport order in the part 3.
Part 2: In the TO execution, the user can execute a transport order using the following steps.
Each step will be done by performing some tasks.
2.1: Starting PALETTI Server is the first task to Execution of Transport order. The relative
path of the startapp.bat batch file is \MES4.2\runtime\palserver\startapp.bat. See *Figure 8.3
__________________________
* See Annex A for Screen Shot
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
106
2.2: Putting source LC which is already created. Here we have chosen A00-FAT0002100 LC
as an example which has been created before as TO creation in Part 1. Then move next to start
execute of this order.
2.3: Then Target area will show what you have already set during creation and target location
depending on creation type. If it is automation type then system will generate a location but
you have option to change this or keep the system generated location. But you have to provide
location specifically for the other types of transport order. Then move next to finishing the
start execute of this order. In this the total steps will be only 2. and you have to execute again
to finish execution. After that, you will go back to the main page (*Figure 8.2) of the
transport module. Now the status of this new transport order should be “Moving”. You have
to repeat step 2.2 again and after that you will get the following screen of *Figure 8.11. Then
*Figure 8.12 move next to finish execution of this order.
2.4: you need only one click on OK button to finish transport order execution. After that, you
will go back to the main page (*Figure 8.2) of the transport module. Now the status of this
new transport order should be “Finished” means the order is completed like the following
screen if you go to view TO section. It is described later how to view transport order in the
part 3.
Part 3: In the Transport Order view, the user can view a list of transport orders using the
following steps. Transport Order view also support filter search.
3.1: you have to click to view transport order in the transport menu. See *Figure 8.2 at the
begin of design part
3.2: It will generate list of all transport order in to grid including six columns such as TO
number, LC number, Source SL etc. (Like *Figure 8.8 & 8.13)
3.3: You can also perform a filter search by Order number, LC/TU and status (*Figure 8.8 &
8.13)
__________________________
* See Annex A for Screen Shot
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
107
3.4: Then you can back to the main module by back button. Back to *Figure 8.2 at the begin
of design part
8.2 Visualization of warehouse plant and transportation
The output of visualization of Warehouse Plant (WP) is basically the graphical view of
Storage Area & Location. It is a visual interface of storage of the warehouse plant where user
can see all Storage Area (SA) of the WP and can also see the inside view of each SA. Each
SA consists by a list of Storage Location (SL) and each SL is specified by Level, Aisle and
Direction (Left / Right). Each SL contains list of Load Carrier where the user will have the
creation or execution of transport order.
8.2.1 The steps of the visualization plant (Part 4)
User can see the warehouse plant, storage area, storage location and list of Load Carrier (LC)
inside SL and can create or execute Transport Order (TO) of that LC through these steps. The
steps are
1. Select WP from the transport module of the EBR project.
2. Getting Warehouse ID from the configuration file.
3. Generation of list of SA of the selected WP.
4. Generation of graphical view of SL of the selected SA.
5. Generation of grid view of LC of the selected SL.
6. Go to Part 1 or 2
7. Continue to creation or execution.
8.2.2 Screen shots of visualization plant (Part 4)
In the Transport Warehouse Plant, as you can easily imagine, a graphical view of Warehouse
Plant is presented in the EBR web application. The design of the Warehouse Plant UI is based
on the EBR framework with generating Dynamic HTML. The wizard consists of seven states,
as already mentioned:
__________________________
* See Annex A for Screen Shot
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
108
4.1: Select WP from the transport module of the EBR project. In the first state the Transport
module has to be selected from the Top menu after login
Go to *Figure 8.1 at the begin of design part. Then the Transport module will appear. Go to
*Figure 8.2 at the begin of design part.
4.2: Getting Warehouse Identifier from the configuration file. Fist of all, you have to set the
DEFAULT_WAREHOUSE Identifier variable in the following source file and the system
will get the default warehouse ID from the configuration file when user go for Warehouse
Plant. Source: \MES4.2\runtime\system\prefs\mes\paldefs.ini. Go to Configuration Section
4.3: System will generate a list of SA of the selected WP like the following screen shots
4.4: Generation of graphical view of Storage Location appears
4.5: Generation of grid view of LC of the selected SL.
4.6: Go to Part 1 or 2
4.7: Now you can continue to creation or execution operation from the list of load carriers.
8.3 Batch review tree
Batch review tree has been implemented in the different version of EBR and the interface of
the EBR of MES4.0 is different from the current one. The following section will show the
related step and screenshot of the implementation.
8.3.1 The steps of the Batch Review tree
The main steps of viewing batch review tree are:
1. Set any work center number
3. Login authentication
3. Select any shop order to see batch review: Batch Review View review
4. Select one of the leaves to get details.
__________________________
* See Annex A for Screen Shot
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
109
8.3.2 Screen shots of Batch Review tree
1. Start EBR server
Select Batch review from any work center
Step 1: Set any work center number
Step 2: Login authentication
Step 3: Select any shop order to see batch review: Batch Review View review
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
110
Next
You will get the following popup tree of batch review
Step 4: Select one of the leaves to get details.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
111
8.4 Configuration
In paldefs.ini you can specify the Warehouse identifier of the company is the local site. This
entry is necessary to generate warehouse Storage Area.
[warehouse]
; Doc: Shall input warehouse ID to be considered when checking
; storage area of an specific warehouse?
; Type: String
; Range: VARCHAR2(50)
; Sources:
/var/cvs/pmx/pylib/pmx/ebr/ebrroot/workflow/processing/actions/storeageARAc
tion.py
; Default: CHIESI001
DEFAULT_WAREHOUSE = CHIESI001
8.5 How to install or update
You have to have only only folder runtime to update the source code of MES4.2 project. The
folder is inside MES4.2_Update_Patch.rar file. You will get this file with this package
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
112
release folder. You have to extract MES4.2_Update_Patch.rar file into MES4.2 inside
\MES4.2\ or overwrite existing runtime folder with the new one. It will update automaticall
with the new changes. The list of changes folders are given below.
1. The files are changed inside the following rumtime sub folder for the new changes.
• \runtime\system\prefs\
• \runtime\system\pylib\
• \runtime\system\wwwroot\ebr\
• \runtime\system\wwwroot\ebr\style\
• \runtime\system\pylib\pmx\ebr\
• \runtime\system\pylib\pmx\ebr\ebrroot\workflow\
• \runtime\system\pylib\pmx\ebr\ebrroot\workflow\initialize\
• \runtime\system\pylib\pmx\ebr\ebrroot\workflow\processing\
2. The following folders are newly created in this version
• \runtime\system\pylib\pmx\ebr\ebrroot\workflow\inc\
• \runtime\system\pylib\pmx\ebr\ebrroot\workflow\paletti\
• \runtime\system\pylib\pmx\ebr\ebrroot\workflow\createto\
• \runtime\system\pylib\pmx\ebr\ebrroot\workflow\executeto\
3. Then you have to configure the Werehouse Name as default for the local site in the
following file paldefs.ini.
• \runtime\system\prefs\mes\paldefs.ini
Go to configuration code.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
113
9 Conclusion
At the end, I would say the main work of thesis was to visualize warehouse, transportation
from that interface as well as integrating presentation framework. In additional requirement
was to implement batch review and related part of the transportation such as transport order
view & searching, generalized algorithm and so on.
The output of implementation shows that all of the requirements have been implemented and
delivered successfully in time. First, I developed classical transportation in EBR, then
generalized algorithm & visualized according to this in the web page. Finally I added
transportation from the visual interface as well as developed other requirements.
The implementation of visualization of warehouse proves that is possible to use generalized
warehouse algorithm as well as transportation from one location to another navigating visual
warehouse for any Warehouse Management System. It also proves that is possible to use a
well-defined presentation framework for the Spyce platform.
I think that future steps would be the following
To implement warehouse visualization for other companies WMS software using this
algorithm.
To integrate Transportation interface easily from visual warehouse interface of any
warehouse management system.
To develop a well-define presentation framework for the Spyce platform.
Politecnico di Milano
An implementation of visualization and Transportation of warehouse on Electronic Batch Recording (EBR) application regarding Manufacturing Execution Systems (MES) – MJ Ferdous Thesis 2008
114
References:
[1] http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/6342/16979/00782570.pdf?arnumber=782570 [2] http://links.jstor.org/sici?sici=0025-1909(197208)18%3A12%3CB718%3AAEBABA%3E2.0.CO%3B2-H [3] http://www.nongnu.org/cvs/ [4] http://www.scs-europe.net/services/ess2004/pdf/meth-29.pdf [5] http://www.sciencedirect.com [6] http://idii.com/esn/vol2num11.htm [8] http://csiweb.ucd.ie/Staff/jmurphy/fecs/5_algodev.pdf [9] PressMan, Roser S. Software Engineering [10] http://www.cefriel.it/en/index.html [11] http://www.qpmg.com/fp-intro.htm [12] http://www.nps.navy.mil/wings/DevelopmentTeam1/Exercises_Examples_Folder/function_point_calculation_examp.htm
Annex A
115
Figure 8.1: EBR First page after authentication (successful)
Figure 8.2: Screen shot of the menu of Transport module
Annex A
116
Figure 8.3: Screen shot of starting PALETTI Server
Figure 8.4: Screen shot of the getting TO type (Process: Step 1)
Annex A
117
Figure 8.5: Screen shot of the creation TO of LC A00-FAT0002100 (Process: Step 1)
Figure 8.6: Screen shot of the creation TO of LC A00-FAT0002100 (Process: Step 2)
Annex A
118
Figure 8.7: Screen shot of the creation TO of LC A00-FAT0002100 (Step 3)
Figure 8.8: Screen shot of 'Created' TO from the transport view (LC A0-FAT0002100)
Annex A
119
Figure 8.9: Screen shot of the start execution TO of LC A00-FAT0002100 (Step 1)
Figure 8.10: Screen shot of the start execution TO of LC A00-FAT0002100 (Step 3)
Annex A
120
Figure 8.11: Screen shot of the finish execution TO of LC A00-FAT0002100 (Step 2)
Figure 8.12: Screen shot of the finish execution TO of LC A00-FAT0002100 (Step 3)
Annex A
121
Figure 8.13: Screen shot of list of 'Finished' TO filtered from the transport view (A00-FAT0002100)
Figure 8.14: Screen shot of the selected Warehouse Plant (storage areas)
Annex A
122
Figure 8.15: Screen shot of the Storage Locations of a selected Storage Area SA001 (Top)
Figure 8.16: Screen shot of the Storage Locations of a selected Storage Area SA001 (Bottom)
Annex A
123
Figure 8.17: Screen shot of the list of load carriers (LC) of Storage Location (SL) PESA001
Annex B
124
Figure 7.20: Screen shot of Detailed project plan from MS project 2003
Annex B
125
Figure 7.21: Graph of Detailed project plan from MS project 2003
Annex C
126
Annex C
127