Understanding Configuration Models

This chapter provides an overview of configuration processes and models and discusses:

Click to jump to parent topicConfiguration Models

Product Configurator is a rules-based system that enables you to order and manufacture complex items and products. You can define custom order-entry pages for entering and validating configuration information. The configuration information that you enter determines the specific options, components, and operations that are used to create the end product.

Configuration rules contain elements such as processing filters and rule actions, which are tied in with conditional expressions, validation methods, and variables to enable complex, yet flexible, product configurations. These rules are organized into configuration models to determine when and how the system processes them.

Configuration rules work in a logical tree structure that determines the order in which the system processes them. While each rule is a grammatical statement that performs an action, the configuration model dictates the context of the statement. You can use a rule more than once within a model, and you can nest submodels with a model in order to streamline the overall configuration solution.

Configuration rules are executed based on the tree hierarchy that you define in the configuration model. If the condition of a rule is met (that is, if the condition syntax for the rule is evaluated as true), then the action of the rule is performed. The system processes all of the rules in the order of their configuration model placement unless a true child or a false child exists that satisfies a condition within the model. In that case, the system branches to the designated child and processes the rules that are in that level. The system follows the configuration model down through the hierarchy, from the parents down through the children, before returning to the top logical level.

See Also

Creating Configuration Models

Click to jump to parent topicConfiguration Rules

The combination of setID, functional area (distribution or production), and rule number uniquely identify each configuration rule. Some of the rule actions in Product Configurator are specific to distribution functions, such as creating a sales order, calculating prices, assigning costs, or to production functions, such as manufacturing processes. The rules that apply to both distribution and production functions are called common rules.

Because the configuration models for the distribution and production areas are independent of each other, an individual rule works in only one of the two functional areas. In addition, many rule actions, by their nature, apply to only one functional area.

Click to jump to top of pageClick to jump to parent topicRule Filters

You can use effective dating and rule processing modes to filter rule processing.

Effective Dating

In addition to a rule number, each rule must have an effective date and an obsolete date. For each model, the system processes only the rules that are in effect, based on these dates.

Effective dates enable different sets of rules for the same model to be maintained simultaneously. As features and options change, the configuration can also change (without losing the original configuration rules). By changing the effective dates on the rules, you can process different sets of rules. Effective dates are not part of the key, but you can use them as a selection filter for retrieving rules.

For order entry, the default effective date is the order date. For direct production and direct requisition, the default effective date is today's date. For production rules, the default effective date is the production start date estimate—that is, the scheduled ship date minus the estimated lead time.

For example, if the effective date is August 6, 2000, and the obsolete date is August 10, 2000, based on a sales order date, the following occurs:

Date

Status

08/03/00

Skipped

08/06/00

Processed

08/10/00

Processed

08/11/00

Skipped

Rule Processing Modes

Rule processing modes are designated as you create rules. They are filters for rule selection during processing. They specify whether a rule processes in order entry, direct production, or requisition generation.

See Also

Creating and Maintaining Basic Rule Characteristics

Click to jump to top of pageClick to jump to parent topicRule Actions

Product Configurator provides predefined rule actions. Actions are applied to rule definitions to determine the processing that the rule invokes. Each rule has only one rule action, although many different rules within a model might perform the same action.

Product Configurator includes the following rule actions:

Common

These rules are used in both distribution and production models:

Distribution

These rules are used in distribution models:

Production

These rules are used in production models:

See Also

Setting Up Configuration Model Elements

Using Configuration Rule Actions

Click to jump to top of pageClick to jump to parent topicRule Conditions

A rule condition is a fundamental part of the grammar of every rule. Don't confuse the rule condition with the condition rule, which is used in logical sequence with other complete rules. The rule condition is a syntax expression.

See Also

Using Configuration Rule Actions

Click to jump to parent topicSyntax Expressions

Each rule that you define features syntactic components that make up a syntax expression. Product Configurator processing interprets these syntax expressions to produce a result. Depending on the expression, this result can be a numeric, or a character value.

Click to jump to top of pageClick to jump to parent topicSyntax Expression Composition

Syntax expressions consist of one or more independent, simple expressions that are logically connected. A simple syntax expression consists of two variables and an operand that links them.

The system interprets syntax expressions based on their grouping within parentheses. The parentheses make complicated expressions possible, but even simple expressions require them. You can negate an expression by using a negation character prefacing the expression.

Syntax Expression Format

This is the general syntax expression format:

  1. (optional) Negation character ("N")

  2. Opening parenthesis

  3. First variable

  4. Operand

  5. Second variable

  6. Closing parenthesis

