Skip Headers
Oracle® Application Server Adapter for PeopleSoft User's Guide
10g Release 2 (10.1.2)
B14060-02
  Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
Next
Next
 

6 InterConnect Integration Examples

This chapter contains the following examples:

The event and service scenarios shown depend on the following prerequisites and configuration steps:

Prerequisites


See Also:

Oracle Application Server Adapter Installation Guide

Configuration Steps

The examples present all the configuration steps necessary for demonstrating service and event integration with PeopleSoft. The following cross references are given to identify where more information can be obtained.

  1. Configure the OracleAS Adapter for PeopleSoft for services and events. See Chapter 2, "Configuring OracleAS Adapter for PeopleSoft" for more information.

  2. Configure OracleAS Integration InterConnect iStudio for service and event interactions. For more information, see the following service and event steps.

Creating Events

The following example describes how to create events for LOCATION_SYNC.VERSION_1 and how to create a channel and a port.

  1. In the left pane, expand the Adapters node.

    The applications systems supported by Application Explorer appear as nodes based on the adapters that are installed.

    expanded adapter list
    Description of the illustration adapterexpandedpartial.gif

  2. Right-click the PeopleSoft node and select Add Target.

    The Add Target dialog box opens.

    1. In the Name field, type a descriptive name, for example, PsoftTarget.

    2. In the Description field, type a description for the target (optional).

    3. From the Target Type list, select a target type.

      The default value is Application Server.

  3. Click OK.

    The Application Server dialog box opens where you must specify connection information for PeopleSoft and the application server that is hosting PeopleSoft.

  4. Verify your connection parameters. If required, provide the password.

  5. Right-click the target name and select Connect.

    The x icon disappears, indicating that the node is connected.

  6. From the expanded Adapter list, expand the PeopleSoft node, expand Messages, and then select LOCATION_SYNC.VERSION_1.

Creating Events for LOCATION.SYNC.VERSION1

To create events for LOCATION_SYNC.VERSION_1:

Creating Event Port
Description of the illustration location_sync.gif

  1. Right-click the LOCATION_SYNC.VERSION_1 node and select Create Event Port.

    The Create Event Port dialog box opens. Create Event Port
    Description of the illustration location_event_port.gif

    Perform the following steps:

    1. Type a name for the event port and provide a brief description.

    2. From the list, select the required disposition, for example, RMI.

    3. Type the disposition URL.

    4. Type (or browse to) the path containing the DTD directory.

  2. Click OK.

    The port appears under the ports node in the left pane.

    LOCATION_SYNC port
    Description of the illustration location_sync_port.gif

    In the right pane, a table appears that summarizes the information associated with the event port you created. LOCATION_SYNC port detail
    Description of the illustration location_sync_detail.gif

    You can now associate the event port with a channel.

Creating a Channel

To create a channel:

  1. In the left pane, click the Events node.

  2. Expand the PeopleSoft node.

    The ports and channels nodes appear in the left pane.

  3. Right-click Channels and select Add Channel.

    The Add Channel dialog box opens.

    Add Channel dialog box
    Description of the illustration location_add_chann.gif

    Perform the following steps:

    1. Type a name for the channel, for example, TEST_CHANNEL.

    2. Type a brief description.

    3. From the Protocol list, select HTTP Listener.

    4. Select an event port from the list of available ports. To select more than one, hold down the Ctrl key and click the ports.

    5. To transfer the ports to the list of selected ports, click the double right (>>) arrow button.

  4. Click Next.

  5. When the dialog box opens, type the system information as specified in the following table:

    Parameter Description
    Port Port on which to listen for PeopleSoft event data.
    Server port Port on which the host database is listening.
    Synchronization Type Choose from three synchronization options:REQUESTREQUEST_RESPONSEREQUEST_ACK

  6. Click OK.

    The channel appears under the channels node in the left pane.

    An X over the icon indicates that the channel is currently disconnected. You must start the channel to activate your event configuration.

  7. Right-click the channel node and select Start.

    The channel you created becomes active. The X over the icon in the left pane disappears.

    To stop the channel, right-click the connected channel node and select Stop.

PeopleSoft Event Integration

This topic illustrates PeopleSoft event integration. The procedures describe design time and runtime.

OracleAS Integration InterConnect Design Time

The following procedures describe how to start the repository, create a common view, and then define invoked and implemented procedures. Then, it describes how to export PL/SQL code from iStudio.

Starting the Repository

To start the repository, double-click the start.bat file located in the following directory:

