integration of primavera p6 eppm with oracle e business suite - oracle primavera p6 collaborate 14
TRANSCRIPT
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
Presenter info
■ Nikola Škorić
■ Master of Computer Science (University of Zagreb, 2007)
■ Licensed reactor operator (2010)
■ Planning and Scheduling engineer (2012)
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
Solution
eAM This project P6Outside world
eAM P6WOs
Schedule
P6eAM planneddates
eAM P6actual dates
WO authors
workers
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 planneddates
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
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
Implementation
This project
PL/SQL Java
PL/SQL
PL/SQL Java
eAM P6WOs
Schedule
P6eAM planneddates
eAM P6actual dates
Implementation
■ Java
▪ 7,000 lines of code
▪ 36 classes
▪ 700 commits to git repository
■ PL/SQL
▪ 13,000 lines of code
▪ 3 packages
▪ 100 commits to svn repository
Data sources
■ Dates
▪ Master: P6
▪ Slave: eAM
■ All other data
▪ Master: eAM
▪ Slave: P6
■ „Limitation“: data in P6 cannot be modified
Data sources
Operation
WaitingWO Planner
WaitingWork Week
Manager
WaitingShift Supervisor
WaitingWO Coordinator
Approved for work
Work finishedWO coordinator
Work finishedShift Supervisor
Draft
Completed
Working
Finished
Data sources
Imported to Primavera
Operation
WaitingWO Planner
WaitingWork Week
Manager
WaitingShift Supervisor
WaitingWO Coordinator
Approved for work
Work finishedWO coordinator
Work finishedShift Supervisor
Draft
Completed
Working
Finished
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
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
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
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
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
Cancelled/deleted WOs
■ If WO loses status – removed from P6
■ If WO is deleted from eAM – problem
■ If WO is changes project – problem
Solution
eAM This project P6Outside world
eAM P6WOs
Schedule
P6eAM planneddates
eAM P6actual dates
WO authors
workers
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)
Solution
eAM This project P6Outside world
eAM P6WOs
Schedule
P6eAM planneddates
eAM P6actual dates
WO authors
workers
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
Data transferred – work orders
Operation
WaitingWO Planner
WaitingWork Week
Manager
WaitingShift Supervisor
WaitingWO Coordinator
Approved for work
Work finishedWO coordinator
Work finishedShift Supervisor
Draft
Completed
Working
Finished
Data transferred – operations
Operation
WaitingWO Planner
WaitingWork Week
Manager
WaitingShift Supervisor
WaitingWO Coordinator
Approved for work
Work finishedWO coordinator
Work finishedShift Supervisor
Draft
Completed
Working
Finished
Data transferred – resources
■ None for now
■ Resource actuals are:
▪ A complicated issue
▪ Of questionable demand
Testing
■ Development workflow:
1. Implement solution
2. Run the program
3. Check if data was transferred correctly
■ Checking:
▪ Manual
▪ Automated
Testing
■ SQL view to P6 database
■ SQL view to eAM database
■ Comparison of:
1. WOs
2. operations
3. roles/resources
■ Very robust testing tool
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
Issues: Deleted and moved work orders
Imported to Primavera
Operation
WaitingWO Planner
WaitingWork Week
Manager
WaitingShift Supervisor
WaitingWO Coordinator
Approved for work
Work finishedWO coordinator
Work finishedShift Supervisor
Draft
Completed
Working
Finished
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
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
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
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
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
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
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
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
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
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!
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
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
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
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?
Thank you
■ Thank you for your attention!
■ Email: [email protected]
■ LinkedIn: linkedin.com/in/nskoric