SlideShare a Scribd company logo
Create S-Curve Reports
for
P6R8.1 or P6R8.2
using
BI Publisher 11g
Presented by:
Paul G. Ciszewski, PMP
Dynamic Consulting
pciszewski@Dynamic-Consulting.net
(920) 883-9048
Overview
• Oracle Business Intelligence Publisher (BIP)
is a tool to create pixel-perfect reports
• To modify existing P6 Web Reports and to
create new P6 Web Reports, you must use
BIP
• When building your reports, you should use
P6‟s new Px Extended Scheme (database)
• Px Extended Scheme is de-normalized and
has P6 calculated values
Overview (cont.)
• Tables in the Px Extended Scheme begin with “P6”
• P6Project – list of all projects and related data by project (for ex: the “baseline planned labor units” for
project “TA Fall 13”)
• P6ProjectSpread - list of all projects and related data by project and date (for ex: the “planned labor
units” on November 15, 2013 for project “TA Fall 13”)
• P6Activity – list of all activities and related activity data for all projects (for ex: the “earned value labor
units” for activity “A1000” for project TA Fall 13)
• P6ActivitySpread – list of all activities and related activity data by date for all projects (for ex: the
“actual labor units” for activity “A1000” on November 15, 2013 for project TA Fall 13)
• P6ActivityCodeAssignment – list of all the activity codes and their values assigned to ALL activities.
If an activity has 5 activity codes assigned to it, then there would be 5 records in this table for the one
(1) activity
• P6ActivityCode – list of all activity codes and values
Note: There are no physical tables called P6Project (or P6Activity), the P6 tables are actually synonyms/aliases that point to
“Views”. “Views” are results from executed SQL statements. In the Px Extended Scheme, the “Views” are joins of native P6
tables (such as project, task) and new extended tables (such as projectx and taskx) – and the P6 security tables are
included.
For our presentation “SYNONYM” is the same as “TABLE”
BI Publisher - Introduction
• Two (2) main modules to create a BIP report
1. Data Model Editor – To extract data from
P6‟s Extended Px Scheme (database)
2. Create Report Layout – the presentation
of the data. But there are 2 tools
 Report Layout Editor (tool is within BIP)
 Word Template Builder (a MS WORD add-on)
