Primavera Integration (PROJX)

This document describes how to install the IFS Project integration to Primavera.

When to use this information:

Use this page when an integration between IFS Project and Primavera P6 Enterprise Project Portfolio Management(P6 v7.0 & P6 v8.2) is needed.

Contents

Step 1: Install Primavera Database

The following has to be considered regarding the Primavera database installation:

  1. Start by setting up the Primavera database according to Primavera product documentation. This release supports both Oracle and SQL Server or SQL Server Express databases as the Primavera database platform.

Make sure that you read the Primavera Administrator's Guide (available from Primavera installation CD's). This guide states settings for installing the Oracle or SQL Server databases for the correct installation of Primavera database platform. Primavera database can be installed on a IFS Applications deployed database or a completely new database.

Step 2: Install the Primavera Project Management client

Primavera Project Management client can be installed in end user machine. Log on to the Primavera Database using the Primavera Project Management client. Please use the default Primavera user admin with password admin. For further information , please refer the Primavera documentation depending on the version installed(P6 v7.0 or P6 v8.2).

Verify Primavera User

Verify that the Primavera user to be used for exporting/importing to/from Primavera is licensed to access the Primavera Integration API. This can be done in the Primavera Project Management client under Admin\Users licensing. In the examples used the Primavera user Admin is configured for this purpose. Following screen shot show how it is done in P6 V7.0.

In P6 v8.2, to get to the user administration screen we need to use the web module (only supported way) and login using URL http://<server>:<port>/p6/action/login.

Step 3: Installing the Primavera Integration API

The Integration API is a set of Java classes provided by Primavera and can be installed anywhere i.e. does not need to be installed on the same machine as Primavera database Server. Please refer to Primavera Integration API Administrator's Guide for more information.

  1. Primavera Integration API and IFS Middle tier (Extended Server) should be installed on the same machine. The installation path is called PrimaveraBootstraphome. Primavera Database can be installed on a completely different machine.
  2. Make sure you have the required Java version available on the machine where you want to set up the Integration API. The required Java version can be found in the Primavera Integration API Administrator's Guide. Please follow the Primavera Integration API Installer.
  3. Primavera Integration API Installer will ask for the installation type, please select the option Local Mode Packages Only.
  4. The components Demo Applications and Integration API Javadoc can be unchecked. These components are not mandatory for the integration.
  5. Primavera Integration API Installer will invoke the Database Configuration window and ask for the database to be used.
    1. Select either one of the two options Oracle or Microsoft SQL Server or SQL Express.
    2. If Oracle is selected it requires Oracle Client to be installed on the same machine as the Primavera Integration API, since a valid TNS name is used for the Oracle connection.
    3. If Microsoft SQL Server or SQL Server Express is selected the SQL Server should be installed using Mixed Mode Authentication instead of Windows Authentication.

    Note that for any of the above options the Integration API requires pubuser access to the database.

Step 4: Installing IFS Primavera Integration (PROJX)

  1. The Extended Server installation should be done on the same machine in which Primavera Integration API is already installed, with the component PROJX included. If the Extended server is already installed, reconfiguration should be done.
  2. Setting up JVM parameters

When running the installer, there is a separate section in the installer where you can specify some additional JVM-arguments. This option is not there when using Weblogic or Websphere, so you need to go in to the application server's admin console to specify this parameter. Depending on the Application server type, this can be done as follows.

IFS Middleware Server

When running the installation wizard, in step Java Virtual Machine Settings for Managed Servers you will find a column space for Custom Java parameters.

  1. If the extended server is installed on a Windows operating system:

    -XX:MaxPermSize=192m " -Dprimavera.bootstrap.home=C:/P6IntegrationAPI"

  2. If the extended server is installed on a Linux operating system

    "-XX:MaxPermSize=192m -Dprimavera.bootstrap.home=/opt/P6IntegrationAPI"

       

JBOSS EAP-5.1

