Вы находитесь на странице: 1из 41

Dependencies

Purpose
Dependencies let you do the following: Describe the interdependencies between characteristics and characteristic values Control which components are selected from a bill of material (BOM) and which operations are selected from a task list Change the values of fields in BOM items and operations during configuration

ou use a special synta! in the dependency editor to define dependencies"

Dependency Types
#he $%& $ystem supports the following types of dependencies: &reconditions $election conditions %ctions (obsolete) &rocedures Constraints

Global and Local Dependencies


#he differences between global and local dependencies are as follows: 'lobal dependencies are created centrally and can be assigned to several ob(ects" )ocal dependencies are created for one ob(ect and can only be used with this ob(ect"

Integration
ou can use dependencies in the following components: Component C% * Classification $ystem Component )O * +ariant Configuration

Global Object Dependencies


Use
'lobal dependencies have the following properties: They are independent of any object.

They are identified by a name that you assign, and are maintained and managed centrally. If you change a global dependency, the change affects all the objects where the dependency is used.

Integration
#here are special allocation functions that enable you to allocate global dependencies to individual ob(ects" #he documentation of the applications tells you how to use these allocation functions" See also: ,-. )ibrary: Characteristics (CA-CL-CHR) Bills of Material (PP-BD-BOM) PP Routings PPPI Master recipes

Creating Global Dependencies


1. From the variant configuration menu, choose Dependency Single dependency Create. 2. You see the initial screen. nter a name for your dependency. If you want to create your dependency as of a specific date, enter a change number.

To copy an e!isting dependency, choose Copy from. The basic data and source code of the e!isting dependency you enter are copied to the new dependency. "onfirm your entry. #. You see the basic data screen. $ %n the basic data screen, enter a language&dependent description for the dependency. $ To enter descriptions in different languages, choose Descriptions. $ To enter a long te!ts for the dependency, choose Extras Documentation.

$ In the standard '(# )ystem, you see the status *In preparation when you first create a dependency. You cannot set the status to Released until you have written syntactically correct source code.

You can chec+ the possible statuses in "ustomi,ing for Variant Configuration. -. If you select the Depen enc! e itor pushbutton, you see the editor, where you enter the source code for the dependency. %nce you have entered the source code, choose Check to chec+ whether your source code contains errors. $ The system chec+s whether the dependency synta! is correct. $ For alphanumeric characteristics, the system chec+s whether the values you enter are correct.

The system does not chec+ the values of numeric characteristics. .. )ave your source code. If you want to save source code that contains errors, choose Sa e !ithout generating. The system sets the status of the dependency to "ocked. You cannot release the dependency until the source code is error&free. /. You see the basic data screen again. If the source code contains no errors and you want to use the dependency, change the status to Released. )ave your dependency.

Changing Global Dependencies


Procedure
1. From the variant configuration menu, choose Depen enc! "ingle epen enc! Change#
If you want to ma+e your change on a specific date, enter a valid change number. 2. #. You can change the basic data and the source code of the dependency. )ave your changes.

You can only change global dependencies that have been used several times centrally. The changes you ma+e to the dependency affect all objects where the dependency is used.

Displaying Global Dependencies


1. From the variant configuration menu, choose Depen enc! "ingle epen enc! Displa! .
You can display a dependency on today0s date, or on a specific date if the dependency has been processed with a change number. If you want to display a dependency on a specific date, enter the valid&from date you re1uire. "onfirm your entries. 2. You see the basic data screen.

3. To display the source code, choose $oto Depen enc! e itor#

Local Object Dependencies


Use
)ocal dependencies have the following properties: They are only available to the object for which you create them You cannot use the central maintenance functions on these dependencies, and you cannot allocate them to other objects They are identified by a number assigned by the system, not an e!ternal name

Only use local dependencies if you are certain that the dependency will not be needed elsewhere"

Integration
ou create local dependencies in the application for the ob(ect" /or more information0 refer to the document on the application" See also: ,-. )ibrary: Characteristics (CA-CL-CHR) Bills of Material (PP-BD-BOM) PP Routings PPPI Master recipes

Maintenance Authori ations !or Dependencies


Use

ou can enter a maintenance authori1ation on the basic data screen for creating a single dependency0 a dependency net0 or a constraint" #he maintenance authori1ation fulfills two functions"

Maintenance Authori ation !or Allocating Dependencies to Objects


2n Customi1ing for %ariant Configuration& under Define Maintenance Authori'ations& the maintenance authori1ations that are predefined in the standard system only allow dependencies to be allocated to the following ob(ects: 2%3s "haracteristics and characteristic values Tas+ lists

Maintenance Authori ation !or Maintaining Dependencies


2n Customi1ing for %ariant Configuration& you can define new maintenance authori1ations by choosing Define Maintenance Authori'ations# ou can assign these authori1ations to dependencies" 2n the user master record of the relevant users0 you enter authori1ation ob(ect C3)O+C3D4& with the maintenance authori1ation value that you want the user to have" 4ach user can only maintain dependencies whose maintenance authori1ation matches that in their user master record"

4 dependency has maintenance authori,ation 155. 6ser 4 has the authori,ation to maintain dependencies with maintenance authori,ation 5.5$1.5. 6ser 2 has the authori,ation to maintain dependencies with maintenance authori,ation 255$#55. %nly user 4 can maintain the dependency with maintenance authori,ation 155. 5hen you restrict a dependency to certain user groups0 please note the following: If a dependency net or a dependency has a maintenance authori,ation, the system chec+s whether a user is allowed to use this maintenance authori,ation. The system chec+s activity 52 7change8. If a user changes, deletes, or regenerates a dependency net that has a maintenance authori,ation, the system chec+s whether the user has the authori,ation to do so. 4uthori,ation to allocate a dependency to an object is defined in the object. If you delete a local dependency, you delete the entire dependency, so the system chec+s your authori,ation to change or delete a dependency, as well as your authori,ation for the object, if you do this.

