Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

Primavera Integration API

White Paper

Primavera Systems, Inc.

March 2006
© 1997 - 2006 Primavera Systems, Inc. All rights reserved. Unless otherwise noted, this software is the property of Primavera Systems, Inc.
(Primavera) and is entitled to copyright protection. Any reproduction in whole or in part is strictly prohibited.

While reasonable efforts have been made to ensure the accuracy of this document, Primavera assumes no liability resulting from any omission or
inaccuracies in this document or from use of the information obtained herein. Primavera reserves the right to make changes to any products
described herein to improve reliability, function, or design, and reserves the right to revise this document and to make changes from time to time
in content hereof with no obligation to notify any person of revisions or changes. Primavera does not assume any liability arising out of the
application or use of any product described herein; neither does it convey license under its patent rights or the rights of others.

Please send your comments to:

Primavera Systems, Inc.


Three Bala Plaza West
Bala Cynwyd, PA 19004
Telephone: 1-610-667-8600
FAX: 1-610-667-7894
World Wide Web site: http://www.primavera.com

Computer Software Copyrights: The Primavera software products described in this document may not be copied, reproduced, modified, or
distributed in any manner without Primavera's express written permission.

Use and Disclosure Restrictions: The software described in this document is the property of Primavera Systems. It is furnished under a license
agreement and may be used and/or disclosed only in accordance with the terms of the agreement.

US Government Rights: Use, duplication, or disclosure by the US Government is subject to restrictions set forth in the Primavera license
agreement and as provided in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DFARS 252.227-7013(c)(1)(ii) (OCT 1988), FAR 12.212(a)
(1995), FAR 52.227-19, or FAR 52.227-14 (ALT III), as applicable.

Trademarks: Primavera, Primavera sundial logo, Primavera Enterprise, Primavera Expedition, Primavera Methodology Manager, Primavera
Portfolio Analyst, Primavera Progress Reporter, Primavera Project Planner, P3, P3e, Primavera TeamPlay, Primavera TeamPlay Methodology
Manager, Primavera TeamPlay Portfolio Analyst, Primavera TeamPlay Project Manager, Primavera TeamPlay TeamPlayer, myPrimavera and
PrimeContract are either registered trademarks, trademarks, or service marks of Primavera Systems, Inc., in the United States and/or in other
countries. All other trademarks mentioned herein are the property of their respective owners.

Printed in the United States of America.

ii

© 1997-2004 Primavera Systems, Inc. All rights reserved.


Table of Contents

1.EXECUTIVE SUMMARY ........................................................................................................................... 1

2.INTRODUCTION........................................................................................................................................ 2

3.ARCHITECTURE....................................................................................................................................... 2

4.DEPLOYMENT .......................................................................................................................................... 4

5.INCLUDED FUNCTIONALITY .................................................................................................................. 4

5.1. SUPPORTED BUSINESS OBJECTS:............................................................................................. 4

5.2. ADDITIONAL SUPPORTED FUNCTIONALITY: ............................................................................. 5

APPENDIX
………………………………………………………………………………………………………….6

A.1 LISTING OF SUPPORTED DATABASE TABLES .......................................................................... 6

A.2 RMI DEPLOYMENT AND INTERACTION DIAGRAMS .................................................................. 9

A.3 SUPPLEMENTAL INFORMATION ON RMI.................................................................................. 10

GLOSSARY .......................................................................................................................................... 11

iii

© 1997-2004 Primavera Systems, Inc. All rights reserved.


1. Executive Summary
Companies face an ever-increasing need for integration solutions. Today, the Internet
provides the opportunity for systems to communicate instantly with other systems or
individuals. Business processes that were once restricted to intranets and their users
are now moving to various integration technologies, such as RMI and Web Services, to
extend their network to include vendors and customers as well as internal information
systems.

To address this shift in technology as well as the scalability, performance and security
issues often associated with historical integration models--such as direct database
connections or ODBC driver access--Primavera exposed the core server and business
objects used by the “myPrimavera” web application (proven to be reliable and scalable)
as the Primavera Integration API. Now, deployment of custom solutions that utilize
proven Primavera technology is as easy as writing Java code that uses a few
Primavera-provided Java classes.

The ability to configure the Integration API to run as a standalone utility or through an
application server makes this robust tool flexible for any technical environment. Based
on the commonly used Java language, the IAPI can even utilize Java Remote Method
Invocation (RMI) technology (See Appendix A.3) behind the scenes to support
distributed solutions!

© 2003 Primavera Systems, Inc. All rights reserved.


2. Introduction
The goal of the Primavera Integration API is to provide seamless access to data and functionality
between one system and another at an enterprise level.

The integration solution has the following characteristics:


ƒ An interface that supports all critical business objects and functions
ƒ Scalability and performance to support large enterprise integration
ƒ Security, both at the application level and at the network level

