Top Banner
Product Configurator and OOD of Modeling Metadata in Siebel 7.8 Siebel Systems Confidential
21
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Configurator Overwiev

Product Configurator and

OOD of Modeling Metadata in Siebel 7.8

Siebel Systems Confidential

Page 2: Configurator Overwiev

Siebel Confidential – Do Not Distribute

What is Siebel Configurator

Metadata - The Model

Runtime Data - Configuration Instance

Solution generation - Configurator Engine

How it is assembled - Configurator Services

QA

Agenda

Page 3: Configurator Overwiev

Siebel Confidential – Do Not Distribute

What is Siebel Configurator

Facilitates presentation and selection of available options

Provides the ability to guide the user trough quote/order process and create a best solution, matching customer requirements

Ensures Customizable Product

quote and order accuracy at the point of sale

Helps buyers to select a combination of right features and components of a compound product, and avoid incompatible or inefficient assembly.

Page 4: Configurator Overwiev

Siebel Confidential – Do Not Distribute

How Configurator works?

Config Services

Config Services

BinaryFiles

Structure

UI defs

In-memoryCache

Object Broker

Object Broker

ConstraintEngine

ConstraintEngine

Instance Broker

Instance Broker

UI ServicesUI Services

EAIEAI

Comp-ityComp-ity

EligibilityEligibility

PricingPricing

ScriptingScripting

EAI

EAI

In-memoryCache

Object Broker

Object Broker

UI Fram

e

SWE

SWE

UI Bus

ines

s Serv

ice (a

pplic

ation

)

UI Bus

ines

s Serv

ice (a

pplic

ation

)

Curren

t Sele

ction

RCOISRCOIS

Page 5: Configurator Overwiev

Siebel Confidential – Do Not Distribute

UI Service

Used during runtime configurator session.

Is executed in the context of the object manager (server component) for the base application (such as eSales).

Takes over rendering part of the user interface from the Siebel Web Engine (SWE).

Renders the runtime UI based on the declarative UI administration data, repository data, and the current configuration state.

Page 6: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Instance Broker

The point where the user state is maintained.

“What your instance of this product object is”

Access point to all other services and brokers. Configuration Services. Pricing. EAI.

Used to resolve cardinality and for those relationships and attributes that do not have constraint rules associated with them.

Page 7: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Configuration Services and Constraint Engine

Configuration Services Siebel’s configuration engine. Handles interfaces with Siebel modeling rules and definitions. Reduces the portion of the product considered by the constraint engine.

Constraint Engine Evaluates selection using constraint satisfaction libraries. Is only created when the product being configured has constraint rules. Considers only those parts of the product that are involved in constraint

rules. This is evaluated for each: Relationship. Attribute.

Page 8: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Metadata – Object Oriented Design IObject Structure

Products modeled as Objects: Traits (attributes, relationships, rules)

are parts of product definitions; resulting structure is treated as one object

Benefits Common Object definitions, maintained in

single place

Composition – Has A structure Object’s can contain Sub-Objects

(relationships) Sub-Objects are defined as references

to other Objects

Benefits Components can be used independently or

reused in multiple compositions (as sub components of larger systems)

Ability to create hierarchical structures of any depth (larger systems)

Eliminates redundant maintenance (changes made to a component are reflected in all affected compositions)

Car|-Capacity - 4|_ Wheels - 4 |_& The Wheel

Bike|-Capacity - 2|_ Wheels - 2 |_& The Wheel

Bicycle|-Capacity - 1|_ Wheels - 2 |_& The Wheel

The Wheel

Page 9: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Metadata – Object Oriented Design II Classification, Derivation, Inheritance

Classification – Is A structure Objects are organized in a tree-like class

structure, through parent-child relationships, forming hierarchy of logical groups of objects

Classes as generic products Classes are Objects as well Represent generalized products Like products, can have Traits (attributes,

relationships, rules...), common for the group of derived objects

Derivation and Inheritance All traits are Inherited from Base to Child

down the derivation tree Set of Inherited traits can be expanded by

adding new once on a child level Parent-Child relationships are referential,

implying automatic propagation of changes down the derivation tree

Trait Overwrite Inherited traits can be further specialized

(overwritten) on a child level

Transport

GroundAir Transport Maritime

Cars

JetsGliders

Sports Cars

Trucks

Train Bicycles

Page 10: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Metadata – Object Traits IStructural Traits: Attributes

Attribute Definitions (Types)

Generalized attribute types Defining data type and possible

domain of values domain can be enumerated or