If you copy a dependency that has a maintenance authori,ation, the system chec+s whether you have this authori,ation in your user master record. If you do not, the authori,ation group is not copied to the new dependency.

Preconditions
Use
ou can use preconditions to hide characteristics and characteristic values that are not allowed and thereby ensure that the configuration of an ob(ect is consistent" ou can allocate preconditions to the following ob(ects: 4 characteristic that you want to hide 4 characteristic value that you want to hide

2n the precondition0 you define the circumstances under which a characteristic or value is hidden"

You can also use restrictable characteristics to restrict the allowed values of characteristics when you configure and object.

"eatures
% precondition is fulfilled if the condition you enter is either true or not violated"

4 precondition is fulfilled if9 a. b. The specified value is selected for the specified characteristic #o value is selected for the specified characteristic The precondition is not fulfilled if a different value is selected for the specified characteristic.

Example: Precondition for a Characteristic alue


ou have a configurable material0 B264" #he material has characteristics MOD4) and '4%,$ with the following values:

Characteristic MOD4)

alues ,acing $tandard Mountain #andem

Condition

'4%,$

78 79 7: 97 MOD4) ; <,acing=

Only a racing bicycle can have 97 gears"

Procedure
1. Create a precondition" 2. #his precondition has the following source code: MODEL EQ Racing #. %llocate the precondition to value 97 of characteristic '4%,$0 because this value is affected by the precondition"

!esult
#he system checks whether the value <,acing= is set for characteristic MOD4)" 2f characteristic MOD4) has another value0 you do not see the value 97 for characteristic '4%,$" 2f characteristic MOD4) has the value <,acing=0 you see value 97 for '4%,$" 2f characteristic MOD4) does not have a value0 you see characteristic value 97 for characteristic '4%,$0 because the precondition is not violated"

Completing the Condition


ou want value 97 hidden for characteristic '4%,$ if characteristic MOD4) does not have a value" %dd the following condition to the source code: MODEL eq 'Racing' and Specified MODEL #here are now two conditions to fulfill for this precondition:

7" Characteristic MOD4) must have a value" 9" Characteristic MOD4) must have the value >,acing>"

Precondition for a Characteristic


ou have a configurable material0 B264" #his material has characteristic MOD4)" Characteristic MOD4) alues ,acing $tandard Mountain #andem #%?D4M3$%DD)4 MOD4) ; >#andem> Condition

2f the value <#andem= is selected for MOD4)0 you see characteristic #%?D4M3$%DD)40 which was hidden before"

Procedure
7" Create a precondition" 9" #his precondition has the following source code: MODEL eq Tandem ." %llocate the precondition to characteristic #%?D4M3$%DD)40 because this characteristic is affected by the precondition"

!esult
#he system checks whether the value <#andem= is set for characteristic MOD4)" 2f it is0 you see characteristic #%?D4M3$%DD)4" 2f characteristic MOD4) has another value0 you do not see characteristic #%?D4M3$%DD)4" 2f characteristic MOD4) does not have a value0 you see characteristic #%?D4M3$%DD)40 because a lack of value does not violate the precondition"

Completing the Condition


ou want characteristic #%?D4M3$%DD)4 hidden if characteristic MOD4) does not have a value" %dd the following condition to the source code:

MODEL eq 'Tandem' and Specified MODEL #here are now 9 conditions to fulfill for this precondition: 1. Characteristic MOD4) must have a value" 2. Characteristic MOD4) must have the value >#andem>"

Selection Conditions
"se
ou can use selection conditions to ensure that all the ob(ects relevant to a variant are selected: $election conditions determine which variants re@uire a specific component or operation $election conditions determine when it is mandatory to assign a value to a characteristic

ou can allocate selection conditions to the following ob(ects: Characteristics BOM items Operations in task lists $ubAoperations $e@uences of operations &roduction resources-tools (&,#s)

#eatures
% selection condition is fulfilled if the condition in it is unambiguously true"

% selection condition is fulfilled if the value in the condition is set for the characteristic" % selection condition is not fulfilled if: a) % different value is set for the characteristic b) ?o value is set for the characteristic

Selection Conditions for a $%& Item and %peration


Characteristic B%?D)4B%, is assigned to configurable material B264" Characteristic B%?D)4B%, has the following values: B%?D)4B%, ,acing MOC?#%2?3B%?D)4B%, $#%?D%,D3B%?D)4B%, 4ach handlebar has its own component in the BOM and its own operation in the routing" % selection condition is allocated to each component and each operation" #his selection condition determines which components and operations are selected for a variant" BOM of B264 Item 5515 5525 55#5 ,outing of B264 %peration 5515 5525 55#5 Description Mount ,acing handlebar Mount Mountain handlebar Mount $tandard handlebar Selection condition Bandlebar ; <,acing= Bandlebar ; <Mountain= Bandlebar ; <$tandard= Component ,acing MOC?#%2?3B%?D)4B%, $#%?D%,D3B%?D)4B%, Selection condition Bandlebar ; <,acing= Bandlebar ; <Mountain= Bandlebar ; <$tandard=

Procedure
1. ou create . selection conditions"

2. 4nter the appropriate source code for each selection condition: Handlebar eq Racing Handlebar eq Moun ain Handlebar eq S andard #. %llocate each selection condition to the appropriate BOM component and the appropriate operation in the routing" 5hen you configure the bike0 the correct component and operation for each value of characteristic B%?D)4B%, are selected automatically"

Selection Condition for a Characteristic


Characteristic MOD4) is assigned to configurable material B264" #hen characteristic #%?D4M3$%DD)4 is assigned to configurable material B264" #his characteristic has a precondition (refer to !ample9 :recondition for a "haracteristic)" Characteristic MOD4) alues ,acing $tandard Mountain #andem #%?D4M3$%DD)4 &recondition: MOD4) ; #%?D4M $election condition: MOD4) ; #%?D4M Condition

ou then want to assign a selection condition to the characteristic0 which determines that you must assign a value to the characteristic if MOD4) <#andem= is selected"