Note. Variables 1 and 2 are abbreviated as V1 and V2 in the examples that follow.

Variable Names Syntax

The syntax for variable names consists of three parts:

  1. A letter to indicate the type of variable. For example, O-FRAME is an option variable, M-COLORS is a multiple option variable, and so forth.

  2. A hyphen as a separator ("-").

  3. The user-defined name (cannot include a hyphen).

For example, to create an expression that means the Frame option is equal to Y for this field, write:

(O-FRAME,=,"Y")

The expression returns "1" (true) when the option variable FRAME is equal to the literal character "Y" and "0" (false) when the option variable FRAME is not equal to the literal character "Y". For the opposite—the expression can be negated to validate when O-FRAME is not equal to Y—write:

N(O-FRAME,=,"Y")

You can combine syntax expressions to make a more complex statement by ordering the parts of the expressions within parentheses. Either or both of the variables in a syntax statement can be defined by syntax statements within the larger one. It is valid to construct a statement in this format:

((V1,operand1,V2),operand2,V3)

The system always processes an entire simple expression within parentheses before applying its value to the next level. And it processes expressions in the order that they occur.

For example, the expression:

((V1,operand1,V2), operand3,(V3,operand2,V4))

processes as:

(V1,operand1,V2) = A (V3,operand2,V4) = B (A,operand3,B)

Note. Option, Secondary, and Global variables are populated by the configuration engine during syntax evaluation with default values—a zero value (0) for numerics and a zero-length string value ("") for characters—if the variable does not contain a value.

Click to jump to top of pageClick to jump to parent topicOperands

Product Configurator delivers predefined operands for use in composing syntax expressions.

The system interprets operands within expressions to produce resulting values—either a numerical value or a character string. Each operand requires a specific type of value in the rule syntax.

Resulting Value Types

The following are value types:

Character (C)

An alphanumeric string that is enclosed in quotation marks with a maximum length of 18 characters.

A Boolean (B) is represented by a "1" (true) or "0" (false) character value.

Date (D)

A Date (D) is represented by an internationally date formatted (YYYYMMDD) numeric value.

Numeric (N)

A number with a maximum length of 15 digits that is used for mathematical manipulation and calculations. (The maximum number of digits is 11, and the maximum number of decimal places is 7. Therefore, the range for the decimal format is 11,4 to 8,7).

Operand Types

The following table lists the operand types:

Operand (Default)

Description

Operand Code

Value Type (V1,V2)

Result Value Type

Equal

Tests whether V1 and V2 are the same value. Both variables must be the same value type.

=

(N,N)

(C,C)

B

Not Equal To

Tests whether V1 and V2 are not the same value. Both variables must be the same value type.

<>

(N,N)

(C,C)

B

Less Than

Tests whether V1 is less than V2. Use it only for numeric variables.

<

(N,N)

B

Less than or Equal

Tests whether V1 is less than or equal to V2. Use it only for numeric variables.

<=

(N,N)

B

Greater Than

Tests whether V1 is operands – description, code, and value types for: than V2. Use it only for numeric variables.

>

(N,N)

B

Greater Than or Equal

Tests whether V1 is greater than or equal to V2. Use it only for numeric variables.

>=

(N,N)

B

If

Specifies V1 as a value when V2 is true. V2 must be an expression that yields a Boolean (true/false) value.

The result of the If operation is the same type of value as V1 (either numeric or character). If V2 is true, the result value is V1. If V2 is false, the result is 0 or blank.

For example, the expression

(100,IF,(O-COLOR,=,"RED"))

yields the result of 100 if COLOR = RED. If COLOR does not = RED, the result is 0.

IF

(N,B)

(C,B)

N

C

Or

Tests whether either V1 or V2 is true. Both V1 and V2 must be expressions that yield Boolean values.

OR

(B,B)

B

And

Tests whether both V1 and V2 are true. Both V1 and V2 must be expressions that yield Boolean values. The result is true unless both V1 and V2 are false; likewise, the result is false unless both V1 and V2 are true.

&

(B,B)

B

Concatenate

Links two character strings to form one string. When concatenating numeric values, the system treats them as alphanumeric character strings. You can include any combination of characters and numbers in the result (a character value of up to 18 characters).

For example:

  • ("WH",CT,"COLOR") yields "WHCOLOR"

  • ("RD",CT," COLOR") yields "RDCOLOR"

  • ("WH",CT,"T ") yields "WHT"

CT

All combinations

C

Substring After