3. Architecture
The Integration API is based on the Primavera Business Rule Engine (BRE), a Java-based component of
the myPrimavera server that includes business objects and provides fundamental services, such as
connection pooling, caching, licensing, and security. The BRE provides these services with a high degree
of asynchronous and stateless behavior and also provides efficient scheduling of services and allocation
of resources.

When configured for “local mode” (standalone), the Primavera Integration API does not require an
application server to access and manipulate the Primavera business objects (unlike myPrimavera.) Local
mode is the easiest way to quickly create and test integration solutions with the Integration API. The
following diagram demonstrates the architecture when the Integration API is configured for “local mode”.

Figure 1: Integration API Architecture, "Local Mode"

To configure the Integration API to leverage RMI for distributed systems use ”Remote Mode.” Deploying
the Integration API as a server component requires a JSP servlet engine--usually a J2EE application
server such as BEA WebLogic, IBM WebSphere, or Oracle 9iAS. The following diagram demonstrates
this configuration.

© 2003 Primavera Systems, Inc. All rights reserved.


Figure : Integration API Architecture, "Remote Mode"

The following diagram shows how the Primavera Integration API with RMI relates to the Primavera suite:

Note that the myPrimavera server includes a presentation component to generate HTML, XML, and
images to allow people to share and manipulate business objects whereas the Integration API has an
integration component to allow remote programs to share and manipulate the same business objects.

The same licensing and application-level security used in myPrimavera is used in the Primavera
Integration API. Also, as RMI can be used with SSL, this solution is very secure and is possible to deploy
using a commercial web server.

More information on RMI, including deployment and interaction diagrams, can be found in sections A.2
and A.3 of the Appendix.

© 2003 Primavera Systems, Inc. All rights reserved.


4. Deployment
Although the Primavera Integration API was designed to work with RMI (in "remote mode"), it will also
function fully without RMI (in "local mode"), where client code bypasses the RMI layer and communicates
directly with the server code. Local mode requires the client code to be run on the same machine as the
server and can be very useful for integration solutions where supporting multiple simultaneous users is
not required. By avoiding the RMI layer, additional performance gains can be achieved by these local
mode applications.

Client applications are determined to be in a particular mode of operation based on whether the server
classes can be found in the class path. Aside from specifying the URL of the server for remote mode,
client code is exactly the same regardless of whether remote or local mode is being used. This is
accomplished by hiding the network layer entirely from the client code, giving developers the ability to
write client code for the Primavera Integration API with no knowledge of RMI whatsoever.

A client JAR (Java Archive) file is included with the Primavera Integration API installation program to
provide core classes and utility classes used for interfacing with the server. Users of the Primavera
Integration API will need to write Java code that uses the client jar file provided by Primavera.

When using the Primavera Integration API, the client application must instantiate a session object,
providing information such as server URL (remote mode only), database instance identifier, user name
and password. This establishes communication with the server, which then allows direct access to all
global data (projects, resources, etc.).

For example, once login is successful and the session is established, the user is able to retrieve a
collection of projects and access the activities and resource assignments for a particular project in that
collection. Activities and resources can be added, assignments can be made, and the project can be
scheduled. For a complete list of supported functionality, see the work breakdown listed in the following
section.

The Primavera Integration API installation comes complete with a Programmer’s Reference and several
demo applications (all source code included) to help get started right away.

5. Included Functionality
The emphasis of the Primavera Integration API is to support core business objects. Although this
document has been updated to version 5.0, please note that details provided below are for information
purposes and may differ from the actual release. Please see documentation provided with the Primavera
Integration API release for complete information.

5.1. Supported Functionality:

The following are fully supported (read/write):


ƒ Activities ƒ Expense Categories
ƒ Activity Codes ƒ Financial Periods
ƒ Activity Period Actuals ƒ Funding Sources
ƒ Activity Relationships ƒ Notebooks
ƒ Activity Steps ƒ OBS
ƒ Baselines ƒ Overhead Codes
ƒ Budget Change Logs ƒ Portfolios & Teams
ƒ Calendars ƒ Projects
ƒ Collaboration Documents ƒ Project Codes
ƒ Cost Accounts ƒ Project Issues

© 2003 Primavera Systems, Inc. All rights reserved.


ƒ Project Risks ƒ Resource Codes
ƒ Project Thresholds ƒ Resource Rates
ƒ Security Settings ƒ Roles
ƒ Resources ƒ User Defined Fields
ƒ Resource Assignments ƒ Users
ƒ Resource Assignment Period ƒ WBS
Actuals

The following data are read-only:


ƒ Date/Time Stamps ƒ Spread Data
ƒ Project Initiation ƒ Summary Data
ƒ Resource Planning ƒ Timesheets

