Skip Headers
Oracle® Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack
11g Release 1 (11.1.1.4.0)
E17364-02
  Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
 
Next
Next
 

7 Working with Project Lifecycle Workbench Seed Data

This chapter includes the following sections:

7.1 Introducing Project Lifecycle Workbench Seed Data

In Project Lifecycle Workbench, seed data can be categorized into two areas:

You can use the seed data created by your organizations work in Project Lifecycle Workbench to capture and migrate data from one Project Lifecycle Workbench to another.

Oracle delivers BOM and functional decomposition seed data with its Process Integration Pack (PIP) products. You can clone this Oracle-delivered data and modify the projects, adding custom logic and artifacts. Cloning the delivered seed data ensures that subsequent AIA upgrades and patches do not tamper with your customized data.

Once you have cloned the data, you can perform the following types of updates to the data:

With this seed data, you can go through your development cycle, modifying PIP project definitions and composites, generate BOMs, and from the BOMs, generate deployment plans.

For more information about generating deployment plans, see Chapter 8, "Generating Deployment Plans and Deploying Artifacts."

Oracle-delivered seed data can be imported into a Project Lifecycle Workbench instance as a part of the overall PIP installation process, or the data can be imported using a standalone post-installation script, depending on the needs of your implementation.

To determine the phase in which you should import your seed data, consider that deployment plans are only meaningful when the underlying executables, such as composite source code, are available for installation, deployment, and execution. For this reason, determine the phase in which to import seed data by determining when the executable source code will be ready for deployment on the target file system.

For more information about how to load Project Lifecycle Workbench seed data post-installation, see Section 7.4, "How to Import Seed Data"

Figure 7-1 provides a sample usage flow for the import and export of Project Lifecycle Workbench seed data.

Figure 7-1 Sample Usage Flow for Import and Export of Project Lifecycle Workbench Seed Data

This image is described in surrounding text

Project Lifecycle Workbench does not capture non-native artifacts. Deployment of Oracle-delivered non-native artifacts can be manually specified using SupplementaryDP.xml. Deployment of custom non-native artifacts can be manually specified using CustomSupplementaryDP.xml.

For more information about how to deploy non-native artifacts using SupplementaryDP.xml and CustomSupplementaryDP.xml, see Section 8.2.2, "Extending Non-Native Artifacts."

The Project Lifecycle Workbench seed data schema is provided in Example 7-1.

Example 7-1 Project Lifecycle Workbench Seed Data Schema