Selects the last portion of a character string. You determine the initial character value in V1. V2 is the number of the position where the substring starts. Because the total character string is limited to 18 characters, V2 must be a whole number between 1 and 18. For instance, the expression

("CLEMENTINE",SA,7)

yields the result

"TINE"

Note. The substring includes the position that it specifies.

SA

(C,N)

(N,N)

C

C

Substring Before

Selects the first portion of a character string. You determine the initial character value in V1. V2 is the number of the position where the substring ends. Because the total character string is limited to 18 characters, V2 must be a whole number between 1 and 18. For example, the expression

("CLEMENTINE",SB,7)

yields the result

"CLEMENT"

Note. The substring includes the position that it specifies.

SB

(C,N)

(N,N)

C

C

Exist on Multiple Option

Tests whether V1 is a value for one of the options in a Multiple Option table. V2 specifies which Multiple Options table to check. Depending on what kinds of values the Multiple Option table that is specified by V2 contains, V1 can be either a number or a character value:

("YELLOW",EM,M-COLORS)

This example checks a paint color against the Multiple Options table ("COLORS") containing options for all of the parts that need painting on the bike that you're configuring:

FRAMECOLOR WHEELSCOLOR

A user selection on a sales order page or a rule that modifies an option in the configuration process determines the value of each option. If any of these options is associated with the value YELLOW, the result of the Exist on Multiple Option operation is true. If not, the result is false.

The operation yields a result only when V1 is the same type of value (character or numeric) as each option that exists on the table that is specified by V2.

EM

(C,M)

(N,M)

B

Exist on Value List

Tests whether V1 is a value on the Value List table that is specified by V2.

EU

(C,U)

(N,U)

B

Add

Adds the value of V1 to the value of V2. Both variables must be numbers.

+

(N,N)

N

Subtract

Subtracts the value of V2 from the value of V1. Both variables must be numbers.

(N,N)

N

Multiply

Multiplies the value of V1 by the value of V2. Both variables must be numbers.

*

(N,N)

N

Divide

Divides the value of V1 by the value of V2. Both variables must be numbers.

/

(N,N)

N

Round Down

Divides V1 by V2 and returns the closest integer value that is less than or equal to the result. V2 cannot equal 0.

RD

(N,N)

N

Round Up

Divides V1 by V2 and gives the closest integer value that is greater than or equal to the result. V2 cannot equal 0.

RU

(N,N)

N

Calculate Date

Uses the calendar to determine a new date. V1 is a date value representing the start date in YYYYMMDD format. V2 is the number of days to add to the date.

The result of a calculate-date operation is a date value in a YYYYMMDD format.

CD

(D,N)

D

Sine, Arc sine

Returns the sine or arc sine of V1 in radians (assuming V1 is numeric in radians):

  • If V2 is "", the sine is returned.

  • If V2 is "A", the arc sine is returned.

SN

(N, C)

N

Cosine, Arc cosine

Returns the cosine or arc cosine of V1 in radians (assumes V1 is numeric in radians):

  • If V2 is "", the cosine is returned.

  • If V2 is "A", the arc cosine is returned.

CS

(N,C)

N

Tangent

Returns the tangent of V1 in radians (assumes V1 is numeric in radians):

  • If V2 is "", the tangent is returned.

  • If V2 is "A", the arc tangent is returned.

TN

(N,C)

N

Power

Returns the result of V1 to the V2 power (assumes V1 and V2 are numeric).

**

(N,N)

N

Modulus

Returns the result of V1 to modulo V2 (assumes V1 and V2 are numeric).

\

(N,N)

N

Exists as a Component

Returns the quantity for a component on the Configuration Component array during a configuration:

  • Returns 1 if V1 (assumes V1 is an item ID) is found on the component array and V2 is "".

  • Returns the kit component's quantity if V1 is found on the component array and V2 is "K".

  • Returns the purchased component's quantity if V1 is found on the component array and V2 is "P".

EC

C, C

N

Calculate Price

Returns the price for V1 (assumes V1 is a product ID).

  • If V2 is "", the full discounted price from the Order Management Pricing function is returned using all available pricing keys for the configuration session.

  • If V2 is "R", the recurring price for V1 is returned. (available in PeopleSoft Customer Relationship Management (CRM) applications only)

  • If V2 is "L", the list price from the product pricing table for V1 is returned.

  • If V1 is not a valid product, zero is returned.

Note. This operand is intended for use in determining component item prices, not final configured end-item pricing. Use the Finalize Price rule to determine pricing for a configured item.