continuous (free form) Multilingual display values can be

associated with enumerated domain

Continuous domain can be restricted to an interval of values with Min/Max values

Attributes Scalar properties of objects Based on Attribute Definitions Base domain can be further

restricted on attribute level Can have set of additional

characteristics, such as Default Value, Read-only flag...

Can be Inherited and Overwritten

attr def Color data type - Text; domain - Enumerated |_Read |_Green ... |_Brown |_Black

attr def My Numdata type - Integer; domain – Free Form (Interval)Min/Max [0 ; 10,000]

Attr “Interior Color”based on “Color”; default Brown...

Attr “Exterior Color”based on “Color”; default Read...

Attr “Capacity”based on “My Num”; Min/Max [2; 4]default 4...

class Car

class Transport

Attr “Capacity”based on “My Num”; Min/Max [1; 1,000]default 100...

Page 11: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Metadata – Object Traits IIStructural Traits: Sub-Components

Sub-Components Defined in relationships of type

Has A (AK as Ports)

Relationship is based on a class, defining type of sub-components, that can be accepted in the domain

Domain elements are references to other products;

Relationship can accept more than one instance of sub-components (Min/Max/Default cardinality); one of elements can be designated as a default choice

Relationships can be Inherited and Overwritten

CAMAC Crates

CAMAC Rack

Min 0; Max 3

CAMAC Crates

Page 12: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Metadata – Object Traits IIIUI Related Traits

UI Definitions Component’s UI presentation is a part of the object definition; Each object can have multiple UI presentations – UI Options Depending on user’s responsibilities, different UI presentation can

be used in runtime UI Option is a Set of UI Groups, organized in tabs or menus or

wizard pages; Each UI Group, defining overall layout and behavior of a page, is a

set of UI Items Each UI Item, associated with one structural element (attribute,

relationship...) of the object, defines the type of UI Control, used in presentation

Benefits Rich variety of UI Controls (based on swe templates) - Radio

buttons, Dropdown lists, Checkboxes, Custom controls... Possibility to reorganize and selectively display the set of essential

elements of complex assemblies Components’ UI presentation consistent across all models

UI Properties Set of extra properties, associated with any trait

Component Structure

UI Group

UI Option

UI ItemDropdown boxfor the attribute Hard Drive Size

Page 13: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Metadata – Object Traits IVEngine Related Traits

ILog Rules Set of constraint rules, defining validity of final instance complex logical expressions, that can be nested set of dependencies: requires, excludes, contributes... conditional messages and recommendations Presented in Natural language instead of RAL Inheritable

Linked Items External variables used in rules; resolved in runtime and

treated as constants during the configuration session Based on BC runtime queries Example: Username, or Account associated with the

quote Inheritable

Resources Global temporary variables used in rules; Example: Total cumulative Power, consumed by

electronic assembly can be restricted Inheritable

Scripts VB or Siebel scripts written by customer; triggered on

specific events during configuration session; Inheritable

Wheel

Tire

Rim

Inner Diam.Diam.

Rule: Tire.Inner Diam. == Rim.Diam

Page 14: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Metadata – Resulting Structures in RuntimeConfiguration Model – CxSet

Wheel 1 : Wheel

Tire 2Tire 1

Rim 2Rim 1

Diameter

Cylinder : N/A

Width

Box : N/A

Length

WidthHigh

Inner Radius

Wheel : Cylinder

Max Speed

Tire : Cylinder

Rim : Cylinder

Finish

Inner RadiusTread

Doughnut : Cylinder

Topping

Tire 1: Tire

Tire 2: Tire

Rim 1: Rim

Rim 2: Rim

Doughnut 2: DoughnutDoughnut 1: Doughnut

The Tire : Tier

The Rim : Rim

Cart 1: N/A

Wheel 1 1

Wheels : Wheel

Self Contained Set for Cart 1

• Classes

•Cylinder,

•Wheel,

•Tire,

•Rim;

•Products

•Wheel 1,

•Tire 1,

•Tire 2,

•Rim 1,

•Rim 2;

•+ Attribute Defs

Configuration Model:The set of all Object Definitions, necessary for a given object to function properly, is defined as Self-Contained Set of Objects or Configuration Model.

The starting Object, for which the Self-Contained Set was determined is defined as Root Object

Page 15: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Metadata – Versioning

In order to maintain stability of metadata, Objects are versioned

Page 16: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Database Schema – General Owerview

VOD header and Vesions

S_VODS_VOD_VER

Version ControlS_PROD_CFGVER is