<?xml version="1.0" encoding="windows-1252"?>
<!-- edited with XMLSpy v2006 rel. 3 sp2 (http://www.altova.com) by Siebel Systems (Siebel 
Systems) -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://xml.oracle.com
 /AIA/PLWBOM/V1" targetNamespace="http://xml.oracle.com/AIA/PLWBOM/V1" 
 elementFormDefault="qualified">
   <xsd:element name="PLW">
      <xsd:complexType>
         <xsd:sequence>
            <xsd:element name="Process">
               <xsd:annotation>
                  <xsd:documentation>Project LifeCycle WorkBench Seed Data 
                    Schema</xsd:documentation>
               </xsd:annotation>
               <xsd:complexType>
                  <xsd:sequence>
                     <xsd:element name="ProcessDetail" type="ProcessType"/>
                     <xsd:element name="ProcessUuid" type="xsd:string"/>
                     <xsd:element name="ParentProcessUuid" type="xsd:string"/>
                     <xsd:element name="Task" minOccurs="0" maxOccurs="unbounded">
                        <xsd:complexType>
                           <xsd:sequence>
                              <xsd:element name="TaskDetail" type="TaskType"/>
                              <xsd:element name="Scope" type="xsd:string"/>
                              <xsd:element name="SvccompId" type="xsd:string" minOccurs="0" 
                               maxOccurs="unbounded"/>
                           </xsd:sequence>
                        </xsd:complexType>
                     </xsd:element>
                     <xsd:element name="ProcessBom" minOccurs="0">
                        <xsd:complexType>
                           <xsd:sequence>
                              <xsd:element name="ProcessBomDetail" type="ProcessType"/>
                              <xsd:element name="BomStatus" type="xsd:string"/>
                              <xsd:element name="TaskBom" minOccurs="0" maxOccurs="unbounded">
                                 <xsd:complexType>
                                    <xsd:sequence>
                                       <xsd:element name="TaskBomDetail" type="TaskType"/>
                                       <xsd:element name="TaskBomSource" type="xsd:string"/>
                                       <xsd:element name="SvccompBomId" type="xsd:string" 
                                        minOccurs="0" maxOccurs="unbounded"/>
                                    </xsd:sequence>
                                 </xsd:complexType>
                              </xsd:element>
                           </xsd:sequence>
                        </xsd:complexType>
                     </xsd:element>
                     <xsd:element name="SvccompBom" minOccurs="0" maxOccurs="unbounded">
                        <xsd:complexType>
                           <xsd:sequence>
                              <xsd:element name="SvccompBomDetail" type="SvccompType"/>
                              <xsd:element name="SvccompBomId" type="xsd:string"/>
                              <xsd:element name="CompositeId" type="xsd:string"/>
                           </xsd:sequence>
                        </xsd:complexType>
                     </xsd:element>
                  </xsd:sequence>
               </xsd:complexType>
            </xsd:element>
            <xsd:element name="Svccomp" minOccurs="0" maxOccurs="unbounded">
               <xsd:complexType>
                  <xsd:sequence>
                     <xsd:element name="SvccompDetail" type="SvccompType"/>
                     <xsd:element name="ReusedServiceObjectType" type="xsd:string"
                    minOccurs="0"/>
                     <xsd:element name="ReusedServiceObjectID" type="xsd:string"
                    minOccurs="0"/>
                  </xsd:sequence>
               </xsd:complexType>
            </xsd:element>
            <xsd:element name="Composite" minOccurs="0" maxOccurs="unbounded">
               <xsd:complexType>
                  <xsd:sequence>
                     <xsd:element name="CompositeDetail">
                        <xsd:complexType>
                           <xsd:complexContent>
                              <xsd:extension base="CompositeType"/>
                           </xsd:complexContent>
                        </xsd:complexType>
                     </xsd:element>
                     <xsd:element name="CompositeXML" type="xsd:hexBinary" minOccurs="0"/>
                     <xsd:element name="CompositeRevID" type="xsd:hexBinary" minOccurs="0"/>
                     <xsd:element name="CompositeServiceElem" minOccurs="0" 
                      maxOccurs="unbounded">
                        <xsd:complexType>
                           <xsd:sequence>
                              <xsd:element name="ServiceElementID" type="xsd:string"/>
                              <xsd:element name="CompositeServiceType" type="xsd:string"/>
                              <xsd:element name="CompositeServiceName" type="xsd:string"/>
                              <xsd:element name="ServiceElementXML" type="xsd:hexBinary"/>
                              <xsd:element name="Audit" type="CommonAuditType"/>
                              <xsd:element name="DeployAttributeValue" 
                               type="DeployAttributeValueType" minOccurs="0" 
                               maxOccurs="unbounded"/>
                           </xsd:sequence>
                        </xsd:complexType>
                     </xsd:element>
                     <xsd:element name="DeployAttributeValue" type="DeployAttributeValueType" 
                      minOccurs="0" maxOccurs="unbounded"/>
                  </xsd:sequence>
               </xsd:complexType>
            </xsd:element>
            <xsd:element name="ServiceElement" minOccurs="0" maxOccurs="unbounded">
               <xsd:complexType>
                  <xsd:sequence>
                     <xsd:element name="ServiceElementDetail" type="ServiceElementType"/>
                  </xsd:sequence>
               </xsd:complexType>
            </xsd:element>
         </xsd:sequence>
   <xsd:attribute name="processCode"/>
   <xsd:attribute name="version"/>
   <xsd:attribute name="createDate"/>
   <xsd:attribute name="uuid"/>
  </xsd:complexType>
   </xsd:element>
   <xsd:complexType name="CommonAuditType">
      <xsd:sequence>
         <xsd:element name="CreatedBy" type="xsd:string"/>
         <xsd:element name="CreationDate" type="xsd:string"/>
         <xsd:element name="LastUpdatedBy"/>
         <xsd:element name="LastUpdateDate"/>
         <xsd:element name="ObjectVersionNumber"/>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="ProcessType">
      <xsd:sequence>
         <xsd:element name="ProcessName" type="xsd:string"/>
         <xsd:element name="ProcessDesc" type="xsd:hexBinary"/>
         <xsd:element name="ProcessAssumption" type="xsd:hexBinary"/>
         <xsd:element name="ProcessSource" type="xsd:string"/>
         <xsd:element name="ProcessIndustry" type="xsd:string"/>
         <xsd:element name="ProcessCode" type="xsd:string"/>
         <xsd:element name="ProcessType" type="xsd:string"/>
         <xsd:element name="Status" type="xsd:string"/>
         <xsd:element name="Version" type="xsd:string"/>
         <xsd:element name="Audit" type="CommonAuditType"/>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="TaskType">
      <xsd:sequence>
         <xsd:element name="TaskID" type="xsd:string"/>
         <xsd:element name="TaskName" type="xsd:string"/>
         <xsd:element name="TaskDesc" type="xsd:hexBinary"/>
         <xsd:element name="TaskUuid" type="xsd:string"/>
         <xsd:element name="Audit" type="CommonAuditType"/>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="SvccompType">
      <xsd:sequence>
         <xsd:element name="SvccompID" type="xsd:string"/>
         <xsd:element name="SvccompType" type="xsd:string"/>
         <xsd:element name="SvccompName" type="xsd:string"/>
         <xsd:element name="SvccompDesc" type="xsd:hexBinary"/>
         <xsd:element name="SvccompAssumption" type="xsd:hexBinary"/>
         <xsd:element name="ProductPillar" type="xsd:string"/>
         <xsd:element name="ProductFamily" type="xsd:string"/>
         <xsd:element name="ProductCode" type="xsd:string"/>
         <xsd:element name="SvccompGUID" type="xsd:string"/>
         <xsd:element name="Audit" type="CommonAuditType"/>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="CompositeType">
      <xsd:sequence>
         <xsd:element name="CompositeID" type="xsd:string"/>
         <xsd:element name="CompositeName" type="xsd:string"/>
         <xsd:element name="Source" type="xsd:string"/>
         <xsd:element name="Audit" type="CommonAuditType"/>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="ServiceElementType">
      <xsd:sequence>
         <xsd:element name="ServiceElementID" type="xsd:string"/>
         <xsd:element name="ServiceElementType" type="xsd:string"/>
         <xsd:element name="ServiceName" type="xsd:string"/>
         <xsd:element name="OperationName" type="xsd:string"/>
         <xsd:element name="Namespace" type="xsd:string"/>
         <xsd:element name="ProductPillar" type="xsd:string"/>
         <xsd:element name="ProductFamily" type="xsd:string"/>
         <xsd:element name="ProductCode" type="xsd:string"/>
         <xsd:element name="Audit" type="CommonAuditType"/>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="DeployAttributeValueType">
      <xsd:sequence>
         <xsd:element name="GroupNumber" type="xsd:string"/>
         <xsd:element name="DeployAttributeValue" type="xsd:string"/>
         <xsd:element name="DeployAttributeCode" type="xsd:string"/>
         <xsd:element name="Audit" type="CommonAuditType"/>
      </xsd:sequence>
   </xsd:complexType>