Procedure
7" ou create a selection condition" 9" #his selection condition has the following source code: MODEL eq 'Tandem' ." %llocate the selection condition to characteristic #%?D4M3$%DD)4"

!esult
2f you enter value >#andem> for characteristic MOD4) when you configure material B2640 you fulfill 9 conditions: #he precondition displays the characteristic" #he selection condition makes you assign a value to the characteristic"

2f you do not assign a value to characteristic #%?D4M3$%DD)40 you automatically see the characteristic when you e!it the configuration editor0 so that you can assign a value" ou can only leave the configuration editor if you do one of the following: %ssign a value to the characteristic Change the status of the configuration

Procedures
Definition
ou can use procedures to infer values for characteristics * they are like actions in this respect" Bowever0 there are some important differences: Procedures 'ctions %ctions are an old dependency type" ou can almost always use procedures to do the same thing" &rocedures can overwrite default values that are set by other procedures" &rocedures can set default values for a characteristic0 which can be overwritten by the user" 2f several procedures are assigned to an ob(ect0 you can define a processing se@uence (see &rocessing $e@uence of &rocedures)" %ctions cannot overwrite values that are set by other actions" #he user cannot overwrite values that are set by an action" ou cannot influence the se@uence in which actions are processed"

ou can assign procedures to the following ob(ects: #he characteristic value that triggers the procedure #he characteristic that triggers the procedure #he configuration profile of the configurable ob(ect

2t is easier to assign procedures to the configuration profile0 so that they are all in one place" BOM items * to change the component @uantity0 for e!ample Operations in task lists * to change the standard values0 for e!ample

"se
2f you use a procedure to infer a value for a characteristic0 you enter the variable !SEL" before the characteristic" &rocedures can overwrite values that are set by other procedures" &rocedures are always used for pricing (see +ariant Conditions)"

%dditional keywords for procedures: $et default values: !SET#DE"$%LT &!SEL"' (c)arac eri* ic+' ( erm+, Delete default values: !DEL#DE"$%LT &!SEL"' (c)arac eri* ic+' ( erm+, &roduce a sum of the values for a characteristic in a multiAlevel configuration: !S%M#-$RTS &!SEL"' (c)arac eri* ic+, %dd the components of a BOM together: !.O%/T#-$RTS &(!SEL"+, $urcharge for variant conditions: !SET#-R0.0/1#"$.TOR &!SEL"' (c)arac eri* ic+' (2arian 3e4+' (fac or+,

2n procedures0 you can use the following keywords0 which are not allowed in actions: /OT S-E.0"0ED /OT T5-E#O" (mul iple62alue c)arac eri* ic+/E(2alue+

Processing Se(uence of Procedures


"se
2f an ob(ect has more than one procedure0 you can define a processing se@uence" 5hen you allocate a procedure to an ob(ect0 you see a field for defining the point in the se@uence when the procedure is processed" #he sort se@uence only applies to the procedures for that ob(ect"

% configurable material has characteristics CO)O, and &,4$$C,4" #he following procedures are allocated to the configuration profile of the material" 8878 D$4)/"CO)O, ; <',44?= 2/ &,4$$C,4 E; 78 8898 D$4)/"CO)O, ; < 4))O5= 2/ &,4$$C,4 E; F8 88.8 D$4)/"CO)O, ; <,4D= 2/ &,4$$C,4 E; 788 #he sort se@uence ensures that pressure greater than or e@ual to 788 always sets the color <red=" 2f procedures are assigned to characteristics and values0 they are processed in the se@uence of the characteristics and by sort field within a characteristic" Before the procedures are processed0 all procedure inferences for the current ob(ect are deleted"

Inferring a Characteristic alue )ith Procedures *Example+


"se
Configurable material B264 has the following characteristics: Characteristic 542'B# (. figures0 7 decimal place) /,%M4 4I#,%$ (multipleAvalue) A %luminum $teel Mudguard )uggage rack 99"8F lb .8"GH lb 8"F kg 7"8 kg alues ,eight calculation

Procedure
7" Create a procedure for the weight of the B2640 depending on the frame" 9" #his procedure has the following source code: !SEL"7 8E01HT 9 :; if "R$ME 9 $luminum' !SEL"7 8E01HT 9 :< if "R$ME 9 S eel7 ." %llocate the procedure to the configuration profile of material B264" #he weight of a bicycle increases if you select additional e!tras0 such as mudguard or luggage rack" 7" ou define a procedure with the following source code: !SEL"78E01HT 9 !SEL"78E01HT = ;7> if E?TR$S 9 'Mudguard'' !SEL"78E01HT 9 !SEL"78E01HT = : if E?TR$S 9 'Luggage rac3' 9" %llocate the procedure to the configuration profile of material B264"

