modeling environment for product configuration in an erp system
DESCRIPTION
TRANSCRIPT
Modeling Environment for Product Configuration in an ERP SystemLEIC traineeship at Microsoft Development Center Copenhagen
Author: João Filipe Gama de MagalhãesSupervisor at FEUP: António Coelho
Supervisor at Microsoft: Per Vikkelsøe
September 2007
Overview
1. Introduction
2. Problem Description
3. Developed Solution
4. Demo
5. Conclusions
6. Future Work
7. Questions
2Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
Introduction
3Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
Microsoft Corporation
• Founded in 1975 by Bill Gates and Paul Allen with the
BASIC programming language for MITS Altair
• Biggest software company worldwide
• Employs more than 75 thousand persons
• Flagship products include Windows OS and Office suite
• Has a complete set of different products, ranging from
ERP to Games, Books, Hardware, etc.
Introduction
4Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
Microsoft Development Center Copenhagen
• Located in Vedbæk (Outskirts of Copenhagen)• Member of Microsoft Business Division• Supply chain excellence center• Microsoft Dynamics AX– ERP system targeted at mid-large sized companies– Originally developed by Damgaard Data A/S– Current version is 4.0 the next version is planed for 2008– The business logic development uses the proprietary X++ language
Introduction
5Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
Product Configuration I
• Way to personalize products for customers
• Base for the production order
• The outputs are the BOM and the Routes
• Divided into modeling and configuration parts
Introduction
6Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
Product Configuration II
base model
configured model
Introduction
7Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
Product Configuration III
Product ModelerProduct Modeler
Product Configurator
Product Configurator
Salesman / Order ProcessorProduction Engineer
ModelData
ModelData
Introduction
8Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
Microsoft Dynamics AX Product Builder
• Current solution for product configuration in the Microsoft Dynamics AX ERP system
• Integrates to other AX’s functional areas: Enterprise Portal, Master Planning, Production and Sales and Purchasing
• Rule based system
Problem Description
9Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
Objectives I
• Product Modeling language (Pml)
• Language with declarative syntax
• Objective oriented (OO) compliant language
• Syntax Highlighting and Code Completion services
Problem Description
10Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
Objectives II
• Product configurator compatible with Pml models
• Simple API for external configuration usage
• Configurator capable of use the Object Orientation (OO) capabilities provided by the Pml language
Problem Description
11Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
The Pml Framework
• Pml Compiler – provides support for model compilation
• Pml Compiler Tools – gives support for syntax highlighting and code completion, based on the same idea behind Microsoft’s “Intellisense” technology
• Interpretation tools – represents the set of tools for interpretation of the compiled models
• Adapter Abstraction Layer – loads the adapters using reflection, allowing the usage of multiple constraint solvers
• Configuration Engine – coordinates the configuration process and provides the API for configuration
Developed Solution
12Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
The Pml Language
• Defines the product block as the base block, equivalent to class, extension support
• Supports the definition of the BOM and Route structures
• The inheritance on the product variables, BOM structure, Route structure and constraints
• Contains namespaces for context division
Developed Solution
13Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
The Modeling Environment
Compiler ToolsPml Compiler
Client Compiled Product Model
Code Generator
Lexical Analyzer
Semantic Analyzer
Syntactical Analyzer
Product Model
Pml Code Tools
Syntax Highlighter
Code CompleterAST
Developed Solution
14Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
The Compiler
• Semantic analyzer based in a recursive descent of the Pml AST using C# code
• Multiple code output (XPML, XCML), but it possible to add others
Pml Compiler Input / Output
PML FilePML Compiler
XPML File
XCML File
Other Pml output
compliant file
• The lexical and the syntactical analyzers are based
respectively in the GPLEX and GPPG solutions
Developed Solution
15Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
The Compiler Tools
• Provide simple way to produce and compile Pml code
• Use the current location of the caret to send information to the client
• Rely on the context information to provide accurate completion data
• Based in dictionaries to provide a fast and responsive system
Developed Solution
16Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
The Configuration Environment
Configuration EngineAdapter Abstraction Layer
Microsoft Constraint Solver
Adapter
Microsoft Parallel Constraint Solver
Adapter
Interpretation Tools
Client
API
Microsoft Parallel Constraint Solver
Microsoft Constraint Solver
Compiled Product Model
ASTAdapters
Developed Solution
17Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
The Interpretation Tools
• Supports both XCML and XPML model formats
• Uses the .NET XML parsing library (DOM based)
• Outputs a simple AST used by the various visitors
• Faster than interpreting Pml code directly
Developed Solution
18Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
The Adapter Abstraction Layer
• Provides the necessary support to load multiple constraint solvers
• .NET Reflection based
• “Uses” the Adapter pattern to load the adapters
• Requires the Visitor pattern to adapt the AST contents to the selected solver
• Reference implementation contains support for two Microsoft based constraint solvers
Developed Solution
19Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
The Configuration Engine
• Main entry point for the configuration process
• Controls the interpretation of the compiled models
• Calls the AAL for loading and running of the various
constraint solvers
• Controls the external API calls
20Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
• Bicycle factory based problem• Configuring a bike to fulfill the customer requirements for a
customized bicycle• Configuration of the bicycle according to:
• Model type – Mountain, City, BMX
• Frame Type – Steel, Titanium, Aluminium, Carbon
• Crank Type – Silver, Steel, Titanium, Aluminium, Carbon, CarbonAluminium
• Grip Type – Ergonomic, City, Mountain
• Pedal Type – Steel, Titanium, Aluminium, Carbon
• Seat Type – Gel, Leather, Sheep, Silver
• Wheels and Tyres
Demo
21Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
Demo
Demo
22Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
• The proposed project has been successfully implemented
• All the main requirements have been fulfilled• Integration with André’s project has been
completely achieved• Cooperation with the members of the Microsoft
campus has been critical to the success of the project
Conclusions
23Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
• Debugger
• Documentation generation
• Increased support for complex BOM and Routes
• Better use of Metadata
• Unit Test support
• Model obfuscation / encryption
Future Work
24Modeling Environment for Product Configuration in an ERP SystemSeptember 2007
Questions
Questions