OracleAS_home\ora92InterCon\oai\9.0.4\repository\start.bat

Creating a Common View

To create a Common View:

  1. Start Oracle iStudio by double-clicking the start.bat file located in the following directory:

    OracleAS_home\ora92iStudio\oai\9.0.4\istudio\iStudio.bat  
    
    

    iStudio opens.

    iStudio Open dialog box
    Description of the illustration new_proj.gif

  2. Open a project.

  3. Open Common Views and Business Objects.

  4. Create a Business Object called PSFTFL.

    Create Procedure dialog box
    Description of the illustration create_proc.gif

  1. Create a new procedure under PSFTFL and type LOCATION as the procedure name.

  2. Open the DTD generated from Application Explorer and load it.

    The Choose Root Element dialog box opens.

    Description of choose_root_element.gif follows
    Description of the illustration choose_root_element.gif

  3. Select the root element, PS8, for this example.

  4. Click OK.

    Choose Import Type dialog box
    Description of the illustration in_arguments.gif

  5. Select IN arguments as the import type for the request DTD and click OK.

  6. Import the response DTD, select the root element, and click OK.

    The Choose Import Type dialog box opens.

    Choose Import Type dialog box
    Description of the illustration out_argument.gif

  7. Select OUT arguments as the import type for the response DTD and click OK.

  8. To save the new procedure, click Save.

Creating an Invoked Procedure

To create an invoked procedure:

  1. Create a new application called AQAPP.

  2. Right-click Invoked Procedures and select New.

    The Invoke Wizard - Select a Procedure window opens.

    Creating an invoked procedure
    Description of the illustration aq.gif

    Perform the following steps:

    1. From the Message Type list, select AQ.

    2. Expand the PSFTFL business object as the event and select LOCATION.

  3. Click Next.

    The Invoke Wizard - Define Application View window opens.

    Common View
    Description of the illustration common_view.gif

    Perform the following steps:

    1. Click Import.

    2. Select Common View.

  4. Click Next.

  5. Click New to create a mapping between the Common View and the Application View for the IN parameters. Object Copy transformation
    Description of the illustration object_copy.gif

    In this example, the Application View and the Common View have the same structure. All the attributes can be mapped by using ObjectCopy Transformation.

  6. Click Apply and then OK.

    Company Code View
    Description of the illustration custom_trans.gif

  7. Click Finish.

    You have completed defining the application definition for the invoked procedure.

Defining Queues for AQ

You must create and specify a queue for Advance Queuing (AQ):

Specifying Application Queue
Description of the illustration app_queues.gif

  1. To specify the queue in iStudio, select the Deploy tab, Project, Application, AQAPP, Routing, and Application Queues.

  2. Right-click Application Queues and select Edit.

    Queue name
    Description of the illustration queue_name.gif

  3. In the Queue Name column, type the queue name, in this example, xml_raw_ql for PSFTFL LOCATION:IN event, and xml_raw_q2 for PSFTFL LOCATION:OUT event.

  4. To finish, click OK.

  5. To create xml_raw_ql and xml_raw_q2 queues, execute the following SQL under the appropriate schema, in this example, the AQAPP schema.

EXECUTE dbms_aqadm.create_queue_table (queue_table => 'RawMsgs_qtab', queue_payload_type => 'RAW', multiple_consumers => FALSE);
EXECUTE dbms_aqadm.create_queue (queue_name => 'xml_raw_q1', queue_table => 'RawMsgs_qtab');
EXECUTE dbms_aqadm.start_queue (queue_name => 'xml_raw_q1');
EXECUTE dbms_aqadm.create_queue (queue_name => 'xml_raw_q2', queue_table => 'RawMsgs_qtab');
EXECUTE dbms_aqadm.start_queue (queue_name => 'xml_raw_q2');

Implementing the Procedure

To implement the procedure:

  1. Create a new application called PSFTFL, expand the application, right-click Implemented Procedure, and select New.

    Implement Wizard
    Description of the illustration psftfl_proc.gif

  2. From the Message Type list, select Generic.

  3. Select LOCATION under PSFTFL as the procedure.

  4. Click Next.

  5. Open the DTD generated from Application Explorer and load it.

    The Choose Root Element dialog box opens.

    Description of choose_root_element.gif follows
    Description of the illustration choose_root_element.gif

  6. Select the root element, PS8, for this example.

  7. Click OK.

    Choose Import Type dialog box
    Description of the illustration in_arguments.gif

  8. Select IN arguments as the import type for the request DTD and click OK.

  9. In the Name field, type the root element of the request DTD if it is not populated automatically after importing the request DTD.