For a full list of supported business objects, see Appendix A.1

5.2. Additional supported functionality:


ƒ Apply Actuals ƒ Schedule and Level
ƒ Copy Project ƒ Store Period Performance
ƒ Export/Import via XML ƒ Summarize
ƒ Run Batch Reports

XML Export includes support for exporting every type of business object as Primavera XML. The fields to
be exported can be specified, allowing the client a detailed level of control over the generated XML.
Exporting of full projects is also supported, and includes a project and its related data (WBS, activities,
relationships, etc.) at one time. XML Import supports importing new or existing projects from XML files
that match the Primavera XML Schema. However, anything that is not in the full-project export, does not
get imported, even if it is in the schema (for example, Users). Note that read-only fields or business
objects do not get imported either, and the XMLImporter does not support importing Documents and
related business objects. The Primavera Business Object XML Schema Definition, or prmbo.xsd, can be
found in the Schema folder of your Integration API installation.

There are many XML technologies available today to assist in transforming XML files that may conform to
different schemas into Primavera XML

© 2003 Primavera Systems, Inc. All rights reserved.


Appendix

A.1 LIST OF SUPPORTED DATABASE TABLES


The following table lists the tables in the database, associated class name. “RW” in the table below
means full read/write support of the database table; records can be added and deleted, and fields can be
read from and written to.
Table Class Name Acces Description
s
ACCOUNT CostAccount RW Cost accounts
ACTVCODE ActivityCode RW Activity code values
ACTVTYPE ActivityCodeType RW Activity codes
BASETYPE BaselineType RW Baseline types
BUDGCHNG EPSBudgetChangeLog RW EPS Budget change log
BUDGCHNG ProjectBudgetChangeLog RW Project Budget change log
CALENDAR Calendar RW Calendars - base, project, and resource
COSTTYPE ExpenseCategory RW Expense categories
CURRTYPE Currency RW Currency information
DOCCATG DocumentCategory RW Categories for documents
DOCSTAT DocumentStatusCode RW Status codes for work products and
documents
DOCUMENT Document RW Documents and work products
FINDATES FinancialPeriod RW Financial Periods
FUNDSRC FundingSource RW Funding sources
ISSUHIST IssueHistory RO Issue histories
MEMOTYPE NotebookTopic RW Notebook topics
NONWORK OverheadCode RW Overhead codes
OBS OBS RW Project organizational breakdown
structure
PCATTYPE ProjectCodeType RW Project code types
PCATUSER ProjectCodeUser RO
PCATVAL ProjectCode RW Project code values
PFOLIO ProjectPortfolio RW Project portfolios
PHASE WBSCategory RW WBS categories
PREFER GlobalPreferences RO Admin preferences
PROCGROUP ActivityStepTemplate RO Activity Step Template
PROCITEM ActivityStepTemplateItem RO Activity Step Template Items
PROFILE GlobalProfile RW User Global security profiles
PROFILE ProjectProfile RW User Project security profiles
PROJCOST ActivityExpense RW Expenses for a project
PROJECT BaselineProject RO Project Baseline
PROJECT Project RW
PROJEST ProjectEstimate RW History of estimates done for project
PROJFUND EPSFunding RW EPS funding sources

© 2003 Primavera Systems, Inc. All rights reserved.


PROJFUND ProjectFunding RW Project funding sources
TABLE Class Name Acces Description
s
PROJISSU ProjectIssue RW Project issues
PROJRISK ProjectRisk RW Project risks
PROJTHRS ProjectThreshold RW Project thresholds
PROJWBS EPS RW EPS work breakdown structure
PROJWBS WBS RW Project work breakdown structure
RCATTYPE ResourceCodeType RW Resource code types
RCATVAL ResourceCode RW Resource code values
RFOLIO ResourceTeam RW Resource portfolios
RISKTYPE RiskType RW Risk types
RLFOLIO RoleTeam RW Role portfolio dictionary
ROLERATE RoleRate RO Role Rates
ROLES Role RW Roles
RPTBATCH BatchReport RO Report series for batch printing
RSRC Resource RW Resources
RSRCCURV ResourceCurve RW Resource curves
RSRCHOUR ResourceHour RO Resource-timesheet hours
RSRCRATE ResourceRate RW Time-varying resource prices and
maximum units
RSRCROLE ResourceRole RW Resource-role assignments
RSRCSEC ResourceAccess RO
SHIFT Shift RW Shift definitions for resources
SHIFTPER ShiftPeriod RO Work periods within shifts
TASK Activity RW Activities
TASKDOC ProjectDocument RW Work products and documents assigned
to activities
TASKFIN ActivityPeriodActual RW Activity Past Period Actuals
TASKMEMO ActivityNote RW Activity specifications
TASKPRED Relationship RW Activity dependencies
TASKPROC ActivityStep RW Activity steps
TASKRSRC ResourceAssignment RW Resources assigned to activities
THRSPARM ThresholdParameter RO Threshold parameters
TIMESHT Timesheet RO Resource timesheets
TRSRCFIN ResourceAssignmentPeriodActu RW Resource Assignment Past Period
al Actuals
TSDATES TimesheetPeriod RO Timesheet periods
UDFCODE UDFCode RW
UDFTYPE UDFType RW User-defined Tyoes
UMEASURE UnitOfMeasure RW Definitions/labels for all Unit of Measure
columns
USERCOL UserFieldTitle RO Definitions/labels for all user-defined
columns
USERENG UserLicense RW Maps users to database engine types for

