34 Oracle ECM Application Adapters

This chapter describes issues associated with Oracle application adapters for ECM. It includes the following topics:

34.1 General Issues and Workarounds

With this release, the Oracle E-Business Suite and Oracle PeopleSoft adapters are described in the Oracle Fusion Middleware Administrator's Guide for Oracle Application Adapters for Oracle Enterprise Content Management instead of in separate guides.

34.2 Configuration Issues and Workarounds

This section describes configuration issues and their workarounds. It includes the following topics:

34.2.1 Enabling Folders_g Component With Managed Attachments Solution May Override Solution Deletion Settings

(This item applies to the Oracle E-Business Suite and Oracle PeopleSoft application adapters.)

The Folders_g component by default sets a variable called AuthorDelete=true, which allows users without delete privileges on a security group to delete documents if they are the author. If using the Folders_g Oracle UCM component with the Managed Attachments solution, be aware that this variable's setting may override Managed Attachments dPrivilege or AppAdapterGrantPrivilege deletion settings.

34.2.2 Adapter Can Target Single Conversation With Multiple Instances of Oracle E-Business Suite Screen Displayed

A new feature has been added to the Oracle E-Business Suite adapter that allows administrators to target the same instance/conversation when multiple instances of a particular Oracle E-Business Suite screen are displayed. This feature is enabled through a new configuration parameter called AXF_MULTINSTANCE in the AXF_PROPERTIES table.

  • If AXF_MULTINSTANCE is set to TRUE, each Oracle E-Business Suite window is treated as a separate conversation and a separate Oracle I/PM or AXF window is targeted.

  • If AXF_MULTINSTANCE is set to FALSE (default), each Oracle E-Business Suite instance window is treated as the same conversation and uses the same Oracle I/PM or AXF target window.

34.2.3 Can Hide the Bottom Panel in the Task Viewer

(This item applies to the Oracle E-Business Suite and Oracle PeopleSoft application adapters.)

If your imaging solution does not utilize the bottom panel on the Task Viewer, you can disable it in the AXF solution. For example, for an invoice processing solution, you may want to hide the bottom panel displaying General Ledger lines. Hiding the panel increases performance speed and screen space.

Follow these steps to hide the bottom panel:

  1. Using a tool such as Oracle SQL Developer, open a connection to the AXF database.

  2. Run the following query, and note the BLOCK_IDs in use for the bottom panel:

    SELECT BLOCK_ID FROM AXF_METADATA_BLOCKS WHERE BLOCK_LOCATION = 'BOTTOM_PANEL'

  3. Run the following command to delete lines from the AXF_METADATA_ATTRIBUTES table, replacing BLOCK_ID with the ID you identified in step 2:

    DELETE FROM AXF_METADATA_ATTRIBUTES where BLOCK_ID = BLOCK_ID;insert BLOCK_ID from previous step;

  4. Run the following command to delete lines from the AXF_METADATA_BLOCKS table.

    DELETE FROM AXF_METADATA_BLOCKS WHERE BLOCK_LOCATION = 'BOTTOM_PANEL'

  5. Click the Clear Configuration Cache button on the driver page.

34.2.4 Enhancement Allows Authenticated Oracle WebLogic Server User to Perform Tasks Rather Than User Passed From LOB Application

(This item applies to the Oracle E-Business Suite and Oracle PeopleSoft application adapters.)

A new parameter in the AXF_SOLUTION_ATTRIBUTES table, USERNAME_PASS_THROUGH, allows the authenticated Oracle WebLogic Server user to perform tasks, such as BPEL tasks, rather than the user passed from Oracle E-Business Suite or Oracle PeopleSoft. This allows you to use different user stores for Oracle E-Business Suite/Oracle PeopleSoft and the Oracle WebLogic Server.

The AXF_SOLUTION_ATTRIBUTES table configuration is shown in Table 34-1.

Table 34-1 AXF_SOLUTION_ATTRIBUTES Table, USERNAME_PASS_THROUGH Configuration

SOLUTION_NAMESPACE PARAMETER_KEY PARAMETER_VALUE