Editing the adapter.ini File

To edit the adapter.ini file:

  1. Open the adapter.ini file.

  2. Add the following two lines to adapter.ini for the adapter:

  3. // Bridge class
    bridge_class=com.iwaysoftware.iwbridge.IWBridge
    // IBSE URL	
    ibse_url=http://hostname:7777/ibse/IBSEServlet/XDSOAPRouter
    
    

Where hostname is the URL of the server and 7777 is the port number.

Runtime

  1. Start Oracle Application Server or make sure it is running. Restart OC4J if necessary by executing the following command:

    \OracleAS_HOME\opmn\bin\opmnctl  stopproc process-type=home
    \OracleAS_HOME\opmn\bin\opmnctl  startproc process-type=home
    
    
  2. Start the channel in Application Explorer:

    Start Channel option in Application Explorer
    Description of the illustration start_channel.gif

  3. Start both publishing adapter and subscribing adapter by executing the following commands:

    \\OracleAS_Home\integration\interconnect\adapters\AQAPP\start.bat
    \\OracleAS_Home\integration\interconnect\adapters\PSFTFL\start.bat
    
    
  4. Log in to PeopleSoft, select PeopleTools, Integration Broker, and then Node Definitions.

    PeopleTools Nodes Definitions window
    Description of the illustration node_definitions.gif

  5. Type the node name you will be using, for example, EXTERNAL; then click Search.

    Connectors tab
    Description of the illustration node_info.gif

  6. Click the Connectors tab.

    Connectors tab
    Description of the illustration http_target.gif

  7. Enter HTTPTARGET in the Connector ID field; then enter the iBSE listener URL and its port in the PRIMARYURL field.

  8. To save the configuration, click Save.

    PeopleSoft location pane
    Description of the illustration peoplesoft_share.gif

  9. From Menu in the left pane, select Set Up Financials/Supply Chain, Common Definitions, Location, and then Location.

    Location Definition tab
    Description of the illustration location_definition.gif

  10. To find the location record you want to update, click Search; then make the changes and click Save.

    When the change is saved, it triggers an event and sends the event to the BSE listener.

Verifying Results

The following code is an example of the PSFTFL log file:

