Modeling Environment for Product Configuration in an ERP System

Post on 28-Nov-2014

2,273 views 0 download

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