</xsd:schema>

7.2 How to Set Up an Environment to Export or Import Seed Data for the First Time

Objective

Perform set up tasks to enable the export and import of Project Lifecycle Workbench seed data. Perform this procedure for each separate environment, whether it is being exported from or imported to. Perform this procedure only once for each environment, prior to the first time the environment will be accessed for export and import.

Prerequisites and Recommendations

None

Actor

To set up a Linux environment to export or import seed data for the first time:

  1. Start a server session.

  2. Navigate to aiaenv.sh located in $AIA_INSTANCE/bin/aiaenv.sh.

  3. At the command prompt, execute source aiaenv.sh.

To set up a Windows environment to export or import seed data for the first time:

  1. Access a command prompt.

  2. Access the drive on which AIAHome is installed.

  3. Navigate to aiaenv.bat located in <AIA_HOME>\aia_instances\AB\bin.

  4. At the command prompt, run aiaenv.bat.

7.3 How to Export Seed Data

Objective

Export Project Lifecycle Workbench seed data.

Prerequisites

Complete the steps covered in Section 7.2, "How to Set Up an Environment to Export or Import Seed Data for the First Time".

Actors

To export Project Lifecycle Workbench seed data:

  1. Access a command window on the server from which you want to export seed data.

  2. Navigate to the $AIA_HOME/Infrastructure/LifeCycle/PLWImExport folder.

  3. Run PLWExport to perform the seed data export. Output files are saved to the PLWImExport folder. One output XML file is generated per project.