Tue Nov 09 20:45:18 GMT-05:00 2004: The message was sent to topic(s) {oai_hub_queue=[AQAPP]}. Processing Time = 10,203 ms.
<?xml version = '1.0' encoding = 'UTF-8'?>
<!DOCTYPE MSG>
<MSG>
  <H>
     <BO>PSFTFL</BO>
     <EN>LOCATION_SYNC</EN>
     <EV>OAI/V1</EV>
     <MV>OAI/V1</MV>
     <T>0</T>
     <SN>PSFTFL</SN>
     <SA>PSFTFL</SA>
     <SAID>41</SAID>
     <CI>PSFTFL1100051108265</CI>
  </H>
  <B>
    <AO N = "LOCATION_SYNC_CO">
      <AO N = "LOCATION_SYNC">
        <AO N = "FieldTypes">
          <AO N = "LOCATION_TBL">
            <A N = "class">R</A>
            <AO N = "SETID">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "LOCATION">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "EFFDT">
              <A N = "type">DATE</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "EFF_STATUS">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "DESCR">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "DESCR_AC">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "DESCRSHORT">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "BUILDING">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "FLOOR">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "SECTOR">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "JURISDICTION">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "ATTN_TO">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "COUNTRY">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "ADDRESS1">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "ADDRESS2">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "ADDRESS3">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "ADDRESS4">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "CITY">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "NUM1">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "NUM2">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "HOUSE_TYPE">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "ADDR_FIELD1">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "ADDR_FIELD2">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "ADDR_FIELD3">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "COUNTY">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "STATE">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "POSTAL">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "GEO_CODE">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "IN_CITY_LIMIT">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "COUNTRY_CODE">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "PHONE">
 Transform: CopyFields
             <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "EXTENSION">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "FAX">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "SETID_SALARY">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "SAL_ADMIN_PLAN">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "LANG_CD">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "HOLIDAY_SCHEDULE">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "ESTABID">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "LOCALITY">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "CAN_CMA">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "CAN_OEE_AREACD">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "GEOLOC_CODE">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "OFFICE_TYPE">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "NCR_SW_CAN">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "TBS_OFFICE_CD_CAN">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "WRKS_CNCL_ID_LCL">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "SPK_COMM_ID_GER">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "TARIFF_AREA_GER">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "TARIFF_GER">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "INDUST_INSP_ID_GER">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "NI_REPORT_SW_UK">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "GVT_GEOLOC_CD">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "GVT_DESIG_AGENT">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "SOC_SEC_WRK_CTR">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "MATRICULA_NBR">
              <A N = "type">NUMBER</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "LABEL_FORMAT_ID2">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "LABEL_FORMAT_ID3">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "USG_LBL_FORMAT_ID">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "COMMENTS_2000">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "REG_REGION">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
          </AO>
          <AO N = "PSCAMA">
            <A N = "class">R</A>
            <AO N = "LANGUAGE_CD">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "AUDIT_ACTN">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "BASE_LANGUAGE_CD">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "MSG_SEQ_FLG">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "PROCESS_INSTANCE">
              <A N = "type">NUMBER</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "PUBLISH_RULE_ID">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
            <AO N = "MSGNODENAME">
              <A N = "type">CHAR</A>
              <A N = "PCDATA"></A>
            </AO>
          </AO>
        </AO>
        <AO N = "MsgData">
          <AO N = "Transaction">
            <AO N = "LOCATION_TBL">
              <A N = "class">R</A>
              <AO N = "SETID">
                <A N = "PCDATA">SHARE</A>
              </AO>
              <AO N = "LOCATION">
                <A N = "PCDATA">ACT001x</A>
              </AO>
              <AO N = "EFFDT">
                <A N = "PCDATA">2002-07-26</A>
              </AO>
              <AO N = "EFF_STATUS">
                <A N = "PCDATA">A</A>
              </AO>
              <AO N = "DESCR">
                <A N = "PCDATA">Testing PSoft Runtime - 2</A>
              </AO>
              <AO N = "DESCR_AC">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "DESCRSHORT">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "BUILDING">
                <A N = "PCDATA">2</A>
              </AO>
              <AO N = "FLOOR">
                <A N = "PCDATA">29</A>
              </AO>
              <AO N = "SECTOR">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "JURISDICTION">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "ATTN_TO">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "COUNTRY">
                <A N = "PCDATA">USA</A>
              </AO>
              <AO N = "ADDRESS1">
                <A N = "PCDATA">2 Pennn Plazaa</A>
              </AO>
              <AO N = "ADDRESS2">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "ADDRESS3">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "ADDRESS4">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "CITY">
                <A N = "PCDATA">New York</A>
              </AO>
              <AO N = "NUM1">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "NUM2">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "HOUSE_TYPE">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "ADDR_FIELD1">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "ADDR_FIELD2">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "ADDR_FIELD3">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "COUNTY">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "STATE">
                <A N = "PCDATA">NY</A>
              </AO>
              <AO N = "POSTAL">
                <A N = "PCDATA">10121</A>
              </AO>
              <AO N = "GEO_CODE">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "IN_CITY_LIMIT">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "COUNTRY_CODE">
                <A N = "PCDATA">212</A>
              </AO>
              <AO N = "PHONE">
                <A N = "PCDATA">736-4433</A>
              </AO>
              <AO N = "EXTENSION">
                <A N = "PCDATA">3694</A>
              </AO>
              <AO N = "FAX">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "SETID_SALARY">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "SAL_ADMIN_PLAN">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "LANG_CD">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "HOLIDAY_SCHEDULE">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "ESTABID">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "LOCALITY">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "CAN_CMA">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "CAN_OEE_AREACD">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "GEOLOC_CODE">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "OFFICE_TYPE">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "NCR_SW_CAN">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "TBS_OFFICE_CD_CAN">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "WRKS_CNCL_ID_LCL">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "SPK_COMM_ID_GER">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "TARIFF_AREA_GER">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "TARIFF_GER">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "INDUST_INSP_ID_GER">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "NI_REPORT_SW_UK">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "GVT_GEOLOC_CD">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "GVT_DESIG_AGENT">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "SOC_SEC_WRK_CTR">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "MATRICULA_NBR">
                <A N = "PCDATA">0</A>
              </AO>
              <AO N = "LABEL_FORMAT_ID2">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "LABEL_FORMAT_ID3">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "USG_LBL_FORMAT_ID">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "COMMENTS_2000">
                <A N = "PCDATA"></A>
              </AO>
              <AO N = "REG_REGION">
                <A N = "PCDATA"></A>
              </AO>
            </AO>
          </AO>
        </AO>
      </AO>
    </AO>
  </B>