AXF

USERNAME_PASS_THROUGH

TRUE or FALSE


where:

  • FALSE (default): Uses the authenticated Oracle WebLogic Server user to perform tasks.

  • TRUE: Uses the passed-in user from Oracle E-Business Suite or Oracle PeopleSoft to perform tasks.

Note:

For Managed Attachments configurations, the USERNAME_PASS_THROUGH parameter should be set to TRUE.

Note:

After changing the value of USERNAME_PASS_THROUGH in the database, stop and start the Oracle I/PM imaging application in the Oracle WebLogic Server Administration Console.

34.2.5 Number of Tasks Displayed in Task List Now Configurable

(This item applies to the Oracle E-Business Suite and Oracle PeopleSoft application adapters.)

A new parameter in the AXF_SOLUTION_ATTRIBUTES table, TASKLIST_RANGESIZE, enables you to configure the number of tasks to return in the Task List. For example, you might change the number from 25 (default) to 10 tasks.

The AXF_SOLUTION_ATTRIBUTES table configuration is shown in Table 34-2, where the PARAMETER_VALUE sets the number of tasks to return:

Table 34-2 AXF_SOLUTION_ATTRIBUTES Table, TASKIT_RANGESIZE Configuration

SOLUTION_NAMESPACE PARAMETER_KEY PARAMETER_VALUE

AXF

TASKLIST_RANGESIZE

10


34.2.6 Siebel Adapter: AllowContentServerInAnyDomains Setting Resolves Login Issue

To avoid an issue with the Siebel Adapter for Oracle UCM, in which the Oracle UCM login page displays in the Siebel page instead of the iFrame, add the following entry to the Oracle UCM Config.cfg file:

AllowContentServerInAnyDomains=1

Note:

Be aware that setting the AllowContentServerInAnyDomains variable to 1 allows Oracle UCM pages to be opened in iFrames, which could pose a potential security issue.

34.3 Documentation Errata

This section describes documentation errata. It includes the following topics:

34.3.1 Adapter Localization

(This item applies to the Oracle E-Business Suite and Oracle PeopleSoft application adapters.)

The Oracle Fusion Middleware Administrator's Guide for Oracle Application Adapters for Oracle Enterprise Content Management incorrectly states that the adapter is localized for English only.

Note:

Supported configuration and certification information is available at:

http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html

34.3.2 SOAP Security Required for the Oracle E-Business Suite Adapter

The section on securing communications through SOAP security in the Oracle Fusion Middleware Administrator's Guide for Oracle Application Adapters for Oracle Enterprise Content Management should include the following information:

  • Configuring SOAP security is required.

  • The AXF_SOAP_USER refers to a valid Oracle WebLogic Server user.

34.3.3 Updated Information For UpdateTaskFromProcedure Command

(This item applies to the Oracle E-Business Suite and Oracle PeopleSoft application adapters.)

This release notes section provides updated information for the UpdateTaskFromProcedure command section in Oracle Fusion Middleware Administrator's Guide for Oracle Application Adapters for Oracle Enterprise Content Management.

The Update Task From Procedure command calls a stored pl/sql procedure using a specified data source and updates the task payload using XPATH. See Section 34.3.3.2 for an example implementation and Section 34.3.3.3 for an example stored pl/sql procedure.

34.3.3.1 Update Task From Procedure Command Parameters

Table 34-3 Parameters for UpdateTaskFromProcedure Command

Parameter Key Description

XPATH_DATASTRING

Specifies an XPATH variable contained in the AXF_XPATH_ATTRIBUTES Table that refers to the XPATH where the list of returned data is stored.

XPATH_MESSAGESTRING

Specify an XPATH variable to allow the UpdateFromStoredProcedure function to write data to the BPEL payload for communicating basic status or error codes encountered during execution of the function (axfretrieveuserlist).

CMD_NO_DATA

Specifies the command to execute if no results return from the pl/sql function.

CMD_DATA

Specifies the command to execute if results return from the pl/sql function.

CMD_ERROR

Specifies the command to execute if an error is returned from the pl/sql function.

