CA PPM: Parameterized lookups using a multi-valued lookup attribute not working in 15.3

Document ID : KB000100049
Last Modified Date : 10/08/2018
Show Technical Document Details
Issue:
Setup and Steps to Reproduce:

Setup:

1. Create Custom Lookup
Name=Change Gates
ID=my_change_gates
Static List
Hidden Key=LOOKUP_CODE
Display Attribute=NAME

Enter Values
Value / ID
aaa1 / aaa
bbb1 / bbb


2. Create Custom Object (Master):
Name=Change Gate Deliverables
ID=my_change_gate_del

2.1. Create Attribute:
Name=Change Gate
ID=my_change_gate
Type Lookup. Uses lookup: Change Gates (ID=my_change_gates)

Add the attribute to the Create Layout and Edit Layout Views

2.2. Create Instances of the Object:
Go to the Change Gate Deliverables List
Click on New.
Enter below records:

ID / Name / Change Gate / Description
xx / xx / aa1 / xx
yy / yy / aa1 / yy
ww / ww / bb1 / ww
zz / zz / bb1 / zz

3. Create Custom Lookup
Name=Change Gate Deliverables
ID=MY_CHANGE_GATE_DEL
Dynamic Niku Query

NSQL:

SELECT @SELECT:CGD.ID:ID@, @SELECT:CGD.MY_CHANGE_GATE:CHANGE_GATE@,
@SELECT:CGD.MY_DESCRIPTION:DESCRIPTION@
FROM ODF_CA_MY_CHANGE_GATE_DEL CGD
WHERE CGD.MY_CHANGE_GATE = @WHERE:PARAM:USER_DEF:STRING:CHANGE_GATE@
AND @FILTER@

Hidden Key= id
Display Attribute = Description

4. Create Custom Object
Name=Change Gates
ID=my_change_gates
(Subobject. Master: Project)

Check 'Event Enabled'

4.1. Create Attributes:
Name=Gates
ID=my_change_gate
Data Type=Lookup - String
uses lookup: Change Gates (ID=my_change_gates)

4.2. Create Attributes:
Name=Gate Deliverables
ID=my_change_gate_del
Data Type=Multi Valued Lookup - Number
uses lookup: Change Gate Deliverables (ID=MY_CHANGE_GATE_DEL)

Mapping:
change_gate MAPPED TO my_change_gate

4.3. Create Attributes:
Name=Lock_Unlock
ID=lock_unlock
Type=String

Add the 3 attributes to the Create Layout and Edit Layout Views

5. Create a Process that Lock attribute 'Lock_Unlock'
Name=Lock Attribute
ID=my_lock_attribute
Primary Object= Change Gates (created in step 4)
Available for On-demand Start=Yes

Create Step1 with System Action:
Action Name:Lock Attribute
ID=lock_attribute
Action=Lock Select Attributes
Select and add Attribute 'Lock_Unlock'

Steps: Start > Step1 > Finish

Validate the process

6. Create a Process that UnLock attribute 'Lock_Unlock'
Name=UnLock Attribute
ID=my_unlock_attribute
Primary Object= Change Gates (created in step 4)
Available for On-demand Start=Yes

Create Step1 with System Action:
Action Name:Lock Attribute
ID=lock_attribute
Action=UnLock Select Attributes
Select and add Attribute 'Lock_Unlock'

Steps: Start > Step1 > Finish

Validate the process
 
Steps to Reproduce:

7. Open any project

7.1. Go to the Change Gates List (subobject)
Click on New
Enter any name, any ID

For Lookup 'Change Gates List' select value 'aa1'
For Gate Deliverables click on the binocular. Two records are displayed:
aa1 / xx
aa1 / yy
Select both.
Save

For Lookup 'Change Gates List' select value 'bb1'
For Gate Deliverables click on the binocular. Two records are displayed:
bb1 / ww
bb1 / zz
Select both.
Save

So far, the Parameterized lookups using a multi-valued lookup attribute is working fine.

7.2. Go to Process Tab, Available Processes
Start Process 'Lock Attribute'
When completes go back to Properties Tab
Verify that attributes lock_unlock got locked

7.3. Test again the Lookups

Select a Value for Lookup 'Change Gates List'
For Gate Deliverables click on the binocular.
 
Expected Result: 
Values should be displayed (regardless of having locked attributes on the same page as the dependent lookup).

Actual Result: 
Parameterized lookup stopped working. Values are not displayed.
Root Cause: There is a locked attribute in the same page as the dependent lookup.

7.4. Go to Process Tab, Available Processes
Start Process 'UnLock Attribute'
When completes go back to Properties Tab
Verify that attributes lock_unlock got unlocked

7.3. Test again the Lookups

Select a Value for Lookup 'Change Gates List'
For Gate Deliverables click on the binocular.

Actual Result:   
Parameterized lookups display values as there is not any attribute locked on the page where the dependent lookup is placed.
Cause:
Caused by DE40398
Resolution:
Fixed in 15.5.0.96.

Workaround in 15.3 and 15.4:
Isolate the parameterized lookups in a subpage of their own, with no other attributes, or with only attributes that will not be locked.