</MSG>
Tue Nov 09 20:45:18 GMT-05:00 2004: Outbound Transform Engine: beginning to transform message.
Tue Nov 09 20:45:18 GMT-05:00 2004: Outbound Transform Engine: performing transform.

Subscribing Adapter (AQAPP) Console Log

Tue Nov 09 20:45:11 GMT-05:00 2004: AQ Adapter: received the message from the Agent and will now write it to AQ.
Tue Nov 09 20:45:12 GMT-05:00 2004: AQ Adapter: successfully converted the OAI message to XML
<?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?>
<LOCATION_SYNC>
   <FieldTypes>
      <LOCATION_TBL class="R">
         <SETID type="CHAR"></SETID>
         <LOCATION type="CHAR"></LOCATION>
         <EFFDT type="DATE"></EFFDT>
         <EFF_STATUS type="CHAR"></EFF_STATUS>
         <DESCR type="CHAR"></DESCR>
         <DESCR_AC type="CHAR"></DESCR_AC>
         <DESCRSHORT type="CHAR"></DESCRSHORT>
         <BUILDING type="CHAR"></BUILDING>
         <FLOOR type="CHAR"></FLOOR>
         <SECTOR type="CHAR"></SECTOR>
         <JURISDICTION type="CHAR"></JURISDICTION>
         <ATTN_TO type="CHAR"></ATTN_TO>
         <COUNTRY type="CHAR"></COUNTRY>
         <ADDRESS1 type="CHAR"></ADDRESS1>
         <ADDRESS2 type="CHAR"></ADDRESS2>
         <ADDRESS3 type="CHAR"></ADDRESS3>
         <ADDRESS4 type="CHAR"></ADDRESS4>
         <CITY type="CHAR"></CITY>
         <NUM1 type="CHAR"></NUM1>
         <NUM2 type="CHAR"></NUM2>
         <HOUSE_TYPE type="CHAR"></HOUSE_TYPE>
         <ADDR_FIELD1 type="CHAR"></ADDR_FIELD1>
         <ADDR_FIELD2 type="CHAR"></ADDR_FIELD2>
         <ADDR_FIELD3 type="CHAR"></ADDR_FIELD3>
         <COUNTY type="CHAR"></COUNTY>
         <STATE type="CHAR"></STATE>
         <POSTAL type="CHAR"></POSTAL>
         <GEO_CODE type="CHAR"></GEO_CODE>
         <IN_CITY_LIMIT type="CHAR"></IN_CITY_LIMIT>
         <COUNTRY_CODE type="CHAR"></COUNTRY_CODE>
         <PHONE type="CHAR"></PHONE>
         <EXTENSION type="CHAR"></EXTENSION>
         <FAX type="CHAR"></FAX>
         <SETID_SALARY type="CHAR"></SETID_SALARY>
         <SAL_ADMIN_PLAN type="CHAR"></SAL_ADMIN_PLAN>
         <LANG_CD type="CHAR"></LANG_CD>
         <HOLIDAY_SCHEDULE type="CHAR"></HOLIDAY_SCHEDULE>
         <ESTABID type="CHAR"></ESTABID>
         <LOCALITY type="CHAR"></LOCALITY>
         <CAN_CMA type="CHAR"></CAN_CMA>
         <CAN_OEE_AREACD type="CHAR"></CAN_OEE_AREACD>
         <GEOLOC_CODE type="CHAR"></GEOLOC_CODE>
         <OFFICE_TYPE type="CHAR"></OFFICE_TYPE>
         <NCR_SW_CAN type="CHAR"></NCR_SW_CAN>
         <TBS_OFFICE_CD_CAN type="CHAR"></TBS_OFFICE_CD_CAN>
         <WRKS_CNCL_ID_LCL type="CHAR"></WRKS_CNCL_ID_LCL>
         <SPK_COMM_ID_GER type="CHAR"></SPK_COMM_ID_GER>
         <TARIFF_AREA_GER type="CHAR"></TARIFF_AREA_GER>
         <TARIFF_GER type="CHAR"></TARIFF_GER>
         <INDUST_INSP_ID_GER type="CHAR"></INDUST_INSP_ID_GER>
         <NI_REPORT_SW_UK type="CHAR"></NI_REPORT_SW_UK>
         <GVT_GEOLOC_CD type="CHAR"></GVT_GEOLOC_CD>
         <GVT_DESIG_AGENT type="CHAR"></GVT_DESIG_AGENT>
         <SOC_SEC_WRK_CTR type="CHAR"></SOC_SEC_WRK_CTR>
         <MATRICULA_NBR type="NUMBER"></MATRICULA_NBR>
         <LABEL_FORMAT_ID2 type="CHAR"></LABEL_FORMAT_ID2>
         <LABEL_FORMAT_ID3 type="CHAR"></LABEL_FORMAT_ID3>
         <USG_LBL_FORMAT_ID type="CHAR"></USG_LBL_FORMAT_ID>
         <COMMENTS_2000 type="CHAR"></COMMENTS_2000>
         <REG_REGION type="CHAR"></REG_REGION>
      </LOCATION_TBL>
      <PSCAMA class="R">
         <LANGUAGE_CD type="CHAR"></LANGUAGE_CD>
         <AUDIT_ACTN type="CHAR"></AUDIT_ACTN>
         <BASE_LANGUAGE_CD type="CHAR"></BASE_LANGUAGE_CD>
         <MSG_SEQ_FLG type="CHAR"></MSG_SEQ_FLG>
         <PROCESS_INSTANCE type="NUMBER"></PROCESS_INSTANCE>
         <PUBLISH_RULE_ID type="CHAR"></PUBLISH_RULE_ID>
         <MSGNODENAME type="CHAR"></MSGNODENAME>
      </PSCAMA>
   </FieldTypes>
   <MsgData>
      <Transaction>
         <LOCATION_TBL class="R">
            <SETID>SHARE</SETID>
            <LOCATION>ACT001x</LOCATION>
            <EFFDT>2002-07-26</EFFDT>
            <EFF_STATUS>A</EFF_STATUS>
            <DESCR>Testing PSoft Runtime - 2</DESCR>
            <DESCR_AC></DESCR_AC>
            <DESCRSHORT></DESCRSHORT>
            <BUILDING>2</BUILDING>
            <FLOOR>29</FLOOR>
            <SECTOR></SECTOR>
            <JURISDICTION></JURISDICTION>
            <ATTN_TO></ATTN_TO>
            <COUNTRY>USA</COUNTRY>
            <ADDRESS1>2 Pennn Plazaa</ADDRESS1>
            <ADDRESS2></ADDRESS2>
            <ADDRESS3></ADDRESS3>
            <ADDRESS4></ADDRESS4>
            <CITY>New York</CITY>
            <NUM1></NUM1>
            <NUM2></NUM2>
            <HOUSE_TYPE></HOUSE_TYPE>
            <ADDR_FIELD1></ADDR_FIELD1>
            <ADDR_FIELD2></ADDR_FIELD2>
            <ADDR_FIELD3></ADDR_FIELD3>
            <COUNTY></COUNTY>
            <STATE>NY</STATE>
            <POSTAL>10121</POSTAL>
            <GEO_CODE></GEO_CODE>
            <IN_CITY_LIMIT></IN_CITY_LIMIT>
            <COUNTRY_CODE>212</COUNTRY_CODE>
            <PHONE>736-4433</PHONE>
            <EXTENSION>3694</EXTENSION>
            <FAX></FAX>
            <SETID_SALARY></SETID_SALARY>
            <SAL_ADMIN_PLAN></SAL_ADMIN_PLAN>
            <LANG_CD></LANG_CD>
            <HOLIDAY_SCHEDULE></HOLIDAY_SCHEDULE>
            <ESTABID></ESTABID>
            <LOCALITY></LOCALITY>
            <CAN_CMA></CAN_CMA>
            <CAN_OEE_AREACD></CAN_OEE_AREACD>
            <GEOLOC_CODE></GEOLOC_CODE>
            <OFFICE_TYPE></OFFICE_TYPE>
            <NCR_SW_CAN></NCR_SW_CAN>
            <TBS_OFFICE_CD_CAN></TBS_OFFICE_CD_CAN>
            <WRKS_CNCL_ID_LCL></WRKS_CNCL_ID_LCL>
            <SPK_COMM_ID_GER></SPK_COMM_ID_GER>
            <TARIFF_AREA_GER></TARIFF_AREA_GER>
            <TARIFF_GER></TARIFF_GER>
            <INDUST_INSP_ID_GER></INDUST_INSP_ID_GER>
            <NI_REPORT_SW_UK></NI_REPORT_SW_UK>
            <GVT_GEOLOC_CD></GVT_GEOLOC_CD>
            <GVT_DESIG_AGENT></GVT_DESIG_AGENT>
            <SOC_SEC_WRK_CTR></SOC_SEC_WRK_CTR>
            <MATRICULA_NBR>0</MATRICULA_NBR>
            <LABEL_FORMAT_ID2></LABEL_FORMAT_ID2>
            <LABEL_FORMAT_ID3></LABEL_FORMAT_ID3>
            <USG_LBL_FORMAT_ID></USG_LBL_FORMAT_ID>
            <COMMENTS_2000></COMMENTS_2000>
            <REG_REGION></REG_REGION>
         </LOCATION_TBL>
      </Transaction>
   </MsgData>
