integration of primavera p6 eppm with oracle e business suite - oracle primavera p6 collaborate 14

83
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

Upload: p6academy

Post on 08-Aug-2015

57 views

Category:

Business


0 download

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

Outage planning in nuclear industry

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

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 with outage planning in NEK

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

Proposed solution

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

Solution

■ As frequent as possible

■ We chose 15 minutes eAM This project P6

eAM P6actual dates

Implementation of the solution

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

Part 1: transfer of work orders from eAM to P6

Transfer of work orders

eAM This project P6

eAM P6WOs

Schedule

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 representation – work order

Data representation – system window

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

Part 2: transfer of planned dates from P6 to eAM

Solution

eAM This project P6Outside world

eAM P6WOs

Schedule

P6eAM planneddates

eAM P6actual dates

WO authors

workers

Transfer of work orders

eAM This project P6

Schedule

P6eAM planneddates

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)

Part 3: transfer of actual dates from eAM to P6

Solution

eAM This project P6Outside world

eAM P6WOs

Schedule

P6eAM planneddates

eAM P6actual dates

WO authors

workers

Transfer of actual dates

eAM This project P6

eAM P6actual dates

Data sources

■ Master: eAM

■ Slave: P6

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

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

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

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

End results

End result

End result

End result

End result

Current status and future plans

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

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