CP

C, C

N

Note. You cannot enter true or false as a value for use in syntax expressions when using the following operands: If, Or, And. Instead, use "1" (True) and "0" (False).

Click to jump to top of pageClick to jump to parent topicConfiguration Variable Types

Product Configurator is designed to make syntax expressions as uncomplicated as possible by providing a variety of variable types. Configuration variable types can be used to:

Product Configurator delivers the following variable types.

Option Variable

Variable code for syntax = O.

An option variable stores attribute information about a configuration and contains a value that is either:

Option variables apply to only one configured level of processing (the same as secondary variables), but they can be referenced across functional areas. Use the Option Variable page to view or create a new option variable.

See Setting Up Configuration Variables.

Secondary Variable

Variable code for syntax = S.

A temporary working storage variable within a model that applies locally within the model. Create a secondary variable when you want the variable to apply locally—that is, only to the single configured component.

You create secondary variables by using the Secondary Variable page containing a value from secondary variable, internal variable override, or availability date rules.

See Setting Up Configuration Variables.

Global Variable

Variable code for syntax = G.

A temporary working storage field within a model that applies globally within the entire model to all configured levels of processing and can be referenced across functional areas. You can share variable information between:

You create global variables by using the Global Variable page containing values from global variable rules.

See Setting Up Configuration Variables.

Matrix Variable

Variable code for syntax = X.

Invokes result values from a predefined matrix of up to five user-defined variable value keys.

See Using Matrices.

Internal Variable

Variable code for syntax = I.

Retrieves static or dynamically derived values from PeopleSoft application tables and views. This enables you to use existing business information, such as customer IDs, order numbers, business unit definitions, or pricing, without defining it within rules or in separate configurator tables.

See Setting Up Internal Variables.

Multiple Option Variable

Variable code for syntax = M.

Groups option variables together to examine them as a whole, and determine whether a particular value exists in that grouping.

See Maintaining Multiple Option Variables.

Value List

Variable code for syntax = U.

Validates option selection (such as sizes or colors of an item) during configuration.

See Using Value Lists and Constraints.

Constraints

Variable code for syntax = R.

One or more conditions that limit the valid options within a static value list (dynamically generated value lists cannot use constraints).

External Program Variable

Variable code for syntax = P.

Used with the create parameter rule, external program variables enable the system to call a custom-developed PeopleCode program to perform specific user-defined logic and return a value to use in configuration processing. After the external program runs, the parameters that are created by the create parameter rule are cleared.

External program variables are only used in syntax expression. P-EXAMPLE calls an external program called EXAMPLE.

You can create custom PeopleCode programs in the following self-documented PeopleCode Function Library:

FUNCLIB_CPINFR.CP_EXT_PGM.FieldFormula

See Defining Create External Parameter Rules.

Literal

Variable code for syntax = L.

Inserts a character string of static information into configuration logic. You can enter literals on internal variables or use them to insert a string of characters into a configuration code template definition. For example, a literal is used when adding a hyphen as a separator between other variables in a configuration code.

Note. Quotation marks are not needed around literals on internal variables.

Constant

Variable code for syntax = C.

The constant references static system information during the configuration process. A constant value does not change during processing.

PeopleSoft delivers the following constants for the current configuration unless noted otherwise:

Use the Constant page to view existing constant definitions or add new constants.

* These constants are not used by Customer Relationship Management (CRM) applications.

** These constants are used exclusively by CRM applications.

Click to jump to parent topicConfiguration Binds

You can use configuration binds in a configuration model to personalize configuration messages and enable configuration variable substitution in custom value lists and internal variables.

The case-sensitive syntax looks like this:

%BIND({configuration variable}).

For example:

%BIND(O-COLOR)

Product Configurator supports configuration binds in the following areas:

Click to jump to parent topicLanguage Sensitivity in PeopleSoft Product Configurator

You can use nonbase language data on Product Configurator's order entry pages by using PeopleTools globalization functionality.

To use a nonbase language, set up a language-specific user logon. A user in France might have a logon of FR1 to use the system in French, and a user in Brazil might have a logon of BR1 to use Brazilian Portuguese.

When these users log on, the system uses related language tables to display the configured order entry page's fields, messages, and value lists in the specified language.

PeopleSoft delivers the following related language tables for this purpose:

CP_MESSAGE_LANG

Messages

CP_RULE_D_LANG

Rule details

CP_USERCD_LANG

Value list values

CP_RULE_HT_LANG

Custom HTML fields

See Also

PeopleTools PeopleBook: Global Technology