</LOCATION_SYNC>

PeopleSoft Service Integration

This topic illustrates PeopleSoft service integration. The procedures describe design time and runtime.

OracleAS Integration InterConnect Design Time

The following procedures describe how to start the repository and create a common view and then, define invoked and implemented procedures. Then, it describes how to export PL/SQL code from iStudio.

Starting the Repository

To start the repository, double-click the start.bat file located in the following directory:

OracleAS_home\ora92InterCon\oai\9.0.4\repository\start.bat

Creating a Common View

To create a Common View:

  1. Start Oracle iStudio by double-clicking the start.bat file located in the following directory:

    OracleAS_home\ora92iStudio\oai\9.0.4\istudio\iStudio.bat  
    
    

    iStudio opens.

    iStudio Open dialog box
    Description of the illustration new_proj.gif

  2. Open a project.

  3. Open Common Views and Business Objects.

  4. Create a Business Object called PSFTFL.

    Create Procedure dialog box
    Description of the illustration create_proc.gif

  1. Create a new procedure under PSFTFL and type LOCATION as the procedure name.

  2. Open the DTD generated from Application Explorer and load it.

    The Choose Root Element dialog box opens.

  3. Select the root element, PS8, for this example.

  4. Click OK.

    Choose Import Type dialog box
    Description of the illustration in_arguments.gif

  5. Select IN arguments as the import type for the request DTD and click OK.

  6. Import the response DTD, select the root element, and click OK.

    The Choose Import Type dialog box opens.

    Choose Import Type dialog box
    Description of the illustration out_argument.gif

  7. Select OUT arguments as the import type for the response DTD and click OK.

  8. To save the new procedure, click Save.

