Product Configurator and OOD of Modeling Metadata in Siebel 7.8 Siebel Systems Confidential
Product Configurator and
OOD of Modeling Metadata in Siebel 7.8
Siebel Systems Confidential
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
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.
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
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.
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.
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.
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
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
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...
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
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
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
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
Siebel Confidential – Do Not Distribute
Metadata – Versioning
In order to maintain stability of metadata, Objects are versioned
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
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
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
The End
Siebel Systems Confidential
Siebel Confidential – Do Not Distribute
Pictures
Siebel Confidential – Do Not Distribute
Interior Color