Specify Candidate Requirement and Strategy for Inconsistent Requirement Links (DELPPRObject_ManageInconsistentRequirementCandidate_ID)

An opening ID is an entry point used to customize business logic. Specify Candidate Requirement and Strategy for Inconsistent Requirement Links specifies the opening ID run when no candidate is found while repairing inconsistent requirement links. It lets you specify a candidate requirement, and a default strategy to perform.

Note: For more information about customization by business rules, see Installation and Setup: Customize: Behavior: Data Setup: Customization by Business Rules.

This page discusses:

General Information

The table below provides you with information related to the definition of the opening ID.

PLM Opening ID DELPPRObject_ManageInconsistentRequirementCandidate_ID
Customization intent Execution
Execution context Client

Input Objects

Input objects must be of the following types:

Input Object Read/Write Comments
ThisObject Occurrence of the selected item, system, or operation.

This object is a parent of instances involved by an inconsistent requirement link, but it may not have any inconsistent link by itself.

iListOccurrenceSourceObject Read List of the item or operation occurrences holding the inconsistent link.
Notes:
  • The order of this list is important: it is used to map the list of outputs. For example, the second component of the output list is identified with the second component of the input list.
  • It contains true components. No component of this list can be NULL. An identical data component can appear several times in this list (this may happen when the same object has several inconsistencies regarding its requirements).
iListPreviousRequirement Read List of CATBaseUnknown containing the previous requirement.
iListCandidateRequirement Read List of CATBaseUnknown containing the candidate requirement.

Some may be NULL, if no candidate is found.

iListUsage Read List of CATUnicodeString containing the link requirement usage.
iListEnumerateAnalysis Read List of integers.

The possible values are:

  • 0: not clearly identified
  • 1: the source object is released, and the target requirement is upgraded
  • 2: the source object is in work, and the target requirement is upgraded
  • 3: the target requirement is deleted.

iListOOTBDefaultSourceObjectStrategy Read List of the retrieved default strategies regarding the source object.

The possible values are:

  • 1 means Remain Source Object: nothing is done regarding the source object
  • 2 means Replace by Revision: the source object is replaced by another revision
  • 3 means Delete Source Object: the source object is deleted.

iListOOTBDefaultLinkStrategy Read List of the retrieved default strategies regarding the inconsistent link.

The possible values are:

  • 1 means Ignore Link: the link is not managed, and the inconsistency persists
  • 2 means Reroute Link: the requirement is rerouted to the candidate
  • 3 means Remove Link: the link is removed.

Note: iListSourceObjectOccurrence, iListPreviousRequirement, iListCandidateRequirement, iListUsage, iListEnumerateAnalysis, iListOOTBSourceObjectStrategy, and iListOOTBLinkStrategy match.

Output Objects

Note: The output lists must either match or be empty.

Output objects must be of the following types:

Output Object Read/Write Comments
oListCandidateRequirement Write List of the requirements used to reroute the inconsistent link. You can use this object to define a requirement candidate.

There is a mapping between this list and iListPreviousRequirement or iListSourceObjectOccurrence. The second component of this list is the candidate for the second inconsistent link corresponding to iListPreviousRequirement.

Notes:
  • This list can be empty if you are only using the business rule to define strategies. To define candidate resources, the output list has to match the input lists.
  • To define a strategy for the first and third components but not the second one: set a candidate with an unexpected type. For example:
    Let NullCandidate(String)
    ListCandidateRequirement->SetItem(NullCandidate,2/*index in list*/)
    // Set output
    Parameters.SetAttributeObject ("oListCandidateRequirement", ListCandidateRequirement)  
    

oListSourceObjectStrategies Write List of the strategies (current action to perform) specified for the source object.

There is a mapping between this list and iSourceObjectOccurrence. The second component of this list is the strategy for the second inconsistent link.

Notes:
  • This list can be empty. To define strategies, the output list has to match the input lists.
  • To define a strategy for the first and third components but not for the second one, set an integer outside the scope of strategies:
    Let rerouteStrategy(Integer)
    Let Strategies(List)
    (…)
    sourceObjectStrategy = 0
    Strategies->SetItem(sourceObjectStrategy,2/*index in list*/)
    Parameters.SetAttributeObject ("oListSourceObjectStrategy",sourceObjectStrategy)  
    

    The possible values are:

    • 0: Not set
    • 1 means Remain Source Object: nothing is done regarding the source object
    • 2 means Replace by Revision: the source object is replaced by another revision
    • 3 means Delete Source Object: the source object is deleted.

oListLinkStrategy Write List of the strategies (current action to perform) specified for the links.

There is a mapping between this list and the input lists. The second component of this list is the strategy for the second inconsistent link.

Notes:
  • This list can be empty. To define strategies, the output list has to match the input lists.
  • To define a strategy for the first and third components but not for the second one, set an integer outside the scope of strategies:
    Let rerouteStrategy(Integer)
    Let Strategies(List)
    (…)
    sourceObjectStrategy = 0
    Strategies->SetItem(sourceObjectStrategy,2/*index in list*/)
    Parameters.SetAttributeObject ("oListLinkStrategy",sourceObjectStrategy)  
    

    The possible values are:

    • 0: Not set
    • 1 means Ignore Link: the link is not managed, and the inconsistency is not fixed
    • 2 means Reroute Link: the requirement is rerouted to the candidate
      Note: This can only be applied when a candidate exists. Else, it is not taken into account.
    • 3 means Remove Link: the link is removed.

oListLock Write This list can be empty. To define strategies, the output list has to match the input lists.

If a component of this list is set to 1, the link is locked: the strategy for the involved link cannot be modified afterward.

Sample

Let lock(Boolean)
Let listLock(List)
(…)
lock = true
listLock ->SetItem(lock,2/*index in list*/)
/*By doing so, the second inconsistent link is locked: the user cannot modify the default strategy for the involved link afterward*/
Parameters.SetAttributeObject ("oListLock", listLock)