Creating an Invoked Procedure

To create an invoked procedure:

  1. Create a new application called AQAPP.

  2. Right-click Invoked Procedures and select New.

    The Invoke Wizard - Select a Procedure window opens.

    Creating an invoked procedure
    Description of the illustration aq.gif

    1. From the Message Type list, select AQ.

    2. Expand the PSFTFL business object as the event and select LOCATION.

  3. Click Next.

    The Invoke Wizard - Define Application View window opens.

    Common View
    Description of the illustration common_view.gif

    Perform the following steps:

    1. Click Import.

    2. Select Common View.

  4. Click Next.

  5. Click New to create a mapping between the Common View and the Application View for the IN parameters. Object Copy transformation
    Description of the illustration object_copy.gif

    In this example, the Application View and the Common View have the same structure. All the attributes can be mapped by using ObjectCopy Transformation.

  6. Click Apply, and then OK.

    Company Code View
    Description of the illustration custom_trans.gif

  7. Click Finish.

    You have completed defining the application definition for the invoked procedure.

Defining Queues for AQ

You must create and specify a queue for Advance Queuing (AQ):

Specifying Application Queue
Description of the illustration app_queues.gif

  1. To specify the queue in iStudio, select the Deploy tab, Project, Application, AQAPP, Routing, and Application Queues.

  2. Right-click Application Queues and select Edit.

    Queue name
    Description of the illustration queue_name.gif

  3. In the Queue Name column, type the queue name, in this example, xml_raw_ql for PSFTFL LOCATION:IN event, and xml_raw_q2 for PSFTFL LOCATION:OUT event.

  4. To finish, click OK.

  5. To create xml_raw_ql and xml_raw_q2 queues, execute the following SQL under the appropriate schema, in this example, the AQAPP schema.

EXECUTE dbms_aqadm.create_queue_table (queue_table => 'RawMsgs_qtab', queue_payload_type => 'RAW', multiple_consumers => FALSE);
EXECUTE dbms_aqadm.create_queue (queue_name => 'xml_raw_q1', queue_table => 'RawMsgs_qtab');
EXECUTE dbms_aqadm.start_queue (queue_name => 'xml_raw_q1');
EXECUTE dbms_aqadm.create_queue (queue_name => 'xml_raw_q2', queue_table => 'RawMsgs_qtab');
EXECUTE dbms_aqadm.start_queue (queue_name => 'xml_raw_q2');