!esult
7" 5hen you configure the bike0 the value <%luminum= is selected for characteristic /,%M4" #his triggers the first procedure0 which sets the value 78 kg as the 542'B#" 9" Characteristic 4I#,%$ has values <Mudguard= and <)uggage rack=" #his triggers the second procedure0 which increases the value of characteristic 542'B# to 77"F kg"

ou cannot use an action to change the value already set for characteristic 542'B#"

$uilt-In #unction .C%"/T0P'!TS


"se
ou use builtAin function DCOC?#3&%,#$ in a procedure0 to produce a sum of the values of a characteristic and set this sum as a value for a characteristic" #he procedure can only be processed properly if all the relevant BOM components are known in the configuration" /or this reason0 only process the procedure at the end of the BOM e!plosion"

!SEL"7(c)arac eri* ic+ 9 !.O%/T#-$RTS &(ob@ec

2ariable+,

ou can create a configurable dummy material to use as the last item in a BOM" %ssign characteristic JC%?#2# to the material" %llocate a procedure with the following source code to the BOM item: !SEL"7 Q%$/T0T5 9 !.O%/T#-$RTS &!-$RE/T, D$4)/ is characteristic JC%?#2# of the BOM item that has the procedure" DCOC?#3&%,#$ adds together the @uantities of all components of the BOM of superior material D&%,4?#0 to infer a value for this characteristic" ou use a constraint to transfer this value to the superior characteristic"

Prere(uisites
ou can only use this function of a procedure for an ob(ect that can be configured interactively on multiple levels" #he summation assumes that all components are counted in the same unit of measure (for e!ample0 piece)"

#eatures
#he procedure only reads components on the first level of the BOM" ou cannot e!clude any BOM components from the sum total"

$uilt%In "unction &SUM'PA()S


Use
ou use builtAin function D$CM3&%,#$ in a procedure0 to produce a sum of the values of a characteristic0 across several configurable materials in a configuration structure" #he procedure can only be processed properly if all the relevant BOM components are known in the configuration" /or this reason0 only process the procedure at the end of the BOM e!plosion"

!SEL"7(c)arac eri* ic+ 9 !S%M#-$RTS &(ob@ec c)arac eri* ic+, 2ariable+' (numeric

To add together the weights of the different components in a 2%3, create characteristic ; I<=T and allocate it to all the configurable materials that you want to include in your calculation. "reate a configurable material as a placeholder and enter this material as the last item in the 2%3. 4ssign characteristic ; I<=T is to the material. 4llocate a procedure with the following source code to the 2%3 item9 !SEL"78E01HT 9 !S%M#-$RTS &!-$RE/T' 8E01HT, >) ?F is characteristic ; I<=T of the 2%3 item that has the procedure. >)63@:4'T) adds together the weights of all components of the superior material >:4' AT, to infer a value for the weight of the placeholder material. You use a constraint to transfer this value to the superior material.

Prere*uisites
ou can only use this function of a procedure for an ob(ect that can be configured interactively on multiple levels"

Setting De!ault +alues ,ith Procedures


Use
ou can use procedures to set default values for a characteristic0 which can be overwritten by the user" Cse the following language element to set default values: !SET#DE"$%LT &!SEL"' (c)arac eri* ic+' (* ring+, %s the string0 you can enter either a characteristic value or0 for numeric characteristics0 a calculation"

)etting a default value for a numeric characteristic9 1. 2. #. 4 configurable material has characteristics = I<=T and ;IBT=. The height is usually one and a half times the width, so you want to set this as a default value for characteristic = I<=T. You define a procedure with the following source code9

!SET#DE"$%LT &!SEL"' HE01HT' :7> A !SEL"780DTH, 1. 2. 4llocate the procedure to characteristic ;IBT= or the configuration profile of the material. 4s soon as you enter a value for ;IBT=, the procedure is triggered and sets the value of = I<=T as one and a half time the ;IBT=. You can change this value manually.

"eatures
If the value that triggers the procedure is deleted, this does not delete the default value. If a default value conflicts with a *hard0 value that is already set, 7for e!ample, a user entry8, the default value is ignored. The user can overwrite default values, but cannot delete them. If you delete the default value, it reappears as soon as you press enter, because the dependencies are processed again. You cannot define that no default value is entered for the characteristic. You have the following options for deleting a default value9 For single&value characteristics, the statement that no value is set can be e!pressed using an e!plicit additional value. The user can use this value to overwrite the default value. For multiple&value and restrictable characteristics, you can create an additional characteristic, *6) @B F46?T)0, and use procedures with the e!pressions >) T@B F46?T and >B ?@B F46?T, to set or delete default values, according to the value assigned to this characteristic.

Deleting De!ault +alues ,ith Procedures


Use
ou cannot manually delete default values that were set by a procedure" Bowever0 you can use another procedure to delete a default value" Cse the following language element to delete default values: !DEL#DE"$%LT &!SEL"' (c)arac eri* ic+' (* ring+,

Beleting a default value for a numeric characteristic9 "haracteristic = I<=T has a default value that was set by a procedure 7refer to )etting Befault Calues with :rocedures8. 1. 2. If characteristic B ?@B F46?TC4?6 has the value 51, this default value is deleted. You define a procedure with the following source code9 !DEL#DE"$%LT &!SEL"' HE01HT' :7> A !SEL"780DTH,

#. -.

