`Product Configurator
`
`This guide describes the conceptof the Beologic® salesPLUS™ Product
`Configurator.
`
`Revision/Update Information:
`
`This is a manual for salesPLUS™-2.0
`
`Operating System and Version:
`
`MS Windowsrelease 3.1 or higher
`
`
`
`—1 Staisbiblioteket
`
`CONFIGIT 1051
`
`1
`
`
`
`
`
`Applicable Documents
`
`POM=
`
`User's Guide for the Beologic® salesPLUS™ Definer.
`Reference Guide for the Beologic® salesPLUS™ C-Language API.
`Getting Started with the Beologic® salesPLUS™for ‘Your platform’
`User's Guide for the Beologic® salesPLUS™ Customizer.
`
`November 1995
`
`Theinformation in this document is subject to change without notice and should not be
`considered as a commitment by Beologic A/S.
`
`Beologic A/S assumesno responsibility for any errors that may appearin this
`document.
`
`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 A/S
`
`All rights reserved.
`
`salesPLUS
`MS,MS-DOS Windows
`os/2
`Unix
`OSF/Motif
`VAX
`
`is a registered trademark of Beologic A/S
`are trademarks of Microsoft Carporation
`is a trademark of IBM Inc.
`is a trademark of Unix System Laboratories Inc.
`is a trademark of Open Software Foundation
`is a trademark of Digital Equipment Corporation
`
`2
`
`
`
`salesPLUS™
`
`
`
`q
`
`Contents
`
`Preface
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`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 salesPLUS™Highlights
`
`RARWw
`
`NN
`
`Methodology
`4.1
`Objects
`4.2
`Constraints
`4.3
`Resources
`44
`Types
`4.5 Menu-Hierarchy
`
`Haw to Make Objects
`5.1
`Object Types
`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
`
`3
`
`
`
`x salesPLUS™
`
`7.2
`
`How to Make Constraints
`7.1
`Product Range Decomposition
`7.1.1
`Decomposition
`7.1.2
`Link Features
`Product Configuration Constraint Rules
`W2A
`Design of Constraints
`7.2.2
`Syntax and Semantics
`7.2.2.1
`Logic Constraint Rules
`7.2.2.2 Arithmetic Constraints
`Resourcesin Constraints
`7.2.3
`Warning Rules
`7.2.4
`Constraint Style
`Problems and Solutions
`7AA
`Car Configuration Example
`742
`Computer Configuration Example
`7.43
`Telephone Switchboard Configuration (PABX)
`744
`Bang & OlufsenInstallation Guide Configuration
`
`7.3
`7.4
`
`Designing UserInterfaces
`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.
`
`Inference Engine.
`10.1 Constraint Solving
`10.2 Time Complexity
`10.3 Graceful Degradation
`
`Terminology
`
`10
`
`11
`
`vi
`
`
`
`Figures
`
`Figure 2-0-1
`Figure 4-5-1
`Figure 10-2-1
`Figure 10-2-2
`
`Béologic salesPLUS™Product Configurator
`Top Menu
`Execution Time and Inference Level
`Execution Time in Batch Mode
`
`3
`12
`55
`56
`
`i
`
`vii
`
`4
`
`
`
`—
`
`——
`
`4K| salesPLUS™
`
`XK
`
`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® salesPLUS™ Product Configurator.
`
`Chapter 3 - Functional Overview - and Chapter 4 - Methodology describe the
`functional capabilities and introduction to the modelling elements of the
`salesPLUS™,
`
`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 andverification of the constraint data product model.
`
`Chapter 10 - Inference Engine - describes the technical and computational
`issues of the salesPLUS™inference kernel.
`
`Chapter 11 - Termiriology - gives a summary of primary terms and conceptual
`information.
`
`viii
`
`5
`
`
`
` aS
`4| salesPLUS™
`
`Abbreviations:
`
`BPC
`API
`BOM
`NP-Hard
`
`Beologic® salesPLUS™ Product Configurator
`Application ProgrammingInterface
`Bill-Of-Materials
`Non-Polynomial Problem Complexity (Exponential)
`
`
`
`Introduction
`
`The Beologic® salesPLUS™ 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
`handslike optimization and default assignment.
`
`Furthermore, it is a too! 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 salesPLUS™tool.
`
`It will address more generaltopics related to construction and design of
`product configuration models, and outline how the salesPLUS™contributes as
`a competitive system for modelling of end user applicationsin all areasi.e.
`engineering, manufacturing, sales, service and maintenance.
`}
`Examples of configuration systemsare:
`
`°
`
`.
`.
`e
`
`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.
`Genericinstaliation guide and service guide that are custom specific.
`Configuring postal campaigns for weekly magazines.
`
`6
`
`
`
`
`
`J)K salesPLUS™
`
`
`
`2
`
`Overview
`
`The Beologic® salesPLUS™ Product Configurator consists of several modules
`that are executed/accessed independently of each other. The system is open
`and flexible for access of data to/from external sources.
`
` Figure 2-0-1 Beologic salesPLUS™ Product Configurator
`
`ASCII
`Compiled
`Resourcevalues
`Resource values
`is
`i
`
`External Database
`@
`a
`
`a
`
`1
`
`— — — —+p|salesPLUS) — — >
`Definer
`
`'?
`
`i
`
`4
`
`Knowledgebases
`
`Configuration data
`
`2
`
`3
`
`7
`
`
`
`)K| salesPLUS™
`
`
`Product model engineeringactivities:
`1.
`
`Analyze the functionsof the product, and the componentrelations.
`
`Divide into product areas.
`
`Identify objects and types.
`
`2 3
`
`.
`
`Design and outline the target application menu hierarchy.
`Apply the salesPLUS™Definerto define the objects, types, constraint
`rules ete.
`
`Include companydefinedpricelist information.
`
`Generate (compile) the product model.
`
`
`2.1
`The Custom Application
`
`The end user has accessto the product to configure through a standard
`interface salesPLUS™ Customizeror through a dedicated user interface,
`(specific application) supported by salesPLUS™API. The platform on which
`the user application is running can be Windows, DOS, Unix/MOTIF, OS/2. The
`facilities and the behaviourof the configuration system will be independent of
`the platform.
`
`Most companies wanttheir own design of the userinterface to makeit feel and
`looklike 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
`Detine- and Maintain Configuration Data
`
`Verify by checking and simulating the functional behaviour of the model
`(salesPLUS™ Customizer).
`
`New and complex products seem to be launched more frequently, and addition
`of new- and changesin old products are necessary. The company needsa tool
`for easy and consistent description of configurations, both accordingto the
`sales-, production-, and for the engineering requirements.
`The salesPLUS™Definer provides you with such a tool,( Fig. 2-0-1). lthas a
`graphical pick and place methodfor building or changing the configuration
`rules, and it has thefacilities 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, a commandline
`compiler and a general end-userlibrary salesPLUS™API 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 performedare 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.
`
`9.
`
`Distribute the defined product model to the end user(s).
`
`The end useractivities, e.g. of a sales personin thefield:
`1.
`
`Input of the functional requirements.
`
`2.
`
`Optional sele¢tions are presented reflecting the product model.
`
`Only valid options are presented and fully interactively
`included/excluded.
`
`Theactualprice list and/orbill-of-material is presented.
`
`Modifications/corrections can be performed to accommodate custom
`requirements.
`
`8
`
`
`
`yK| salesPLUS™
`
`
`
`3
`
`Functional Overview
`
`This chapter describes the primary features of the Beologic® salesPLUS™
`Product Configurator (BPC). The BPC is very flexible and the facilities can be
`used for many different purposes.
`
`
`
`3.1
`
`Beologic salesPLUS™Highlights
`
`Normally, a manual configuration processis a time consuming andcritical job.
`Even the best documentation and the mostskilled engineer are no guarantee
`for providing the customer with the most competitive solution for his or her
`demand. No one - except a Beologic® salesPLUS™ based laptop - has the
`powerof optimizing amongall legal combinations which fulfil the customer
`constraints.
`
`Someof the allgtlighit for an end user(e.g. a salesman) are:
`.
`Interactive selection in any order of product features and components.
`Criteria can be hardware components aswell asattributeslike speed,
`power, or prices.
`The interactive interface automatically reduces the available possibilities
`after each click on the mouse.
`
`.
`
`°
`
`e
`
`°
`
`.
`
`Undois as simple as selection.
`
`Optimization of prices and resources within customerdefined limitations
`or as match for competitors quotesis just a few clicks on the mouse.
`Fast responsetimes.
`
`Default settings and discounts.
`
`*
`Easy rebuild on top of ald quotations or default settings.
`°
`Check for complete products and quotations.
`. al facilities enclosed for extensive description of the configured
`solution.
`
`9
`
`
`
`Z|K| salesPLUS™
`
`.
`e
`
`The system deals with both absolute criteria and'soft' warnings.
`All configurations can easily be downloaded to the normal quotation
`system.
`Windows-, Unix/MOTIF-, OS/2 or DOS-baseduserinterface.
`°
`The optimal quotation assumes an updatedpricelist and a consistent and
`correct description of the product configurations. On top of the sales facilities,
`the Beologic® salesPLUS™providesthe configuration maintenance engineer
`with a powerful and compact constraint language.!n very short time and using
`a minimumofrulesit helps him design the complete product description with
`an openinterface to both the price list and the objects in his current product
`database.
`
`
`
`Methodology
`
`This section describes the primary methodologyfor defining a product model.
`
`Someof the highlights for the maintenance engineerare:
`.
`Anobjects oriented description of the product basedon 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 sayingif there are any logical
`conflicts in the product description.
`A powerful and compactnotation of constraints for both boolean and
`.
`LSseUSSU
`arithmetic expressions. Both positive and negative constraints can be
`used and combined.
`Objects
`
`.
`
`.
`
`°
`
`g
`
`The conceptof the configuration data is comprised by:
`®
`Objects
`:
`Constraints
`,
`Resources
`
`Types
`
`Menu-hierarchy
`
`°
`
`°
`
`.
`
`.
`
`.
`
`No expressionsordefinitions are necessary to deal with the underlying
`inference engine. Only product content constraints are necessary.
`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 compactnessthe end-users laptops can be updated from the
`network.
`
`Final configurations can be exchanged with Sales Support-, Production
`Management Systemsor quotation systems in ASCil file or database
`format.
`
`Support for multiple languagesis providedforall texts in the
`configuration data.
`
`The most fundamental part of the configuration data is the object. All the items
`or parts that can be part of a configuration
`nahi
`ig
`ion must be represented as or through
`
`Highlights
`
`.
`
`.
`
`.
`
`i
`Objecis are typically single parts or items such asflo
`d
`¢
`se
`engine, oak frame, ISDN card etc.
`i
`Features mayalso be represented as objects such
`, eyae
`metallic paint, corneretc.
`Objects can beofdifferent classes such as:
`Single
`(Boolean)
`Aaa
`(Finite domain)
`ne
`(List of parts logically grouped)
`AtMostOne
`(List of parts logically grouped)
`TypeEnum
`(Finite domain with type)
`Info
`(Text information only)
`
`10
`
`
`
`is
`
`c salesPLUS™
`
` . Objects have a unique !D association. This ID may be controlled by a
`
`typeif the class of the object is TypeEnum.
`43
`Reéources
`Objects can be governed byconstraints.
`Objects can be associated to resources.
`Resourcesin the Beologic® salesPLUS™areinterpreted as featuresthatrelate
`;
`-
`to the product parts and can be associated to some measure. Thetotal of the
`Objects can be positioned in the menu-hierarchy.
`individual parts resource measure describes the complete product
`.
`Objects can have asscciated explanation texts, graphics, a.o.
`Hightights
`
`.
`:
`.
`.
`
`E
`
`.
`
`*
`
`The resourceis independentof the constraints governing the
`aa model. Examples of resources are price, memory, weight
`c.
`,
`A resource can be attachedto any defined objectappropriate. E-E.g.a
`price is attached to the softwarelicences X.
`A resource has an associated unit.
`
`
`4.2
`Constraints
`The onlyrelations between objects are the constraints (or rules). When
`representing a configuration problem there are always somephysicallimits.
`The physicallimits may be a spacelimitation on the numberofitems, which go
`into a box ora limitation of a certain resource such as power supply, bus length
`or connectors. These physicallimits are naturally represented as arithmetic
`constraints.
`
`A different setof limits comesfrom the production and the assembly issues.
`Someparts exclude other parts for various reasons such astechnicallimits.
`These exclusions are straightforward represented in /ogical constraints.
`
`Marketing issues and companypolicies are the third source of constraints.
`These constraints are not logically driven and mayoften be the ones that
`changethe mostduring thelifetime of a product. For example marketing may
`decide notto sell a product without a minimal configuration, or dueto price
`policy limit the total numberof accessories. These constraints are naturally
`represented in both /ogical and arithmetic constraints.
`Highlights
`+
`The constraints restrict the combinations of the objects. This is done
`either by stating whatis legal, e.g.
`Model_X -> Part_Y,
`
`or by stating whatis illegale.g.
`impossible (Model_X, Part_Y).
`Logic constraintsallow all expressionsthat can be stated in boolean
`algebra.
`*
`;
`;
`;
`Arithmetic constraints support a setof relational expressions over
`boolean andfinite domain variable e.g.
`Part_X’550 + Part_Y*760 <= 1608.
`
`»
`.
`
`10
`
`.
`
`*
`
`A resource has a calculation method associated: either Addition or
`Maximum can be applied.
`The fesource of the addition type is dynamically calculated during the
`configuration process.|.e. if 5 drawers are selected andit is specified
`that the weight resource of each draweris 5 kg then the weightis
`increased by 25 kg.
`imizati
`A resource of the maximum type can be candid.
`aieie
`allocation oflimits.
`,
`Objects may specify negative values for resources. |.e. an object uses a
`certain amount of X whereas another object provide more X.
`Limits may be imposedatrun-time.
`.
`Resources can be positionedin the menu-hierarchy.
`.
`Resources can have associated explanation texts, graphics a.o.
`*
`SE
`44
`Types
`
`ate
`
`Sune can be used to make a generalrepresentation of physical devices,
`which are identical to the configuration modelin terms of functionality.
`However, they differ and therefore have different identification-/part numbers
`Similaritems are treated within one TypeEnum object (please refer to the
`Object Types section). Assigning this object has an influence on the
`configuration mode! but does not determine the objectID.
`
`:
`
`11
`
`11
`
`
`
`ivayK| salesPLUS™
`
`
`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 couniry to a specific part ID. When you
`select four power cords, you do not have to bother with the actual part ID.
`Whenyoulater select the specific country, this will fix your ID.
`
`45
`Menu-Hierarchy
`
`Beologic® salesPLUS™supports a menu-hierarchy. The menu-hierarchy can
`be used bythe application interface.It is up to the interface designer to make
`the decision. For example the positioning information (x, y) can be interpreted
`as inchesor millimetres on the screen.
`
`The menu-hierarchy hasfacilities for positioning the objects on the screen, and
`it provides logical grouping of objects that can be shown asframes.
`Furthermore,it supports menusat several Jevels or submenus.
`
`.
`
`.
`°
`°
`.
`°
`e
`
`Two types of menus can be Specified. Boxmenu(a box in a window),
`Submenu(a windowat a lowerlevel).
`A name canbe given to the FREES
`The menusarelinked in a parent/child concept.
`Objects can be positioned (%, ¥)ina menu.
`Boxmenus and Submenus can be positioned (X, Y) in a menu.
`Information fields and types can be positioned(X, Y) in a menu.
`
`Figure 4-5-1
`
`Top Menu
`____ _ TopMenu _—_ wo|
`|
`|
`|
`
`[@bjectX}|Submenu7] |
`Boxmenu
`[_Object_ 1.eeareneh|
`[ited OB
`oe ee | Object Q |
`| Object¥ |
`[TypeB| |
`{ObjectZ|
`|Cject|
`[_TypeA|=[_infoa|
`
`
`
`
`
`
`
`12
`
`13
`
`a
`
`'i
`
`12
`
`
`
`
`
`i)
`
`K salesPLUS™
`
`How to Make Objects
`
`All items, parts or attributesfitting 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,butit is only sold as a whole andit is
`consequently one object.
`
`An object can be of the following types:
`.
`Single
`.
`Enum
`
`.
`.
`
`.
`.
`
`OneOt
`AtmostOne
`
`TypeEnum
`Info
`
`In this chapter each type will be elaborated and exampleswill 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.
`
`Someproducts such as cars givelittle freedom for the user. In cars, trim and
`air-condition can be applied only once, andit is determined where to mount
`these options. This requires certain types of objects to be used. Other products
`suchastelephone switchboard configuration give almost total freedom to the
`user. E.g. a box has 96 slots and you can almostput anyoption in anyslot.
`
`14
`
`15
`
`13
`
`
`
`—_
`Mx| salesPLUS™
`
`
`5.1
`Object Types
`
`unless there could be future scenarios wh
`available.
`3
`
`
`i
`a
`ane Ss
`ere a bigger range
`
`
`5.1.1
`
`OneOfObjects
`
`Objects of the type OneOf are objects whose elements exclude each other.
`ne object is used to group a sat of components from which you must select
`
`Single Objects
`As the type-namesayssingle objects are objects that do not have fixed
`relations or multiple instantiations. It may be characterized by the fact that you
`can answeryesor no to whether the objectis in the configuration.
`From car configuration,
`i
`typical OneOf obj
`i
`I
`jects are engines, models,
`paints and
`;
`Speaking about car configuration, typical single objects that represent a
`trims. You must select exactly one of these objects. A OneOf ebjecearielis
`physical part may be ABS-brakes, burglar alarm orair-condition.
`more parts of the product, e.g. for the object engine it may be5different types
`of engines, which are the elements of the object.
`Typical Single objects that represent a feature may be metallic paint and
`leathertrim. There are manykinds of both metallic paints and ordinary paints.
`j
`i
`Models and monitors are good representatives of
`OneOfobjects speaking
`iene
`p
`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 leathertrim.
`In telephone switchboard configurations OneOf options are seldom used.
`Speaking about computer configuration,typical single objects that represent a
`
`physical part maybe software licences and documentation. Single objects that
`represent a feature may by load-device, network-connection and factory-
`installed-software.
`Object load-device meansthat a load-device exists in the configuration.If no
`load-device is present, no software can be loadeddirectly into the computer.
`
`LS
`5.1.2
`Enum Objects
`Enum objects are, as the type-namesays, 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 0 to 15 additional 32Mb memory options.
`From car configuration hardly anything exists that naturally enumerates.
`Everything comesina fixed number, e.g. 4 tires, 1 sunroof, 1 trim set atc.
`However, in telephone switchboard configuration almost any option can be
`enumerated such as ISDN-cards, analogue cardsetc.
`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 usageof Single is preferred-due to clarity,
`
`16
`
`5.14
`
`AtmostOne Objects
`
`AtmostOneobjects are objects where you can
`select one element at most.
`|
`Otherwise, AtmostOne objects are similar to OneOt objects.
`.
`4
`’
`aie Eanavian the sunroof js a perfectillustration of the object type
`an select among several sunroofs but
`you do not have to sele
`you cannot select more than one.
`.
`ce
`However, if the list of paints is huge then ie might spit thelist fara
`lists. If we split the car paints into metallic paints and ordinary paints, instead of
`one OneOf object two AtmostOneobjects should be made. Furthermore a
`constraint should be made to ensure that a paint has been chosen.
`
`A different usage of this object type is with paints. All
`
`paints are
`
`j
`
`i
`icati
`From computer configuration asynchronous c
`ommunication options are
`é
`1
`feasible for this object type if you can select maximum one.
`
`In telephone switchboard configuration options are seldom used.
`
`17
`
`14
`
`
`
`
`
` whenactivated. Info objects cannot be reasoned about by the constraint.ee5.2 machine-interfacein the interactive dialogue with the user.a5.3
`
`A|
`
`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 arisesif
`a constraint demandsthat you must select at least one of A, B orC:
`
`ie
`
`A+B+C>0°
`
`In the situation where noneof the 3 objects is chosen we chooseto 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 thenthis
`is in conflict with the above constraint.
`The inference engine then selects the largest set of default values, which can
`be assignedi.e. A and B get bound to 0 andC isleft for the user to decide
`upon - but now the 0 value is not available for the user. This situation can be
`prevented by not picking any default value for the three objects. The user will
`have to pick some objects in such cases.
`
`Objects, which by the Knowledge Engineer are intended to be derived
`automatically, need no default value. E.g. the number of power cordsis
`intended to be calculated from the number of boxesthat is chosen. If a default
`value 2 for the powercordsis instantiated, this forces the user to pick 2 boxes,
`which were probably not intended.
`
`As a conclusion all objects which represent a feature should have the default
`value omitted because they are usually governed by other object selections.
`
`
`Object ID
`
`;
`
`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
`components that can be assembled.
`
`Of course the ID can be used to access database information about the part
`and thereby give a description. This makes the manualtyping of descriptions
`unnecessary for the objects.
`
`
`Object Identifier
`
`salesPLUS™
`
`
`5.1.5
`
`TypeEnum Objects
`Objects of the type TypeEnum are, as the nameof the type suggests, an object
`which can be enumerated in some way and hasa type associated.
`The functionality of this object is the same as for the Enum object with the
`additional feature of the type.
`
`eS
`5.1.6
`
`Info Objects
`
`Textual information is supportedin the info objects. Texts are used for passing
`on information on the product or some components to the user. The texts have
`an associated position and consequently they can be placed in menus as
`wanted. The printed configuration guide often states the text to be displayed
`andits logicalrelative to the objects.
`Thetext field name is used as the button name that opens the text display
`
`Object Description
`Each object has a name. The nameis typically used as the button text in the
`userinterlace. There is no binding of this namein termsof 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 hold a longer explanation of
`the object andits purpose. For the objects of the type ONEOF and
`ATMOSTONEthe elements have an associated description text as well.
`Graphicalfiles (pictures) can be detined with each object or element. The
`pictures can be applied by the end-user application to support the man-
`
`Default Values
`
`To each object you can choose a default value among its elements. In the user
`interface the default values can beinstantiated 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
`becomederived by the inference engine.
`
`18
`
`The objects have Identifiers. The identifier must obey some conventions
`becauseit is to be written in constraints. Imagine having an object named "1 +
`2". This leads to ambiguousinterpretation of a constraint. Therefore, operators,
`spaces and special characters are prohibited.
`
`19
`
`15
`
`
`
`salesPLUS™
`
`
`
`
`
`How to Use Resources
`
`Resourcesin the Beologic® salesPLUS™areinterpreted asfeatures that relate
`to the product parts and that can be associated to some measure. Thetotal of
`the individual parts resources describes the complete product. A typical
`example of a resource linked to the product partsis 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 hasa unit attached which might be kg, Mwatts, secondsetc.
`Each resource has several connectedattributes. These attributes are used to
`indicate:
`
`*
`.
`.
`
`If limits are possible on the resource
`If optimization is possible on the resource
`If the resource should be shown in a BOMlist
`
`
`
`Resource Types
`
`Static Resources
`
`A static resource is a measure of an object that does not changevery often.
`Often a resource is only chosenasstatic if the measure will not or hardly will
`change duringthelife time of the part. For example memory cardsfor
`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 usedin constraints.
`
`21
`
`20
`
`16
`
`
`
`"g salesPLUS™
`
`x]
`
`:
`jorse
`pow
`
`Ss —=— tool. Forcarsit is possible to state that at least 200 h
`6.1.2
`Dynamic Resources
`and then ask the salesPLUS™ Customizerto minimize theise,You peso
`a
`:
`:
`:
`F
`State that you at most have $40,000 and then ask the salesPLUS™
`A dynamic resourceis a feature of objects that will change often or which is
`Customizerto find the car with the paasimniritive
`accessed through an external database. The resource price may evidently
`-
`rs€ powers.
`changeseveraltimes per year for most products. To cope with this change
`there is no need to edit anything with the salesPLUS™Definer utilities. Instead
`the change can beincorporated by a salesPLUS™import utility that takes a
`new price table and replaces the old one in the configuration data.
`
`The dynamic resource value can be changedat run-time. This provides the
`ability to cope with discounts.
`
`
`6.2
`Calculation Methods
`
`
`6.2.1
`
`Addition
`
`A resourcethat is calculated by Addition sums up the objects that are selected.
`If more from a domain is selectedit will be multiplied. An example is the weight
`whichis the sum of all the involved parts and if more than one of an object is
`chosen, the resource value associated ta the abject 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 exampleis delivery time that will be the longest of the
`involved parts, butwill not differ if one or two of an object is chosen.
`
`
`
`6.3
`
`Limits and Optimization
`
`The resources can be given upper andlowerlimits during a session in
`Beologic® salesPLUS™ Customizer or another custom application using the
`APL This feature allows the end user to abstract from the actual objects and to
`select a required performanceinstead.
`
`A secondfeature of the resourcesis 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
`
`23
`
`17
`
`
`
`y K| salesPLUS™
`
`"g
`
`
`
`How to Make Constraints
`
`
`7A
`Product Range Decomposition
`
`In the salesPLUS™is it recommendedto 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 maintenancesimplicity,is it important that the number of constraints never
`becomestoo 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 ruies,
`butit is almost impossible for even skilled Knowledge Engineers to change the
`rules.
`;
`Before a release of configuration data, a test must be madetoseeif errors
`have been introduced into the configuration data. With the product range
`decomposedit is only necessary to test the altered products. if you have one
`big knowledge base, you might have introduced side effects. Therefore you
`musttest the entire product range, which implies that new releases cannot be
`madeonthefly.
`
`7.1.4
`
`Decomposition
`
`The decomposition of a product range can be outlined by severalrules:
`.
`A printed user guide for configuration often gives the suitable size of one
`product or several products to be placed in the sameconstraint rule
`base.
`
`.
`
`.
`
`From this basis it might be easy to merge more productvariants. E.g.
`tropical, indoor and outdoor cabinet versions may be relevant to merge.
`
`it is better with several small configurations than a few large
`
`25
`
`24
`
`18
`
`
`
`)K| salesPLUS™
`Ag
`
`configurations for the reasons mentioned above. Furthermore, at the
`end, a user must manageit and although the inference engine makes
`sure that nothing is chosenincorrectly, the user should still be able to
`move aroundin the menus without getting lost in the manylevels of
`submenus.
`
`Experience with the salesPLUS™ will give you the necessary overview
`to see whereto split up the product range.
`
`
`°
`
`Link Features
`
`In order to support splitting of product rangesa logic link