Related Items Relationship

When creating or editing a related item relationship for an item, you can specify whether the related item relationship must be controlled at the master organization level or at an organization level.

When you navigate to the Related Items section for the organization item, you can find any org-specific relationships and the master- controlled relationships inherited from the master organization. If a relationship is controlled at the master organization level, then it means that the relationship is applicable to all the child organizations to which both the FROM and TO items are assigned. Any changes to the item relationship will be inherited by all child organizations.

You can filter the list of related item relationships based on the following options:
  • Click Reciprocal and select Yes, No, or All.
  • Click the More Actions icon and select Relationships as Forward, Derived, or All.

There are several predefined related item relationship types available. To create your own types, an administrator can create additional types using the Manage Related Item Subtypes task in the Setup and Maintenance work area.

If cyclic relationship isn’t allowed for a relationship type, you must use the import process to create a master-controlled relationship of this type.

Before this enhancement the audit log value for the Controlled-At field was Null. So, the records created before the enhancements shows the Nullvalue in the audit. This is equal to the Master-levelvalue for the Controlled-At field.

Optionally, you can specify the rank for the related item relationship. Rank must be unique for a combination of From item and the relationship type. For example:

  • From item X to item Y, Substitute type of relationship - Rank 1
  • From item X to item Z, Substitute type of relationship - Rank 2
  • From item X to item Y, Cross-sell type of relationship- Rank 1
Note: Rank-uniqueness validation is enforced across the org-controlled relationships and the relationships inherited from the master organization.

Predefined relationship types are listed in the following table.

Relationship Type Definition
Accessories This indicates the item is an accessory of another item.
Collateral This relationship indicates collateral, such as marketing brochures, that you've for an item.
Complimentary This relationship indicates if a customer buys one item, the other item is received for free.
Conflict This relationship indicates that these items might never be used together.
Cross-Sell This relationship indicates that one item might be sold instead of another item.
Extended Warranty Indicates if the item has an extended warranty.
Fulfillment Indicates if the item is a fulfillment item.
Impact This relationship is used to relate items to each other, but only under special conditions.
Mandatory Charge This relationship indicates a mandatory charge if a customer buys both items.
Merge This relationship enables rules based on the consolidation of contracts. You might use the earliest or latest target end date for consolidation. This enables you to choose how contracts are consolidated.
Migration During contact renewal you're given the option of renewing contracts based on new licenses, or old licenses.
Optional Charge This relationship indicates an optional charge if the customer buys both items.
Prerequisite This relationship indicates that you must mark one of the items as a requirement to using the other item.
Promotional Upgrade This relationship enables a customer to upgrade from one item to another item or equal or higher value, without an additional charge.
Regulatory This type relates a regulatory item with the context item.
Related The items are related in a nonspecific way.
Repair To You use the Repair To item relationship with field service operations that use spares management functionality. If a part has been superseded by another part, the Repair to item relationship determines the replacement part.
Service This relationship establishes service items for a repairable item.
Split This relationship enables you to split support for an item so you don't have to manually split support at contract renewal.
Substitute

One item is a substitute for another.

You can't add a dual UOM item as a substitute of a non-dual UOM item and in reverse.

If the item has dual UOM, then make sure that the respective primary and secondary UOMs of the dual UOM item and its substitute are the same.

Note: These validations are enforced in the respective organizations. The validations make sure that the respective primary and secondary UOMs of a dual UOM item and its substitute are the same in the respective inventory organizations.
Superseded This relationship indicates that one item has replaced another item that's no longer available.
Upsell This relationship indicates that a newer version of the item exists, and can be sold in place of the older item.
Warranty This relationship enables you to relate a warranty item with the item.

Note:Your system administrator can set up additional relationship types based on your business needs.

Create Related Item Relationship

To create a related item relationship:
  1. In the Related Items section, click the Add icon.

    The New related item relationship drawer is displayed.

  2. Specify the following details:
    • Related Item: Select the item to which you want to create the relationship.
    • Type: Select any of the predefined relationship type.
    • Rank: Specify the rank
    • Start Date and End Date: Provide the date range for the related item relationship.
    • Relationship Description
    • Additional Attributes
    • Based on the Type of the related item relationship, specify the following:
      • Reciprocal: Indicate whether the item relationship is reciprocal.

      • Planning Enabled: When the item relationship type is substitute or superseded, indicate if planning is enabled for the substitute item or superseded item, respectively.

  3. Click Create.

    The related item relationship is created and displayed in the Related items section.

Cyclic Relationships