You allocate the procedure to characteristic value 51 of characteristic B ?@B F46?TC4?6 . If you select value 51 for characteristic B ?@B F46?TC4?6 , the default value for characteristic = I<=T is deleted.

Prere*uisites
#he default value you want to delete was set by a procedure" 2f the value set by the procedure is not a default value0 DD4)3D4/%C)# is ignored"

"eatures
5hen the default value is deleted0 this does not automatically delete other values that were inferred from the default value"

'ssigning %b1ect Dependencies


ou can assign ob(ect dependencies to the following ob(ects: Configuration profile Characteristics Characteristic values BOM items Operations in task lists &roduction resources-tools (&,#s) Dependency nets &rocedures &rocedures &reconditions $election conditions &rocedures &reconditions &rocedures $election conditions &rocedures $election conditions &rocedures $election conditions

Procedures

2f you want to use procedures to influence the characteristic values on the value assignment screen0 you assign them to the configuration profile0 characteristic0 or characteristic value"

#he result is the same0 whether procedures are assigned to the configuration profile0 the characteristic0 or the characteristic value" Bowever0 it is easier to administer procedures if you assign them all to the configuration profile"

2f you want to use procedures to change fields in BOM items0 operations in task lists0 or &,#s0 you assign them to the relevant items0 operations0 and &,#s"

&rocedures work locally (ob(ect K$4)/) for: Configurable materials BOM items Operations in task lists &,#s

ou cannot use procedures to infer values for the characteristics of other configurable materials" #o do this0 you use dependency nets"

Preconditions and Selection Conditions


ou assign preconditions and selection conditions to the characteristic or characteristic value to which the condition applies"

ou assign selection conditions to the BOM items0 operations0 and &,#s to which the condition applies"

Changing &aster Data )ith Dependencies


Purpose

2n variant configuration0 you can use reference characteristics with dependencies to change field values in bills of material (BOMs)0 task lists0 and master recipes"

Do not use ob(ect dependencies to change control fields0 such as internal counters0 node numbers0 and item categories of BOM items"

/or e!ample0 you can change the following fields in BOMs0 task lists0 and master recipes: $#&O (BOM) 2tem te!t (&O#I7 and &O#I9) +ariableAsi1e item si1es 7*. (,OM$7*.) ?umber of variableAsi1e items (,O%?L) +ariableAsi1e item @uantity (,OM4?) Component @uantity (M4?'4) &)&OD (task list and master recipe) %ctivity types ()%,87*8H) $tandard values (+'587*8H) Cnit of measure (+'487*8H) 5ork center (%,B&)) Operation description ()#I%70 )#I%9) &)/)D (se@uence of operations) )ot si1e from ()O$+?) )ot si1e to ()O$B$) &)/BD (production resources-tools) Juantity (M'+'5) Juantity formula (M'/O,M) ,e@uired @uantity (45+'5) ,e@uired @uantity formula (45/O,M)

Process #lo)
7" 2n characteristics maintenance0 create a characteristic with a reference to the table field you re@uire"

9" %ssign the reference characteristic to the variant class" 2n characteristics maintenance0 you can define the reference characteristic as hidden" ." Create an action or procedure that uses the reference characteristic to refer to the table"

5e recommend that you al)ays use procedures to change master data0 not actions" M" %llocate the ob(ect dependency to a BOM item0 an operation0 an operation se@uence0 or a production resource-tool (&,#)"

!esult
5hen the action or procedure is triggered0 it changes the field value referred to in the reference characteristic"

!eference Characteristics in Dependencies


"se
ou can use reference characteristics in actions and procedures to change the values in master data fields"

5e recommend that you al)ays use procedures to change master data0 not actions" 2n the conditional part of actions and procedures0 and in preconditions and selection conditions0 you can have readAonly access to a table"

&D'T'
2f you are using a reference characteristic in an action or procedure to change the value of a master data field0 enter MD%#% before the characteristic0 because reference characteristics have no initial value in configuration" 2f you try to change the master data field without using the keyword MD%#%0 the system does not recogni1e the characteristic as having a value" &rocessing is terminated"

ou have created reference characteristic JC%?#0 which refers to the component @uantity in a BOM item" ou use this reference characteristic in an action or procedure" ou want to increase the component @uantity by 7:

!SEL"7Q%$/T 9 MD$T$ !SEL"7Q%$/T = : #he e!pression MD%#% refers to the @uantity in the BOM" #his @uantity is increased by 7" #he reference characteristic must be referred to with the variable D$4)/0 because the reference characteristic refers to the BOM item currently being processed" !eference Characteristics in Procedures MD%#% lets you access the original value of a master data field and change it" ou can change the value again" $ince you then access the changed value0 the e!pression MD%#% is no longer re@uired" !eference Characteristics in 'ctions MD%#% lets you access the original value of a master data field and change it" ou cannot change the value again"

!estrictions
MD%#% cannot be used with a characteristic that refers to structure $DCOM of variant conditions" Characteristics that refer to this table are multipleAvalue characteristics0 so the e!pression MD%#% cannot e!press a single value" Besides0 this table contains transaction data rather than master data"

&aster Data !eferences in $ills of &aterial


Configurable material B264 has the following characteristic: Characteristic B%C6&4D%) alues es ?o 2f a bike is ordered with a backpedal brake0 the number of brakes increases to ." BOM of B264 Item 55#5 Component B,%64 2ty 2 'ction Juantity ; . if Backpedal

Procedure
7" Create a reference characteristic called JC%?#2# with the following master data reference:

#able $#&O field M4?'4 9" Create a procedure with the following source code: !SEL"7Q%$/T0T5 9 B if C$.D-ED$L 9 '5e*' ." %llocate the procedure to BOM item 88.8 (component B,%64)"

!esult
5hen you configure the bike0 if you set value < es= for characteristic B%C6&4D%)0 the @uantity for component B,%64 increases to ."

&aster Data !eferences in Tas3 Lists


Configurable material B264 has the following characteristic: Characteristic CO)O, alues M' (Mirror green) 6, (6ansas red) B' (Baltimore gray) /) (/rench lavender)