JNDI_DS

Specifies the name of the JNDI data source, configured on the Application Server, to use for execution of the pl/sql function.

PLSQL_PROC

Specifies the name of the pl/sql function to call.


34.3.3.2 Example Implementation

This example uses the Update Task From Procedure command to call a stored pl/sql procedure called AXFRETRIEVEUSERLIST using a data source (EBSDS). AXFRETRIEVEUSERLIST retrieves the invoice ID, queries for the invoice amount for that transaction, and based on that amount, returns a set of users for invoice approval.

Table 34-4 AXF_SOLUTIONS Table for UpdateTaskFromProcedureCommand Example

SOLUTION_NAMESPACE SOLUTION_CONTEXT

InvoiceProcessing

ejb.AxfCommandMediator#oracle.imaging.axf.service.AxfCommandMediatorRemote


Table 34-5 AXF_COMMANDS Table for UpdateTaskFromProcedureCommand Example (Fields not shown: SOLUTION_NAMESPACE=InvoiceProcessing)

COMMAND_CLASS COMMAND_NAMESPACE

oracle.imaging.axf.commands.bpel.UpdateTaskFromProcedureCommand

RetrieveUserList


Table 34-6 AXF_SOLUTION_PARAMETERS Table for UpdateTaskFromProcedureCommand Example (Fields not shown: SOLUTION_NAMESPACE=InvoiceProcessing)

COMMAND_NAMESPACE CONFIGURATION_NAMESPACE PARAMETER_KEY PARAMETER_VALUE

RetrieveUserList

oracle.imaging.axf.commands.bpel.
UpdateTaskFromProcedureCommand

XPATH_DATASTRING

XPATH:InvoiceProcessing_InvoiceApprovalAssignment

RetrieveUserList

oracle.imaging.axf.commands.bpel.
UpdateTaskFromProcedureCommand

XPATH_MESSAGESTRING

<INSERT: an XPATH variable to use for communicating status through the payload>

RetrieveUserList

oracle.imaging.axf.commands.bpel.
UpdateTaskFromProcedureCommand

CMD_DATA

InvoiceApprovalEdit

RetrieveUserList

oracle.imaging.axf.commands.bpel.UpdateTaskFromProcedureCommand

CMD_NO_DATA

CompleteInvoice

RetrieveUserList

oracle.imaging.axf.commands.bpel.UpdateTaskFromProcedureCommand

CMD_ERROR

StartInvoiceProcessing

RetrieveUserList

oracle.imaging.axf.commands.bpel.UpdateTaskFromProcedureCommand

JNDI_DS

jdbc/EBSDS

RetrieveUserList

oracle.imaging.axf.commands.bpel.UpdateTaskFromProcedureCommand

PLSQL_PROC

AXFRETRIEVEUSERLIST


In the AXF_XPATH_ATTRIBUTES table that follows, the corresponding XPATH column displays the XPATH expression used to locate the value in the payload.

Table 34-7 AXF_XPATH ATTRIBUTES Table for UpdateTaskFromProcedureCommand Example

ATTRIBUTE_KEY XPATH

InvoiceProcessing_InvoiceApprovalAssignment

//task:InvoiceApprovalAssignment


In the AXF_NAMESPACES table that follows, the XMLNS_URI column displays where within the XML file to locate the InvoiceApprovalAssignment task information.

Table 34-8 AXF_XPATH_NAMESPACES Table for UpdateTaskFromProcedureCommand Example

Prefix XMLNS_URI

task

http://xmlns.oracle.com/bpel/workflow/task


34.3.3.3 Example PL/SQL Procedure For Updating the Task Payload

The pl/sql procedure that follows loads the xml into the DOM, retrieves the invoice ID, queries for the invoice amount for that transaction, and based on that amount, returns a set of users.

