Versioning Reference Dates

For versioned products, reference dates determine which product version to use and affect the product structures. The reference dates and their use vary by object and business process. The availability of products is not based solely on the Versioning Start and End dates.

Objects use the following fields for reference dates.

  • Opportunity—Created Date

  • Quote—Created Date

  • Order—If available, use Order Requested Date. If not, use Order Start Date.

  • All line items (Opportunity line item, Quote Line item, Order item) use a reference date on the corresponding XLI’s Reference Time field.

Run the Product Hierarchy Maintenance job to resolve all possible date ranges for each product. If versioning start and end dates have gaps across versions of the same product, those products might be not visible in the cart if the reference date is within the gap. For that reason, create versioning dates without gaps.

The following tables provide the details about the fields used as reference dates for the different objects and business processes.

If you need to use different reference dates, you can create a custom implementation. See DefaultResolveRefDateImplementation:getReferenceDate Method.

Opportunities

Opportunities use the following reference dates to determine which product version to use.

Business Process

Reference Date

Use

New Opportunity

Opportunity.Created Date

To add new root products to the cart.

New Opportunity

Opportunity.Closed Date

Optional Field. Not a preferred choice.

New Opportunity

OpportunityLineItem.Reference Date

For root products that are already in the cart.

Orders

Orders use the following reference dates to determine which product version to use.

Business Process

Reference Date

Use

New Order

If Order.RequestedStartDate is NOT NULL, use Order.RequestedStartDate. Otherwise, use Order Start Date.

Use for searching products and determining the correct version.

Quote to Order(flow: New Oppy>Quote>Order)

RootLineItem.ReferenceDate

Existing line items are displayed based on the rootLineItem reference date. All new root products added to the order use Order.RequestedStartDate as the reference date.

Change to Order(flow: Change to Quote>Order)

RootLineItem.ReferenceDate

Existing line items are displayed based on the rootLineItem reference date.

All new root products added to the order use Order.RequestedStartDate as the reference date.

Frame Contract New Order

If Order.RequestedStartDate is NOT NULL, use Order.RequestedStartDate. Otherwise, us Order Start Date.

All new root products added to an order use this as the reference date.

Frame Contract Change Order

RootLineItem.ReferenceDate

Existing line items are displayed based on the rootLineItem reference date.

Amendment Order (No Contract, No reference Quote)

Order.RequestedStartDate(Datetime)

Use the originalOrder.RequestedStartDate field by default. Existing root level XLIs (assetized or non-assetized) in the Amendment Order have original Order.RequestedStartDate as the reference date.

Root-level products that are added use the Amendment Order.RequestedStartDate.COV as the reference date. This allows migrating an assetized root-level XLI version to a newer (and higher) version of the same product.

Follow-On Order (No Contract, No reference Quote)

Order.RequestedStartDate(Datetime)

This is identical to an Amendment Order (No Contract, No reference Quote).

Quotes

Quotes use the following reference dates to determine which product version to use.

Business Process

Reference Date

Use

Opportunity to Quote

RootLineItem.ReferenceDate

When an Opportunity is converted to a Quote, the line item reference date is inherited from the OpportunityLineItem reference date.

Opportunity to Quote

Quote.Created Date

For a quote created from Oppy, you can add new root products directly to the quote. In this case, use Quote.CreatedDate.

Change to Quote

RootLineItem.ReferenceDate

Assets should be displayed based on the assetized reference date. New optional child products can be added based on the assetized reference date.

Change to Quote

Quote.Created Date

All root products added to Quote should use Quote.CreatedDate as the reference date.

Frame Contract Change to Quote

RootLineItem.ReferenceDate

Assets should be displayed based on the assetized reference date. Optional child products can be added based on the assetized reference date.

Frame Contract Change to Quote

Quote.Created Date

All new root products added to Quote should use Quote.CreatedDate as the reference date.