Implementing the Procedure

To implement the procedure:

  1. Create a new application called PSFTFL, expand the application, right-click Implemented Procedure, and select New.

    Implement Wizard
    Description of the illustration psftfl_proc.gif

  2. From the Message Type list, select Generic.

  3. Select LOCATION under PSFTFL as the procedure.

  4. Click Next.

  5. Open the DTD generated from Application Explorer and load it.

    The Choose Root Element dialog box opens.

  6. Select the root element, PS8, for this example.

  7. Click OK.

    Choose Import Type dialog box
    Description of the illustration in_arguments.gif

  8. Select IN arguments as the import type for the request DTD and click OK.

  9. In the Name field, type the root element of the request DTD if it is not populated automatically after importing the request DTD.

    Define Application View dialog box
    Description of the illustration define_app_view.gif

  10. Import the response DTD, select PS8 as the root element, and then click OK.

  11. Select OUT arguments as the Import Type for the response.

    Choose Import Type dialog box
    Description of the illustration out_argument.gif

    You have now imported both request and response DTDs into iStudio.

    Define Application View dialog box
    Description of the illustration import_dtds.gif

  12. To define a mapping between the Application View and the Common View, click Next and then New.

    Mapping Parameters window
    Description of the illustration mapping_parms.gif

    Because the structures are the same, use ObjectCopy transformation for the mapping.

  13. Click Apply and then OK.

  14. Click Next to define the mapping for OUT arguments, using the ObjectCopy transformation.

    Mapping parameters window
    Description of the illustration location_out.gif

  15. To complete the definition of the implemented procedure, click Next and then Finish.

Editing the adapter.ini File

To edit the adapter.ini file:

  1. Open the adapter.ini file.

  2. Add the following two lines to adapter.ini for the adapter:

  3. // Bridge class
    bridge_class=com.iwaysoftware.iwbridge.IWBridge
     
    // IBSE URL	
    ibse_url=http://hostname:7777/ibse/IBSEServlet/XDSOAPRouter
    
    

Where hostname is the URL of the server and 7777 is the port number.

OracleAS Integration InterConnect Runtime

The following topic describes how to verify service integration using OracleAS Adapter for PeopleSoft.

Verifying Service Integration

To verify service integration:

  1. Start Oracle Application Server or ensure that the server is running.

  2. Restart OC4J, if required, by executing the following command:

    \OracleAS_home\opmn\bin\opmnctl  stopproc process-type=home
    \OracleAS_home\opmn\bin\opmnctl  startproc process-type=home
    
    
  3. Check the status of OC4J by executing the following command:

    \OracleAS_home\opmn\bin\opmnctl  status
    
    
  4. Invoke and implement the adapter by executing the following commands:

    \InterConnect_HOME\oai\9.0.4\adapters\PSFTFL\start.bat
    \InterConnect_HOME\oai\9.0.4\adapters\AQAPP\start.bat
    
    
  5. Log on to SQL*Plus with AQAPP, in this example, and execute the following command:

    DECLARE
          enqueue_options     dbms_aq.enqueue_options_t;
          message_properties  dbms_aq.message_properties_t;
          msgid               RAW(16);
          payload             RAW(5000);
    BEGIN
          payload := utl_raw.cast_to_raw('<?xml version="1.0" encoding="UTF-8"?>
    <PS8 SERVICENAME="LOCATION" METHODNAME="LOCATION" LICENSE="test">
    	<component perform="browse">LOCATION</component>
    	<key name="SETID">SHARE</key>
    	<key name="LOCATION">ALBERTA</key>
    </PS8>');
          dbms_aq.enqueue(queue_name         => 'xml_raw_q1',           
                          enqueue_options    => enqueue_options,       
                          message_properties => message_properties,     
                          payload            => payload,               
                          msgid              => msgid);
          COMMIT;
    END;
    /
    
    

    The following image shows the PSFTFL example. It receives a reply from PeopleSoft and returns the reply to the hub.

    PeopleSoft start.bat
    Description of the illustration startbat.gif

    The following image shows the AQ example. It receives a reply from the hub and writes the data to the database table.

    AQ start.bat
    Description of the illustration aq_startbat.gif