`Product Configurator
`
`This guide describes the concept of the Beoiogic® salesPLUSTM Product
`Configurator.
`
`Revision/Update Information:
`
`This is a manual for salesPLUSTM-ZD
`
`Operating System and Version:
`
`MS Windows release 3.1 or higher
`
`
`
`I
`
`I Statsbiblioteket
`
`CONFIGIT 1051
`
`1
`
`
`
`
`
`Applicable Documents
`
`1
`2.
`3.
`4
`
`User's Guide for the Beologic® salesPLUSTM Definer.
`Reference Guide for the Beologic® salesPLUSTM C—Language API.
`Getting Started with the Beologic® salesPLUSTM for 'Your platform‘
`User’s Guide for the Beologic® salesPLUSTM Customizer.
`
`November 1995
`
`The information in this document is subject to change without notice and should not be
`considered as a commitment by Beoiogic AIS.
`
`Beologic A/S assumes no responsibility for any errors that may appear in this
`document.
`
`i
`
`The software described in this document may not be copied on magnetic tape. disks or
`any other medium for any purpose other than the purchaser's personal use.
`
`Copyright © 1995 Beologic AIS
`
`All rights reserved.
`
`salesPLUS
`MS,MS—DOS Windows
`03/2
`Unix
`OSF/Motil
`VAX
`
`is a registered trademark of Beologic A/S
`are trademarks of Microsoft Corporation
`is a trademark of lBM Inc.
`is a trademark of Unix System Laboratories Inc.
`is a trademark of Open Software Foundation
`is a trademark of Digital Equipment Corporation
`
`2
`
`
`
`)‘ salesPLUSTM
`
`
`
`Contents
`
`Preface
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`iv
`
`Introduction
`
`Overview
`2.1
`The Custom Application
`2.2
`Define- and Maintain Configuration Data
`2.3
`Primary Flow of Operation
`
`Functional Overview
`3.1
`Beologic salesPLUSTM Highlights
`
`Methodology
`4.1
`Objects
`4.2
`Constraints
`4.3
`Resources
`4.4
`Types
`4.5 Menu-Hierarchy
`
`How to Make Objects
`5.1
`Object Wpes
`5.1.1
`Single Objects
`5.1.2
`Enum Objects
`5.1.3
`OneOf Objects
`5.1.4
`AtmostOne Objects
`5.1.5
`TypeEnum Objects
`5.1.6
`Info Objects
`5.2 Object Description
`5.3
`Default Values
`5.4 Object iD
`5.5 Object Identifier
`
`How to Use Resources
`6.1
`Resource Types
`6.1.1
`Static Resources
`6.1.2
`Dynamic Resources
`Calculation Methods
`6.2.1
`Addition
`6.2.2
`Maximum
`Limits and Optimization
`
`6.2
`
`6.3
`
`ix
`
`54:56:
`
`\lfl
`
`10
`11
`11
`12
`
`15
`16
`16
`16
`17
`17
`18
`18
`18
`18
`19
`19
`
`21
`21
`21
`22
`
`22
`22
`22
`
`3
`
`
`
`salesPLUST"I
`
`7
`
`8
`
`9
`
`7.2
`
`How to Make Constraints
`7.1
`Product Range Decomposition
`7.1.1
`Decomposition
`7.1.2
`Link Features
`Product Configuration Constraint Rules
`7.2.1
`Design of Constraints
`7.2.2
`Syntax and Semantics
`7.2.2.1
`Logic Constraint Rules
`7.2.2.2 Arithmetic Constraints
`Resources in Constraints
`7.2.3
`Warning Rules
`7.2.4
`Constraint Style
`Problems and Solutions
`7.4.1
`Car Configuration Example
`7.4.2
`Computer Configuration Example
`7.4.3
`Telephone Switchboard Configuration (PABX)
`7.4.4
`Bang & Olufsen Installation Guide Configuration
`
`7.3
`7.4
`
`Designing User Interfaces
`8.1
`How to Make the Menu-Hierarchy
`8.2
`Boxes and Submenus
`8.3 Multiple Languages
`
`How to Compile and Check Configuration Data
`9.1
`Compilation
`9.2
`Check
`Bound Objects in Constraints
`9.2.1
`No Solution
`9.2.2
`Bound Objects in the System
`9.2.3
`Checking of Examples
`
`9.3
`
`10
`
`Inference Engine.
`10.1 Constraint Solving
`10.2 Time Complexity
`10.3 Graceful Degradation
`
`11
`
`Terminology
`
`
`
`Figures
`
`Figure 2-0.1
`Figure 4-5-1
`Figure 10.2-1
`Figure 10-2-2
`
`Beologic salesPLUSTM Product Configurator
`Top Menu
`Execution Time and Inference Level
`Execution Time in Batch Mode
`
`3
`12
`55
`56
`
`I
`
`25
`25
`25
`26
`26
`26
`27
`27
`28
`29
`30
`30
`31
`31
`36
`40
`42
`
`45
`45
`45
`46
`
`47
`47
`47
`47
`48
`48
`49
`
`51
`51
`52
`56
`
`59
`
`vi
`
`vii
`
`4
`
`
`
`_._ 7
`
`salesPLUSTM
`
`)l
`
`Preface
`
`This document provides the user with guidelines on conceptual information for
`developing configuration systems to be used by engineering, sales, service or
`manufacturing organizations.
`
`Chapter 1 - Introduction - and Chapter 2 - Overview - give a brief introduction
`to the Beologic® salesPLUSTM Product Configurator.
`
`Chapter 3 - Functional Overview- and Chapter 4 - Methodology describe the
`functional capabilities and introduction to the modelling elements of the
`salesPLUSTM.
`
`Chapter 5 - How to Make Objects - Chapter 6 - How to Use Resources -
`Chapter 7 - How to Make Constraints - and Chapter 8 - Designing User
`Interfaces - go into details on how to design the configuration model of your
`product.
`
`Chapter 9 - How to Compile and Check Configuration Data - describes the
`principles in generation and verification of the constraint data product model.
`
`Chapter 10 - Inference Engine - describes the technical and computational
`issues of the salesPLUSTM inference kernel.
`
`Chapter 11 - Termirr‘ology— gives a summary of primary terms and conceptual
`information.
`
`viii
`
`'x
`
`5
`
`
`
` “ V
`salesPLUSTM
`
`Abbreviations:
`
`BPC
`API
`BOM
`NP—Hard
`
`Beologic® salesPLUSTM Product Configurator
`Application Programming Interface
`Bill-Of—Materials
`Non-Polynomial Problem Complexity (Exponential)
`
`
`
`1
`
`Introduction
`
`The Beologic® salesPLUSTM Product Configurator (BPC) provides a user
`friendly and flexible configuration environment. The users have freedom in the
`order of choices they make, quick response time and powerful functions in their
`hands like optimization and default assignment.
`
`Furthermore, it is a tool for creating and maintaining configurations in an easy
`way, with unique features like consistency check of configuration data.
`
`The document outlines and elaborates the concept of the salesPLUSTM tool.
`
`It will address more general topics related to construction and design of
`product configuration models, and outline how the salesPLUSTM contributes as
`a competitive system for modelling of end user applications in all areas i.e.
`engineering, manufacturing, sales, service and maintenance.
`l
`
`Examples of configuration systems are:
`
`-
`
`-
`-
`-
`
`Product quotation and price optimization to sales people. Examples of
`such products are cars, PABX, computers, etc.
`Generic bill-of-material that is custom specific.
`Generic installation guide and service guide that are custom specific.
`Configuring postal campaigns for weekly magazines.
`
`6
`
`
`
`
`
`)‘ salesPLUSTM
`
`
`
`2
`
`Overview
`
`The Beologic® salesPLUSTM Product Contigurator consists of several modules
`that are executed/accessed independently of each other. The system is open
`and flexible for access of data to/trom external sources.
`
`
`
`Fi ure 2-0-1 Beolo ic salesPLUSTM Product Confi urator
`ASCII
`Compiled
`Resourceyalues
`Resource values
`L
`J
`
`External Database
`{I
`L
`‘
`
`nd -
`
`) E
`
`application
`
`Custom
`
`
`
`
`
`
`Knowledgebases Configuration data
`
`7
`
`
`
`)l salesPLUSTM
`
`
`
`
`2.1
`The Custom Application
`
`The end user has access to the product to configure through a standard
`interface salesPLUSTM Customizer or through a dedicated user interface,
`(specific application) supported by salesPLUSTM API. The platform on which
`the user application is running can be Windows, DOS, Unix/MOTIF, 08/2. The
`facilities and the behaviour of the configuration system will be independent of
`the platform.
`
`Most companies want their own design of the user interface to make it feel and
`look like other programs that they use or make. Therefore we provide you with
`the API set from which an interpretation of a user interface can be built easily
`with desired additional features.
`
`
`2.2
`Define- and Maintain Configuration Data
`
`New and complex products seem to be launched more frequently, and addition
`of new— and changes in old products are necessary. The company needs a tool
`for easy and consistent description of configurations, both according to the
`sales-, production, and for the engineering requirements.
`it has a
`The salesPLUSm Definer provides you with such a tool,( Fig. 2-0-1).
`graphical pick and place method for building or changing the configuration
`rules, and it has the facilities for checking the consistency of the configuration
`data and for simulating the run time behaviour of the end user application.
`
`in order to provide access to the above mentioned platforms, at command line
`compiler and a general end-user library salesPLUSm APl are used as a
`specific generation tool and as an application interface respectively.
`
`
`2.3
`Primary Flow of Operation
`
`The primary activities and flow of operation to build and use a configuration
`system are outlined below.
`
`The tasks to be performed are typically divided between a person having
`detailed product knowledge and a sales person with a commercial background,
`to cover the modelling phase and to operate as an end user respectively.
`
`Product model engineering activities:
`
`1.
`
`2.
`
`3
`
`4.
`
`5.
`
`6.
`
`7.
`
`8.
`
`Analyze the functions of the product, and the component relations.
`
`Divide into product areas.
`
`Identify objects and types.
`
`Design and outline the target application menu hierarchy.
`
`Apply the salesPLUSTM Definer to define the objects, types, constraint
`ru es etc.
`
`Include company defined price list information.
`
`Generate (compile) the product model.
`
`Verify by checking and simulating the functional behaviour of the model
`(salesPLUSTM Customizer).
`
`9.
`
`Distribute the defined product model to the end user(s).
`
`The end user activities, e.g. of a sales person In the field:
`
`1.
`
`2.
`
`3.
`
`4.
`
`5.
`
`Input of the functional requirements.
`
`Optional selections are presented reflecting the product model.
`
`Only valid options are presented and fully interactively
`included/excluded.
`
`The actual price list and/or bill-of—material is presented.
`
`Modifications/corrections can be performed to accommodate custom
`requirements.
`
`8
`
`
`
`)‘ salesPLUSTM
`
`
`
`3
`
`Functional Overview
`
`This chapter describes the primary features of the Beologic® salesPLUSTM
`Product Configurator (BPC). The BPC is very flexible and the facilities can be
`used for many different purposes.
`
`
`3.1
`
`Beologic salesPLUSTM Highlights
`
`Normally, a manual configuration process is a time consuming and critical job.
`Even the best documentation and the most skilled engineer are no guarantee
`for providing the customer with the most competitive solution for his or her
`demand. No one - except a Beologic® salesPLUSTM based laptop - has the
`power of optimizing among all legal combinations which fulfil the customer
`constraints.
`
`Some of the highlights for an end user (9.9. a salesman) are:
`-
`interactive selection in any order of product features and components.
`Criteria can be hardware components as well as attributes like speed,
`power, or prices.
`The interactive interface automatically reduces the available possibilities
`after each click on the mouse.
`
`-
`
`.
`
`-
`
`-
`
`.
`
`.
`-
`
`-
`
`Undo is as simple as selection.
`
`Optimization of prices and resources within customer defined limitations
`or as match for competitors quotes is just a few clicks on the mouse.
`Fast response times.
`
`Default settings and discounts.
`
`Easy rebuild on top of old quotations or default settings.
`Check for complete products and quotations.
`
`Exlplanation facilities enclosed for extensive description of the configured
`so ution.
`
`9
`
`
`
`)i
`
`salesPLUSTM
`
`-
`.
`
`-
`
`The system deals with both absolute criteria and 'soft' warnings.
`All configurations can easily be downloaded to the normal quotation
`system.
`
`Windows-, Unix/MOTIF, 08/2 or DOS-based user interface.
`
`The optimal quotation assumes an updated price list and a consistent and
`correct description of the product configurations. On top of the sales facilities,
`the Beologic® salesPLUSTM provides the configuration maintenance engineer
`with a powerful and compact constraint language. In very short time and using
`a minimum of rules it helps him design the complete product description with
`an open interface to both the price list and the objects in his current product
`database.
`
`,
`.~.
`
`
`4
`
`Methodology
`
`.
`This section describes the primary methodology for defining a product model.
`
`Some of the highlights for the maintenance engineer are:
`-
`An objects oriented description of the product based on either objects
`from the product database or manually defined objects/attributes.
`Prices and resources can be dynamically linked to the product
`description whereby they are automatically updated.
`A consistency check function is available saying if there are any logical
`conflicts in the product description.
`
`.
`
`-
`
`The concept of the configuration data is comprised by-
`°
`Objects
`-
`onstraints
`C
`.
`Resourc
`
`.
`
`es
`
`'
`'
`
`Types
`Menu-hierarchy
`
`A powerful and compact notation of constraints for both boolean and
`arithmetic expressions. Both positive and negative constraints can be N
`used and combined.
`4.1
`Objects
`
`No expressions or definitions are necessary to deal with the underlying
`inference engine. Only product content constraints are necessary.
`I
`I
`.
`.
`.
`Support for definition and graphical display of many types of menus,
`boxes, buttons, etc.
`A complete product ruleset can be maintained in a single database, and
`because of compactness the end-users laptops can be updated from the
`network.
`Final configurations can be exchanged with Sales Support-, Production
`Management Systems or quotation systems in ASCII file or database
`format.
`Support for multiple languages is provided for all texts in the
`configuration data.
`
`The most fundamental part Of the configuration data is the 01319015 A“ the items
`or parts that can be part of a configuration must be represented as or th
`h
`an object.
`I"3'49
`
`-
`
`.
`
`Highlights
`pically Single parts or items such as flo
`'
`.
`Objects are ty -
`.
`.
`engine, oak frame, ISDN card etc.
`ppy dISK’ turbo
`Features ma als
`b
`.
`_
`metallic painty corzefertipresemed as 01316ch sum as load devrce,
`’
`'
`Ob‘ects can be of
`'
`.
`Single
`défoiroeIgtacIIIasses sum as.
`Enum
`(Finite domain)
`OneOf
`(List of parts logicall
`V grouped)
`.
`AtMostOne
`(List of pans logically grouped)
`TypeEnum
`(Finite domain with type)
`W0
`(Text information only)
`
`.
`
`-
`
`.
`
`-
`
`-
`
`.
`
`8
`
`10
`
`
`
`fl
`
`salesPLUST"
`
`-
`
`-
`-
`-
`-
`
`Objects have a unique ID association. This ID may be controlled by a
`type if the class of the object is TypeEnum.
`Objects can be governed by constraints.
`Objects can be associated to resources.
`.
`.
`.
`_
`.
`Objects can be posmoned In the menu-hierarchy.
`Objects can have associated explanation texts, graphics, a.o.
`
`
`4.2
`Constraints
`
`The only relations between objects are the constraints (or rules). When
`representing a configuration problem there are always some physical limits.
`The physical limits may be a space limitation on the number of items, which go
`into a box or a limitation of a cenain resource such as power supply, bus length
`or connectors. These physical limits are naturally represented as arithmetic
`constraints.
`
`A different set of limits comes from the production and the assembly issues.
`Some parts exclude other parts for various reasons such as technical limits.
`These exclusions are straightfonivard represented in logical constraints.
`
`
`
`4_3
`
`Resources
`
`Resources "1 the 39°!OQiC® salesPLUSTM are interpreted as features that relate
`to the product parts and can be associated to some measure The total of the
`IndIVidual parts resource measure describes the complete product
`\
`Highlights
`
`-
`
`.
`
`-
`
`-
`
`The resource is independent of the constraints governing the
`:onfiguration model. Examples of resources are price, memory weight
`c.
`.
`.g. a
`A resource can be attached to any defined objectif appropriate E.
`price is attached to the software licences X.
`A resource has an associated unit.
`
`:
`i er
`i ion or
`A resource has a calculation method associated e'th Add't'
`Maximum can be applied.
`
`'
`'
`The resource of the addition type is d
`ynamlcally calculated durin the
`.
`.
`.
`configuration process. Le. if 5 drawers are selected and it is spetgfied
`that the weight resource of each drawer is 5 k the
`'
`'
`increased by 25 kg.
`9
`n the WEIght Is
`A resource of the maximum type can be candid
`'
`'
`'
`_
`allocation of limits.
`for optimization and
`
`ate
`
`Objects may specify negative values for resources. l.e. an object uses a
`certain amount of X whereas another object provide more X.
`
`Limits may be imposed at run-time
`Resources can be positioned in the menu—hierarchy.
`Resources can have associated explanation texts, graphics so.
`
`-
`'
`
`Marketing issues and company policies are the third source of constraints.
`These constraints are not logically driven and may often be the ones that
`change the most during the lifetime of a product. For example marketing may
`decide not to sell a product without a minimal configuration, or due to price
`policy limit the total number of accessories. These constraints are naturally
`represented in both logical and arithmetic constraints.
`Highlights
`.
`The constraints restrict the combinations of the objects. This is done
`either by stating what is legal, e.g.
`Mode|_X '> Pan—Y7 _§_
`4.4
`Types
`
`or by stating what is illegal e.g.
`impossible (Model_X, Part_Y).
`.
`.
`.
`.
`is constraints allow all ex ressmns that can be stated in boolean
`L
`p
`09
`algebra.
`Arithmetic constraints support a set of relational expressions over
`boolean and finite domain variable e.g.
`Part_X’550 + Part_Y*760 <= 1608.
`
`-
`.
`
`10
`
`-
`-
`-
`A Type can be used to mak
`h Sical deVices
`e a general representation of
`-
`.
`.
`'
`which are identical to the configuration model in terms of fainttionality.
`owever, they differ and therefore have different 'd
`-
`'
`'
`'
`H
`I
`Similar items are treated within one TypeEnum objjcgttfpfigggg (gar:gutrrr‘ileaers.
`Object Types section). Assigning this object has an influence on the
`configuration model but does not determine the object lD.
`
`11
`
`11
`
`
`
`l ' '
`j)‘
`
`salesPLUSTM
`
`More TypeEnum objects may use the same type and thus you can get a two-
`dimensional selection of more parts.
`
`Highlights
`
`
`
`From computer configuration there are often country specific items such as
`power cord being a TypeEnum object. This is due to the different plugs. The
`type is country, and all available countries are present. In the power cord
`TypeEnum object you associate each country to a specific part lD. When you
`select four power cords, you do not have to bother with the actual part lD.
`When you later select the specific country, this will fix your ID.
`
`4.5
`Menu-Hierarchy
`
`Beologic® salesPLUSTM supports a menu-hierarchy. The menu-hierarchy can
`be used by the application interface. It is up to the interface designer to make
`the decision. For example the positioning information (x, y) can be interpreted
`as inches or millimetres on the screen.
`
`The menu-hierarchy has facilities for positioning the objects on the screen, and
`it provides logical grouping of objects that can be shown as frames.
`Furthermore, it supports menus at several levels or submenus.
`
`_
`
`-
`.
`
`'
`.
`.
`.
`
`Two types of menus can be specified. Boxmenu (a box in a window),.
`SmeenU (a Window at a lower level).
`A name can b
`-
`e given to the menuS.
`The menus are linked in a parent/child concept.
`Objects can be positioned (X Y) in a menu
`Boxmenus and Submenus can be positioned (X, Y) in a menu.
`information fields and types can be positioned (X, Y) in a menu.
`
`
`
`EJBnTefifij
`
`
`l
`
`
`Submenu 1
`-’
`“EEO: L¢¢.wm::,
`“Obie—cf
`____ _.
`*‘m i
`l Object Q j
`T 93
`_____ ‘
`**YL*
`erbjectW!
`‘
`—°T'ECT
`,,;ij
`'
`lnf02
`l
`[4mg L
`'
`
`{Tamed—F}
`
`Boxmenu
`l_'lrifo"‘1__
`***—‘
`~ObjectY
`L,,,,J
`[Tbie'EZ‘]
`., 7,,
`l. WEAJ
`
`ll l
`
`
`
`12
`
`13
`
`_
`
`_
`
`'
`
`‘ _*_‘—_i.'———r———r+_u __ _
`
`12
`
`
`
`'7‘
`)‘ salesPLUSTM
`
`
`
`How to Make Objects
`
`All items, parts or attributes fitting into a configuration must be represented as
`or via an object. The division of the product into objects should reflect the
`saleable/configurable level. If the product were split into parts each of these
`components would constitute an object. For example a printed circuit board
`consists of many components, but it is only sold as a whole and it is
`consequently one object.
`
`An object can be of the following types:
`.
`Single
`.
`Enum
`
`-
`-
`
`-
`.
`
`OneOf
`AtmostOne
`
`TypeEnum
`Info
`
`In this chapter each type will be elaborated and examples will be shown. Which
`type of object to use for a product part depends on the product composition.
`Some products may not use a specific kind of object whereas other products
`mostly use that object type.
`
`Some products such as cars give little freedom for the user. In cars, trim and
`air-condition can be applied only once, and it is determined where to mount
`these options. This requires certain types of objects to be used. Other products
`such as telephone switchboard configuration give almost total freedom to the
`user. E.g. a box has 96 slots and you can almost put any option in any slot.
`
`14
`
`15
`
`13
`
`
`
`r
`)l salesPLUSTM
`
`7-1
`
`
`5.1
`Object Types
`
`
`5.1.1
`
`Single Objects
`
`unless there could be future scenarios wh
`.
`available.
`
`
`'
`ere a bi
`
`99
`
`er ran e
`9 may become
`
`5.1.3
`
`OneOf Objects
`
`As the type-name says single objects are objects that do not have fixed
`relations or multiple instantiations. It may be characterized by the fact that you
`can answer yes or no to whether the object is in the configuration.
`
`Speaking about car configuration, typical single objects that represent a
`physical part may be ABS-brakes, burglar alarm or air-condition.
`
`Typical Single objects that represent a feature may be metallic paint and
`leather trim. There are many kinds of both metallic paints and ordinary paints.
`Therefore metallic paint (Yes/No) provides a good general choice for the end
`user by which the possible options are narrowed down. The same
`considerations apply for leather trim.
`
`Speaking about computer configuration, typical single objects that represent a
`physical part may be software licences and documentation. Single objects that
`represent a feature may by load-device, network-connection and factory-
`installed-software.
`
`Object load-device means that a load-device exists in the configuration. it no
`load-device is present, no software can be loaded directly into the computer.
`
`____—._—_——————
`5.1.2
`Enum Objects
`
`Enum objects are, as the type-name says, objects that can be enumerated in
`some way.
`
`From computer configuration, typical Enum objects may be memory options
`and disk options. You can select from O to 15 additional 32Mb memory options.
`
`From car configuration hardly anything exists that naturally enumerates.
`Everything comes in a fixed number, e.g. 4 tires, 1 sunroof, 1 trim set etc.
`
`However, in telephone switchboard configuration almost any option can be
`enumerated such as lSDN-cards, analogue cards etc.
`
`Evidently there is a certain overlap between an object of the type Single and an
`Enum object with the range [0..1]. These two objects can be used for the same
`logical interpretation of an item. The usage of Single is preferred-due to clarity,
`
`16
`
`Objects of the type OneOf are objects whose elements exclude each other.
`lattes object is used to group a set of components from which you must select
`
`'
`'
`From car configuration typical OneOf ob'
`'
`,
`jects are engines, models, aints and
`trims. You must select exactly one of these objects. A OneOf objectintails
`more parts of the product, e.g. for the object engine it may be 5 different types
`of engines, which are the elements of the object.
`
`Models and monitors are good re resentatives of
`about computers.
`p
`
`'
`'
`OneOf objects speaking
`
`In telephone switchboard configurations OneOf options are seldom used.
`
`
`5.1.4
`
`AtmostOne Objects
`
`AtmostOne objects are objects where you can
`select one element at most.
`.
`_
`OthenNise, AtmostOne objects are similar to OneOf objects.
`.
`l
`.
`Facilmccar confitguratron the sunroof is a perfect illustration of the object type
`-
`an se ec among several sunroofs but ou do not have to sale
`you cannot select more than one.
`y
`of one, and
`
`A different usage of this object type is with aints. All aints are
`'
`Flowever, if the list of paints is huge then ygu might split the list lageser/gfafds-
`lists. If we split the car paints into metallic paints and ordinary paints instead of
`one OneOf object two AtmostOne objects should be made. Furthermore a
`constraint should be made to ensure that a paint has been chosen.
`’
`
`'
`'
`'
`From computer configuration asynchronous c
`ommunication options are
`.
`.
`_
`.
`feaSIble for this object type if you can select maximum one.
`
`In telephone switchboard configuration options are seldom used.
`
`17
`
`14
`
`
`
`salesPLUSTM
`
`5.1-5
`
`_
`TypeEnum ObIECtS
`
` '
`
`A
`+ B + C > 0
`.
`.
`.
`.
`in the Situation where none of the 3 objects IS chosen we choose to apply the
`default values. Then the inference engine will try to give a default value to the
`objects. This is not possible because if A, B and C are assigned to 0 then this
`fs in conflict with the above constraint.
`The inference engine then selects the largest set of default values, which can
`be assigned i.e. A and B get bound to O and C is left for the user to decide
`upon - but now the 0 value is not available for the user. This situation can be
`prevented bky not picging any default value for the three objects. The user will
`ave to ic some 0 ‘ects in such cases.
`p
`t
`Objects, which by the Knowledge Engineer are intended to be derived
`automatically, need no default value. E.g. the number of power cords is
`intended to be calculated from the number of boxes that is chosen. If a default
`value 2 for the power cords is instantiated, this forces the user to pick 2 boxes,
`x which Were Probably not intended.
`5.2
`Object Description
`
`A plain conflict may occur if we have 3 Enum objects (A, B, C) with the range
`from 0 to 3 and the default value is chosen to be 0. A potential conflict arises if
`a constraint demands that you must select at least one of A, B or C:
`
`P
`
`.1
`
`As a conclusion all objects which represent a feature should have the default
`value omitted because they are usually governed by other object selections.
`
`
`5.4
`
`Object ID
`
`i
`
`The object ID is typically used for transferring information about the
`configuration to a manufacturing system. if necessary the manufacturing
`system will make a final breakdown of the configuration parts into smaller
`com onents that can be assembled.
`
`p
`
`Of course the ID can be used to access database information about the part
`and thereby give a description. This makes the manual typing of descriptions
`unnecessary for the objects.
`
`5.5
`
`Object Identifier
`
`The objects have ldentifiers. The identifier must obey some conventions
`because it is to be written in constraints. Imagine having an object named ”1 +
`2". This leads to ambiguous interpretation of a constraint. Therefore, operators,
`spaces and special characters are prohibited.
`
`ts an object
`,
`Objects of the type TypeEnum are, as the name of the type sugges
`which can be enumerated in some way and has a type assocnated.
`.
`.
`-
`-
`-
`b'ect with the
`The functlohailty 0f th‘S ObJGCt ‘5 the same as for the Enum o t
`additional feature Of the type.
`_————
`5.1.6
`Info Objects
`
`_
`_
`.
`Textual information is supported In the info ObieCtS- Texas are “3?: ttéfitzsrmg
`on informatiog on the protéuc't or5:526”gigggncznrtsbteojtlaietcsith meius as
`an associate
`OSI Ion an cons
`,
`wanted. The prtinted configuration guide often states the text to be displayed
`and its logical relative to the objects.
`.
`The text field name is used as the button name that opens the text display
`when activated. Info objects cannot be reasoned about by the COhStta'ht'
`
`,
`Each object has a name. The name is typically used as the hUttOh text 'h the
`user interface. There is no binding of this name in terms of the characters that
`can be used. For objects of the type ONEOF and ATMOSTONE each element
`has a name associated.
`
`The objects also have description texts, which can hOtd :1Eager edxplanation Of
`the object and Its purpose. For the objects 9f the type 0 _
`t
`in well
`ATMOSTONE the elements have an assomated descriptlon ex as
`'
`Graphical files (pictures) can be defined with each object or element. The
`pictures can be applied by the end-user application to 5Upp°tt the man—
`machine-interface in the interactive dialogue mm the user.
`
`#—
`5,3
`Default Values
`
`.
`To each object you can choose a default value among Its elements. In the user
`interface the default values can be instantiated to the objects, which presently
`have no assignment.
`
`The default value for an object should be chosen carefully. Partly because the
`default values may conflict and partly because some objects are intended to
`become derived by the inference engine.
`
`18
`
`19
`
`15
`
`
`
`salesPLUSTM
`
`
`
`
`
`How to Use Resources
`
`Resources in the Beologic® salesPLUSTM are interpreted as features that relate
`to the product parts and that can be associated to some measure. The total of
`the individual parts resources describes the complete product. A typical
`example of a resource linked to the product parts is the price. The total gives
`the total price of the parts chosen. Other resources are weight, stock, ISDN
`subscribers, memory, power consumption, assembly time, delivery time etc.
`
`Each resource has a unit attached which might be kg, Mwatts, seconds etc.
`Each resource has several connected attributes. These attributes are used to
`indicate:
`
`.
`-
`.
`
`If limits are possible on the resource
`It optimization is possible on the resource
`If the resource should be shown in a BOM list
`
`
`6.1
`
`Resource Types
`
`6.1.1
`
`Static Resources
`
`A static resource is a measure of an object that does not change very often.
`Often a resource is only chosen as static if the measure will not or hardly will
`change during the life time of the part. For example memory cards for
`computers. We have a resource named memory with the unit Mbytes. The 8
`Mbytes cards will have the resource memory attached with the value 8 and the
`32 Mbytes card will have the value 32. It is unlikely that the 8 Mbytes card will
`change the value without becoming a new part with a new ID within the
`company.
`
`Static resources can be used in constraints.
`
`21
`
`20
`
`16
`
`
`
`2:
`
`salesPLUSTM
`
`5-1-2
`
`Dynamic Resources
`.
`,
`.
`.
`,
`.
`A dynamnc resource Is a feature of objects that Will change often or Wthh IS
`accessed through an external database. The resource price may evidently
`change several times per year for most products. To cope with this change
`there is no need to edit anything with the salesPLUSTM Definer utilities. Instead
`the change can be incorporated by a salesPLUSTM import utility that takes a
`new price table and replaces the old one in the configuration data.
`
`The dynamic resource value can be changed at run—time. This provides the
`ability to cope with discounts.
`
`
`6.2
`Calculation Methods
`
`
`6.2.1
`
`Addition
`
`A resource that is calculated by Addition sums up the objects that are selected.
`If more from a domain is selected it will be multiplied. An example is the weight
`which is the sum of all the involved parts and if more than one of an object is
`chosen, the resource value associated to the object will be calculated (by
`summation).
`
`
`6.2.2
`
`Maximum
`
`A resource that is calculated by Maximum reflects the objects that have the
`highest resource associated and are selected. The domains are not multiplied
`to find this value. An example is delivery time that will be the longest of the
`involved parts, but will not differ if one or two of an object is chosen.
`
`
`6.3
`
`Limits and Optimlzation
`
`The resources can be given upper and lower limits during a session in
`Beologic® salesPLUSTM Customizer or another custom application using the
`API. This feature allows the end user to abstract from the actual objects and to
`select a required performance instead.
`
`A second feature of the resources is that there are build-in facilities for
`optimization. Both minimization and maximization are possible.
`
`The combination of the limits and the optimization facilities provide a powerful
`
`22
`
`fl
`
`tool. For cars it is possible to state that at least 200 horse powers are needed
`and then ask the salesPLUSTM Customizerto minimize the price You can also
`state that YOU at most have $40,000 and then ask the salesPLUSTM
`Customizer to find the car with the maximum horse powers
`-
`
`23
`
`17
`
`
`
`)‘ salesPLUSTM
`
`24
`
`
`
`How to Make Constraints
`
`
`7.1
`Product Range Decomposition
`
`In the salesPLUSTM is it recommended to split a company‘s products into
`several constraint rule bases. This gives the advantage of easy maintenance
`and test procedures before releases of new/changed configurations.
`
`For maintenance simplicity, is it important that the number of constraints never
`becomes too big. Even quite complicated products should have less than 100
`constraints. Ordinary products have between 30 and 40 constraints.
`
`Traditional configuration tools claim that they have systems with 10000 rules,
`but it is almost impossible for even skilled Knowledge Engineers to change the
`rules.
`f
`Before a release of configuration data, a test must be made to see if errors
`have been introduced into the configuration data. With the product range
`decomposed it is only necessary to test the altered products. If you have one
`big knowledge base, you might have introduced side effects. Therefore you
`must test the entire product range, which implies that new releases cannot be
`made on the fly.
`
`7.1.1
`
`Decomposition
`
`The decomposition of a product range can be outlined by several rules:
`-
`A printed user gui