BI Publisher – Presentation Objective
Presentation Objective
Go through all the steps to:
1. Develop the Data Model (SQL)
to extract the data from P6
2. Develop the S-Curve Template
in the WORD Template Builder
that uses the Data Model
3. Upload the Template to the
Report in BI Publisher
4. Move the Report and Data
Model to the P6Reports folder
5. Run S-Curve Report in P6 and
produce the same output as you
see on this slide
BI Publisher - Login
• User Name should exist in P6
• The user‟s security is applied
BI Publisher - Home
BI Publisher – Create Data Model (DM)
• Three (3) components needed to create the
DM for our examples
1. Create 1 List of Values (LOV)
2. Create 1 parameter
3. Create Data Set
BI Publisher – Create New DM
BI Publisher – Create New DM – P6 Tables
• Four (4) P6 Tables needed to create examples
1. P6Project (list of projects and all related data)
2. P6ActivitySpread (list of activities and activity data by date)
For version 1, I could have used P6ProjectSpread but P6ActivitySpread
works for both version 1 and 2
3. P6ActivityCodeAssignments (needed for version2)
4. P6ActivityCode (needed for version2)
BI Publisher – Create DM – Parameter
Desired “look and feel” in P6
BI Publisher – Create DM – Parameter
Desired “look and feel” in P6
BI Publisher – Create DM – Parameter
Desired “look and feel” in P6
BI Publisher – Create DM - Parameter
• First create list of values (LOV) for Projects
• Then create parameter using the LOV
• Parameter Label would be “Select Projects”
BI Publisher – Create DM – Create LOV‟s
SQL to retrieve the list of Project
ID‟s
BI Publisher – Create DM – Create Parameter
“p_project_id” is special parameter
recognized by P6
When “Parameter Type” is Menu,
user can select “LOV” value
BI Publisher – Create DM – Data Set
• Next, create a Data Set
• Data Set contains the SQL query/statements to
extract the P6 data (such as Baseline Planned
Labor Units) from the P6 tables
• In our example, our SQL query will sum the labor
units for all activities by date AND
• Our SQL statements will create running totals (see
next slide)
• The query result will be a record for each date of our
project(s) when work is planned or work is done
BI Publisher – Create DM – Data Set
Date
ACTSP_STARTDATE
Display Date
DISPLAYDATE
Baseline Labor Units
SUM_BLPLANNEDLABORUNITS
Running Totals
CUM_BLPLANNEDLABORUNITS
Feb 4, 2013 02/04 50 50
Feb 5, 2013 02/05 25 75
Feb 6, 2013 02/06 10 85
Feb 7, 2013 02/07 20 105
Feb 8, 2013
02/08 50 155
And so
BI Publisher – Create DM – Create Data Set
Then select “SQL Query”
BI Publisher – Create DM – Create Data Set
You could use “Query Builder” for
simple SQL queries/statements.
“Query Builder” builds the SQL
query for us.
But for advanced/complex SQL
queries/statements, I just type it in
myself
BI Publisher – Create DM – Create Data Set
I typed in the SQL
query/statement
BI Publisher – Create DM - Data Set / SQL
-- Version 1 - just BL planned labor units
SELECT
TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE,
TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE,
-- BL planned labor units summed by date
SUM(ACTSP.BASELINEPLANNEDLABORUNITS)
AS SUM_BLPLANNEDLABORUNITS,
-- BL planned labor units - running totals by date
SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_BLPLANNEDLABORUNITS
-- Two tables needed for version 1
FROM P6PROJECT PRJ,
P6ACTIVITYSPREAD ACTSP
WHERE PRJ.ID IN (:p_project_id) AND
PRJ.OBJECTID = ACTSP.PROJECTOBJECTID
GROUP BY TRUNC(ACTSP.STARTDATE)
ORDER BY ACTSP_STARTDATE
Breakdown SQL Query
SQL query to create four (4) columns:
- ACTSP_STARTDATE
- DISPLAYDATE
- SUM_BLPLANNEDLABORUNITS
- CUM_BLPLANNEDLABORUNITS
Summed and grouped by
TRUNC(ACTSP.STARTDATE)
BI Publisher – Create DM - Data Set / SQL
-- Version 1 - just BL planned labor units
SELECT
TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE,
TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE,
-- BL planned labor units summed by date
SUM(ACTSP.BASELINEPLANNEDLABORUNITS)
AS SUM_BLPLANNEDLABORUNITS,
-- BL planned labor units - running totals by date
SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_BLPLANNEDLABORUNITS
-- Two tables needed for version 1
FROM P6PROJECT PRJ,
P6ACTIVITYSPREAD ACTSP
WHERE PRJ.ID IN (:p_project_id) AND
PRJ.OBJECTID = ACTSP.PROJECTOBJECTID
GROUP BY TRUNC(ACTSP.STARTDATE)
ORDER BY ACTSP_STARTDATE
Tables Accessed/FROM Clause
P6Project with an alias of ”PRJ”
P6ActivitySpread with an alias of “ACTSP”
BI Publisher – Create DM - Data Set / SQL
-- Version 1 - just BL planned labor units
SELECT
TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE,
TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE,
-- BL planned labor units summed by date
SUM(ACTSP.BASELINEPLANNEDLABORUNITS)
AS SUM_BLPLANNEDLABORUNITS,
-- BL planned labor units - running totals by date
SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_BLPLANNEDLABORUNITS
-- Two tables needed for version 1
FROM P6PROJECT PRJ,
P6ACTIVITYSPREAD ACTSP
WHERE PRJ.ID IN (:p_project_id) AND
PRJ.OBJECTID = ACTSP.PROJECTOBJECTID
GROUP BY TRUNC(ACTSP.STARTDATE)
ORDER BY ACTSP_STARTDATE
Conditions/Where Statement
p_project_id is the Parameter
Before the user runs the report, they will
select 1 or more projects.
This statement will extract all project
records from P6Project with matching
Project ID‟s.
PRJ.ID are the project ID‟s you see in P6
such as “Fall TA 2013” or “EC500123”.
Tables are usually linked together (joined
together) using the unique key for the
record. But first we must look up the
correct record by Project ID. In the Px
Extended Scheme, the unique key is
called “ObjectID”.
ID ObjectID (other columns…)
Fall TA 2013 4501
EC500123 1287
Test Prj 123 9333
P6Project PRJ Table
BI Publisher – Create DM - Data Set / SQL
-- Version 1 - just BL planned labor units
SELECT
TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE,
TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE,
-- BL planned labor units summed by date
SUM(ACTSP.BASELINEPLANNEDLABORUNITS)
AS SUM_BLPLANNEDLABORUNITS,
-- BL planned labor units - running totals by date
SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_BLPLANNEDLABORUNITS
-- Two tables needed for version 1
FROM P6PROJECT PRJ,
P6ACTIVITYSPREAD ACTSP
WHERE PRJ.ID IN (:p_project_id) AND
PRJ.OBJECTID = ACTSP.PROJECTOBJECTID
GROUP BY TRUNC(ACTSP.STARTDATE)
ORDER BY ACTSP_STARTDATE
Conditions/Where Statement
This statement will extract all activity
records from P6ActivitySpread with
matching project ObjectID.
However in the P6ActivitySpread table,
the project‟s unique key column is called
“ProjectObjectID”.
So first we move to the correct project
record with “PRJ.ID IN (:p_project_id)“
then we get the ObjectID and use it to
extract activity records from the
P6ActivitySpread table using
ProjectObjectID
BI Publisher – Create DM - Data Set / SQL
-- Version 1 - just BL planned labor units
SELECT
TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE,
TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE,
-- BL planned labor units summed by date
SUM(ACTSP.BASELINEPLANNEDLABORUNITS)
AS SUM_BLPLANNEDLABORUNITS,
-- BL planned labor units - running totals by date
SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_BLPLANNEDLABORUNITS
-- Two tables needed for version 1
FROM P6PROJECT PRJ,
P6ACTIVITYSPREAD ACTSP
WHERE PRJ.ID IN (:p_project_id) AND
PRJ.OBJECTID = ACTSP.PROJECTOBJECTID
GROUP BY TRUNC(ACTSP.STARTDATE)
ORDER BY ACTSP_STARTDATE
Group Clause
The GROUP clause groups ALL activity
records together by STARTDATE.
The SUM() function, will sum all “Baseline
Planned Labor Units” from all Activities
that have the same STARTDATE.
Remember: The P6ActivitySpread table
has a record for each day of the Activity. If
the Activity has 24 budgeted hours over 3
days (Feb 1, Feb 2, and Feb 3), then there
will be 3 records in the P6ActivitySpread
table for that activity. Ex:
Activity Start BL Planned
ID Date Labor Units
A1000 2/1/13 8
A1000 2/2/13 8
A1000 2/3/13 8
BI Publisher – Create DM - Data Set / SQL
-- Version 1 - just BL planned labor units
SELECT
TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE,
TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE,
-- BL planned labor units summed by date
SUM(ACTSP.BASELINEPLANNEDLABORUNITS)
AS SUM_BLPLANNEDLABORUNITS,
-- BL planned labor units - running totals by date
SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_BLPLANNEDLABORUNITS
-- Two tables needed for version 1
FROM P6PROJECT PRJ,
P6ACTIVITYSPREAD ACTSP
WHERE PRJ.ID IN (:p_project_id) AND
PRJ.OBJECTID = ACTSP.PROJECTOBJECTID
GROUP BY TRUNC(ACTSP.STARTDATE)
ORDER BY ACTSP_STARTDATE
ACTSP_STARTDATE
This is the full date (without time)
used for sorting/ordering.
This value is not placed on the
chart/S-Curve.
In the P6ActivitySpread table,
ACTSP.STARTDATE is the start date
for the hours on this date
BI Publisher – Create DM - Data Set / SQL
-- Version 1 - just BL planned labor units
SELECT
TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE,
TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE,
-- BL planned labor units summed by date
SUM(ACTSP.BASELINEPLANNEDLABORUNITS)
AS SUM_BLPLANNEDLABORUNITS,
-- BL planned labor units - running totals by date
SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_BLPLANNEDLABORUNITS
-- Two tables needed for version 1
FROM P6PROJECT PRJ,
P6ACTIVITYSPREAD ACTSP
WHERE PRJ.ID IN (:p_project_id) AND
PRJ.OBJECTID = ACTSP.PROJECTOBJECTID
GROUP BY TRUNC(ACTSP.STARTDATE)
ORDER BY ACTSP_STARTDATE
DISPLAYDATE
This value will be shown across the
horizontal axis of the chart/S-Curve.
The date will be in “mm/dd” format
without the year to save space on the
report.
BI Publisher – Create DM - Data Set / SQL
-- Version 1 - just BL planned labor units
SELECT
TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE,
TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE,
-- BL planned labor units summed by date
SUM(ACTSP.BASELINEPLANNEDLABORUNITS)
AS SUM_BLPLANNEDLABORUNITS,
-- BL planned labor units - running totals by date
SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_BLPLANNEDLABORUNITS
-- Two tables needed for version 1
FROM P6PROJECT PRJ,
P6ACTIVITYSPREAD ACTSP
WHERE PRJ.ID IN (:p_project_id) AND
PRJ.OBJECTID = ACTSP.PROJECTOBJECTID
GROUP BY TRUNC(ACTSP.STARTDATE)
ORDER BY ACTSP_STARTDATE
SUM_BLPLANNEDLABORUNITS
This is the “Baseline Planned Labor
Units” from the Activity Spread
extended table summed by StartDate
(because of the “GROUP BY”
clause).
SUM() is a function.
BI Publisher – Create DM - Data Set / SQL
-- Version 1 - just BL planned labor units
SELECT
TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE,
TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE,
-- BL planned labor units summed by date
SUM(ACTSP.BASELINEPLANNEDLABORUNITS)
AS SUM_BLPLANNEDLABORUNITS,
-- BL planned labor units - running totals by date
SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_BLPLANNEDLABORUNITS
-- Two tables needed for version 1
FROM P6PROJECT PRJ,
P6ACTIVITYSPREAD ACTSP
WHERE PRJ.ID IN (:p_project_id) AND
PRJ.OBJECTID = ACTSP.PROJECTOBJECTID
GROUP BY TRUNC(ACTSP.STARTDATE)
ORDER BY ACTSP_STARTDATE
CUM_BLPLANNEDLABORUNITS
This statement will add up all “Baseline
Planned Labor Units” beginning at the first
row (UNBOUNDED PRECEDING) to the
current row (CURRENT ROW).
Using the STARTDATE for order (ORDER
BY TRUNC(STARTDATE))
The result is stored in
“CUM_BLPLANNEDLABORUNITS”
Notice: SUM(SUM())
BI Publisher – Create DM - Data Set / SQL
-- Version 1 - just BL planned labor units
SELECT
TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE,
TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE,
-- BL planned labor units summed by date
SUM(ACTSP.BASELINEPLANNEDLABORUNITS)
AS SUM_BLPLANNEDLABORUNITS,
-- BL planned labor units - running totals by date
SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_BLPLANNEDLABORUNITS
-- Two tables needed for version 1
FROM P6PROJECT PRJ,
P6ACTIVITYSPREAD ACTSP
WHERE PRJ.ID IN (:p_project_id) AND
PRJ.OBJECTID = ACTSP.PROJECTOBJECTID
GROUP BY TRUNC(ACTSP.STARTDATE)
ORDER BY ACTSP_STARTDATE
ORDER BY
Last, we will order all our records by
ACTSP_STARTDATE
BI Publisher – Create DM – Create XML Data
• After creating the LOV‟s, Parameters, and the
Data Set – you must generate XML data.
• To create the presentation part of the report,
you must have XML data
• You must save the XML data to the DM if you
are building the report in the Report Layout
Editor
• You must save the XML data to a file and
import it into your WORD document if you are
using the Word Template Builder
BI Publisher – Create DM – Create XML Data
Data Set
The Data Set shows the four
columns being returned from the
SQL query/statement
Generate XML Data
Click this button to show the screen
when we can generate the XML.
BI Publisher – Create DM – Create XML Data
1. Generate XML Data
Select 1 or more projects, then click
“Run”
2. XML Data
The XML data has
the tag names and
values.
3. Save XML
Either “Export
XML” to a file or
“Save As
Sample Data” to
the DM.
BI Publisher – Create DM – Create XML Data
• Save the DM
• Next, build presentation part of report by first
creating a report called “SCurve-V1” and then
• Use Word Template Builder for layout
BI Publisher – Create Report
BI Publisher – Create Report – Select DM
BI Publisher – Create Report – Save Report in BIP
Report Layout Editor
If we were going to create the presentation
part in the Report Layout Editor tool, then I
would have selected a Template. However,
we will be developing the presentation part in
the “Word Template Builder” therefore we just
want to save the report.
BI Publisher – Create Report – Save Report
Enter Report Name
BIP – Create Report – Word Template Builder
• Switch to MS WORD
• Select BI Publisher Add-in tab
• Log into BIP
• Load XML file
• Create report‟s layout in WORD
• Add Report Title
• Add Chart (S-Curve)
• Save WORD file as RTF
• Upload Template to BIP Report
BIP – Create Report – Word Template Builder
Log On
Enter Username
Enter Password
Enter IP of BIP server
BIP –Template Builder – Select Report
Select Report
Layout Templates
If there were templates in
BIP for this report, the
templates would be listed
here.
BIP –Template Builder – Load XML Data
Select XML File
This file was created
by the DM
BIP –Template Builder – Create Layout
2. Add Chart
Move cursor to
position in WORD
doc and double click
Chart object
1. Add Text
Using WORD‟s standard
features – such as
forecolor, center, font
BIP –Template Builder – Chart Properties
BIP –Template Builder – Chart Properties
Chart/Line Properties
Change other properties
such as 3-D effect, line
color, line name
Chart/Line Properties
1.Drag/Drop DISPLAYDATE to
Labels
2. Drag/Drop
CUM_BLPLANNEDLABORUNITS
to Values
3. Change Type to Line Graph
4. Uncheck Group Data
BIP –Template Builder – Chart Properties
BIP –Template Builder – Report
BIP – Create Report – Word Template Builder
• To upload Template into BIP
• Save File in WORD as RTF
• Select “Upload Template As” on BI Publisher
Add-in tab
• Save Template to the BIP Report
• Login into BIP
• Open/Edit Report
• Select Template Layout (that we just uploaded from Tmp Builder)
• View Report
BIP –Template Builder – Create Layout
BIP – Open/Edit Report – View Report
BIP – Run Report from P6 to PDF Format
BIP – DM – Expand DM
• DM is currently plotting BL Planned Labor
Units
• Add Actual Labor Units and Earned Value
Labor Units
• Create new XML data file with new data
elements
• Import new XML into WORD Template Builder
• Modify Template to include new data elements
• Upload to BIP – run report
BIP – DM – Add More Data Elements
Original Section of SQL
Copy/Paste this section
New Section of SQL
Change
BASELINEPLANNEDLABORUNITS to
ACTUALLABORUNITS in 4 places
See Next Slide
BIP – DM – Add More Data Elements (SQL 1 of 2)
Original Section of
SQL
Copy/Paste this section
New Section of SQL
Change
BASELINEPLANNEDLABORUNITS
to ACTUALLABORUNITS in 4 places
-- Version 1 - BL planned Labor Units,
-- Actual Labor Units, and EV Labor Units
SELECT TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE,
TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE,
-- BL planned labor units summed by date
SUM(ACTSP.BASELINEPLANNEDLABORUNITS) AS SUM_BLPLANNEDLABORUNITS,
-- BL planned labor units - running totals by date
SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_BLPLANNEDLABORUNITS,
-- Actual labor units summed by date
SUM(ACTSP.ACTUALLABORUNITS) AS SUM_ACTUALLABORUNITS,
-- Actual labor units - running totals by date
SUM(SUM(ACTSP.ACTUALLABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_ACTUALLABORUNITS,
BIP – DM – Add More Data Elements (SQL 2 of 2)
Another New Section of SQL
After copying the section in RED on
previous slide, change
BASELINEPLANNEDLABORUNITS to
EARNEDVALUELABORUNITS in 4
places.
-- (Continuation from previous slide)
-- EV labor units summed by date
SUM(ACTSP.EARNEDVALUELABORUNITS) AS SUM_EARNEDVALUELABORUNITS,
-- EV labor units - running totals by date
SUM(SUM(ACTSP.EARNEDVALUELABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_EARNEDVALUELABORUNITS
-- Two tables needed for version 1
FROM P6PROJECT PRJ,
P6ACTIVITYSPREAD ACTSP
WHERE PRJ.ID IN (:p_project_id) AND
PRJ.OBJECTID = ACTSP.PROJECTOBJECTID
GROUP BY TRUNC(ACTSP.STARTDATE)
BIP – DM – Add More Data Elements
New Data Elements in the Data Set
Generate XML
again with New
Data Elements
then Save It
BIP –Template Builder – Modify Template Add New Chart
Include all 3 running total
data elements.
Change Some
Properties
Color, labels, remove
3-D effect
BIP –Template Builder – Modify Template (show Project ID‟s)
Add Data Element
1. Click on Field
2. The Field Dialog box is
displayed
3. Double Click on data
element (such as
p_project_id)
4. The data element will
be added to the report
NOTE: p_project_id was
our parameter in our DM
BIP – Create Report – Word Template Builder
• We must upload Template into BIP again
• Save File in WORD as RTF
• “Upload Template As” to save report
• Login into BIP
• Open/Edit Report
• Select Template Layout (that we just uploaded from Tmp Builder)
• View Report
• Move Report and DM to P6Reports folder
and reattach DM to Report
BIP – Run Report from P6
BIP – Expand DM/Report to include Activity Codes
• In many operations, the managers want to see
progress only for activities with a specific
Activity Code/Value combination
• For ex:
• By Phase: FOUND, DESGN, STRUC
• By Department: CON, PCH, ENG
• So, we need to add:
• List of Value: ActivityCodeLOV
• Parameter: p_activity_value
• SQL logic to the Data Set that uses new parameter
BIP – Expand DM/Report to include Activity Codes
SELECT CODEVALUE FROM P6ACTIVITYCODE
WHERE CODETYPENAME = 'Phase' AND CODETYPESCOPE = 'AS_Global'
BIP – Expand DM/Report to include Activity Codes
p_activity_value
1. Display “Select Phase”
2. Use ActivityCodeLOV
3. No Multiple Selection
4. Also changed the
values on p_project_id so
that the user can only
select one (1) project.
BIP – DM – Expand SQL (to Include Activity Code Logic)
Same SQL
The SQL above this point
is the same as the
previous SQL
New SQL for Activity
Code Logic
Need the Activity Code
Assignment table
-- EV labor units summed by date
SUM(ACTSP.EARNEDVALUELABORUNITS) AS SUM_EARNEDVALUELABORUNITS,
-- EV labor units - running totals by date
SUM(SUM(ACTSP.EARNEDVALUELABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_EARNEDVALUELABORUNITS
-- Three tables needed for version 2
FROM P6PROJECT PRJ,
P6ACTIVITYSPREAD ACTSP,
P6ACTIVITYCODEASSIGNMENT ACTAS
WHERE PRJ.ID IN (:p_project_id) AND
PRJ.OBJECTID = ACTSP.PROJECTOBJECTID AND
ACTSP.ACTIVITYOBJECTID = ACTAS.ACTIVITYOBJECTID AND
ACTAS.ACTIVITYCODETYPENAME = 'Phase' AND
ACTAS.ACTIVITYCODEVALUE IN (:p_activity_value)
GROUP BY TRUNC(ACTSP.STARTDATE)
New SQL for Activity
Code Logic
Add condition so that the
results will only include
Activities with an Activity
Code of „Phase‟ and the
Activity Value selected
(which is stored in
p_activity_value)
BIP – Update Report
After making the changes to the DM
• Save DM
• Create XML data
• Import XML data into Template in WORD
• Modify Template
• Upload Template to BIP
• Open/Edit Report
• View Report
• Move Report to P6Report folder (reattached DM)
BIP – Update Report – WORD Template Builder
This is just a table in WORD
Using the Field
control on the BIP
tab, added
p_project_id and
p_activity_value to
table cells – then
change forecolor to
RED
No changes were needed on
the Chart
BIP – Running Report in P6
On Reports Tab in P6, find Report in
list and Right Click – select „Run
Report‟. Then the „Report Settings‟
screen is shown
Select Project
Select Phase from Dropdown List
Click the „Run‟ button
BIP – Running Report in P6
Looks good but we need to
stop the EV and Actual lines
on the Data Date
BIP – Advanced Topic for Chart
In our example, Actual Labor Units and EV Labor
Units are plotted to the end of the project. I want
them to plot only to the Data Date
Plot to End of Project Plot to Data Date
BIP – Advanced Topic for Chart
To add support so that lines are only plotted to
the Data Date, we need to:
1. Modify the DM/Data Set so that our running
totals for Actual and EV will be set to -1 when
the Date (Start Date) is greater than the Data
Date AND
2. Add an “if” condition in the XSL code behind
the Chart in the WORD Template Builder.
Behind most objects on the Template Builder, there is a section where
you can add additional code (it‟s XML-type code)
BIP – Advanced Topic for Chart – DM Changes
SUM(SUM(ACTSP.ACTUALLABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS CUM_ACTUALLABORUNITS,
(CASE WHEN TRUNC(ACTSP.STARTDATE) <=
MAX(TRUNC(PRJ.DATADATE)) THEN
SUM(SUM(ACTSP.ACTUALLABORUNITS)) OVER
(ORDER BY TRUNC(ACTSP.STARTDATE)
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
ELSE
-1
END ) AS CUM_ACTUALLABORUNITS,
Old SQL for Running Total
for
CUM_ACTUALLABORUNITS
New SQL for Running Total
for
CUM_ACTUALLABORUNITS
The CASE is an IF statement.
When the StartDate is <= the
Data Date, continue adding to
running total ELSE set it to -1
We did the same thing for
the running total for EV
BIP – Advanced Topic for Chart – Template Changes
Steps
1. Open Template/RTF file in
WORD Template Builder
2. Double click on Chart
3. Select „Advanced‟ tab
BIP – Advanced Topic for Chart – Template Changes
XSL Code
Unformatted but
if you copy/paste
to an XML editor
or to a NOTEPAD
file with an XML
extension then
open it in your
browser, it looks
a little better.
See next slide
BIP – Advanced Topic for Chart – Template Changes
XSL Code
Formatted after:
1. copying/pasting XSL
Code to a NOTEPAD
file,
2. saving with an XML
extension, then
3. opening in a browser
IF Condition
We need to insert an <xsl:if>
statement round the Cell elements for
both
CUM_EARNEDVALUELABORUNITS
and
CUM_ACTUALLABORUNITS
BIP – Advanced Topic for Chart – Template Changes
To modify, I just used NOTEPAD and put in
NEWLINES so that it was organized.
Then I modified it in NOTEPAD, save it to a
txt file, then copy/paste back to the
Advanced tab.
BIP – Advanced Topic for Chart – Template Changes
The Yellow highlight shows the sections that had to
be modified. Note the “<xsl:if” statement.
The Grey highlight shows that we did not modify the
logic for CUM_BLPLANNEDLABORUNITS
BIP – Advanced Topic for Chart – Template Changes
Note: EV and Actual stop plotting after 4/26
but BL Planned plots to the end of the project
BI Publisher – Presentation Objective
Presentation Objective
Go through all the steps to:
1. Develop the Data Model (SQL)
to extract the data from P6
2. Develop the S-Curve Template
in the WORD Template Builder
that uses the Data Model
3. Upload the Template to the
Report in BI Publisher
4. Move the Report and Data
Model to the P6Reports folder
5. Run S-Curve Report in P6 and
produce the same output as you
see on this slide
Wrap Up
When you download this PowerPoint
Presentation , you will also receive all Data
Models, SQL, Reports, and the XSL code with
the “IF” condition
End of Presentation
Questions?
Presented by:
Paul G. Ciszewski, PMP
Dynamic Consulting
pciszewski@Dynamic-Consulting.net
(920) 883-9048

More Related Content

PDF
Oracle Inventory Complete Implementation Setups.
PPTX
R12.2.2 oracle projects cost break down structure overview
PDF
Oracle project costing
PPT
MetodologíA. Ciclo De Proyecto Y Marco LóGico
PDF
Oracle fusion cloud financial : How to create Journal , Manual Vs Spreadsheet?
PDF
Oracle ame complete setup
PPT
oracle project accounting | best oracle project accounting training
ODT
R12:Payment Process Request (PPR)
Oracle Inventory Complete Implementation Setups.
R12.2.2 oracle projects cost break down structure overview
Oracle project costing
MetodologíA. Ciclo De Proyecto Y Marco LóGico
Oracle fusion cloud financial : How to create Journal , Manual Vs Spreadsheet?
Oracle ame complete setup
oracle project accounting | best oracle project accounting training
R12:Payment Process Request (PPR)

What's hot (12)

PPTX
Introduction to SAP Gateway and OData
PPTX
Creating Reports with Financial Reporting Web Studio.pptx
PPTX
Oracle Project Financial Management Cloud in 9 Weeks
DOCX
Oracle GL Period Closing
PPT
oracle-reports6i
DOCX
TE040 Oracle AP Testscript
PPTX
Oracle PPM Cloud Project Financial Management - Oracle Training
PDF
Financials Cloud Expenses
DOCX
Alerts in r12
DOCX
Run report from menu Personalization كيفية تشغيل تقرير أو ما شابة من خلال شا...
DOCX
Oracle GL Summary Accounts
Introduction to SAP Gateway and OData
Creating Reports with Financial Reporting Web Studio.pptx
Oracle Project Financial Management Cloud in 9 Weeks
Oracle GL Period Closing
oracle-reports6i
TE040 Oracle AP Testscript
Oracle PPM Cloud Project Financial Management - Oracle Training
Financials Cloud Expenses
Alerts in r12
Run report from menu Personalization كيفية تشغيل تقرير أو ما شابة من خلال شا...
Oracle GL Summary Accounts
Ad

Viewers also liked (12)

PDF
S curve innovation #BBTwisnu
PPTX
Innovation and the S-Curve
PPSX
Project network scheduling and S-curve
PPT
S Curve
PPT
Technology life cycle
PPT
Technology life cycle
PPT
The Bell Curve Meets the S-Curve: The speed of change in learning environments
PPTX
Earned Value Analysis - Basic Concepts
PDF
Technology S-curves
PPSX
2016 jpo
PDF
A simple example of Earned Value Management (EVM) in action
PDF
Présentation birt J2EE
S curve innovation #BBTwisnu
Innovation and the S-Curve
Project network scheduling and S-curve
S Curve
Technology life cycle
Technology life cycle
The Bell Curve Meets the S-Curve: The speed of change in learning environments
Earned Value Analysis - Basic Concepts
Technology S-curves
2016 jpo
A simple example of Earned Value Management (EVM) in action
Présentation birt J2EE
Ad

Similar to 204460 create s curve reports (20)

PDF
Create bar chart report for p6 r8.3 using bi publisher 11g - Oracle Primavera...
PDF
P6R8.3 Using BI Publisher 11g - Create Multi-Project Status and Pivot Table R...
DOC
Dwh faqs
PDF
Utilizing BI 11g Reporting To Get The Most Out of P6
PDF
Reporting Basics of Project Management
DOCX
OBIEE publisher with Report creation - Tutorial
PPTX
Big data models with Power BI - Composite Models and Aggregations
PPTX
Dax & sql in power bi
PDF
BI Documenter - Pragmatic Works
PPTX
Building your first Analysis Services Tabular BI Semantic model with SQL Serv...
PPTX
Oracle Database 12.1.0.2 New Features
PPTX
Power BI Modeling Use Cases: Desktop to Enterprise with Questions and Answers
PDF
Power BI Interview Questions and Answers-Credo systemz.pdf
PDF
powerbiinterviewquestionsandanswers-credosystemz-230822125042-f337ae98.pdf
PPTX
Power bi
PDF
Advanced modeling in Power BI - Azure Meetup Duesseldorf.pdf
PDF
LIBA++Lecture+Notes_Power+BI.docx.pdf
DOCX
Introduction to SQL Report tool
PPT
DBIC 2 - Resultsets
PPTX
DSN_Power BIDSN_Power BIDSN_Power BIDSN_Power BIDSN_Power BIDSN_Power BI
Create bar chart report for p6 r8.3 using bi publisher 11g - Oracle Primavera...
P6R8.3 Using BI Publisher 11g - Create Multi-Project Status and Pivot Table R...
Dwh faqs
Utilizing BI 11g Reporting To Get The Most Out of P6
Reporting Basics of Project Management
OBIEE publisher with Report creation - Tutorial
Big data models with Power BI - Composite Models and Aggregations
Dax & sql in power bi
BI Documenter - Pragmatic Works
Building your first Analysis Services Tabular BI Semantic model with SQL Serv...
Oracle Database 12.1.0.2 New Features
Power BI Modeling Use Cases: Desktop to Enterprise with Questions and Answers
Power BI Interview Questions and Answers-Credo systemz.pdf
powerbiinterviewquestionsandanswers-credosystemz-230822125042-f337ae98.pdf
Power bi
Advanced modeling in Power BI - Azure Meetup Duesseldorf.pdf
LIBA++Lecture+Notes_Power+BI.docx.pdf
Introduction to SQL Report tool
DBIC 2 - Resultsets
DSN_Power BIDSN_Power BIDSN_Power BIDSN_Power BIDSN_Power BIDSN_Power BI

More from p6academy (20)

PDF
Oracle OpenWorld 2015
PDF
Plan and Execute the Right Projects— Easily and Affordably
PDF
What's New In Primavera P6 EPPM 17.1
PDF
Oracle Primavera Unifier What's New in Release 16.2
PDF
Oracle What's New In Primavera P6 16.2
PDF
What's New in Primavera Prime 16.1
PDF
What's New in Primavera Gateway 16.1
PDF
What's New In Primavera Analytics 16.1
PDF
What's New in Unifier 16.1
PDF
20160405 How to Install Primavera P6 16.1 Professional desktop
PDF
Oracle Primavera P6 16.1 Announced
PDF
Oracle Primavera Unifier 16.1
PDF
P6 Release 8 Application Considerations Overview
PDF
Administering Users, Access and Views in P6 EPPM (Web) Release 8 and later
PDF
P6 Release 8 Installation Orientation
PDF
Oracle Primavera P6 R8 Release Value Proposition
PDF
Oracle Primavera P6 v7 Release Value Proposition
PDF
Oracle Primavera P6 Release Content Document (RCD)
PDF
Oracle Support Accreditation – Level 1 Study Guide
PDF
Oracle Primavera Support Accreditation Study Guide
Oracle OpenWorld 2015
Plan and Execute the Right Projects— Easily and Affordably
What's New In Primavera P6 EPPM 17.1
Oracle Primavera Unifier What's New in Release 16.2
Oracle What's New In Primavera P6 16.2
What's New in Primavera Prime 16.1
What's New in Primavera Gateway 16.1
What's New In Primavera Analytics 16.1
What's New in Unifier 16.1
20160405 How to Install Primavera P6 16.1 Professional desktop
Oracle Primavera P6 16.1 Announced
Oracle Primavera Unifier 16.1
P6 Release 8 Application Considerations Overview
Administering Users, Access and Views in P6 EPPM (Web) Release 8 and later
P6 Release 8 Installation Orientation
Oracle Primavera P6 R8 Release Value Proposition
Oracle Primavera P6 v7 Release Value Proposition
Oracle Primavera P6 Release Content Document (RCD)
Oracle Support Accreditation – Level 1 Study Guide
Oracle Primavera Support Accreditation Study Guide

Recently uploaded (20)

PPTX
Negotiation and Persuasion Skills: A Shrewd Person's Perspective
PDF
Tata consultancy services case study shri Sharda college, basrur
PDF
BsN 7th Sem Course GridNNNNNNNN CCN.pdf
PDF
Ôn tập tiếng anh trong kinh doanh nâng cao
PPTX
Sales & Distribution Management , LOGISTICS, Distribution, Sales Managers
PDF
Module 2 - Modern Supervison Challenges - Student Resource.pdf
PDF
ANALYZING THE OPPORTUNITIES OF DIGITAL MARKETING IN BANGLADESH TO PROVIDE AN ...
PDF
Comments on Crystal Cloud and Energy Star.pdf
PDF
Charisse Litchman: A Maverick Making Neurological Care More Accessible
PDF
How to Get Approval for Business Funding
PDF
NEW - FEES STRUCTURES (01-july-2024).pdf
PDF
NISM Series V-A MFD Workbook v December 2024.khhhjtgvwevoypdnew one must use ...
PDF
Keppel_Proposed Divestment of M1 Limited
PDF
Booking.com The Global AI Sentiment Report 2025
PPTX
Principles of Marketing, Industrial, Consumers,
PDF
THE COMPLETE GUIDE TO BUILDING PASSIVE INCOME ONLINE
PDF
1911 Gold Corporate Presentation Aug 2025.pdf
PPTX
Slide gioi thieu VietinBank Quy 2 - 2025
PDF
Daniels 2024 Inclusive, Sustainable Development
PDF
Outsourced Audit & Assurance in USA Why Globus Finanza is Your Trusted Choice
Negotiation and Persuasion Skills: A Shrewd Person's Perspective
Tata consultancy services case study shri Sharda college, basrur
BsN 7th Sem Course GridNNNNNNNN CCN.pdf
Ôn tập tiếng anh trong kinh doanh nâng cao
Sales & Distribution Management , LOGISTICS, Distribution, Sales Managers
Module 2 - Modern Supervison Challenges - Student Resource.pdf
ANALYZING THE OPPORTUNITIES OF DIGITAL MARKETING IN BANGLADESH TO PROVIDE AN ...
Comments on Crystal Cloud and Energy Star.pdf
Charisse Litchman: A Maverick Making Neurological Care More Accessible
How to Get Approval for Business Funding
NEW - FEES STRUCTURES (01-july-2024).pdf
NISM Series V-A MFD Workbook v December 2024.khhhjtgvwevoypdnew one must use ...
Keppel_Proposed Divestment of M1 Limited
Booking.com The Global AI Sentiment Report 2025
Principles of Marketing, Industrial, Consumers,
THE COMPLETE GUIDE TO BUILDING PASSIVE INCOME ONLINE
1911 Gold Corporate Presentation Aug 2025.pdf
Slide gioi thieu VietinBank Quy 2 - 2025
Daniels 2024 Inclusive, Sustainable Development
Outsourced Audit & Assurance in USA Why Globus Finanza is Your Trusted Choice

204460 create s curve reports

  • 1. Create S-Curve Reports for P6R8.1 or P6R8.2 using BI Publisher 11g Presented by: Paul G. Ciszewski, PMP Dynamic Consulting pciszewski@Dynamic-Consulting.net (920) 883-9048
  • 2. Overview • Oracle Business Intelligence Publisher (BIP) is a tool to create pixel-perfect reports • To modify existing P6 Web Reports and to create new P6 Web Reports, you must use BIP • When building your reports, you should use P6‟s new Px Extended Scheme (database) • Px Extended Scheme is de-normalized and has P6 calculated values
  • 3. Overview (cont.) • Tables in the Px Extended Scheme begin with “P6” • P6Project – list of all projects and related data by project (for ex: the “baseline planned labor units” for project “TA Fall 13”) • P6ProjectSpread - list of all projects and related data by project and date (for ex: the “planned labor units” on November 15, 2013 for project “TA Fall 13”) • P6Activity – list of all activities and related activity data for all projects (for ex: the “earned value labor units” for activity “A1000” for project TA Fall 13) • P6ActivitySpread – list of all activities and related activity data by date for all projects (for ex: the “actual labor units” for activity “A1000” on November 15, 2013 for project TA Fall 13) • P6ActivityCodeAssignment – list of all the activity codes and their values assigned to ALL activities. If an activity has 5 activity codes assigned to it, then there would be 5 records in this table for the one (1) activity • P6ActivityCode – list of all activity codes and values Note: There are no physical tables called P6Project (or P6Activity), the P6 tables are actually synonyms/aliases that point to “Views”. “Views” are results from executed SQL statements. In the Px Extended Scheme, the “Views” are joins of native P6 tables (such as project, task) and new extended tables (such as projectx and taskx) – and the P6 security tables are included. For our presentation “SYNONYM” is the same as “TABLE”
  • 4. BI Publisher - Introduction • Two (2) main modules to create a BIP report 1. Data Model Editor – To extract data from P6‟s Extended Px Scheme (database) 2. Create Report Layout – the presentation of the data. But there are 2 tools  Report Layout Editor (tool is within BIP)  Word Template Builder (a MS WORD add-on)
  • 5. BI Publisher – Presentation Objective Presentation Objective Go through all the steps to: 1. Develop the Data Model (SQL) to extract the data from P6 2. Develop the S-Curve Template in the WORD Template Builder that uses the Data Model 3. Upload the Template to the Report in BI Publisher 4. Move the Report and Data Model to the P6Reports folder 5. Run S-Curve Report in P6 and produce the same output as you see on this slide
  • 6. BI Publisher - Login • User Name should exist in P6 • The user‟s security is applied
  • 8. BI Publisher – Create Data Model (DM) • Three (3) components needed to create the DM for our examples 1. Create 1 List of Values (LOV) 2. Create 1 parameter 3. Create Data Set
  • 9. BI Publisher – Create New DM
  • 10. BI Publisher – Create New DM – P6 Tables • Four (4) P6 Tables needed to create examples 1. P6Project (list of projects and all related data) 2. P6ActivitySpread (list of activities and activity data by date) For version 1, I could have used P6ProjectSpread but P6ActivitySpread works for both version 1 and 2 3. P6ActivityCodeAssignments (needed for version2) 4. P6ActivityCode (needed for version2)
  • 11. BI Publisher – Create DM – Parameter Desired “look and feel” in P6
  • 12. BI Publisher – Create DM – Parameter Desired “look and feel” in P6
  • 13. BI Publisher – Create DM – Parameter Desired “look and feel” in P6
  • 14. BI Publisher – Create DM - Parameter • First create list of values (LOV) for Projects • Then create parameter using the LOV • Parameter Label would be “Select Projects”
  • 15. BI Publisher – Create DM – Create LOV‟s SQL to retrieve the list of Project ID‟s
  • 16. BI Publisher – Create DM – Create Parameter “p_project_id” is special parameter recognized by P6 When “Parameter Type” is Menu, user can select “LOV” value
  • 17. BI Publisher – Create DM – Data Set • Next, create a Data Set • Data Set contains the SQL query/statements to extract the P6 data (such as Baseline Planned Labor Units) from the P6 tables • In our example, our SQL query will sum the labor units for all activities by date AND • Our SQL statements will create running totals (see next slide) • The query result will be a record for each date of our project(s) when work is planned or work is done
  • 18. BI Publisher – Create DM – Data Set Date ACTSP_STARTDATE Display Date DISPLAYDATE Baseline Labor Units SUM_BLPLANNEDLABORUNITS Running Totals CUM_BLPLANNEDLABORUNITS Feb 4, 2013 02/04 50 50 Feb 5, 2013 02/05 25 75 Feb 6, 2013 02/06 10 85 Feb 7, 2013 02/07 20 105 Feb 8, 2013 02/08 50 155 And so
  • 19. BI Publisher – Create DM – Create Data Set Then select “SQL Query”
  • 20. BI Publisher – Create DM – Create Data Set You could use “Query Builder” for simple SQL queries/statements. “Query Builder” builds the SQL query for us. But for advanced/complex SQL queries/statements, I just type it in myself
  • 21. BI Publisher – Create DM – Create Data Set I typed in the SQL query/statement
  • 22. BI Publisher – Create DM - Data Set / SQL -- Version 1 - just BL planned labor units SELECT TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE, TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE, -- BL planned labor units summed by date SUM(ACTSP.BASELINEPLANNEDLABORUNITS) AS SUM_BLPLANNEDLABORUNITS, -- BL planned labor units - running totals by date SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_BLPLANNEDLABORUNITS -- Two tables needed for version 1 FROM P6PROJECT PRJ, P6ACTIVITYSPREAD ACTSP WHERE PRJ.ID IN (:p_project_id) AND PRJ.OBJECTID = ACTSP.PROJECTOBJECTID GROUP BY TRUNC(ACTSP.STARTDATE) ORDER BY ACTSP_STARTDATE Breakdown SQL Query SQL query to create four (4) columns: - ACTSP_STARTDATE - DISPLAYDATE - SUM_BLPLANNEDLABORUNITS - CUM_BLPLANNEDLABORUNITS Summed and grouped by TRUNC(ACTSP.STARTDATE)
  • 23. BI Publisher – Create DM - Data Set / SQL -- Version 1 - just BL planned labor units SELECT TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE, TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE, -- BL planned labor units summed by date SUM(ACTSP.BASELINEPLANNEDLABORUNITS) AS SUM_BLPLANNEDLABORUNITS, -- BL planned labor units - running totals by date SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_BLPLANNEDLABORUNITS -- Two tables needed for version 1 FROM P6PROJECT PRJ, P6ACTIVITYSPREAD ACTSP WHERE PRJ.ID IN (:p_project_id) AND PRJ.OBJECTID = ACTSP.PROJECTOBJECTID GROUP BY TRUNC(ACTSP.STARTDATE) ORDER BY ACTSP_STARTDATE Tables Accessed/FROM Clause P6Project with an alias of ”PRJ” P6ActivitySpread with an alias of “ACTSP”
  • 24. BI Publisher – Create DM - Data Set / SQL -- Version 1 - just BL planned labor units SELECT TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE, TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE, -- BL planned labor units summed by date SUM(ACTSP.BASELINEPLANNEDLABORUNITS) AS SUM_BLPLANNEDLABORUNITS, -- BL planned labor units - running totals by date SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_BLPLANNEDLABORUNITS -- Two tables needed for version 1 FROM P6PROJECT PRJ, P6ACTIVITYSPREAD ACTSP WHERE PRJ.ID IN (:p_project_id) AND PRJ.OBJECTID = ACTSP.PROJECTOBJECTID GROUP BY TRUNC(ACTSP.STARTDATE) ORDER BY ACTSP_STARTDATE Conditions/Where Statement p_project_id is the Parameter Before the user runs the report, they will select 1 or more projects. This statement will extract all project records from P6Project with matching Project ID‟s. PRJ.ID are the project ID‟s you see in P6 such as “Fall TA 2013” or “EC500123”. Tables are usually linked together (joined together) using the unique key for the record. But first we must look up the correct record by Project ID. In the Px Extended Scheme, the unique key is called “ObjectID”. ID ObjectID (other columns…) Fall TA 2013 4501 EC500123 1287 Test Prj 123 9333 P6Project PRJ Table
  • 25. BI Publisher – Create DM - Data Set / SQL -- Version 1 - just BL planned labor units SELECT TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE, TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE, -- BL planned labor units summed by date SUM(ACTSP.BASELINEPLANNEDLABORUNITS) AS SUM_BLPLANNEDLABORUNITS, -- BL planned labor units - running totals by date SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_BLPLANNEDLABORUNITS -- Two tables needed for version 1 FROM P6PROJECT PRJ, P6ACTIVITYSPREAD ACTSP WHERE PRJ.ID IN (:p_project_id) AND PRJ.OBJECTID = ACTSP.PROJECTOBJECTID GROUP BY TRUNC(ACTSP.STARTDATE) ORDER BY ACTSP_STARTDATE Conditions/Where Statement This statement will extract all activity records from P6ActivitySpread with matching project ObjectID. However in the P6ActivitySpread table, the project‟s unique key column is called “ProjectObjectID”. So first we move to the correct project record with “PRJ.ID IN (:p_project_id)“ then we get the ObjectID and use it to extract activity records from the P6ActivitySpread table using ProjectObjectID
  • 26. BI Publisher – Create DM - Data Set / SQL -- Version 1 - just BL planned labor units SELECT TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE, TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE, -- BL planned labor units summed by date SUM(ACTSP.BASELINEPLANNEDLABORUNITS) AS SUM_BLPLANNEDLABORUNITS, -- BL planned labor units - running totals by date SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_BLPLANNEDLABORUNITS -- Two tables needed for version 1 FROM P6PROJECT PRJ, P6ACTIVITYSPREAD ACTSP WHERE PRJ.ID IN (:p_project_id) AND PRJ.OBJECTID = ACTSP.PROJECTOBJECTID GROUP BY TRUNC(ACTSP.STARTDATE) ORDER BY ACTSP_STARTDATE Group Clause The GROUP clause groups ALL activity records together by STARTDATE. The SUM() function, will sum all “Baseline Planned Labor Units” from all Activities that have the same STARTDATE. Remember: The P6ActivitySpread table has a record for each day of the Activity. If the Activity has 24 budgeted hours over 3 days (Feb 1, Feb 2, and Feb 3), then there will be 3 records in the P6ActivitySpread table for that activity. Ex: Activity Start BL Planned ID Date Labor Units A1000 2/1/13 8 A1000 2/2/13 8 A1000 2/3/13 8
  • 27. BI Publisher – Create DM - Data Set / SQL -- Version 1 - just BL planned labor units SELECT TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE, TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE, -- BL planned labor units summed by date SUM(ACTSP.BASELINEPLANNEDLABORUNITS) AS SUM_BLPLANNEDLABORUNITS, -- BL planned labor units - running totals by date SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_BLPLANNEDLABORUNITS -- Two tables needed for version 1 FROM P6PROJECT PRJ, P6ACTIVITYSPREAD ACTSP WHERE PRJ.ID IN (:p_project_id) AND PRJ.OBJECTID = ACTSP.PROJECTOBJECTID GROUP BY TRUNC(ACTSP.STARTDATE) ORDER BY ACTSP_STARTDATE ACTSP_STARTDATE This is the full date (without time) used for sorting/ordering. This value is not placed on the chart/S-Curve. In the P6ActivitySpread table, ACTSP.STARTDATE is the start date for the hours on this date
  • 28. BI Publisher – Create DM - Data Set / SQL -- Version 1 - just BL planned labor units SELECT TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE, TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE, -- BL planned labor units summed by date SUM(ACTSP.BASELINEPLANNEDLABORUNITS) AS SUM_BLPLANNEDLABORUNITS, -- BL planned labor units - running totals by date SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_BLPLANNEDLABORUNITS -- Two tables needed for version 1 FROM P6PROJECT PRJ, P6ACTIVITYSPREAD ACTSP WHERE PRJ.ID IN (:p_project_id) AND PRJ.OBJECTID = ACTSP.PROJECTOBJECTID GROUP BY TRUNC(ACTSP.STARTDATE) ORDER BY ACTSP_STARTDATE DISPLAYDATE This value will be shown across the horizontal axis of the chart/S-Curve. The date will be in “mm/dd” format without the year to save space on the report.
  • 29. BI Publisher – Create DM - Data Set / SQL -- Version 1 - just BL planned labor units SELECT TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE, TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE, -- BL planned labor units summed by date SUM(ACTSP.BASELINEPLANNEDLABORUNITS) AS SUM_BLPLANNEDLABORUNITS, -- BL planned labor units - running totals by date SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_BLPLANNEDLABORUNITS -- Two tables needed for version 1 FROM P6PROJECT PRJ, P6ACTIVITYSPREAD ACTSP WHERE PRJ.ID IN (:p_project_id) AND PRJ.OBJECTID = ACTSP.PROJECTOBJECTID GROUP BY TRUNC(ACTSP.STARTDATE) ORDER BY ACTSP_STARTDATE SUM_BLPLANNEDLABORUNITS This is the “Baseline Planned Labor Units” from the Activity Spread extended table summed by StartDate (because of the “GROUP BY” clause). SUM() is a function.
  • 30. BI Publisher – Create DM - Data Set / SQL -- Version 1 - just BL planned labor units SELECT TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE, TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE, -- BL planned labor units summed by date SUM(ACTSP.BASELINEPLANNEDLABORUNITS) AS SUM_BLPLANNEDLABORUNITS, -- BL planned labor units - running totals by date SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_BLPLANNEDLABORUNITS -- Two tables needed for version 1 FROM P6PROJECT PRJ, P6ACTIVITYSPREAD ACTSP WHERE PRJ.ID IN (:p_project_id) AND PRJ.OBJECTID = ACTSP.PROJECTOBJECTID GROUP BY TRUNC(ACTSP.STARTDATE) ORDER BY ACTSP_STARTDATE CUM_BLPLANNEDLABORUNITS This statement will add up all “Baseline Planned Labor Units” beginning at the first row (UNBOUNDED PRECEDING) to the current row (CURRENT ROW). Using the STARTDATE for order (ORDER BY TRUNC(STARTDATE)) The result is stored in “CUM_BLPLANNEDLABORUNITS” Notice: SUM(SUM())
  • 31. BI Publisher – Create DM - Data Set / SQL -- Version 1 - just BL planned labor units SELECT TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE, TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE, -- BL planned labor units summed by date SUM(ACTSP.BASELINEPLANNEDLABORUNITS) AS SUM_BLPLANNEDLABORUNITS, -- BL planned labor units - running totals by date SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_BLPLANNEDLABORUNITS -- Two tables needed for version 1 FROM P6PROJECT PRJ, P6ACTIVITYSPREAD ACTSP WHERE PRJ.ID IN (:p_project_id) AND PRJ.OBJECTID = ACTSP.PROJECTOBJECTID GROUP BY TRUNC(ACTSP.STARTDATE) ORDER BY ACTSP_STARTDATE ORDER BY Last, we will order all our records by ACTSP_STARTDATE
  • 32. BI Publisher – Create DM – Create XML Data • After creating the LOV‟s, Parameters, and the Data Set – you must generate XML data. • To create the presentation part of the report, you must have XML data • You must save the XML data to the DM if you are building the report in the Report Layout Editor • You must save the XML data to a file and import it into your WORD document if you are using the Word Template Builder
  • 33. BI Publisher – Create DM – Create XML Data Data Set The Data Set shows the four columns being returned from the SQL query/statement Generate XML Data Click this button to show the screen when we can generate the XML.
  • 34. BI Publisher – Create DM – Create XML Data 1. Generate XML Data Select 1 or more projects, then click “Run” 2. XML Data The XML data has the tag names and values. 3. Save XML Either “Export XML” to a file or “Save As Sample Data” to the DM.
  • 35. BI Publisher – Create DM – Create XML Data • Save the DM • Next, build presentation part of report by first creating a report called “SCurve-V1” and then • Use Word Template Builder for layout
  • 36. BI Publisher – Create Report
  • 37. BI Publisher – Create Report – Select DM
  • 38. BI Publisher – Create Report – Save Report in BIP Report Layout Editor If we were going to create the presentation part in the Report Layout Editor tool, then I would have selected a Template. However, we will be developing the presentation part in the “Word Template Builder” therefore we just want to save the report.
  • 39. BI Publisher – Create Report – Save Report Enter Report Name
  • 40. BIP – Create Report – Word Template Builder • Switch to MS WORD • Select BI Publisher Add-in tab • Log into BIP • Load XML file • Create report‟s layout in WORD • Add Report Title • Add Chart (S-Curve) • Save WORD file as RTF • Upload Template to BIP Report
  • 41. BIP – Create Report – Word Template Builder Log On Enter Username Enter Password Enter IP of BIP server
  • 42. BIP –Template Builder – Select Report Select Report Layout Templates If there were templates in BIP for this report, the templates would be listed here.
  • 43. BIP –Template Builder – Load XML Data Select XML File This file was created by the DM
  • 44. BIP –Template Builder – Create Layout 2. Add Chart Move cursor to position in WORD doc and double click Chart object 1. Add Text Using WORD‟s standard features – such as forecolor, center, font
  • 45. BIP –Template Builder – Chart Properties
  • 46. BIP –Template Builder – Chart Properties Chart/Line Properties Change other properties such as 3-D effect, line color, line name Chart/Line Properties 1.Drag/Drop DISPLAYDATE to Labels 2. Drag/Drop CUM_BLPLANNEDLABORUNITS to Values 3. Change Type to Line Graph 4. Uncheck Group Data
  • 47. BIP –Template Builder – Chart Properties
  • 49. BIP – Create Report – Word Template Builder • To upload Template into BIP • Save File in WORD as RTF • Select “Upload Template As” on BI Publisher Add-in tab • Save Template to the BIP Report • Login into BIP • Open/Edit Report • Select Template Layout (that we just uploaded from Tmp Builder) • View Report
  • 50. BIP –Template Builder – Create Layout
  • 51. BIP – Open/Edit Report – View Report
  • 52. BIP – Run Report from P6 to PDF Format
  • 53. BIP – DM – Expand DM • DM is currently plotting BL Planned Labor Units • Add Actual Labor Units and Earned Value Labor Units • Create new XML data file with new data elements • Import new XML into WORD Template Builder • Modify Template to include new data elements • Upload to BIP – run report
  • 54. BIP – DM – Add More Data Elements Original Section of SQL Copy/Paste this section New Section of SQL Change BASELINEPLANNEDLABORUNITS to ACTUALLABORUNITS in 4 places See Next Slide
  • 55. BIP – DM – Add More Data Elements (SQL 1 of 2) Original Section of SQL Copy/Paste this section New Section of SQL Change BASELINEPLANNEDLABORUNITS to ACTUALLABORUNITS in 4 places -- Version 1 - BL planned Labor Units, -- Actual Labor Units, and EV Labor Units SELECT TRUNC(ACTSP.STARTDATE) AS ACTSP_STARTDATE, TO_CHAR(TRUNC(ACTSP.STARTDATE),'mm/dd') AS DISPLAYDATE, -- BL planned labor units summed by date SUM(ACTSP.BASELINEPLANNEDLABORUNITS) AS SUM_BLPLANNEDLABORUNITS, -- BL planned labor units - running totals by date SUM(SUM(ACTSP.BASELINEPLANNEDLABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_BLPLANNEDLABORUNITS, -- Actual labor units summed by date SUM(ACTSP.ACTUALLABORUNITS) AS SUM_ACTUALLABORUNITS, -- Actual labor units - running totals by date SUM(SUM(ACTSP.ACTUALLABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_ACTUALLABORUNITS,
  • 56. BIP – DM – Add More Data Elements (SQL 2 of 2) Another New Section of SQL After copying the section in RED on previous slide, change BASELINEPLANNEDLABORUNITS to EARNEDVALUELABORUNITS in 4 places. -- (Continuation from previous slide) -- EV labor units summed by date SUM(ACTSP.EARNEDVALUELABORUNITS) AS SUM_EARNEDVALUELABORUNITS, -- EV labor units - running totals by date SUM(SUM(ACTSP.EARNEDVALUELABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_EARNEDVALUELABORUNITS -- Two tables needed for version 1 FROM P6PROJECT PRJ, P6ACTIVITYSPREAD ACTSP WHERE PRJ.ID IN (:p_project_id) AND PRJ.OBJECTID = ACTSP.PROJECTOBJECTID GROUP BY TRUNC(ACTSP.STARTDATE)
  • 57. BIP – DM – Add More Data Elements New Data Elements in the Data Set Generate XML again with New Data Elements then Save It
  • 58. BIP –Template Builder – Modify Template Add New Chart Include all 3 running total data elements. Change Some Properties Color, labels, remove 3-D effect
  • 59. BIP –Template Builder – Modify Template (show Project ID‟s) Add Data Element 1. Click on Field 2. The Field Dialog box is displayed 3. Double Click on data element (such as p_project_id) 4. The data element will be added to the report NOTE: p_project_id was our parameter in our DM
  • 60. BIP – Create Report – Word Template Builder • We must upload Template into BIP again • Save File in WORD as RTF • “Upload Template As” to save report • Login into BIP • Open/Edit Report • Select Template Layout (that we just uploaded from Tmp Builder) • View Report • Move Report and DM to P6Reports folder and reattach DM to Report
  • 61. BIP – Run Report from P6
  • 62. BIP – Expand DM/Report to include Activity Codes • In many operations, the managers want to see progress only for activities with a specific Activity Code/Value combination • For ex: • By Phase: FOUND, DESGN, STRUC • By Department: CON, PCH, ENG • So, we need to add: • List of Value: ActivityCodeLOV • Parameter: p_activity_value • SQL logic to the Data Set that uses new parameter
  • 63. BIP – Expand DM/Report to include Activity Codes SELECT CODEVALUE FROM P6ACTIVITYCODE WHERE CODETYPENAME = 'Phase' AND CODETYPESCOPE = 'AS_Global'
  • 64. BIP – Expand DM/Report to include Activity Codes p_activity_value 1. Display “Select Phase” 2. Use ActivityCodeLOV 3. No Multiple Selection 4. Also changed the values on p_project_id so that the user can only select one (1) project.
  • 65. BIP – DM – Expand SQL (to Include Activity Code Logic) Same SQL The SQL above this point is the same as the previous SQL New SQL for Activity Code Logic Need the Activity Code Assignment table -- EV labor units summed by date SUM(ACTSP.EARNEDVALUELABORUNITS) AS SUM_EARNEDVALUELABORUNITS, -- EV labor units - running totals by date SUM(SUM(ACTSP.EARNEDVALUELABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_EARNEDVALUELABORUNITS -- Three tables needed for version 2 FROM P6PROJECT PRJ, P6ACTIVITYSPREAD ACTSP, P6ACTIVITYCODEASSIGNMENT ACTAS WHERE PRJ.ID IN (:p_project_id) AND PRJ.OBJECTID = ACTSP.PROJECTOBJECTID AND ACTSP.ACTIVITYOBJECTID = ACTAS.ACTIVITYOBJECTID AND ACTAS.ACTIVITYCODETYPENAME = 'Phase' AND ACTAS.ACTIVITYCODEVALUE IN (:p_activity_value) GROUP BY TRUNC(ACTSP.STARTDATE) New SQL for Activity Code Logic Add condition so that the results will only include Activities with an Activity Code of „Phase‟ and the Activity Value selected (which is stored in p_activity_value)
  • 66. BIP – Update Report After making the changes to the DM • Save DM • Create XML data • Import XML data into Template in WORD • Modify Template • Upload Template to BIP • Open/Edit Report • View Report • Move Report to P6Report folder (reattached DM)
  • 67. BIP – Update Report – WORD Template Builder This is just a table in WORD Using the Field control on the BIP tab, added p_project_id and p_activity_value to table cells – then change forecolor to RED No changes were needed on the Chart
  • 68. BIP – Running Report in P6 On Reports Tab in P6, find Report in list and Right Click – select „Run Report‟. Then the „Report Settings‟ screen is shown Select Project Select Phase from Dropdown List Click the „Run‟ button
  • 69. BIP – Running Report in P6 Looks good but we need to stop the EV and Actual lines on the Data Date
  • 70. BIP – Advanced Topic for Chart In our example, Actual Labor Units and EV Labor Units are plotted to the end of the project. I want them to plot only to the Data Date Plot to End of Project Plot to Data Date
  • 71. BIP – Advanced Topic for Chart To add support so that lines are only plotted to the Data Date, we need to: 1. Modify the DM/Data Set so that our running totals for Actual and EV will be set to -1 when the Date (Start Date) is greater than the Data Date AND 2. Add an “if” condition in the XSL code behind the Chart in the WORD Template Builder. Behind most objects on the Template Builder, there is a section where you can add additional code (it‟s XML-type code)
  • 72. BIP – Advanced Topic for Chart – DM Changes SUM(SUM(ACTSP.ACTUALLABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUM_ACTUALLABORUNITS, (CASE WHEN TRUNC(ACTSP.STARTDATE) <= MAX(TRUNC(PRJ.DATADATE)) THEN SUM(SUM(ACTSP.ACTUALLABORUNITS)) OVER (ORDER BY TRUNC(ACTSP.STARTDATE) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) ELSE -1 END ) AS CUM_ACTUALLABORUNITS, Old SQL for Running Total for CUM_ACTUALLABORUNITS New SQL for Running Total for CUM_ACTUALLABORUNITS The CASE is an IF statement. When the StartDate is <= the Data Date, continue adding to running total ELSE set it to -1 We did the same thing for the running total for EV
  • 73. BIP – Advanced Topic for Chart – Template Changes Steps 1. Open Template/RTF file in WORD Template Builder 2. Double click on Chart 3. Select „Advanced‟ tab
  • 74. BIP – Advanced Topic for Chart – Template Changes XSL Code Unformatted but if you copy/paste to an XML editor or to a NOTEPAD file with an XML extension then open it in your browser, it looks a little better. See next slide
  • 75. BIP – Advanced Topic for Chart – Template Changes XSL Code Formatted after: 1. copying/pasting XSL Code to a NOTEPAD file, 2. saving with an XML extension, then 3. opening in a browser IF Condition We need to insert an <xsl:if> statement round the Cell elements for both CUM_EARNEDVALUELABORUNITS and CUM_ACTUALLABORUNITS
  • 76. BIP – Advanced Topic for Chart – Template Changes To modify, I just used NOTEPAD and put in NEWLINES so that it was organized. Then I modified it in NOTEPAD, save it to a txt file, then copy/paste back to the Advanced tab.
  • 77. BIP – Advanced Topic for Chart – Template Changes The Yellow highlight shows the sections that had to be modified. Note the “<xsl:if” statement. The Grey highlight shows that we did not modify the logic for CUM_BLPLANNEDLABORUNITS
  • 78. BIP – Advanced Topic for Chart – Template Changes Note: EV and Actual stop plotting after 4/26 but BL Planned plots to the end of the project
  • 79. BI Publisher – Presentation Objective Presentation Objective Go through all the steps to: 1. Develop the Data Model (SQL) to extract the data from P6 2. Develop the S-Curve Template in the WORD Template Builder that uses the Data Model 3. Upload the Template to the Report in BI Publisher 4. Move the Report and Data Model to the P6Reports folder 5. Run S-Curve Report in P6 and produce the same output as you see on this slide
  • 80. Wrap Up When you download this PowerPoint Presentation , you will also receive all Data Models, SQL, Reports, and the XSL code with the “IF” condition
  • 81. End of Presentation Questions? Presented by: Paul G. Ciszewski, PMP Dynamic Consulting pciszewski@Dynamic-Consulting.net (920) 883-9048