The JVM parameter can be specified in two ways:

  1. When running the installation wizard, in step Java Virtual Machine Settings for Managed Servers you will find a column space for Custom Java parameters.
    1. If the extended server is installed on a Windows operating system:

      -XX:MaxPermSize=192m " -Dprimavera.bootstrap.home=C:\P6IntegrationAPI"

    2. If the extended server is installed on a Linux operating system

      "-XX:MaxPermSize=192m -Dprimavera.bootstrap.home=/opt/P6IntegrationAPI"

     

    Note: If you have several Primavera Integration API installations, the path for the Primavera Integration API installation folder will be different for each installation. Several Application servers in same machine can point to its own Primavera Integration API through this.

  2. Same JVM parameter can be set by adding above statement in the following file/s after completing the normal extended server installation.
    1. If the extended server is installed on a Windows operating system in the file start_jboss.cmd,
      @echo off
      cls
      setlocal
      --------
      set ORACLE_OCI_PATH=%ORACLE_HOME_DIR%\jdbc\lib\ojdbc14.jar
      set PATH=%ORACLE_HOME_DIR%\BIN;%IFS_HOME%\bin;%PATH%
      set JBOSS_CLASSPATH=E:\gse\GSE_ENGAPP75\oracle\F_oracle.jar;%IFS_HOME%\javaruntime\ifs-fnd-proxy.jar;%IFS_HOME%\javaruntime\jsr173_api.jar;%IFS_HOME%\javaruntime\sjsxp.jar;%IFS_HOME%\javaruntime\saxon9.jar
      set NLS_LANG=AMERICAN_AMERICA.UTF8
      set CUSTOM_JVM_PARAMS=-XX:MaxPermSize=192m " -Dprimavera.bootstrap.home=C:\Primavera\IntegrationAPI"
      set NOPAUSE=yes
      set CLUSTER_PARTITION_NAME=CMBGSEAPP11-ENGAPP75-377
      set CLUSTER_PARTITION_UDP=237.17.73.2
      --------
      
    2.  If the extended server is installed on a Linux operating system in the file jboss.sh,
      #!/bin/bash
      
      JAVA_HOME=/opt/ifs/java
      export JAVA_HOME
      
      INSTANCE=inst1
      export INSTANCE
      
      IFS_HOME=/opt/ifs
      export IFS_HOME
      
      --------
      
      SHLIB_PATH=$IFS_HOME/oracle:$SHLIB_PATH
      export SHLIB_PATH
      
      NLS_LANG=AMERICAN_AMERICA.UTF8
      export NLS_LANG
      
      JBOSS_CLASSPATH=/opt/ifs/oracle/F_oracle.jar:$IFS_HOME/javaruntime/ifs-fnd-proxy.jar:$IFS_HOME/javaruntime/jsr173_api.jar:$IFS_HOME/javaruntime/sjsxp.jar:$IFS_HOME/javaruntime/saxon9.jar
      export JBOSS_CLASSPATH
      
      NAMING_PORT=58099
      
      DEBUG_PORT=58787
      
      JVM_MEM_OPTS="-Xms1024m -Xmx2048m"
      
      CUSTOM_JVM_PARAMS="-XX:MaxPermSize=192m -Dprimavera.bootstrap.home=/opt/Primavera/IntegrationAPI"
      export CUSTOM_JVM_PARAMS
      
      JBOSS_CONSOLE=/dev/null
      export JBOSS_CONSOLE
      
      DISPLAY=127.0.0.1:30.0
      export DISPLAY
      
      CLUSTER_PARTITION_NAME=cmbrnd112-inst1-808
      export CLUSTER_PARTITION_NAME
      
      CLUSTER_PARTITION_UDP=239.17.25.118
      export CLUSTER_PARTITION_UDP
      --------

Above steps in 2 will only change the setting temporarily and to avoid getting overwritten original setting after reconfiguration, the entry

<jboss.jvm.custom.params>-XX:MaxPermSize=256m -Dprimavera.bootstrap.home=C:\Primavera</jboss.jvm.custom.params>  should be added to <IFS_HOME>\instance\<Instanse_Name>\<Instanse_Name>_configuration.xml .If the setting is done through the installer it will be permanent as described in 1.

Oracle WebLogic 12c Application Server

When the application server is  Web Logic, step 3 should be done before starting this step.

  1. Servers => ManagedServer1 (..ManagedServerN) => Server Start
  2. Click Lock & Edit
  3. Locate Arguments
  4. Enter the parameter: -Dprimavera....
  5. Click Save
  6. Click Activate Changes


IBM WebSphere 8 Application Server

  1. Servers->Server Types->WebSphere applications servers->server1->Java and Process Management->Process definition->Java Virtual Machine->Custom Properties
  2. Click New
  3. Enter Name = primavera.bootstrap.home
  4. Enter Value = C:\path\to\primavera
  5. Click Apply and save the configuration.


Please note that the users running the IFS Primavera Integration should be granted the activities OperationManager and ProjxManageExtProjects. These two activities are default created for the permission set PRIMAVERA_INTEGRATION.

 

  1. Installing Primavera Integration Libraries

     

    Before the first use of  Primavera Integration, following libraries in <PrimaveraBootstraphome>\lib should be copied to the corresponding lib folder of the application server and server should be restarted. This lib location differs for each application server type as described below:

    Jboss EAP-5.1  

    1. Libraries, intgserver.jar, ojdbc6.jar, spring.jar and sqljdbc.jar for P6 v7.0 & commons-primitives-1.0.jar, intgserver.jar, ojdbc6.jar, quartz-all-1.7.3.jar, spring.jar and sqljdbc.jar for P6 v8.2 should be copied to <ifshome>\jboss-eap-5.1\jboss-as\server\<instance>\lib

    WebSphere 8

    1. Libraries, intgserver.jar, ojdbc6.jar, spring.jar, commons-logging.jar and log4j.jar for P6 v7.0 & intgserver.jar, commons-primitives-1.0.jar, ojdbc6.jar, quartz-all-1.7.3.jar, spring.jar, commons-logging.jar and log4j.jar for P6 v8.2 should be copied to <WAS_HOME>\lib\ext

      (Typically <WAS_HOME> = "C:\Program Files(x86)\IBM\WebSphere\AppServer")

    WebLogic 12c

    1. Libraries, commons-logging.jar, intgserver.jar, log4j.jar, ojdbc6.jar and spring.jar for P6 v7.0 & commons-logging.jar, commons-primitives-1.0.jar, intgserver.jar, log4j.jar, ojdbc6.jar and spring.jar for P6 v8.2 should be copied to <IFS_HOME>/wls_domain/<instance>/lib.
    2. Restart WebLogic server and managed servers.

     

    There is an  ingserver.jar file shipped with Projx module, but this file will only be used for compilation purpose. For the integration to work in runtime, customers' intgserver.jar file needs to be copied as instructed above. If the manual copying of the intgserver.jar and other libraries are not replaced as above, integration may not work correctly.

 