ou need a special painting procedure for the color </rench lavender=" #his increases the setup time of operation <&aint bike= from .8 minutes to H8 minutes" ,outing of B264 Operation 55-5 Description &aint bike &rocedure $etup time N .8 mins for color </rench lavender=

45 Create Procedure
7" Create reference characteristic $4#C&3#2M4 with the following master data reference: #able &)&OD field +'587 9" Create a procedure with the following source code:

!SEL"7SET%-#T0ME 9 MD$T$ !SEL"7SET%-#T0ME = B; 0" .OLOR 9 '"L' ." %ssign the procedure to operation <&aint bike= in the routing for the bike"

65 Create Procedure
/or the color </rench lavender=0 create characteristic M4#%))2C4//4C#: Characteristic M4#%))2C4//4C# alues es ?o

2f you want metallic paintwork0 the setup time increases by another .8 minutes" ,outing of B264 Operation 55-5 Description &aint bike &rocedure $etup time N .8 mins for color </rench lavender= $etup time N .8 mins for metallic effect

7" Create a procedure with the following source code: !SEL"7SET%-#T0ME 9 !SEL"7SET%-#T0ME = B; 0" MET$LL0.E""E.T 9 5e*

ou do not use the keyword MD%#% in this procedure0 because you are accessing the changed value" 9" %ssign the procedure to operation <&aint bike="

!esult
#o check the result in the configuration simulation: 7" %ssign value </)= to characteristic CO)O," 9" Choose Result#

3. On the result screen0 select header material B264 and choose %ie( O)*ects +as, list#

ou see the routing for material B264" M" $elect operation <&aint bike= and choose Infor-ation# ou see that the standard value has increased from .8 minutes to H8 minutes" F" Choose Characteristics and assign value < es= to characteristic M4#%))2C4//4C#" H" Display the result" #he standard value has increased to O8 minutes"

Changing the -eight in the Sales Order


#he weight of header material &C is calculated during configuration0 then automatically copied to the sales order" Configurable material &C has characteristic 542'B#" #he weight of the &C is calculated by function D$CM3&%,#$ (see 2uilt&In Function >)63@:4'T))" #his value is then copied to the sales order for the &C as the gross weight"

Procedure
1. "reate reference characteristic <'%))@; I<=T with the following table reference9 )tructure C")B@6:B4T field 2'< ;. )et the #o display indicator for the reference characteristic, so that it is not displayed in the configuration editor. 2. 4ssign the reference characteristic to the variant class for the :". #. "reate a procedure with the following source code9 !SEL"71ROSS#8E01HT 9 !SEL"7 8E01HT -. 4llocate the procedure to the configuration profile of the :".

(esult
5hen you configure the &C0 the value of characteristic 542'B# is copied to the $ross (eight field in the $D document"

Example: Shape and Si7e ariants


ou can use table references in actions and procedures to calculate the variableAsi1e item @uantity for variableAsi1e items"

!e(uirements
Configurable material DOO, has the following characteristics: Characteristic DOO,352D#B alue 5,/155 5,D#.5 DOO,3B42'B# BOM: Item 55#5 Component DOO,3&%?4)387 Item category ) (stock item) Dependencies $election condition: DOO,352D#B ; 8"H788 and DOO,3B42'B# ; 7"OG8 $election condition: DOO,352D#B ; 80:.F8 and DOO,3B42'B# ; 7"OG8 $election condition: DOO,352D#B not 8"H788 or 8":.F8 DOO,3B42'B# not 7"OG8 &rocedure to infer si1es and calculate variableAsi1e item @uantity 2f you enter the standard si1es for DOO,3B42'B# and DOO,352D#B0 either DOO,3&%?4)37 or DOO,3&%?4)39 is selected from the BOM" Bowever0 if you enter any other si1e0 the component DOO,3&%?4)3$ (special) is selected" #he si1es for the special door panel are inferred using an procedure" 1,EF5 I Dependent 8alues I

55-5

DOO,3&%?4)389

) (stock item)

55.5

DOO,3&%?4)3$

, (raw material)

Procedure
Create Selection Conditions
1. Create the following selection conditions for the individual door panels: DOO,3&%?4)387: DOOR#80DTH 9 ;7E:;; and DOOR#HE01HT 9 :7FG; DOO,3&%?4)389:

DOOR#80DTH 9 ;7HB>; and DOOR#HE01HT 9 :7FG; DOO,3&%?4)3$: /OT &&DOOR#80DTH 9 ;7E:;; and DOOR#HE01HT 9 :7FG;, or &DOOR#80DTH 9 ;7HB>; and DOOR#HE01HT 9 :7FG;,, 2. %llocate the selection conditions to the individual BOM items" 5hen you configure the door0 the appropriate door panel is selected for the DOO,352D#B and DOO,3B42'B# you enter"

Create Procedure
1. Create reference characteristics that refer to the fields "i'e .& "i'e /& and %aria)le-si'e ite0uantit! in the BOM item: Characteristic $2L437 $i1e39 +$23@ty Table $#&O $#&O $#&O #ield ,OM$7 ,OM$9 ,OM4?