create or replace FUNCTION axfretrieveuserlist(xmlPayload IN VARCHAR2, pDataString OUT VARCHAR2, pMsgString OUT VARCHAR2) RETURN INTEGER IS

    v_node    xmldom.DOMNode;
    v_node2   xmldom.DOMNode;
    v_nl      xmldom.DOMNodeList;
    v_doc     xmldom.DOMDocument;
    v_elem    xmldom.DOMElement;
    v_parser  xmlparser.Parser;
    invoiceID     VARCHAR2(256);
    invoiceAmount NUMBER(8,2);
    userList      VARCHAR2(256);
    rtnCode      INTEGER;

BEGIN

    rtnCode := 0;  -- execute CMD_NO_DATA
    -- rtnCode := -1; -- execute CMD_ERROR
    pmsgstring := ''; -- empty msg string
    v_parser := xmlparser.newParser;
    xmlparser.parseBuffer(v_parser, xmlPayload);
    v_doc := xmlparser.getDocument(v_parser);
    xmlparser.freeParser(v_parser);

    -- Retrieve the invoice ID
    v_nl := xmldom.getElementsByTagName(v_doc, 'invoiceID');
    v_node := xmldom.item(v_nl, 0);
    v_node2 := xmldom.getFirstChild(v_node);
    invoiceID := xmldom.getNodeValue(v_node2);

    -- Retrieve Invoice Amount for given invoice id
    select INVOICE_AMOUNT into invoiceAmount from ap_invoices_all where INVOICE_ID = invoiceid;

    if invoiceamount > 10000 then
      pdatastring := 'jlondon';
      rtnCode := 1;  -- execute CMD_DATA
      pmsgstring := 'Additional approval required due to invoice amount.';
    else
      pdatastring := 'jcooper,mtwain';
      rtnCode := 1;  -- execute CMD_DATA
      pmsgstring := 'No further approval is required.';
    end if;

    RETURN rtnCode;

END;

Follow these steps to use this example.

  1. Modify this procedure to retrieve the specific pieces of data from the payload you would like. The only requirement is that the pl/sql function you create must take a VARCHAR2, set up two VARCHAR2 out parameters, and return an INTEGER. The name of the function is in the AXF configuration.

  2. Install the stored procedure on the Oracle E-Business Suite database instance. The procedure must be run as the Apps user.

  3. On the AXF instance and as the AXF user, run the following command to update the AXF_ACTIONS table to insert the new RetrieveUserList Command into the execution path:

    UPDATE AXF_ACTION SET COMMAND_NAMESPACE = 'RetrieveUserList' where DISPLAY_TEXT = 'Invoice Approval' and COMMAND_NAMESPACE = 'ValidateInvoiceApprovalEdit'
    

34.3.4 Siebel Adapter: Amended Symbolic URL Example in iFrame URL Configuration

In the section on configuring the iFrame URL in the Siebel web client in Oracle Fusion Middleware Administrator's Guide for Oracle Siebel Adapter for Oracle Enterprise Content Management, the example Symbolic URL provided in step 7 is incorrect. (Changes in the corrected URL are highlighted in bold.)

Incorrect Symbolic URL

http://ucm-server-name.domain:port-number/cs/idcplg/_p/cc-embedded?
IdcService=GET_SEARCH_RESULTS_FORCELOGIN&
siebelEntityField=xsiebelContact&
siebelEntityValue=1LS-AF98&
QueryText=xsiebelContact+%3cmatches%3e+%601LS-AF98%60&
SearchQueryFormat=Universal&
ResultTemplate=SIEBEL_SEARCH&
coreContentOnly=1
SortField=dInDate&
SortOrder=Desc&
ResultCount=20&

Correct Symbolic URL

http://ucm-server-name.domain:port-number/cs/idcplg/_p/cc-embedded?
IdcService=GET_SEARCH_RESULTS_FORCELOGIN&
siebelEntityField=xsiebelContact&
siebelEntityValue=1LS-AF98&
QueryText=xsiebelContact+%3cmatches%3e+%601LS-AF98%60&
SearchQueryFormat=Universal&
ResultTemplate=SIEBEL_SEARCH&
coreContentOnly=1&
SortField=dInDate&
SortOrder=Desc&
SearchEngineName=DATABASE.METADATA&
ResultCount=20