Go to primary content
Agile Product Lifecycle Management SDK Developer Guide - Using APIs
Release 9.3.4
E52162-05
  Go To Table Of Contents
Contents

Previous
Previous
 
Next
Next
 

1 Introduction

This chapter includes the following:

1.1 About this Guide

Oracle's Agile Software Development Kit (SDK) is a collection of Java application programming interfaces (APIs), sample applications, and documentation that enable building custom applications to access, or extend the functionalities of the Agile Application Server. Using the SDK, you can create programs that extend the functionality of the Agile product lifecycle management system (PLM) and can perform tasks against the PLM system.

The SDK enables the following operations:

  • Integrate the Agile PLM system with enterprise resource planning (ERP) applications or other custom applications

  • Develop applications to process product data

  • Perform batch operations against the Agile Application Server

  • Extend the functionality of the Agile PLM system

The SDK Developer Guide is published in the following two books:

  • SDK Developer Guide - Using Agile APIs - This component of the SDK Developer Guide provides information to develop batch operations against the PLM Server, integrate the PLM with other application, and process PLM data. This information is described and documented in this book.

  • SDK Developer Guide - Developing Extensions - This component of the SDK Developer Guide provides background and procedural information to create additional PLM clients (extend Agile PLM functionalities) and work with PLM Frameworks. This information is described and documented in the SDK Developer Guide - Developing PLM Extensions.

1.1.1 Agile PLM Extensions Framework

This component of the SDK Developer Guide provides referential and procedural information to get you started with the APIs and use the APIs to develop applications that programmatically perform batch operations against the Agile Application Server to execute tasks such as:

  • Querying PLM databases

  • Loading data into PLM databases

  • Working with Tables, Data Cells, and Folders

  • Importing and exporting data to and from Agile PLM

  • Processing product data

  • Interacting with PLM modules such as Product Cost Management, Product Portfolio Management, and other modules

  • Managing workflow

  • Managing and tracking quality

  • Managing Reference objects

  • Performing administrative functions

1.2 SDK Components

The Agile SDK has the following Client-side and Sever-side components:

1.2.1 Client-Side Components

The contents of the Agile SDK Client-side components are:

1.2.1.1 Documentation

  • SDK Developer Guide (this manual)

  • API Reference files (these are the Javadoc generated HTML files that document the API methods)

  • Sample applications


Note:

The API HTML reference files and Sample applications are in the SDK_samples.zip folder. You can find this folder at http://www.oracle.com/technetwork/indexes/samplecode/agileplm-sample-520945.html. For more information and procedures to access its contents, contact your system administrator, or refer to your PLM installation guide.

1.2.1.2 Installation

  • Agile API library (AgileAPI.jar)

  • Java Process Extensions API library (pxapi.jar)

1.2.2 Server-Side Components

Oracle's Agile Application Server contains the following SDK server-side components:

  • Agile API implementation classes

  • Java and Scripting process extensions framework

  • Web service extensions frameworks

1.3 SDK Architecture

The SDK facilitates developing different types of programs to connect to the Agile Application Server. If you are using only the Agile APIs, these programs connect directly to the server. For information to develop these types of programs, refer to SDK Developer Guide - Using Agile APIs.

If you are using WSX to develop Web service extensions, you can deploy the Web services inside the Agile Application Server container. The Web server used for WSX is accessible from inside or outside the company's demilitarized computing zone (DMZ) or perimeter network. Information for developing Web service extensions is provided in this document.

When the Agile PLM Client initiates a custom action, it either runs a program that is deployed on the server, or connects to an external resource such as a URL. WSX, Java PX and Script PX extensions can also use the Agile APIs. You can develop extensions using APIs that are not provided by Agile. This information is also provided in this document.

Figure 1-1 Agile SDK architecture

Surrounding text describes Figure 1-1 .

Note:

Agile API programs connect to the Agile Application Server using non-secure means. Consequently, it is recommended that you run the Agile API programs only from within the corporate firewall. Web service Clients, however, can connect to the server through the corporate firewall using standard HTTP(S) technology.

1.4 System Requirements

For Agile SDK system requirements, refer to PLM Capacity Planning and Deployment Guide.

1.5 Java Requirements

The Agile API must be compatible with the version of Java that the application server supports. To avoid problems, an Agile API Client must use the same version of Java that the connecting application server is using. Oracle Application Server 10g must use Sun Java Runtime Environment (JRE) 1.5.0_06 and Oracle WebLogic Server 10.3 must use Sun Java Runtime Environment (JRE) 1.6 for interoperability and 2007 Daylight Saving Time compliance.


Important:

SDK code running under JRE 7 cannot connect to a Proxy URL protected by SSO. To establish this connection, you must directly connect your SDK code to server nodes with actual Weblogic ports, or setup a second proxy that is not protected by SSO.