Cyclic relationships can also form in chains of relationships. For example, assume that Item A has a Substitute relationship to Item B, and Item B has a Substitute relationship to Item C. If a user tries to create a new Substitute relationship from Item C to Item A, that forms a loop.

By default, cyclic relationships are allowed. You can disallow cyclic relationships for a relationship type by using either of these methods:
  • Setup: Use the Manage Related Item Types task in the Setup and Maintenance work area
  • REST: Use the Related Item Types REST resource

Procedure Using Setup

To disallow cyclic relationships for a relationship type:
  1. In the Setup and Maintenance work area, use the Manage Related Item Types task:
    • Offering:Product Management
    • Functional Area: Items
    • Task: Manage Related Item Types
  2. On the Manage Related Item Types page, select the relationship type. You can enter a type name in the filter field to narrow the list of available types.
  3. In the Allow Cyclic Relationships column for the relationship type, click the toggle control.

    A message informs you whether cyclic relationships are now disallowed or allowed for the selected relationship type. You don't need to explicitly save your selections.

  4. To return to the setup page for the Product Management offering, click the Parentpagecontrol in the page header.

Procedure Using REST

To disallow cyclic relationships for a relationship type:
  • Use the Related Item Types REST resource to specify the relationship type and set the value of the property cyclicRelationshipFlag to false for that type. Example request body:
    {
    "cyclicRelationshipFlag": false
    }
    

Example:

This example shows the effect of disallowing cyclic relationships on item maintenance:
  1. Item AS54888 has an existing related relationship type of Substitutewith item KM2584.
  2. Disallow cyclic relationships for the relationship type Substitute.
  3. User tries to create a related item relationship of type Substitute with the FROM item as KM2584 and the TO item as AS54888.

    An error message informs the user that the relationship that's being created between items KM2584 and AS54888 forms a loop, and that the relationship type Substitute doesn't allow cyclic relationships.

Considerations
  • Cyclic relationships for a relationship type are allowed by default until you explicitly disallow them:
    • By toggling the AllowCyclic Relationships control in the Manage Related Item Types task
    • By changing the cyclicRelationshipFlag to falsewith the REST resource
  • The start date and end date of relationships (their effective range) is considered when determining whether a relationship is cyclic.
  • Cyclic relationships can only be disallowed between relationships of the same relationship type. For example, if A has a Substitute relationship to C and you try to create a Cross-sell relationship of C to A, that's not considered a cyclic relationship.
  • The Reciprocal setting isn't considered when checking for cyclic relationships.
  • After you disallow a relationship type, you must query any existing cyclic relationships created before you disallowed and modify them to be valid. The following query example fetches all the existing relationships of type Substitute that are cyclic. You can substitute another relationship type, using the internal name of the relationship (which is 'Substitute'in this example).
    SELECT * FROM (
    
    SELECT item_relationship_id,
    
           inventory_item_id,
    
           (SELECT fi.item_number FROM egp_system_items_b fi WHERE fi.inventory_item_id = c.inventory_item_id AND ROWNUM = 1) FromItemNumber,
    
           related_item_id,
    
           (SELECT ti.item_number FROM egp_system_items_b ti WHERE ti.inventory_item_id = c.related_item_id AND ROWNUM =1) ToItemNumber,
    
           start_date_active,
    
           end_date_active,
    
           sub_type, CONNECT_BY_ISCYCLE iscycle,
    
           level
    
     FROM  (SELECT item_relationship_id,
    
                   inventory_item_id,
    
                   related_item_id,
    
                   start_date_active,
    
                   end_date_active,
    
                   sub_type
    
              FROM egp_item_relationships_b RelatedItemEO
    
             WHERE item_relationship_type = 'RELATED_ITEM'
    
               AND sub_type = (SELECT lookup_Code FROM fnd_lookup_values_vl WHERE lookup_type = 'EGP_RELATIONSHIP_TYPES' AND meaning = /*:BindSubType*/ 'Substitute')
    
               AND ( start_date_active <= Nvl(NULL /*:BindEndDateActive*/, To_timestamp('9999/12/31 23:59:59', 'YYYY/MM/DD HH24:MI:SS'))
    
                     AND Nvl(end_date_active, To_timestamp('9999/12/31 23:59:59', 'YYYY/MM/DD HH24:MI:SS')) >= Nvl(/*:BindStartDateActive*/ null, sysdate))
    
             ) c  
    
    CONNECT BY NOCYCLE PRIOR related_item_id = inventory_item_id ) WHERE iscycle = 1;