Agile Product Lifecycle Management SDK Developer Guide - Using APIs Release 9.3.3 E39307-02 |
|
![]() Previous |
![]() Next |
This chapter includes the following:
About this Guide
Agile PLM Extension Framework
SDK Components
SDK Architecture
System Requirements
Java Requirements
Agile SDK Installation Folders
Checking Your Agile PLM System
Agile PLM Business Objects
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.
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
The Agile SDK has the following Client-side and Sever-side components:
The contents of the Agile SDK Client-side components are:
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 athttp://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. |
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.
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. |
For Agile SDK system requirements, refer to PLM Capacity Planning and Deployment Guide.
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 |
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. |
The Agile SDK files use the following folder structure on your computer:
lib
- The \agile_home\integration\sdk\lib folder contains the following libraries:
Note: 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. This contains Agile API classes and interfaces.
axis.jar
- An Oracle-modified version of the Apache Axis library. This is required for Web service Clients.
pxapi.jar - PX API library.This contains interfaces used to develop custom autonumber sources and custom actions.
pxapi.jar
- PX API library, which.
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.
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. |