The following table lists the recommended Java Runtime Environment (JRE) to use with Agile API Clients on different application servers that Agile PLM supports.

Table 1-1 Java version requirements

Application Server Required Java Version

Fusion Middleware Infrastructure 12.1.3 (includes WebLogic Server 12.1.3)

Oracle Java JDK 1.7.0 update 55 or later (64-bit only) on the server.


1.5.1 JVM Parameters for Preventing Out of Memory Exceptions

To prevent out of memory errors, add the following Java Virtual Memory (JVM) parameter options in the indicated locations.


Note:

This workaround is only applicable to single-threaded SDK programs.

  • If the Client is a standalone SDK Client, add the JVM option:
    java -Ddisable.agile.sessionID.generation=true pk.sample

  • If the Client is a PX and out of memory occurs in Agile Server, add the JVM option in <OAS_HOME>/opmn/conf/opmn.xml.

    <category id="start-parameters"><data id="java-options" value="-Xrs -server -XX:MaxPermSize=256M -ms1280M -mx1280M -XX:NewSize=256M -XX:MaxNewSize=256M -XX:AppendRatio=3 -Doracle.xdkjava.compatibility.version=10.1.0 -Djava.security.policy=$ORACLE_HOME/j2ee/home/config/java2.policy -Dagile.log.dir=$ORACLE_HOME/j2ee/home/log -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9899 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.awt.headless=true -Dhttp.webdir.enable=false -Duser.timezone=GMT -Ddisable.agile.sessionID.generation=true"/><data id="oc4j-options" value="-verbosity 10 -userThreads"/>       </category>
    
  • If the Client is a URL PX, add the following JVM option in the Server Start up (This is similar to catalina.bat in Tomcat.)
    -Ddisable.agile.sessionID.generation=true


Note:

For more information about URL Process Extensions, or URL PXs, including how to set the Cookie Expiration Properties for URL PXs, refer to SDK Developer Guide - Developing PLM Extensions.

1.6 Agile SDK Installation Folders

The Agile SDK files use the following folder structure on your computer:

lib - The \agile_home\integration\sdk\lib folder contains the following libraries:



  • AgileAPI.jar - Agile API library. This file contains Agile API classes and interfaces.

  • pxapi.jar - PX API library.This file contains interfaces used to develop custom autonumber sources and custom actions.

1.7 Checking Your Agile PLM System

Before trying to run the Agile SDK Clients on your Agile PLM system, make sure the system is configured and is working properly. In particular, make sure the HTTP ports for your application server are set correctly. To this end, type the following URL (the test URL) in your browser, and

For example, if the server is running in a Windows environment, to start and test the Agile PLM Application Server connection do as follows:

To start and test the Agile PLM Application Server connection do as follows:

  1. From Windows command line, select Start > All Programs > Agile > Agile PLM > Start Agile Server.

    A command window may appear and this window must remain open but you can minimize it.

  2. Wait until the following message "Agile PLM Server Starting Up" appears in the command window or application server log file before connecting:

  3. Open your browser and use the following URL to test the Agile Web client setup:

    http://application_server_hostname:port/virtual_path/PLMServlet


    Note:

    The URL is case-sensitive.

  4. When the login window appears, type the username and password.

    You can log in with the built-in Administrator account by typing admin for the user and the password you supplied as the password for the admin user in the password management screen during installation.The first time you log in to the application, it may take a while to load the information. For more information, refer to the Agile PLM Installation Guide.

1.8 Agile PLM Business Objects

With any enterprise software system, you work with business objects to manage the company's data. The following table lists the Agile PLM business objects and their related Agile API interfaces.

Object Related Agile API Interface
Changes IChange
Customers ICustomer
Declarations IDeclaration
Design IDesign
Discussions IDiscussion
File Folders IFileFolder
Items IItem
Manufacturer parts IManufacturerPart
Manufacturers IManufacturer
Packages IPackage
Part Groups (Commodity or Part Family) ICommodity
Prices IPrice
Product Service Request IServiceRequest
Projects IPrograms
Sourcing Project IProject
Quality Change Request IQualityChangeRequest
Reports IProductReport
Requests for Quote (RFQ) IRequestForQuote
RFQ Responses ISupplierResponse*
Sites IManufacturingSite
Specifications ISpecification
Substances ISubstance
Suppliers ISupplier
Transfer Order ITransferOrder
User Groups IUserGroup
Users IUser

* Agile does not support the API interfaces in the current release of the software.

The business objects that you can view and actions that you can perform on these objects are determined by the server components installed on your Agile Application Server and the assigned privilege roles to that are assigned to your user account. Privilege levels can vary from field to field. In addition to Users and User Groups, Agile PLM administrators work with administrative objects, such as administrative nodes and Agile PLM classes.


Note:

Not all Agile PLM business objects are exposed in the Agile API. For example, some Report objects are not accessible via the Agile API.