Skip Headers

Agile Product Lifecycle Management SDK Developer Guide - Using APIs Release 9.3.3 E39307-01 |
| Contents

Previous | Next |

# 1 Introduction

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 Agile PLM Extension 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.htm`. 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)

- Apache Axis library (axis.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

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.

Application Server | Operating System | Required Java Version for Agile API clients
--- | --- | ---
Oracle Application Server 10g | Windows 2003 | Sun JRE 1.5.0
Oracle WebLogic Server 10.3 | Windows 2003 | Sun JRE 1.6

### 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 as shown below: 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

NoteFor 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:

Important: Do not include the axis.jar file and AgileAPI.jar file in the same classpath. The SDK classpath does not support this setting and the SDK will not function properly.

- AgileAPI.jar - Agile API library, which contains Agile API classes and interfaces

- axis.jar - An Oracle-modified version of the Apache Axis library required for Web service Clients

- pxapi.jar - PX API library, which 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 working properly. In particular, make sure the HTTP ports for your application server are set correctly. 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 | IProgram
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.