© 2003 Primavera Systems, Inc. All rights reserved.


license enforcement
USEROBS UserOBS RW User-OBS assignments
TABLE Class Name Acces Description
s
USERS Users RW Application users
USERS ScheduleOptions RO Schedule Options
WBSBUDG EPSSpendingPlan RW Periodic (monthly) budgets for EPS
WBSBUDG ProjectSpendingPlan RW Periodic (monthly) budgets for projects
and WBS
WBSMEMO EPSNote RW EPS notebook
WBSMEMO ProjectNote RW Project and WBS notebook
WBSRSRC ProjectResource RO
WBSRSRC_QTY ProjectResourceQuantity RO
WBSSTEP WBSMilestone RW WBS milestones
WORKFLOW Initiation RO
RW = READ\WRITE RO = READ ONLY

© 2003 Primavera Systems, Inc. All rights reserved.


A.2 RMI DEPLOYMENT AND INTERACTION DIAGRAMS

UML Deployment Diagram

UML Interaction Diagram

© 2003 Primavera Systems, Inc. All rights reserved.


A.3 SUPPLEMENTAL INFORMATION ON JAVA RMI
Java Remote Method Invocation (RMI) allows you to write distributed objects using Java. RMI provides a
simple and direct model for distributed computation with Java objects. These objects can be new Java
objects, or can be simple Java wrappers around an existing API. Java embraces the "write once, run
anywhere” model, and RMI extends the Java model to be able to be run everywhere.
Because RMI is Java-based, it brings the power of Java’s safety and portability to distributed computing.
Behavior such as agents and business logic can be moved to the part of the network where it makes the
most sense.
RMI provides flexibility by allowing developers to pass any serializable Java object (objects by value)
between application components.

10

© 2003 Primavera Systems, Inc. All rights reserved.


A.4 GLOSSARY
API (Application Programming Interface) - The specific method prescribed by an application program by
which a programmer writing an application program can make requests of the other application.

BRE (Business Rule Engine) – The infrastructure and business logic component of the myPrimavera
server.

HTTP (Hypertext Transfer Protocol) – The protocol for moving hypertext files across the Internet.
Requires a HTTP client program on one end, and an HTTP server program on the other end.
HTTP is the most important protocol used in the World Wide Web (WWW).

JAR (Java ARchive) – A file format used to bundle all components required by a Java application or
applet.

JDK (Java Development Kit) – A software development kit from Sun Microsystems that implements the
basic set of tools needed to write, test, and debug Java applications and applets.

JVM (Java Virtual Machine) – An interpreter between Java bytecode and a computer's operating system.
Using a JVM, Java code can be run on any number of different computer platforms, including
Windows and Unix.

ODBC (Open DataBase Connectivity) – A standard programming language interface used to connect to a
variety of data sources. ODBC's goal is to make it possible to access any data from any
application, regardless of which database management system (DBMS) is handling the data.

RMI (Remote Method Invocation) – A distributed object model for Java program to Java program, in
which the methods of remote objects written in the Java programming language can be invoked
from other Java virtual machines, possibly on different hosts.

RMI/IIOP – A version of RMI implemented to use the CORBA IIOP protocol. RMI over IIOP provides
interoperability with CORBA objects implemented in any language if all the remote interfaces are
originally defined as RMI interfaces.

SQL (Structured Query Language) – A type of programming language used to construct database
queries and perform updates and other maintenance on relational databases.

SSL (Secure Socket Layer) – A protocol for securing data transmission on the Internet using public-key
cryptography. SSL provides server authentication, data encryption, and data integrity for
client/server communications.

UML (Unified Modeling Language) – A general-purpose notational language for specifying and visualizing
complex software, especially large, object-oriented projects. UML standards are developed under
the auspices of the Open Management Group (OMG)

XML (eXtensible Markup Language) – A subset of the Standard Generalized Markup Language (SGML)
that provides a uniform method for describing and exchanging structured data in an open, text-
based format, and delivers this data by use of the standard HTTP protocol.

11

© 2003 Primavera Systems, Inc. All rights reserved.

You might also like