Integration of primavera p6 eppm with oracle e business suite - Oracle Primavera P6 Collaborate 14
1. REMINDER
Check in on the COLLABORATE
mobile app
Integration of Primavera P6 EPPM
with Oracle E-Business Suite
Prepared by:
Nikola Škorić
Planning and Scheduling Engineer
Krško Nuclear Power Plant
Session ID#: 15444
2. Presenter info
■ Nikola Škorić
■ Master of Computer Science (University of Zagreb, 2007)
■ Licensed reactor operator (2010)
■ Planning and Scheduling engineer (2012)
3. Company info
■ Krško Nuclear Power Plant
■ Joint venture of Slovenia and Croatia
■ Westinghouse built pressurized water reactor
■ First criticality reached: 1981
■ Net power output: 696 MW
4. Presentation overview
■ Specifics of nuclear industry
■ Outage planning
■ Motivation for this project
■ Architecture of the solution
■ Problems encountered in implementation
■ End results
■ Current status and future plans
6. Nuclear industry
■ Large power unit: 17 GWh per day
■ Outage lasts 30-40 days
▪ Large number of activities
▪ Large number of workers
▪ Small operating space (especially reactor building)
7. Nuclear industry
■ Nuclear fuel produces
decay heat after
shutdown
■ Nuclear safety first
■ A part of safety equipment
has to remain operable
▪ Power sources
▪ Water sources
▪ Valve lineups
8. Outage planning in nuclear
■ "System windows" – a timeframe in which particular system is
maintained in certain state
▪ Visual inspection of snubbers on train A
— Can be done anytime
▪ Instrumentation venting for SW01
— Has 20 predecessors
■ Work orders are placed into system windows
9. Outage planning in nuclear
■ "Tagout" – a safety procedure which ensures equipment or
energy source is isolated
■ Hazards:
▪ Hot water
▪ Water under pressure
▪ Electricity
▪ Mechanical forces
■ Tagouts are "placed on" SWs, WOs or operations
▪ Tags have to be hanged before SW/WO/OP starts
11. Outage planning in NEK
■ 35 days
■ 850 system windows
■ 1,000 tagouts
■ 5,000 work orders
■ 15,000 operations
■ ∑: 23,000 activities
■ 2 Primavera specialists
12. Outage planning in NEK
■ Pre 2011
▪ WOs written in in-house built Work Order System
▪ Everything scheduled in Primavera
■ 2011 – transition to Oracle eBS
■ Post 2011
▪ WOs written and scheduled in eAM (eBS module)
▪ SWs scheduled in Primavera
13. Outage planning in NEK
1. Oracle Primavera P6 Professional (P6)
▪ Only desktop app, web app unusably slow
2. Oracle E-Business Suite (eBS)
▪ Enterprise Asset Management (eAM)
3. Ventyx Shift Operations Management System (eSOMS)
▪ Clearance Module
4. Shift Supervisor Screen (SSS)
▪ In-house built
14. Outage planning in NEK
Source Approving Start/stop Status Scheduling
Backbone activity P6 N/A SSS SSS P6
System window P6 N/A P6 SSS P6
Tagout eSOMS eSOMS eSOMS eSOMS custom
Work order eAM SSS eAM SSS eAM*
Operation eAM N/A eAM eAM eAM
Resource eAM N/A eAM N/A N/A
* taking into account SWs in P6
16. Problems
1. Shift supervisor does not have a single overview of the plant
status
▪ Shift supervisor uses 3 different tools
2. Critical path is obfuscated
▪ Only SWs are in Primavera
▪ WOs and operations are in eAM
▪ Tagouts are in eSOMS
3. Detailed planning not possible
▪ No way for linking WOs, operations and tagouts
4. Tagouts planned by custom built tool
5. WOs planned by suboptimal tool
▪ eAM planning capabilities leave a lot to be desired
17. Problems
6. WO predecessors scattered across tools
▪ Are all predecessors finished?
7. Planning of operations almost nonexistent
8. Planning of some activities impossible
9. No resource planning
■ Out of sync with industry standards
18. Problems
■ INPO 06-008 »Guidelines for the Conduct of Outages at
Nuclear Power Plants«
▪ Level I: backbone schedule
▪ Level II: activities into schedule to develop system windows,
resource estimates and logic ties for major activities
▪ Level III: resource leveling, logic ties refined
▪ Level IV: cross-discipline horizontal and vertical reviews
20. Solution
Source Approving Start/stop Status Scheduling
Backbone activity P6 N/A P6 P6 P6
System window P6 N/A P6 P6 P6
Tagout eSOMS eSOMS eSOMS P6 P6
Work order eAM SSS eAM P6 P6
Operation eAM N/A eAM P6 P6
Resource eAM N/A eAM P6 P6
21. Existing eAM / P6 integration
■ eAM supports export to P6 format
▪ offline
— must be run manually, cannot be automated easily
▪ not customizable
— no control over what gets exported and in what format
▪ does not work for large projects
— OK for 500 activities
— NEK refueling outage has over 20,000 activities
22. Solution
eAM This project P6Outside world
eAM P6WOs
Schedule
P6eAM
planned
dates
eAM P6actual
dates
WO
authors
workers
23. Solution
■ New WOs eAM→P6
▪ WOs fall on data date
▪ Makes sense only just
before scheduling
■ Planned dates P6→eAM
▪ Change only on
scheduling
▪ Makes sense only just
after scheduling
eAM This project P6
eAM P6WOs
Schedule
P6eAM planned
dates
24. Solution
■ As frequent as possible
■ We chose 15 minutes
eAM This project P6
eAM P6actual
dates
26. The team
■ Nikola Škorić
▪ NEK, project lead
■ Luka Novosel
▪ Primakon Zagreb
■ Andrej Zalar
▪ OSIR Ljubljana
■ Dušan Urbič
▪ OSIR Ljubljana
■ Simon Jurečič
▪ OSIR Ljubljana
Primavera eAM
27. Implementation
■ eAM: Oracle RDBMS
■ P6: Oracle RDBMS
■ Preparing output from eAM: PL/SQL
■ Reading from eAM and writing to P6: Java
■ Reading from P6 and writing to eAM: PL/SQL
32. Data sources
■ Dates
▪ Master: P6
▪ Slave: eAM
■ All other data
▪ Master: eAM
▪ Slave: P6
■ „Limitation“: data in P6 cannot be modified
33. Data sources
Operation
Waiting
WO Planner
Waiting
Work Week
Manager
Waiting
Shift Supervisor
Waiting
WO Coordinator
Approved for work
Work finished
WO coordinator
Work finished
Shift Supervisor
Draft
Completed
Working
Finished
34. Data sources
Imported to Primavera
Operation
Waiting
WO Planner
Waiting
Work Week
Manager
Waiting
Shift Supervisor
Waiting
WO Coordinator
Approved for work
Work finished
WO coordinator
Work finished
Shift Supervisor
Draft
Completed
Working
Finished
35. Data representation
Activity ID Activity Name Activity type Activity code
NNNNN Description from eAM Level of Effort D
NNNNN-Z Start of WO NNNNN Start Milestone ZD
NNNNN-OOO Description from eAM Task Dependent O
NNNNN-K End of WO NNNNN Finish Milestone KD
Activity ID Activity Name Activity type Activity code
OASWNN000Z Start of system window NN Start Milestone Z
OASWNN000K End of system window NN Finish Milestone K
38. Data transferred – work orders
EAM P6
P6 project ID P6 project ID
System window Link from SW activity to WO activity + AC + UDF
Work order ID Part of activity ID + UDF
Asset Part of activity name + UDF
Description Part of activity name + UDF
Calendar 24/7
Start Constraint on start milestone
Duration Planned duration
WO type AC
ORAM codes ACs
Plant system AC
Safety train AC
Location UDF
Department AC
WO Planner UDF
Work Coordinator UDF
HTTP link to eAM WO Notebook
39. Data transferred – operations
EAM P6
P6 project ID P6 project ID
System window AC + UDF
Work order ID Link from WO activity to WO activity + AC
Operation ID Part of activity ID + UDF
Description Activity name
Long description UDF
Calendar Calendar
Duration Planned duration
Links Links
Resources/Instances Roles/Resources
Department AC
Tagging required AC
Reference WO UDF
40. Data transferred – roles / resources
EAM P6
Operation Assignment to operation
Resource ID Role ID
Instance ID Resource ID
Resource sequence number UDF
Duration Original duration
Required Budgeted units
Assigned units Budgeted units / time
Lag Lag
41. Data not transferred
■ Planned start
▪ Work orders
— Set as „start on or after“ constraint on WO start milestone
▪ Operations
— Calculated by P6 from predecessor relationships
▪ Roles/resources
— Calculated by P6 from parent activity + lag
■ Planned finish
▪ Calculated by P6 from planned start and planned duration
42. Cancelled/deleted WOs
■ If WO loses status – removed from P6
■ If WO is deleted from eAM – problem
■ If WO is changes project – problem
44. Solution
eAM This project P6Outside world
eAM P6WOs
Schedule
P6eAM
planned
dates
eAM P6actual
dates
WO
authors
workers
45. Transfer of work orders
eAM This project P6
Schedule
P6eAM planned
dates
46. Data transferred
■ for each work order
▪ planned start (from P6) → start (in eAM)
▪ planned finish (from P6) → finish (in eAM)
■ for each operation
▪ planned start (from P6) → start (in eAM)
▪ planned finish (from P6) → finish (in eAM)
51. Data transferred – work orders and
operations
P6 EAM status of WO Moment
NNNNN actual start
NNNNN-Z actual start
Approved for work WO Coordinator starts WO
NNNNN actual finish
NNNNN-K actual finish
Work finished WO COOR WO Coordinator ends WO
P6 EAM status of WO Moment
NNNNN-OOO actual start Working First Line Supervisor starts OP
NNNNN-OOO actual finish Finished First Line Supervisor ends OP
52. Data transferred – work orders
Operation
Waiting
WO Planner
Waiting
Work Week
Manager
Waiting
Shift Supervisor
Waiting
WO Coordinator
Approved for work
Work finished
WO coordinator
Work finished
Shift Supervisor
Draft
Completed
Working
Finished
53. Data transferred – operations
Operation
Waiting
WO Planner
Waiting
Work Week
Manager
Waiting
Shift Supervisor
Waiting
WO Coordinator
Approved for work
Work finished
WO coordinator
Work finished
Shift Supervisor
Draft
Completed
Working
Finished
54. Data transferred – resources
■ None for now
■ Resource actuals are:
▪ A complicated issue
▪ Of questionable demand
56. Testing
■ Development workflow:
1. Implement solution
2. Run the program
3. Check if data was transferred correctly
■ Checking:
▪ Manual
▪ Automated
57. Testing
■ SQL view to P6 database
■ SQL view to eAM database
■ Comparison of:
1. WOs
2. operations
3. roles/resources
■ Very robust testing tool
59. Implementation issues
■ Deleted and moved work orders
■ Activity type for work order
■ Linking of tagouts to work orders
■ Calendars
■ Time resolution difference
■ 0 time interpretation difference
■ Resource durations and units
■ Performance problems
■ Reference operations actuals
60. Issues: Deleted and moved work orders
Imported to Primavera
Operation
Waiting
WO Planner
Waiting
Work Week
Manager
Waiting
Shift Supervisor
Waiting
WO Coordinator
Approved for work
Work finished
WO coordinator
Work finished
Shift Supervisor
Draft
Completed
Working
Finished
61. Issues: Deleted and moved work orders
■ First choice: work order has to be reset to „draft“ status
▪ Program detects WOs in wrong status for that project and
removes them from P6
■ In practice: WO planners are fast
▪ They change WO‘s project (to next outage)
▪ Or they delete WO from eAM
■ Consequence: program does not find WO with wrong status
▪ WO stays in P6
■ Solution: manually remove WO from P6
▪ Administrative solution, albeit effective one
■ Future solution: fully compare eAM and P6
▪ Problem: not a trivial algorithm
62. Issues: Activity type for work order
■ First choice: task dependent
▪ Relationship loops
▪ Does not adapt to changes in operation duration
■ Second choice: dedicated script
▪ Unpractical, has to be run every time operation duration
changes
▪ Duplicating Primavera features
■ Solution: level of effort
▪ Requires milestones to avoid loops
▪ Cannot be linked to
— Relationships define duration of LoE activity
— Serious drawback
63. Issues: Linking of tagouts to work orders
■ For each tagout eSOMS:
1. Takes a list of activity IDs
2. Creates hang/remove activities
3. Creates relationships
64. Issues: Linking of tagouts to work orders
■ First choice: task dependent WOs
▪ Unacceptable
■ WOs have to be level of effort
▪ Relationships should point to milestones
▪ eSOMS doesn't know how to do that
■ Solution: no tagouts on WOs
▪ Tagouts placed only on SWs and operations
■ Future solution: implement our own eSOMS integration
▪ Our implementation will link to milestones
65. Issues: Calendars
■ eAM has only 24/7 calendar
▪ Planning unrealistic
■ First choice: only 24/7 in P6
▪ Easy solution
▪ Planning unrealistic, defeats the purpose
■ Solution: implementing calendars in eAM
▪ Allows for detailed planning
▪ Considerable effort
66. Issues: Time resolution difference
■ eAM has support for fraction of a second
■ P6 has support for minutes
■ NEK plans in hours
■ First choice: transfer data as is
▪ P6 migrates to planning seconds
■ Second choice: round eAM times to hours during transfer to
P6
▪ different data in eAM in P6
▪ testing impossible
■ Solution: redesign eAM to accept only hours
68. Issues: 0 time interpretation difference
■ If:
▪ Last operation in work order has duration 0, and
▪ Operation before that ends on last second of the work day
■ Then
▪ P6 schedules it for start of the next work day (i.e. 7 AM)
▪ eAM schedules it for end of previous work day (i.e. 3 PM)
■ Consequence
▪ 16 hour discrepancy between P6 and eAM
■ Solution: none
▪ We adjusted all of our programs to ignore that issue
69. Issues: Resource durations and units
■ Primavera: duration * units / time = units
▪ Strictly enforced
■ eAM: whatever
▪ In practice, every planner has his own interpretation
■ First choice: Write eAM data to P6 and hope for the best
▪ Didn‘t work
■ Solution: ignore the problem
▪ We do not analyze/optimize resources (yet)
▪ Most practical solution given time constraints
■ Future solution: teach eAM the P6 way
▪ The right thing to do
▪ A major change to eAM
70. Issues: Performance problems
■ First choice: iterate through all WOs changed since last run
▪ We relied on eAM‘s internal „last change“ timestamp
▪ WO “changed” every time planned start/finish was changed
— That is: on every reschedule
■ Every run lasted for 2.5 hours
■ Solution: use testing engine to find differences
▪ heavily optimized to take as little time as possible
71. Issues: Reference operations actuals
■ Reference operation – placeholder operation for another work
order
▪ Administratively belongs to parent WO
▪ In practice belongs to some other SW
■ First choice: do not import them to P6
▪ What if RO has several predecessors/successors
■ Second choice: make it a milestone (duration: 0h)
▪ Gives the wrong impression (nothing lasts 0h)
■ Third choice: start when predecessors end, end when
successor starts
▪ What if the only successor is RO? Deadlock!
72. Issues: Reference operations actuals
Has ordinary
predecessor
Has reference
predecessor
Condition for start Date of start
Yes Yes All ordinary
predecessors finished
End of last ordinary
predecessor
Yes No All ordinary
predecessors finished
End of last ordinary
predecessor
No Yes All reference
predecessors finished
End of last reference
predecessor
No No Work order started Start of work order
■ Solution for actual start of reference operation
73. Changes to eAM
■ eAM had limited support for operation linking
▪ Implemented operation linking
■ eAM had only one calendar: 24/7
▪ Implemented multiple calendars
■ eAM had support for planning up to a second
▪ Restricted dates to hours
■ eAM Gantt charts had minimal resolution of 1 day
▪ Implemented Gantt charts with 1 minute resolution
80. Current status
■ Integration operational for
▪ refueling outage
▪ forced outage
▪ online operation
■ Currently we are
▪ Refactoring code
▪ Documenting code
▪ Writing unit tests
▪ Packaging code to run as eAM module
81. Future plans
■ Custom P6/eSOMS integration tool
▪ linking tagouts to WOs
▪ resources calculation
▪ conflict check and optimization
■ Better support for roles/resources
▪ better eAM resource support
▪ resource actuals
■ Opening the project for others to use?
82. Thank you
■ Thank you for your attention!
■ Email: nikola.skoric@nek.si
■ LinkedIn: linkedin.com/in/nskoric
83. Please complete the session
evaluation
We appreciate your feedback and insight
You may complete the session evaluation either
on paper or online via the mobile app