reused insteadS_VOD_LANG

Translation

ISS Product Template/ProductBlock

ISS Product TemplateRecords

ISS Product TemplateRecords

S_VODwith Type = Product

or ISS Class

PSP Procedure Block

PSP ProcedureRecords

PSP ProcedureRecords

S_VODwith Type = PSP

Proc

Context Variable MapBlock

Context VariableMap Records

Context VariableMap Records

S_VODwith Type = Ctxt Var Map

Context Signal Block

Context SignalRecords

Context SignalRecords

S_VODwith Type = Ctxt Signal

JWS Block

S_ISS_JWS_ITEMSCheck-outs in JWS

S_ISS_JWS_HEADJWS Header

S_ISS_JWS_LANGTranslation

ISS Attribute DefinitionBlock

ISS AttributeRecords

S_PROD_INTNon versioned info

Optional 1:1

Type Switchexclusiveconnector

ISS AttributeRecords

S_VODwith Type = ISS

Attr Def

ISS Object Broker system tables Block

S_VOD_CACHESYNCBroker Sync Header S_VOD_CACHEREQ

Object Sync Requests

S_UI_CTRL_STYLEDefinition

Smart part Number Block

S_XA_CLS_PRTNUM

S_PARTNUM_DEF

S_PARTNUM_ABBR

S_PRTNUM_MTRX

Rule Editor TemplateBlock

S_RULE_DATATYPE???

S_RULE_TMPL???

S_RULE_TMPL_ARG???

S_RESPResponsibility

Page 17: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Database Schema – Header and Attribute Definition

ISS Attribute Definition Block

S_ISS_ATTR_DEF - DefinitionROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDFIRST_VERSLAST_VERSDATA_TYPE_CDMIN_VALMAX_VALINCR_VALUOM_CDDOMAIN_TYPE_CD

S_ISS_ATTR_VAL - Enumerated ValuesROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDFIRST_VERSLAST_VERSLIC_VALUE (*)SEQ_NUM

S_ISS_ATRV_LANG - Value Translations

PAR_ROW_ID = ROW_ID

ROW_IDPAR_ROW_IDLANG_IDLIC_VALUE

S_LST_OF_VAL - MLOVTYPE; NAME; VAL; LANG_IDTYPE = ISS_ATTR_DOM_DTYPELIC Values:EXCLUSIONS; ENUMERATED

DOMAIN_TYPE_CD = NAME

S_LST_OF_VAL - MLOVTYPE; NAME; VAL; LANG_IDTYPE = ISS_ATTR_DTYPELIC Values:Text; Date; Integer; Number;Boolean

DATA_TYPE_CD = TYPE

to S_VOD withVOD_TYPE_CD = "ISS_ATTR_DEF"

Type Switch

VOD header and Versions

S_VOD - HeaderROW_IDOBJECT_NUM (*)VOD_NAME (**)VOD_TYPE_CD (*) (**)DESC_TEXTLOCKED_FLGLOCKED_BYLOCKED_DT

S_VOD_VER - Version ControlROW_IDVOD_ID (*) (**) - to S_VOD.ROW_IDVER_ID (**)VER_NUM (*)START_DTEND_DTRELEASED_FLGACTIVE_FLGCURR_VER_FLGDESC_TEXT

S_VOD_LANG - Translation

PAR_ROW_ID = ROW_ID

ROW_IDPAR_ROW_IDLANG_IDVOD_NAMEDESC_TEXT

S_PROD_INT - Non versioned info

S_VOD.OBJECT_NUM = CFG_MODEL_ID (Optional1:1)

S_LST_OF_VAL - MLOVTYPE; NAME; VAL; LANG_IDTYPE = ISS_VOD_TYPELIC Values:ISS_ATTR_DEF; ISS_CLASS_DEF;ISS_PROD_DEF; ISS_SIGNAL;ISS_VAR_MAP; ISS_PSP_PROC;Pricing Procedure; EC Procedure

VOD_TYPE_CD = NAME

Page 18: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Database Schema – Classes and PeoductsISS Class and Product Block

to S_VOD withVOD_TYPE_CD = "ISS_CLASS_DEF" or ""ISS_PROD_DEF"

S_ISS_OBJ_DEF - DefinitionROW_IDOBJECT_NAME - always "0"VOD_ID - to S_VOD.ROW_IDFIRST_VERSLAST_VERSORIG_IDPAR_VOD_ID - to S_VOD.OBJECT_NUMPAR_VOD_VERSPN_DEFN_IDDESC_TEXTPRE_PICK_CDPOST_PICK_CD

