Provide and Consume Templates

The Provide template has the form:

[An item] provides [a value] to [a target]

The Consume template has the form:

[An item] consumes [a value] from [a target]

Provide and consume constraints positively or negatively increment the amount of the target operand each time the specified item is added to the solution. Provide constraints contribute a positive amount; that is, they increase the amount of the target. Consume constraints contribute a negative amount; that is, they reduce the amount of the target.

Contrast this behavior with the behavior of the require constraints. For example, Item A requires Item B. The first time the user picks Item A, if no item B is in the solution, the Siebel Product Configurator engine adds at least one Item B. The second time the user picks Item A, the engine does not increment Item B because the require constraint does not consider the quantity of Item A in the solution, only that Item A is present.

Now consider the constraint Item A provides 1 to Item B. Each time the user picks Item A, the Siebel Product Configurator engine increments the number of Item B in the solution by 1. This constraint ties the quantities of Item A and Item B together so that each Item A requires an Item B. Provide and consume constraints work directly with quantities expressed as resource or attribute values, while require constraints consider only the presence or absence of an item.

Note: Provide and Consume constraints work properly when the resource is defined in the parent product. For modeling scenarios that require embedding resources in the child product, use attributes of type Integer instead.