CA PPM: Action item on Cost plan says nothing is selected

Document ID : KB000100385
Last Modified Date : 10/08/2018
Show Technical Document Details
Issue:
Perform below steps in version 13.3 and (15.3 or 15.4)

SETUP:

1. Create a Query
Query ID= my_query 

With NSQL:

SELECT  
@select:dim:user_def:implied:Dimension:to_char(Finish_date, 'YYYY') || ' ' || to_char(Finish_date, 'MM'):yearmonth@,
@select:dim_prop:user_def:implied:Dimension:month:month_caption@,
@select:dim:user_def:implied:Dimension2:name:name@,
@select:metric:user_def:implied:billable_forecast:billable_forecast@,
@select:metric:user_def:implied:units_forecast:units_forecast@,
@select:metric:user_def:implied:billable_actuals:actual_billable@,
@select:metric:user_def:implied:units_actuals:actual_units@
FROM
(
select id,
        name,
        start_date,
        finish_date,
        period_name,
  SUM(CASE WHEN type = 'Actuals' THEN
              CASE
                    WHEN next_day(FINISH_DATE, 'SUNDAY')+(7/24) <= sysdate THEN
                        billable
                    ELSE 0 END
          ELSE
              CASE
                    WHEN next_day(FINISH_DATE, 'SUNDAY')+(7/24) > sysdate THEN
                        billable
                    ELSE 0 END
                    END) as billable_forecast,
    SUM(CASE WHEN type = 'Actuals' THEN
              billable
          ELSE
              0 END
                   ) as billable_actuals,
  SUM(CASE WHEN type = 'Actuals' THEN
            CASE WHEN next_day(FINISH_DATE, 'SUNDAY')+(7/24) <= sysdate THEN
                      units
                  ELSE 0 END
        ELSE
        CASE WHEN next_day(FINISH_DATE, 'SUNDAY')+(7/24) > sysdate THEN
                      units
                  ELSE 0 END 
        END) as units_forecast,
  SUM(CASE WHEN type = 'Actuals' THEN
                      units
                  ELSE 0 END) as units_actuals,
CASE WHEN sysdate >= next_day(FINISH_DATE, 'SUNDAY')+(7/24) THEN
'Actuals '|| chr(10) || period_name
ELSE 'Forecast ' || chr(10) || period_name END as MONTH
   FROM
 (
SELECT w.investment_id ID,
      inv.name,
    BIZ.START_DATE START_DATE,
    BIZ.END_DATE FINISH_DATE,
    BIZ.period_name,
     --J-987 fix
 --ROUND( SUM(amount) , 2) Billable,
   ROUND( SUM(totalcost) , 2) Billable,
    ROUND( SUM(quantity), 2) Units,
    'Actuals' as type
  FROM ppa_wip w
  INNER JOIN ppa_wip_values wv
  ON w.transno = wv.transno
  INNER JOIN inv_investments inv
  ON w.investment_id = inv.id
  INNER JOIN departments D
  ON d.departcode = w.DEPARTCODE
  INNER JOIN srm_resources R1
  ON r1.unique_name = w.role_code
  INNER JOIN ODF_CA_RESOURCE RES
  ON res.id = r1.id
  INNER JOIN BIZ_COM_PERIODS BIZ
  ON ( w.transdate    <= BIZ.END_DATE-1
  AND w.transdate     >= BIZ.START_DATE )
  AND BIZ.PERIOD_TYPE  = 'MONTHLY'
  AND BIZ.IS_ACTIVE    = 1
  WHERE
   w.status <> '2' AND
   wv.currency_type = 'HOME' AND inv.code= @WHERE:PARAM:XML:STRING:/data/id/@value@ --Param
  GROUP BY w.investment_id,
      inv.code,
      inv.name,
      inv.odf_object_code,
    BIZ.START_DATE ,
    BIZ.END_DATE,
    biz.period_name
union all
SELECT
INV.ID,
INV.NAME,
COST.START_DATE ,
COST.Finish_DATE FINISH_DATE,
BIZ.PERIOD_NAME,
ROUND(SUM ( (BIZ.END_DATE - BIZ.START_DATE) * cost.SLICE),2) as Billable,
ROUND(SUM ( (BIZ.END_DATE - BIZ.START_DATE) * unit.SLICE),2) as Units,
'Forecast' as type
FROM FIN_PLANS PLAN
 INNER JOIN FIN_COST_PLAN_DETAILS DETAILS ON
(Details.plan_id = plan.id
AND plan.object_code = 'project'
AND plan.sub_plan_type = 0
AND plan.plan_type_code = 'FORECAST')
 
INNER JOIN ODF_SSL_CST_DTL_COST cost
ON cost.PRJ_OBJECT_ID = details.ID
 
INNER JOIN BIZ_COM_PERIODS BIZ
ON  cost.START_DATE < BIZ.END_DATE
AND cost.FINISH_DATE > BIZ.START_DATE
AND BIZ.PERIOD_TYPE = 'MONTHLY'
AND BIZ.IS_ACTIVE = 1
 
left outer JOIN ODF_SSL_CST_DTL_units unit
ON unit.PRJ_OBJECT_ID = details.ID And cost.start_date = unit.start_date
 INNER JOIN INV_INVESTMENTS INV
on INV.ID = PLAN.OBJECT_ID
 WHERE
@WHERE:PARAM:XML:INTEGER:/data/plan_id/@value@= plan.id  -- Param
AND @WHERE:PARAM:XML:STRING:/data/code/@value@ = plan.code  -- Param
GROUP BY INV.ID,
        INV.NAME,
        INV.ODF_OBJECT_CODE,
        PLAN.NAME,
        COST.START_DATE,
        COST.FINISH_DATE,
        BIZ.PERIOD_NAME
        ) group by id,
        name,
        start_date,
        finish_date,
        period_name
) X
WHERE   
1=1
AND
@FILTER@
 
2. Create a Portlet
Portlet ID= my_ Portlet   using query created in step 1

Go to List Column Layout.  Under ‘Data Column Header’ add columns: billable_forecast, units_forecast, actual_billable, actual_units

3. Create a Portlet Page
Portlet ID= my_costplan_page

Check ‘Linkable’

Go to Content tab and add the portlet created in step 2.

Go to Link Parameters and add parameters:
Parameter Name=code , Parameter ID=code
Parameter Name= investment code, Parameter ID=id
Parameter Name= plan_id, Parameter ID=plan_id
 
4.  Open Object: Cost Plan 
Go to Linking Tab and add: 
Label=link_my_costplan_page
Link ID= link_my_costplan_page 
Action=my_costplan_page 
- code associated with Plan Code 
- investment code associated with Investment Code 
- plan_id associated with Object Internal ID 


Go to Action Tab and add: 
Action Name =my_costplan_summary 

Action ID=my_costplan_summary 
Type=Internal Link 
Select Link=link_my_costplan_page 

Go to Views: 
For Cost Plan List, click on Action Menu 
Open Menu 'General'.

Add Action ‘my_costplan_summary 
 
STR: 

Open a Project
Go to Cost Plan tab.
Create 2 cost plans 
Check one of the cost plans and select Action ‘my_costplan_summary 

Expected Results:

It should bring up the portlet page and show portlet in that page

Actual Results:
In 13.3: It brings up the portlet page and portlet in that page is displayed fine
In 15.3 and 15.4: I get ERROR: Action my_costplan_summary requires a selection. 
Cause:
Cause:
Caused by DE41778
Resolution:
Resolution:
Open. Defect is target for resolution in future release.