Step 5: Configuration in IFS Applications

Setting runtime parameters

To finalize the installation, start an IFS Enterprise Explorer and go to Project Management\Integration to External Planning Tools\Integration Setup\Integration Database Setup enter basic date as described bellow.

Column  Description
Setup ID The identity of the setup uses to access the external planning tool. The value in this field is an alphanumerical value which can be manually entered. If left empty, the systems will fill in the value.
External Planning Tool The external planning tool for which the integration setup is valid. The list shows the possible values for this field.
External Planning Tool Database This is the name that you gave in the Oracle connection string or the name given for the SQL Server database depending on whether Oracle or SQL Server database configuration is used, when you configured the database using the Primavera database configuration tool. Alternatively, this can be found in the BREBootStrap.xml file.
External Planning Tool User Id The user identity used to access the external planning tool.
External Planning Tool User Password The password used together with the user ID, to log into the external planning tool when executing the integration. The value entered in this field will be encrypted so that it is not readable.

 

Security

In the IFS Solution Manager, ensure that the activities "OperationManager" and "ProjxManageExtProjects" are granted to the role "PRIMAVERA_INTEGRATION" that is to run the Primavera Integration. These two activities are default created for the permission set "PRIMAVERA_INTEGRATION". If the permission set does not exist after installation it should be created manually (Run projx\database\projx\Security_Primavera_Integration.ins).

To grant this permission set, only add the new Permission Set toward the users that should be allowed access

Step 6: Additional installation options

Setup multiple primavera database instances

It is possible to have multiple primavera databases configured to IFS installation with primavera integration. This enables the possibility of switching to different primavera databases when export/import are performed by end user.

  1. Go to root folder where Primavera is installed
  2. Double click and open admin.cmd
  3. Enter the privileged user and password on logon screen (default is privuser/privuser)
  4. This opens the Primavera Administrator window
  5. In the Tree View tab, Configurations node, go to Database node and setup the multiple database instances that you need
     

Information on how to access these instances through IFS Applications can be found at step 5

FAQ

What Primavera versions are supported?
IFS Application7.5
Primavera v6.2.1 (patch 93225 required)
IFS Application8
P6 V7.0
P6 V8.2
Does Primavera Integration support for Single Sign On?
Yes. Integration supports for SSO in IFS App7.5 and App8. You should install Bug ID 94535 to support that in App75. IFS App7 and App7-PRE don't support for SSO.
What are the authentication modes supported by Integration?
There are two modes supported.
Description: When there are no corresponding field in Primavera for an existing field in IFS, a User Defined Field (UDF) is created. This can at times cause problems and will render the error saying an element of an array can not be null.
Solution: Restarting JBoss will solve this issue.

 

Common errors and solutions
Problem: ORA-20000: operationManager_InitiateImportExport: User MARIO has not been granted access to activity OperationManager
Analysis: Primavera is licensed to access the Primavera Integration API.
Resolution: Verify that the Primavera user to be used for exporting/importing to/from  This can be done in the Primavera Project Management client under Admin\Users licensing.
Problem: ORA-20000: operationManager_InitiateImportExport: Field at index 10 of the field array may not be null
Analysis: A user defined field was created, but the integration can not pick it up properly.
Resolution: Try restarting application server to resolve the issue.
Problem: ORA-20000: operationManager_InitiateImportExport: The session is invalid or has timed out
Analysis: When importing/exporting large projects there is a chance that the extended server timeouts will kill the sessions before the import/export is done.
Resolution: For details about raising the time out settings needed see Primavera time out settings.
Problem: ORA-20000: operationManager_InitiateImportExport: Unable to get database instances.
Analysis: This error normally occurs if the Primavera Integration API version installed is different from the version the IFS part of the integration API expects. You will get this error message if you have installed Primavera 6.2.1.x.x or and try to use core IFS Applications 7.5 which only supports Primavera 6.2.0.0.0. 
Resolution: This can be resolved by following the instructions in the Primavera Integration Installation Guide or by applying patch 93225.