Home Search

DriveWorks Pro 22
How To: Setup Linked Items

Send Feedback

How To: Setup Linked Items

What is a Linked Item?

Linked Items enables any Custom Item in CPQ to automatically add additional Items to a Quote/Order, removing the need to specify every Item individually using the CPQ catalog.

Linked Items can either be Standard CPQ Items or Custom CPQ Items.

There is no limit to the number of Linked Items that can be added using this process.

Adding Order Items using Linked Items creates a connection between the Items, where the main Custom Item is the parent of all the Items that were automatically added.

Setup

Custom Item Configuration

First, you need to specify which Standard and Custom CPQ Items should be available to the Parent Custom Item as Linked Items.

This is done by editing the Parent Custom Item from:

Catalog Administration > Items > <CustomItemName>

Using the arrows, move Items from the list box on the left to the one on the right to make them available to your Custom Item.

You can search for a specific Item SKU using the ‘SKU Search’ text box.

Templates

The following templates have been updated for DriveWorks 21 to fully support the use of Linked Items.

If you have already implemented any of these templates in previous versions of DriveWorks and now wish to use Linked Items, you should create new versions.

CPQ Embedded Order (Project Template)

Using this template is only required for Linked Items if you need to customize the ‘basket’ of your embedded CPQ orders.

See CPQ Embedded Order for more information.

CPQ Custom Item Flow (Specification Flow Template)

This template has a dual purpose and is required by both your Parent Custom Item and any Linked Custom Items you wish to create.

See CPQ Custom Item Flow for more information.

Custom Item Template (Form Template)

This template has a dual purpose and is required by both your Parent Custom Item and any Linked Custom Items you wish to create. Import the ‘CPQ-CustomItem’ Form Template into your Custom Item Project in your Form Navigation. Most of the required functionality is included in the template, however some additional functionality must be added to your Project.

Depending on whether you are going to be using Standard Linked Items, Custom Linked Items, or both, please refer to the relevant sections below.

See CPQ Custom Item for more information.

1. Standard Items

To enable your Parent Custom Item to create Linked Standard Items, you need to implement the following functionality.

1a. Export to Calculation Table

Create an ‘Export to Calculation Table’ document in Documents-Data with the following information:

Name: InsertStandardLinkedItem

Table: LinkedItemsToAdd

Fields: Add the fields in the following table:

Field NameField TypeIs Captured
IdNormalNo
ItemIdControlYes
LinkedItemIdNormalYes
PriceIdNormalNo
PriceNormalNo
PriceListItemIdNormalNo
DescriptionNormalNo
QuantityNormalYes
DiscountAmountNormalYes
ParentItemIdNormalNo
SpecificationIdNormalNo

Add one row to the table and create the following rules for the cells.

Rules:

ColumnRule
ItemIdDWVariableInsertStandardLinkedItemItemId
LinkedItemIdDWVariableInsertStandardLinkedItemLinkedItemId
QuantityDWVariableInsertStandardLinkedItemQuantity
DiscountAmountDWVariableInsertStandardLinkedItemDiscountAmount

1b. Specification Properties

Add a new specification Property with the following information.

Name: LinkedItemDataToAdd

Rule: DWVariableCSVLinkedItemsDataToAdd

2. Custom Items

To enable your Parent Custom Item to create Linked Custom Items, you need to implement the following functionality.

2a. Child Specification List (for Parent only)

The Child Specification List added by the template requires modification to add other Custom Items as Linked Items.

Control Name: LinkedChildSpecList

Control Property to modify: Projects

  • Project Details
    • Check box for each required Custom Item
    • Set Constant rules for each Custom Item:

      Constant: OrderId Rule: DWVariableOrderId

      Constant: OrderRevision Rule: DWVariableOrderRevision

  • Result Columns
    • Price
    • SpecificationId
    • LinkedOrderItemId
  • ResultColumnValues
    • Price = CurrencyCorrectedUnitPrice (Variable)
    • SpecificationId = SpecificationId (Variable)
    • LinkedOrderItemId = LinkedOrderItemId (Variable)
  • Settings

    Continuously synchronize with embedded specifications:FALSE

2b. Project Settings (for Parent only)

Disable ‘Embed child specifications’ in your Parent Custom Item Project.

Template UI

The Custom Item template creates a new form in your Project called ‘LinkedItems’.

This form contains all the controls required to Add, Edit and Delete Linked Order Items.

There are two options when it comes to how these controls are used within your Project:

  • You may include these controls on your existing forms using cut and paste.
  • Alternatively, you may use control override functionality to drive these controls with your existing UI, leaving this new form hidden in the background.

Regardless of the method you choose, these controls are required for any Linked Item functionality to behave correctly. The purpose of each control is explained below:

Standard Item UI

Control NameTypeDescription
SelectedStandardItemCombo BoxContains a list of available Standard Item SKUs. The selected SKU specifies which Standard Item is to be added and linked.
LinkedStandardItemsToAddData TableDisplays both existing Linked Standard Items and any which you are adding. You can drive the selected row using the ‘Default Row Index’ control property.
LinkedStandardItemDiscountNumeric Text BoxSpecifies the discount for the SKU to be added to the Order.
LinkedStandardItemQuantitySpin ButtonSpecifies the quantity for the SKU to be added to the Order.
AddStandardLinkedItemMacro ButtonAdds the SKU/Quantity/Discount to an array of data which specifies the Item which will be added to the Order. This data will be shown in the LinkedStandardItemsToAdd Data table. If a previously added SKU is specified by SelectedStandardItem, this macro button triggers an update to the existing row.
DeleteStandardLinkedItemMacro ButtonRemoves data from LinkedStandardItemsToAdd based on the selected row in the table.

Custom Item UI

Control NameTypeDescription
SelectedCustomItemCombo BoxContains a list of available Custom Item SKUs. The selected SKU specifies which Custom Item is to be hosted.
LinkedChildSpecListChild Specification ListA hidden control which enables Linked Custom Items to be added as Child Specifications. See Child Specification List (for Parent only) for more information on how this control must be set up.
LinkedChildSpecTableData TableDisplays existing Linked Custom Items. You can drive the selected row using the ‘Default Row Index’ control property.
LinkedChildSpecificationHostSpecification HostHosts the Child Specification that is either started or edited.
StartChildMacro ButtonHosts the Project associated with the SKU specified by SelectedCustomItem.
EditChildMacro ButtonHosts an existing Child Specification based on the SpecificationId field for the selected row in the Data Table LinkedChildSpecTable.
DeleteChildMacro ButtonDeletes a Child Specification based on the SpecificationId field for the selected row in the Data Table LinkedChildSpecTable.

Edit and Delete Behavior for Linked Order Items

Edit

Editing an Order Item that is linked to a Parent will instead select and edit that Parent Order Item.

If you need to edit your Linked Order Items, then they should be edited from the Parent Custom Item.

Delete

Linked Order Items cannot be deleted individually from the main Order Items List.

To delete specific Linked Order Items, you must use the delete functionality in your Parent Custom Item Project.

When deleting the Parent Order Item, you can use a CPQ ‘Orders’ setting Delete Linked Order Items when Parent Order Item is Deleted) to control what happens to the Linked Order Items:

  • True – When the Parent is deleted, all its Linked Order Items will also be deleted from the Order.
  • False – When the Parent is deleted, its Linked Order Items will remain, but the link will be removed. From this point on the remaining Order Items behave normally.