Single Use
Single Use ensures that if the products have the same product ID and have been defined for single use with the order line actions as PROVIDE then those products are not provisioned more than once. It deletes one of the instances and ensures that the dependencies point to the single instance, which remains in the plan. This is done for products with the same parent only.
E.g. for a batch of phones typically we would only want to only send one shipment.
Product Model description in relation to Single Use:
The Product Model diagram shows the Single Use feature. If the Order is a 'BUNDLE in a single Order line', the UserID is generated only once, although it has been ordered twice by the products Broadband and VOIP respectively.
If the product exists more than once on the order, then it is only included once in the final plan. If the product exists on the order and in the inventory, it is not included in the plan.
Provide Single Use
The product catalog contains 2 bundles BundleA and BundleB. BundleA contains 2 sub-products A and B. Both the sub-products have sequence set to “1” and auto provision set to “True”. A has the attribute single use set to “True” when B has the attribute set to “False”. BundleB contains 2 sub-products A and C. Both the sub-products have sequence set to “1” and auto provision set to “True”. A has the attribute single use set to “True” when C has the attribute set to “False”.
The order sent into AFF contains 2 order lines. Order line 1 contains BundleA with order line action Provide. Order line 2 contains BundleB with order line action Provide. Both the order lines contain a user-defined field with name SingleUseID and the value is the same for both BundleA and BundleB.
The generated plan contains only one instance of sub product A. BundleA, which contains a dependency to sub product A and B. BundleB contains a dependency to sub product A and C. The User Defined Fields is not merged into the retained product.
Cease Single Use
This functionality ensures that if the products have the same product ID and have been defined for single use with their order line actions as PROVIDE and CEASE then those products are not provisioned more than once. It deletes instance, which has its order line action as CEASE, mark the action as UPDATE and also ensure that the dependencies point to the PROVIDE instance, which remains in the plan. This is done for products with the same parent only. Single Use is modeled in product model by setting record attribute single use as true.
In this scenario the Cease instance of the product is removed from the plan. Bundle A has a dependency to both sub product A and B. BundleB has a dependency to both sub product A and C. The instance of A still left in the plan has a new line action of UPDATE. The User Defined Fields is not merged into the retained product.
The plan fragment and the plan description is set to the Update fragments from the product information.
In cases where the sub product A has dependent products all those dependent products is made dependent to the remaining instance of product A.
Update Single Use
This functionality ensures that if the products have the same product ID and have been defined for single use with their order line actions as PROVIDE and UPDATE then those products are not provisioned more than once. It deletes instance, which has its order line action as PROVIDE and also ensure that the dependencies point to the UPDATE instance, which remains in the plan. This is done for products with the same parent only.
In the following scenario the Update instance of sub product A remains in the plan. Bundle A has a dependency to both sub product A and B. BundleB has a dependency to both sub product A and C. The instance of product A retains the line action of UPDATE. The User Defined Fields is not merged into the retained product.
The plan fragment and the plan description is set to the Update fragments from the product information
Sequenced Single Use
In this scenario OfferingA contains both BundleA and BundleB, which have been sequenced 2 and 1 respectively. Since both bundles contain sub product A, this product is merged into a single instance. BundleB is the only product to contain a dependency to sub product A since it is the 1st product to be provisioned in the plan. BundleA has the dependency to sub product A deleted.
The User Defined Fields is merged as mentioned in the above scenarios. The lineIDs and EOL attributes are merged as well with a comma as a separator.