PLWExport provides a set of export commands, as discussed in Table 7-1.

Table 7-1 PLWExport Commands

Command Description

-p <project code>

You must provide -p or -u in the PLWExport command.

-v <version>

For optional use with -p.

If a version is not specified and there are multiple projects with the same project code, but different versions, the projects are displayed.

If a version is not specified and there is only one project that matches the project code criteria, the seed data for the project is exported.

-u <UUID value>

You must provide -u or -p in the PLWExport command.

A UUID value is assigned to a Project Lifecycle Workbench project as the Project Unique ID value upon saving the project for the first time. The ID displays on the Add Project page and Update Project page and is stored in the AIA_OER_PROCESSES table.

For more information about the project unique ID value as it displays in the Project Lifecycle Workbench UI, see Section 3.3, "Working with Project Lifecycle Workbench Projects."

-s (scope)

Use as follows:

  • -s all

    Exports BOM and functional decomposition data.

  • -s fd

    Export functional decomposition data only.

If not specified, PLWExport will use -s all.

To export BOM data, you must also export functional decomposition data, -s all. You cannot export only BOM data.

-o <output file name>

If not specified, PLWExport will use a file name of <project code>_<UUID>.xml.



Caution:

If a project is exported with no -o command, and then is exported again with no -o command, the export file generated by the first export will be overwritten by the export file generated by the subsequent export.

Following are sets of sample commands for performing exports using a variety of export criteria.

Export BOM and functional decomposition data by project code and version to a named output file:

Export functional decomposition data by project code and version to a named output file:

Export BOM and functional decomposition data by project code to a named output file:

Export functional decomposition data by project code to a named output file:

Export BOM and functional decomposition data by UUID to a named output file:

Export functional decomposition data by UUID to a named output file:

7.4 How to Import Seed Data

Objective

Import Project Lifecycle Workbench seed data.

Prerequisites

Actors

To import Project Lifecycle Workbench seed data:

  1. Access a command window on the server into which you want to import seed data.

  2. Navigate to the PLWImExport folder: $AIA_HOME/Infrastructure/LifeCycle/PLWImExport.

  3. Run PLWImport to perform the seed data import.

    PLWImport provides a set of import commands, as discussed in Table 7-2.

    Table 7-2 PLWImport Commands

    Command Description

    -f <file name or file path>

    Use to import a single file.

    If you provide a file name, PLWImport will look for the file name in the directory from which the PLWImport was invoked and will attempt to perform the import.

    For example, in Linux: ./PLWImport.sh -f import1.xml

    If you provide a file path, PLWImport will look for the file name in that specified directory and will attempt to perform the import.

    You can provide a full file path that provides a path to the file from the root of the file system.

    For example, in Linux: ./PLWImport.sh -f /home/user/plw/data/import1.xml

    You can provide a relative file path that provides a path to the file relative to the directory from which PLWImport was invoked.

    For example, in Linux: ./PLWImport.sh -f data/import1.xml

    -d <directory path>

    Use to import multiple files stored in a directory.

    If you provide a directory path, PLWImport will look for the specified directory and attempt to perform imports using all files in the directory.

    You can provide a full directory path that provides a directory path from the root of the file system.

    For example, in Linux: ./PLWImport.sh -d /home/user/plw/data/batch

    You can provide a relative directory path that provides a directory path relative to the directory from which PLWImport was invoked.

    For example, in Linux: ./PLWImport.sh -d data/batch or ./PLWImport.sh -d batch


    You must provide -f or -d in the PLWImport command. If you do not specify -f or -d, PLWImport displays an error message.

    The -f and -d commands are mutually exclusive, meaning they cannot be used together.

  4. All imported seed data includes associated UUIDs.

    If a UUID associated with imported data already exists in the target Project Lifecycle Workbench instance, the PLWImport updates data associated with the existing UUID.

    If the UUID is unique in the target instance, PLWImport inserts a record for the new UUID.

  5. The results of the import are stored in the plwimporter.log file located in the PLWImExport folder.

  6. Once the PLWImport script has run successfully, verify that the imported data is accessible in Project Lifecycle Workbench.

    For more information about Project Lifecycle Workbench, see Section 3.3, "Working with Project Lifecycle Workbench Projects."