2. Create a procedure with the following source code: !SEL"7S0IE#: 9 DOOR#80DTHJ !SEL"7S0IE#K 9 DOOR#HE01HTJ !SEL"7LS0#QT5 9 DOOR#80DTH A DOOR#HE01HT7 #. %llocate the procedure to BOM item DOO,3&%?4)3$"

!esult
5hen you configure a door0 the values you assign to characteristics DOO,352D#B and DOO,3B42'B# trigger the procedure0 which sets values for "i'e . and "i'e / and calculates the variableAsi1e item @uantity"

Constraints

Dependency Syntax: General !ules


%perators
Operators %?D Cse in Dependencies #wo statements that are both either true or not true are linked with %?D" Length 9 :;; and ,idth 9 6;; O, #wo statements of which at least one is either true or not true are linked with O," Color 9 <red= or $asic0material 9 <)ood= ?O# ou can negate one or more e!pressions by using ?O#" /%T *Color 9 <blue=+ /%T *Color 9 <red= and $asic0material 9 <)ood=+ 2/ Conditions in actions and procedures start with 2/" Color 9 >red> if &odel 9 <'=

Special #eatures
)ists 2n lists0 the individual elements are always separated by commas" C%L%! 9 >!ED> I# &%DEL 9 >'>? C%L%! 9 >$L"E> I# &%DEL 9 >$>? C%L%! 9 >G!EE/> I# &%DEL 9 >C>? Case sensitivity 2n characteristic names0 ob(ect variables0 and operators0 there is no distinction between upper case and lower case letters"

Concatenation
)C %ll letters are converted to lower case" Leather0saddle 9 LC*>'lpha>+ 9 >a> CC %ll letters are converted to upper case" Leather0saddle 9 % C*>'lpha>+ 9 >'> #his function is important if the assigned characteristic does not allow lower case0 but the assigned e!pression may contain lowerAcase letters" GG #he string is cut off at the ma!imum number of .8 characters" Leather0saddle 9 'lpha @@ $eta 9 >'$>

List of $uilt-In Conditions


4!pression $&4C2/24D 2mplied Condition Characteristic has a value: SPECI#IED C%L%! $ee 2uilt&In "ondition ): "IFI B

2?

One of these values must be set: C%L%! I/ *<red=? <green=? <blue=+ $ee 2uilt&In "ondition IA

# &43O/

Only for certain ob(ects: TAPE0%# *.!%%T? *&aterial+ *:;;+ */! 9 >"B4=++ $ee 2uilt&In "ondition TY: @%F

&%,#3O/

#he ob(ect is a component of a BOM (only in constraints)" $ee "onstraints9 ntering "onditions

$CB&%,#3O/

#he ob(ect is a component of an assembly that is part of the BOM of a configurable material (only in constraints)"

.ntering Characteristics and Characteristic +alues


Characteristics
ou enter the languageAindependent name of the characteristic" ?o distinction is made between upper and lower case letters in characteristic names" #he following restrictions apply when using characteristics in dependencies: Ao characteristics with data types TI3 , B4T , or "6'' 7currency8 Ao characteristics with a user&defined data type, because dependencies can only read single characteristics.

Character +alues
"haracter 7alphanumeric8 values are in single 1uote mar+s9 .OLOR 9 RED The use of upper and lower case letters in character strings in 1uote mar+s depends on the settings made in characteristics maintenance. If the characteristic values are not case sensitive, the values are automatically converted to upper case letters9

color 9 red is converted internally to .OLOR 9 RED If a characteristic value is case sensitive, you must use upper and lower case letters as maintained in the characteristic.

#u/eric +alues
Aumeric values are not in single 1uote mar+s9 8id ) 9 :> You do not enter the unit. In figures with decimal places, you always use a period as a decimal point, never a comma9 8id ) 9 K7B< :lus or minus signs go immediately before the value. 6:;; 4 valid e!ponent is introduced by the character E 7case is not relevant8, and contains a plus or minus sign 7H or &8 and a string of no more than two figures. 4n e!ponent cannot contain blan+ characters. The e!ponent itself must immediately follow the figure before it 7without a blan+ character in between89 B:<E6K ;7B:<E=;:

The system chec+s alphanumeric values to see if they e!ist in the characteristic. There is no chec+ for numeric values.

Using Arith/etic Operations


$asic Arith/etic Operations:
ou can use the following basic arithmetic operations in dependencies to perform calculations: H %ddition & $ubtraction ( Division I Multiplication

.H$R#80DTH 9 .H$R#LE/1TH M <

Standard "unctions
ou can use the following standard functions: sin cos tan e!p ln abs s1rt log15 arcsin arccos arctan sign frac )ine function "osine function Tangent function !ponent for base e Aatural logarithm 4bsolute amount )1uare root ?ogarithm for base 15 4rc sine 7inverse function of sin8 4rc cosine 7inverse function of cos8 4rc tangent 7inverse function of tan8 )ign 7plus or minus sign8 of ! Becimal part of !

S0/ &KAB7:< A $/1LE M BE;, ?o distinction is made between upper and lower case letters in functions" /unction names are automatically converted to upper case letters"

