Primavera Integration API Version 5.0 (SP9)
Primavera Integration API
Release: Version 5.0 (SP9)
Release Date: March, 2009
Contents
========
- Installation
- Database Requirements
- Java SDK and JRE Requirements
- What’s New in this Release
- Features Introduced in the 5.0 SP7 Release
- Features Introduced in the 5.0 SP6 Release
- Features Introduced in the 5.0 SP5 Release
- Features Introduced in the 5.0 SP4 Release
- Features Introduced in the 5.0 SP3 Release
- Features Introduced in the 5.0 SP2 Release
- Features Introduced in the 5.0 SP1 Release
- Experimental Session Tracing Functionality
- Known Issues for this Release
- Documentation
- Copyright Notice
Installation
==========
Note: This Service Pack is only for local mode installations.
Use the following steps to apply the Service Pack to local mode installations:
- Make a backup copy of the <Integration Installation>\lib directory.
- Overwrite the following files in the <Integration Installation>\lib directory with the files from the Service Pack \lib directory:
- activation.jar
- bcprov-jdk14-119.jar
- intgserver.jar
- k3.jar
- log4j.jar
- mail.jar
- ojdbc14.jar
- serializer.jar
- sqljdbc.jar
- xalan.jar
- xercesImpl.jar
- xml-apis.jar
Database Requirements
====================
- The Primavera Integration API 5.0 can be used only with a Primavera 5.0 Project Management database. Oracle, SQL Server, and MSDE are supported.
Java SDK and JRE Requirements
==========================
- To write code against the interface, you must install the Java Software Development Kit (SDK, also known as the JDK), version 1.4.x or 1.5.0_x. Also, your Integrated Development Environment (IDE) must work with this version of the SDK.
- If you want only to run the sample applications and do not plan to write code against the interface, you need to install only the Java Runtime Environment (JRE), version 1.4.x or 1.5.0_x.
Note: You can download both the SDK and JRE from the Sun Microsystems Web site (http://www.java.com).
What’s New in this Release
======================
- Miscellaneous fixes.
Features Introduced in the 5.0 SP7 Release
===================================
- Fix for the problem where the individual query timeout was improperly being set to 1000 times longer than the MaxLeaseDuration setting.
- Fix to avoid locking out all connections in the connection pool in cases where the connection is revoked while in the middle of an operation.
- Optimization of relationship loading to reduce the number of executed queries.
Features Introduced in the 5.0 SP6 Release
===================================
- Resource assignment spreads will now allow negative timesheet hours
- Resource assignment spreads will now allow actual units entered after the actual finish date.
Features Introduced in the 5.0 SP5 Release
===================================
- Support for SQL Server 2005. The JSQLConnect.jar has been replaced with sqljdbc.jar.
- The field IsPrimaryResource is now writable on ResourceAssignment business objects. Previously the primary resource could only be specified by setting PrimaryResourceObjectId on the associated Activity.
- BOHelper.setValues() has been added to allow business objects to be initialized from values contained in a Map.
- Business rule fixes for batch creating and updating of resource assignments.
- Fixes for equals() and hashCode() on business object classes.
- Performance and memory usage fixes for loading Project records.
Features Introduced in the 5.0 SP4 Release
===================================
- A readonly field, isBaseline, has been provided for project or baseline related business objects. The field returns true if the business object is related to a baseline. See AssignmentsDemoApp.java for an example of how to use this field in a where clause to filter out baseline data.
- Planned/Budgeted fields have been exposed in spreads for projects.
- Id is no longer a required field when creating activities. Please see the known issues section for notes about this feature.
- Defect in 5.0 SP3, failure during updating Code and UDF fields on business objects, is fixed.
- A readonly field, LastRecalcDate, has been provided on Project. Please see the Project javadoc for a definition.
Features Introduced in the 5.0 SP3 Release
===================================
- UDF and Code Assignment business objects have been exposed, giving programmers the ability to load UDF and Code assignments individually without loading the primary business object which had the assignment. The new business objects are UDFValue, ActivityCodeAssignment, ProjectCodeAssignment, and ResourceCodeAssignment.
- UDFTypesAssigned and CodeTypesAssigned fields have been removed from the "AllFields" list on business objects. The new code and UDF assignment business objects should be used instead.
- A new EnterpriseLoadManager class has been added to allow any business objects to be loaded directly without having to use the existing API navigation model. This class is especially useful for enterprise reporting. Note that for large databases, the Enterprise Load Manager should not be used for loading activities across projects. Instead, the activities should be loaded from their respective parent project using Project.loadAllActivities().
- Encryption of user password for remote mode. This applies when calling Session.login() and when setting the password on a User business object.
- ProjectObjectId (proj_id) has been exposed on the EPS business object, and WBSObjectId (wbs_id) has been exposed on the Project and BaselineProject business objects. These readonly internal fields are exposed for clients that need to work directly with the database schema.
- Session tracing ability – please see the section on experimental functionality.
- Performance enhancements for loading business objects.
- Performance improvements for loading and updating code assignments, checking project access, specific to oracle databases using rule based optimizers.
Features Introduced in the 5.0 SP2 Release
===================================
- Writable Past Period Actuals. The following business objects may now be created, updated, and deleted: ActivityPeriodActual, ResourceAssignmentPeriodActual, and FinancialPeriod.
- Store Period Performance has been added as a Java job service that can be invoked using the JobManager class.
- XML importer now supports the import of past period actual data.
- XML importer now matches resource assignment business objects when importing. Previously, when importing assignments, all resource assignment business objects on an activity were deleted. Note that you can not import resource assignments if more than one resource assignment match (same ActivityObjectId, ResourceObjectId, RoleObjectId, CostAccountObjectId) exist on the same activity.
- The Primavera Administrator tool now requires privuser access. The Database Configuration tool continues to require only pubuser access.
- The Database Configuration and Primavera Administrator tools now support upgrading of 5.0 configurations to the latest 5.0 (SP2) version.
Features Introduced in the 5.0 SP1 Release
===================================
- Improved batch exception handling for batch update/create. See the "Batch Exception Handling" section of the Programmer’s Reference for more details.
Experimental Session Tracing Functionality
===================================
- An experimental version of the Integration API is included as an optional installation. This version allows the programmer to trace load, create, update and delete operations performed using the API. The functionality has been provided through Aspect Oriented Programming (http://aosd.net), using AspectJ (http://www.eclipse.org/aspectj), and therefore requires the AspectJ runtime jar, aspectjrt.jar, to be re-distributed with this release.
- Session tracing can be used in both local and remote execution modes. Tracing can be performed on either the Server and Client, or just the Client, when using Remote mode execution. When tracing on the server, the trace output will include trace information from all clients connected to the server.
- Session tracing makes use of the Java Logging API; a sample configuration file is included with the distribution which can be used as a starting point to configure the logging options. The logging properties can be used without changes, but programmers are encouraged to configure logging that meets their requirements.
- When running in local mode, replace the intgserver.jar included with the release with the experimental version and include aspectjrt.jar in the class path.
- When running in remote mode replace the intgserver.jar in your deployment with the experimental version and include aspectjrt.jar. Please refer to your application server documentation for more information.
Known Issues for this Release
========================
- When using the API in Remote Mode, the setting "Application \ IgnoreDaylightSavingsTime" in the Administrator application needs to be set to false.
- When using the API in Remote Mode and the client and server are in different timezones, the time of date fields in the client will be based on the local time, not the server time, by default. If you want the times to match, you can first set the timezone in your client code to be the same as the server timezone for each thread that calls API code.
- Auto generation of Id on activities is not thread safe within a project, i.e. trying to create multiple activities on the same project concurrently will result in duplicate activity ids, and an exception being thrown.
- When using the API, the file serializer.jar needs to be in your classpath only when using 1.5.0_x of the Java Runtime Environment (JRE). The files xalan.jar, xercesImpl.jar, and xml-apis.jar need to be in your classpath only when using 1.4.2_x of the JRE.
- When importing new past period actual data using the XMLImporter, make sure to specify ImportOption.UPDATE_EXISTING for ResourceAssignmentPeriodActuals. Otherwise some data may not be imported correctly.
- For SQL Server databases, the Project.createCopyAsBaseline() method does not copy the PlannedValueCost and PlannedValueLaborUnits fields on ActivityPeriodActual business objects, and it copies no fields on ResourceAssignmentPeriodActual business objects. As a workaround, these fields can be copied manually by writing some simple additional code.
- When creating or updating Projects, Resources, or Activities with code assignments, if an exception occurs during the code assignment processing, the Project, Resource, or Activity data will still be committed. A similar problem exists when creating business objects with UDF assignments. Instead, use the new UDF and/or code assignment business objects (ActivityCodeAssignment, ProjectCodeAssignment, ResourceCodeAssignment, and UDFValue) to create the assignments.
- When calling update, the source index for exceptions contained in a BatchException may not be correct if at least one business object in the batch does not contain any changed fields.
- To use collaboration features with JRE 1.5.0_x, for Local mode, you must include xalan.jar in your application’s class path; for Remote mode, you must include xalan.jar in the server’s classpath. You can download this file from http://xml.apache.org/xalan-j/downloads.html.
- The following collaboration features are not supported in the current release: templates, news, relating items, worklists, document reviews, and collaboration documents associated with templates.
- You can not export collaboration documents to XML. No document of any type may be imported from XML.
- If collaboration documents are being used, the Project Management database should never contain multiple documents that share the same Title and differ only by Version. Collaboration project documents are stored in both the collaboration repository and the Project Management database. There is a unique constraint on Title and Version per project in the Project Management database, and checking in a new version of a project document into the collaboration repository is not supported when other Project Management documents share the same Title.
- Live resource assignment spread calculations are not based on past period actuals.
- The current API release does not support unit recalculation based on changing costs.
- You can not move objects to a different project. This restriction applies to all child objects of a project, including WBS, ProjectIssue, Activity, ActivityStep, and so on. As a workaround, create copies of the object in the appropriate project, then delete the original objects. To simplify this effort, you can use the BOHelper classes to quickly write code for reading and writing fields without having to be concerned about type.
- SQL Server clients should not attempt to create more than 35 EPS, Project or WBS objects in one call. To create more of these objects, separate the objects into multiple calls to create().
- Tomcat 5.x does not work properly with the API if the Tomcat installation directory name contains a space. For example, "c:\tomcat 5.0" causes issues, but "c:\tomcat5.0" does not.
- The business object ScheduleOptions has fields mapped to two database tables, USERDATA and PROJPROP. Since the four audit fields (CreateDate, CreateUser, LastUpdateDate, and LastUpdateUser) are mapped to the USERDATA table, they only reflect changes made to the fields (RecalculateResourceCosts and LevelResourcesDuringScheduling) in the USERDATA table. Modifying any other fields in the ScheduleOptions business object will not impact the audit fields.
Documentation
=============
- The Administrator’s Guide (setup.pdf) is located in the docs directory under the Integration API installation directory. It provides information on setting up the API, modes of operation, system requirements, and more.
- The Programmer’s Reference Guide (ProgrammerReference.html) provides information on how to use the API. It is located in the docs directory under the Integration API installation directory.
- Javadoc, including some class diagrams, can be found in the docs\api subdirectory of the Integration API installation directory.
Copyright Notice
==============
Copyright © 2003, 2009, Oracle and/or its affiliates. All rights reserved.
Certain products included in the software require the following disclosures:
Please consult Notices_SP9.html for additional disclosures.
* * * * *
Portions copyright 1991-1997 Compuware Corporation.
* * * * *
Interwoven, Inc.
* * * * *
Copyright © 2000-2004 Jason Hunter & Brett McLaughlin. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions, and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the disclaimer that follows these conditions in the documentation and/or other materials provided with the distribution.
3. The name "JDOM" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact <request_AT_jdom_DOT_org>.
4. Products derived from this software may not be called "JDOM", nor may "JDOM" appear in their name, without prior written permission from the JDOM Project Management <request_AT_jdom_DOT_org>.
In addition, we request (but do not require) that you include in the end-user documentation provided with the redistribution and/or in the software itself an acknowledgement equivalent to the following: "This product includes software developed by the JDOM Project (http://www.jdom.org/)." Alternatively, the acknowledgment may be graphical using the logos available at http://www.jdom.org/images/logos.
THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This software consists of voluntary contributions made by many individuals on behalf of the JDOM Project and was originally created by Jason Hunter <jhunter_AT_jdom_DOT_org> and Brett McLaughlin <brett_AT_jdom_DOT_org>. For more information on the JDOM Project, please see <http://www.jdom.org/>.
* * * * *
Jakarta, Xerces, Log4J, Struts, Xalan, Getahead DWR,and Tomcat are licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
* * * * *
Copyright © 2000 – 2006 The Legion Of The Bouncy Castle (http://www.bouncycastle.org) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
* * * * *
Portions copyright © Macromedia, Inc. All rights reserved.
* * * * *
Copyright © 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
* * * * *
Copyright © 2005 Sam Stephenson
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
* * * * *
Copyright © 2002 JSON.org
* * * * *
SwingX requires the following disclosure. Copyright © 2005 Sun Microsystems, Inc.
* * * * *
Base requires the following disclosure. Copyright © 2005 Dean Edwards (http://dean.edwards.name/base/).
* * * * *
Portions © Microsoft Corporation. All rights reserved.
* * * * *
Sun, Sun Microsystems, the Sun Logo, Java, Java runtime environment, J2SE, and JavaOS are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
* * * * *
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
* * * * *
ILOG, the ILOG Logo or the ILOG Mark is a trademark of ILOG S.A.
* * * * *