S_ISS_OBJD_LANG - Translations

PAR_ROW_ID = ROW_ID

ROW_IDPAR_ROW_IDLANG_IDOBJECT_NAMEDESC_TEXT

S_ISS_OBJ_ATTR -Local AttributesROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDFIRST_VERSLAST_VERSLOCAL_NAME (*)DESC_TEXTSEQ_NUMATTR_DEF_ID - to S_VOD.OBJECT_NUMATTR_DEF_VERUOM_CDMIN_VALMAX_VALINCR_VALDEFAULT_VALREAD_ONLY_FLGREQUIRED_FLGHIDDEN_FLGASSET_FLGVECTOR_FLGDOMAIN_TYPE_CD

S_LST_OF_VAL - MLOVTYPE; NAME; VAL; LANG_IDTYPE = ISS_ATTR_DOM_DTYPELIC Values:EXCLUSIONS; ENUMERATED

DOMAIN_TYPE_CD = NAME

S_ISS_OBATR_VAL - Excluded LICsROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDFIRST_VERSLAST_VERSLOCAL_ATTR_ID (*) - to S_ISS_OBJ_ATTR.ORIG_IDLOCAL_LIC_VALUE (*)DEFAULT_FLG

S_ISS_OBAT_LANG - Translations

PAR_ROW_ID = ROW_ID

ROW_IDPAR_ROW_IDLANG_IDLOCAL_NAMEDESC_TEXT

S_ISS_SUB_OBJ -Relationships and Sub ObjectaROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDFIRST_VERSLAST_VERSPAR_REL_ID (* - ?) - to Rel Orig IdSUB_OBJ_NAME (* -?)SUB_OBJ_TYPE_CDREL_TYPE_CDSUB_OBJ_TMPL_ID - to S_VOD.OBJECT_NUMSUB_OBJ_TMPL_VERMIN_QTYMAX_QTYDFLT_QTYSUB_OBJ_ID - to S_VOD.OBJECT_NUMSUB_OBJ_VERDFLT_SUB_OBJ_IDDESC_TEXTDISP_CMPNT_FLGDISP_CMPNT_PRI_FLGFCST_FLGOPTION_FLGSEQ_NUM

S_LST_OF_VAL - MLOVTYPE; NAME; VAL; LANG_IDTYPE = CFG_PROD_ITEM_TYPESLIC Values:Product; Port; DynPort

SUP_OBJ_TYPE_CD = NAME

S_LST_OF_VAL - MLOVTYPE; NAME; VAL; LANG_IDTYPE = CFG_PORT_REL_TYPESLIC Values:Has A; Uses A

REL_TYPE_CD = NAME

S_ISS_SOBJ_LANG - Translations

PAR_ROW_ID = ROW_ID

ROW_IDPAR_ROW_IDLANG_IDSUB_OBJ_NAME

S_ISS_OBJ_LITEM -Linked ItemsROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDFIRST_VERSLAST_VERSLI_NAME (*)ACTIVE_FLGSYS_KEYWORD_CDEXEC_FLGBUSOBJ_NAMEBUSCOMP_NAMEFIELD_NAMESORT_SPECSEARCH_SPECVAR_EXPRDEFAULT_VALVALDN_VALDESC_TEXT

S_ISS_OBJ_RSRC -ResourcesROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDFIRST_VERSLAST_VERSRSRC_NAME (*)DESC_TEXTDATA_TYPE_CDDOMAIN_SPECINHERIT_FLG

S_ISS_OBJ_SCRPT -ScriptsROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDFIRST_VERSLAST_VERSSCRIPT_NAME (*)ITEM_ID (*) - to S_VOD.OBJECT_NUMITEM_VERACTIVE_FLGITEM_TYPE_CDPROG_LANGSCRIPT_TEXTSEQUENCEDESC_TEXT

S_ISS_OBUI_PROP -UI PropertiesROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDFIRST_VERSLAST_VERSPROP_NAME (*)PROP_TYPE_CDITEM_DFN (*)ITEM_TYPE_CDITEM_VALUE_SPEC

S_LST_OF_VAL - MLOVTYPE; NAME; VAL; LANG_IDTYPE = CFG_OBJ_ITEM_TYPESLIC Values:Attribute; Attribute Choice; Group;Group Item; Linked Item; Port; PortChoice; Product; Property

ITEM_TYPE_CD = NAME