Precision and (ounding !or #u/eric Characteristics


ou can use the following commands to round a value calculated by dependencies: #unction ceil trunc floor Description )owest integer that is not less than ! 2nteger part of ! Bighest integer that is not greater than ! C 9 :54 HH# H# C 9 -:54 &# &# &-

6se in an action9 !SEL"7.H$R#$ 9 "LOOR &!SEL"7.H$R#C = !SEL"7.H$R#. = ;7>, The action calculates the sum of characteristics 2 and " and rounds the result to an integer.

0ou see the rounded 1alue on the screen2 Bowever0 if the value is used in subse@uent calculations0 the exact value is used0 not the rounded value"

.ntering Inter1als
ou can enter intervals in round parentheses and in s@uare parentheses" Bowever0 round parentheses can be ambiguous0 because (7AF) could be either an interval or an arithmetic operation with the result AM" ou can e!press upper and lower limits in intervals using the following comparison operators: Upper Li/it Option 3 6 67 Option 4 76 Option 5 G) G. Description <reater than <reater than or e1ual to

Lo,er Li/it Option 3 8 87 Option 4 78 Option 5 L) L. Description ?ess than ?ess than or e1ual to

Synta9 !or .ntering Inter1als


Cse the e!pression 2? to enter intervals: LE/1TH 0/ &> 6 ( :;, from 78 to F0 such that 78 is part of the interval but F is not LE/1TH 0/ &> 6 :;, from F to 780 such that F and 78 are part of the interval LE/1TH 0/ &+ > 6 ( :;, from F to 780 such that neither F nor 78 is part of the interval LE/1TH 0/ &+ > 6 :;, from F to 780 such that 78 is part of the interval but F is not LE/1TH 0/ &> 6 :;' +K;' <;,

%ll lengths from F to 780 greater than 980 or M8

.ntering Co/parisons
ou can use the following comparison operators: Option 3 8 87 7 6 67 68 76 86 Option 4 78 Option 5 L) L. .: G) G. #. Description ?ess than ?ess than or e1ual to 1ual to <reater than <reater than or e1ual to Aot e1ual to

/or e!ample0 you can make the following comparisons: Leng ) 9 > Leng ) ( > Leng ) (9 > Leng ) + :; Leng ) +9 :;

%b1ect ariables
ou use ob(ect variables in a multiAlevel configuration0 to describe configurable materials in a configuration structure" ou can use the following ob(ect variables: D,OO# is the highestAlevel configurable material in a configuration D$4)/ is the material to which the dependency is allocated #he material to which an action or procedure is allocated is the same material for which values are inferred by the action or procedure" #o make it clear that actions and procedures only infer values for materials to which they are allocated0 the characteristics are preceded by the variable D$4)/" 2n dependencies that are allocated directly to the header material0 D$4)/ and D,OO# both mean the header material"

D&%,4?# refers to the ob(ect immediately above D$4)/ in a multiAlevel configuration" #he variable D&%,4?# has no meaning for the header material0 because the header material has no superior materials" 2n dependencies that are allocated to BOM items0 D&%,4?# refers to the configurable material for which the BOM was created0 whereas D$4)/ refers to the material of the BOM item"

#here is no variable for describing ob(ects between the configurable material and the immediately superior material" #his means that material &C cannot be accessed from materials #O54,0 D4$6#O&0 and $&4%64," Bowever0 in a multiAlevel0 interactive configuration D,OO# may refer to two different ob(ects: 2f the BOM is e!ploded in production0 D,OO# always refers to the material that transfers re@uirements" 2f the BOM is relevant to sales and distribution0 D,OO# always refers to the header material"

$uilt%In Condition SP.CI"I.D

Use
ou use the e!pression $&4C2/24D in preconditions0 selection conditions0 or the conditional section of actions and procedures0 to define that the condition is fulfilled if a characteristic has any value assigned to it" #he specific value assigned is not relevant"

S-E.0"0ED S-E.0$L#-$0/T S-E.0$L#-$0/T S-E.0"0ED 2f you use a condition like this as0 for e!ample0 a selection condition for an operation in a task list0 the operation is included in the task list e!plosion if a value is assigned to characteristic $&4C2%)3&%2?# when the condition is processed" 2t does not matter which value you assign to the characteristic" #he negative form ?O# $&4C2/24D always goes before the characteristic variable"

/OT S-E.0"0ED S-E.0$L#-$0/T

(estrictions
You cannot use A%T ): "IFI B in actions and constraints.

$uilt%In Condition I#
.OLOR 0/ &red' 4elloN' green, If you use a condition li+e this as, for e!ample, a precondition for a characteristic, the characteristic appears if the value assigned to characteristic "%?%' is either *red0, *yellow0, or *green0, or if no value is assigned to characteristic "%?%'. LE/1TH 0/ &K;;' B;;' B>;, If you use a condition li+e this as, for e!ample, a selection condition for a 2%3 item, the item is included in the 2%3 e!plosion if the value assigned to characteristic :%; ' is 255, #55, or #.5.

Use
ou can use the operator 2? to define lists of values that have an O, relationship to each other"

(estrictions
+alue nodes in value hierarchies are not supported in dependencies"

#he e!pression .oun r4 0/ Europe' where Europe is a value node with subordinate values0 is not allowed in dependencies"

$uilt%In Condition )0P.'O"


Use
ou use # &43O/ to define that the condition only applies to one ob(ect" ou use this condition if the dependency is dependent on its environment0 for e!ample0 dependent on being used for a specific BOM header material"

T5-E#O"&!ROOT' &Ma erial,&B;;,&/R9%F:,, If you use a condition li+e this as, for e!ample, a selection condition for a 2%3 item, the item is included in the 2%3 e!plosion if the >'%%T object 7header material8 has material number *6E10.

(estrictions
TY: @%F and A%T TY: @%F cannot be used in constraints. A%T TY: @%F cannot be used in actions.