S_LST_OF_VAL - MLOVTYPE; NAME; VAL; LANG_IDTYPE = CFG_DECORATION_TYPESLIC Values:NUMBER; STRING; IMG_FILE;XML_FILE

PROP_TYPE_CD = NAME

S_LST_OF_VAL - MLOVTYPE; NAME; VAL; LANG_IDTYPE = CFG_KEYWORDSLIC Values:TODAY; WHO

SYS_KEYWORD_CD = NAME

S_LST_OF_VAL - MLOVTYPE; NAME; VAL; LANG_IDTYPE = CFG_PROPERTY_TYPELIC Values:Number; String; DateTime; Date;Time; Currency; Phone; Expr;Rule

DATA_TYPE_CD = NAME

S_ISS_UIPR_LANG - Translations

PAR_ROW_ID = ROW_ID

ROW_IDPAR_ROW_IDLANG_IDITEM_VALUE_SPEC

S_LST_OF_VAL - MLOVTYPE; NAME; VAL; LANG_IDTYPE = ?LIC Values:?

ITEM_TYPE_CD = NAME

S_LST_OF_VAL - MLOVTYPE; NAME; VAL; LANG_IDTYPE = ?LIC Values:?

PROD_LANG = NAME

S_ISS_OBJ_CFGRL -RulesROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDFIRST_VERSLAST_VERSRULE_NAMERULE_SPECNATLANG_SPECDESC_TEXTACTIVE_FLGRULE_END_DTRULE_START_DTRULE_DESIGNER_IDRULE_COMMENTS

S_ISS_CFRL_LANG - Translations

PAR_ROW_ID = ROW_ID

ROW_IDPAR_ROW_IDLANG_IDDESC_TEXT

S_ISS_CFRL_NODE -Rule NodesROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDRULE_SPEC_ID - to S_ISS_OBJ_CFGRL.ORIG_IDFIRST_VERSLAST_VERSPAR_RULENODE_ID - to S_ISS_CFRL_NODE.ORIG_IDATOM_VALBATCH_NUMRTRN_DATATYPE_ID - to S_RULE_DATATYPE.ROW_IDRULE_TMPL_ID - to S_RULE_TMPL.ROW_IDRULE_TMPL_ARG_ID - to S_RULE_TMPL_ARG.ROW_ID

Pigtale

S_ISS_UI_OPTION -UI OptionsROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDFIRST_VERSLAST_VERSUI_OPTION_NAME (*)SEQ_NUM (**)PR_RESP_IDUI_OPTION_CDUI_CTRL_STYLE_ID - to S_UI_CTRL_STYLE.ROW_IDUI_FRAME_STYLE_ID - to S_UI_CTRL_STYLE.ROW_IDDESC_TEXT

S_LST_OF_VAL - MLOVTYPE; NAME; VAL; LANG_IDTYPE = ISS_UI_OPTION_TYPELIC Values:JS_BROWSER; GN_BROWSER

UI_OPTION_CD = NAME

S_ISS_UIOP_RESP -UI Options responcibilitiesROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDFIRST_VERSLAST_VERSUI_OPTION_ID (*) - to S_ISS_UI_OPTION.ORIG_IDRESP_ID (*) - to S_RESP.ROW_ID

S_ISS_UIOPT_GRP -UI GroupsROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDFIRST_VERSLAST_VERSUI_OPTION_ID (*) - to S_ISS_UI_OPTION.ORIG_IDUI_GROUP_NAME (*)UI_CTRL_STYLE_ID - to S_UI_CTRL_STYLE.ROW_IDDESC_TEXT

S_ISS_UIGR_ITEM -UI Group ItemsROW_IDVOD_ID - to S_VOD.ROW_IDORIG_IDFIRST_VERSLAST_VERSUI_GROUP_ID - to S_ISS_UIOPT_GRP.ORIG_IDITEM_TYPE_CDPATH_SPECITEM_IDITEM_NAMESEQ_NUMUI_CTRL_STYLE_ID - to S_UI_CTRL_STYLE.ROW_ID

S_ISS_UIGR_LANG - Translations

PAR_ROW_ID = ROW_ID

ROW_IDPAR_ROW_IDLANG_IDUI_GROUP_NAME

VOD header and Versions

S_VODHeader

S_VOD_VERVersion Control

S_VOD_LANGTranslation Type Switch

Page 19: Configurator Overwiev

The End

Siebel Systems Confidential

Page 20: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Pictures

Page 21: Configurator Overwiev

Siebel Confidential – Do Not Distribute

Interior Color