5 Configuring the BPEL Imaging Solution

You can configure the BPEL Imaging solution using Application Adapters for Oracle WebCenter. This includes configuring Imaging Solution components - BPEL connection using a Credential Store Framework (CSF) alias, AXF tables, and solution accelerator. The Imaging Solution options include clustering for AXF and alternate authentication and login.

This chapter covers the following topics:

Note:

You can provide access to the Imaging solution from Oracle E-Business Suite Oracle Application Framework (OAF) applications. For information, see Configuring Other Services on OAF Pages (Optional).

Note:

To make certain modifications to Imaging solutions, such as changing the profiles displayed to users in the Task List and task actions and metadata displayed to users in the Task Viewer, you can use the Imaging Solution Editor. For information about the Solution Editor, see Solution Editor Page in Administering Oracle WebCenter Content: Imaging.

5.1 Configuring the BPEL Connection

Configuring the BPEL connection for use by an AXF solution involves the following tasks:

5.1.1 Creating a CSF Credential Alias

The Credential Store Framework (CSF) enables you to create a user name/password alias for use in an Imaging connection configuration. With a CSF alias, you supply a key instead of a user name and password, and use this key in creating an Imaging connection. (You can use one CSF key for multiple imaging connections.)

For information about creating keys and aliases, see Key and Certificate Storage in Oracle Fusion Middleware in Administering Oracle Fusion Middleware.

Note:

When implementing an AXF solution using MS LDAP as a user repository, the credential user must be the administrator belonging to the Administrators group within the Builtin CN in MS LDAP. The AXF uses this credential user when making certain calls (for example, when retrieving a task list from SOA). In addition, you must configure the Group Base DN (in WLS Console, Provider Specific) to import CN=Builtin.

5.1.2 Creating a Connection in Imaging Connections

Follow these steps to create a connection and specify the CSF alias key, BPEL server name, and port.

  1. Log in to the Imaging system as an administrator.
  2. From Manage Connections in the side pane, click the + (plus) sign document icon for creating a BPEL connection.
  3. Enter a name for the connection, and click Next.

    This name is referenced in the AXF_SOLUTION_ATTRIBUTES table to establish the connection.

  4. On the BPEL Settings step, enter BPEL connection settings.
    • HTTP Front End Address: http://hostname:BPEL server port

    • Credential Alias (previously created, as described in Creating a CSF Credential Alias)

    • Provider: t3://hostname:BPEL server port

    For example:

    • HTTP Front End Address: http://hostname:port

    • Credential Alias: axf.credential

    • Provider: t3://hostname:port

  5. Click Next, then Submit.

5.1.3 Referencing the Connection in the AXF_SOLUTION_ATTRIBUTES Table

Follow this step to identify the Imaging connection to the AXF solution, as described in Creating a Connection in Imaging Connections. Run the command from SQL Developer (or other suitable tool that can connect to the imaging database schema).

Note:

If using an implementation accelerator (including the HelloBPEL solution), this step is not needed.

  1. Run the configuration row specified below, where:
Insert into AXF_SOLUTION_ATTRIBUTES (SOLUTION_NAMESPACE,PARAMETER_KEY,PARAMETER_VALUE) values \ ('InvoiceProcessing','BPEL_CONNECTION','axfconnection');

5.2 Configuring the AXF Tables or Applying a Solution Accelerator

After completing installation and configuration of the Imaging solution, complete one of the following steps for implementation:

  • Configure the AXF tables and AXF-related Oracle E-Business Suite or Oracle PeopleSoft tables. Table descriptions and example implementations are provided in BPEL Imaging Solution Reference.

    OR

  • Apply a solution implementation accelerator. To obtain an accelerator, contact your systems integrator, Oracle Consulting, or Oracle Support.

5.3 Testing Functionality Using the AXF Driver Page

Access the driver page of the AXF web application to verify functionality. For more information about the driver page, see Verifying the AXF for BPEL Installation and Configuration with HelloWorld in Installing and Configuring Oracle WebCenter Content.

5.4 Configuring Imaging Solution Options

Following are the optional configurations for the Imaging solution:

5.4.1 Configuring Automatic Imaging Viewer Login

Follow the steps below to prevent users from having to log in to Imaging the first time they access the Imaging viewer per session. You set the front end HTTP host and port so that the Imaging hostname and the AXF server hostname match.

Follow these steps to set the front end HTTP host and port:

  1. Open the Oracle WebLogic Server Administration Console.
  2. On the Home Page, click Servers under the Environment heading.
  3. Click the Imaging server from the servers listed in the Name column.
  4. Click the Protocols tab, then the HTTP tab.
  5. Make changes in the Frontend Host field and appropriate frontend port field. (If using SSL, specify a value in the Frontend HTTPS Port field. If not using SSL, specify a value in the Frontend HTTP Port field.)
  6. Click Save.

5.4.2 Allowing Oracle WebLogic Server/Business Application Users to Perform Tasks

You can allow 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 related AXF_SOLUTION_ATTRIBUTES table configuration is shown in Table 5-1; also see AXF_SOLUTION_ATTRIBUTES Table.

Table 5-1 AXF_SOLUTION_ATTRIBUTES Table, USERNAME_PASS_THROUGH Configuration

SOLUTION_NAMESPACE PARAMETER_KEY PARAMETER_VALUE

AXF

USERNAME_PASS_THROUGH

TRUE or FALSE

where:

Note:

After changing the value of USERNAME_PASS_THROUGH in the database, stop and start the Imaging application in the Oracle WebLogic Server Administration Console.

5.4.3 Clustering for AXF in Imaging Managed Servers

To enhance performance and scalability, AXF in Imaging Managed Servers uses coherence by default for its data caching solution. The Oracle Coherence license available in Oracle WebCenter Content: Imaging is restricted. By default, Imaging supports a local caching scheme without any distributed data caching. In a High Availability (HA) environment, the cached entries are not shared across Java Virtual Machines (JVMs) or other machines.

In a clustered system, AXF requires the cache to be distributed. If the cache is not distributed, conversation might not be available in some machines.

For more information about configuring coherence, see Configuring and Managing Coherence Clusters in Administering Clusters for Oracle WebLogic Server.

Following topics provide information on coherence caches:

For information on the basic types of cache modes provided by Coherence, see Introduction to Coherence Caches in Developing Applications with Oracle Coherence.

5.4.3.1 Configuring Coherence Caches in WebCenter Content: Imaging

Following table lists the AXF Coherence cache entry that you can configure for WebCenter Content: Imaging:

Table 5-2 AXF Coherence cache in WebCenter Content: Imaging

Cache Name Purpose Default Coherence Configuration

oracle.imaging.axf

Cache for AXF

Imaging60MinuteCache

Following table enlist the default Coherence configuration properties:

Table 5-3 Coherence Configuration Properties

Default Configuration Eviction Policy High Units Expiration Delay

Imaging60MinuteCache

Hybrid

0(No Limit)

1 hour

Defines the coherence configuration properties, where:

  • High Units is the maximum number of units that can be placed in the cache before pruning occurs.

  • Hybrid Eviction Policy chooses the entries to evict based on the combination (weighted score) of how often and how recently they were accessed. Those entries that are accessed least frequently and those that were not accessed for the longest period are evicted first.

  • Expiration Delay specifies the amount of time from the last update till the time the entries are marked as expired. Any attempt to read an expired entry results in reloading the entry from the configured cache store. Expired values are periodically discarded from the cache.

5.4.3.2 Overriding the Default Configuration

By default, Oracle WebCenter Content: Imaging uses the local data cache.

To override the default configuration:
  1. Configure WebLogic Clusters (as needed by High Availability configuration) and Coherence clusters.
    For more information , see Configuring and Managing Coherence Clusters in Administering Clusters for Oracle WebLogic Server.
  2. Define a cache configuration file to override the default configuration.

    Refer to the sample override configuration file available at:

    MW_HOME/ECM_HOME/axf/coherence/coherence-override.xml, which has AXF cache configured as a distributed cache.

    Other than the AXF cache, the sample override file has configurations for three other render pipeline caches, which must not be modified. Make sure you use the same sample file if the configuration matches your needs.

    If the configuration provided in the sample override file does not match your needs, create your own custom override file. For more information, see Configuring Caches and Cache Configuration by Example in Developing Applications with Oracle Coherence.

    You must use the exact names of the available caches provided in Table 5-2 in the cache configuration file.

    For example, by default the AXF cache is uniquely identified by the name oracle.imaging.axf and maps to the local scheme Imaging60MinuteCache. To override the AXF cache to use a distributed scheme, you must specify the cache name correctly.

    <cache-mapping>
    		<cache-name>oracle.imaging.axf</cache-name>
    		<scheme-name>my_distributed_scheme</scheme-name>
    </cache-mapping>

    where, my_distributed_scheme refers to your newly defined distributed caching scheme.

    Ensure that the custom override file also includes the three other render pipeline caches. You can obtain the names of these caches and their corresponding caching schemes from the sample override file.

    Note:

    To override a cache configuration file at runtime, the cache configuration file must be bound to a Java Naming and Directory Interface (JNDI) name. The JNDI name that is defined for using the override-property in Oracle WebCenter Content: Imaging in the GAR file is ImagingGar. Use the same JNDI name to override a cache configuration file.
  3. After defining the configuration file, override the default cache configuration file using the WebLogic Scripting Tool (WLST) on the cluster.
    For more information, see Overriding a Cache Configuration File in Administering Clusters for Oracle WebLogic Server.

    You can also override the default cache configuration from the WebLogic Server Administration Console. Any configuration changes that persist on the Admin server by default, remains even after an upgrade of Oracle WebCenter Content: Imaging.

5.4.4 Configuring Autotask Locking

In AXF configurations with multiple simultaneous users, collisions may occur when end users attempt to acquire tasks in Autotask mode. (For details about Autotask mode, see Autotask Command). To prevent collisions, enable autotask locking for each named BPEL connection in the AXF database. When locking is enabled, only one user may automatically acquire a task at a given time.

Enabling the lock functionality prevents an error from appearing on the Task List if two users acquire a task simultaneously, and is the recommended setting. In situations where simultaneous acquisition is unlikely, disabling the lock functionality may increase performance.

The setting is configured in the AXF_SOLUTION_ATTRIBUTES Table by inserting the following row:

SOLUTION_NAMESPACE PARAMETER_KEY PARAMETER_VALUE

BPEL.default

USE_AUTOTASK_LOCKING

TRUE

5.4.5 Updating the Task Payload Using XPATH

The Update Task From Procedure command calls a stored pl/sql procedure using a specified data source and updates the task payload using XPATH, as described in Update Task From Procedure Command.

5.4.5.1 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.

To use this example, 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.

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 (task is updated with this value)
    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
    else
      pdatastring := 'jcooper,mtwain';
      rtnCode := 1;  -- execute CMD_DATA
      pmsgstring := '';
    end if;

    RETURN rtnCode;

END;

5.4.6 Targeting a Single Conversation With Multiple Window Instances Displayed

You can configure the Oracle E-Business Suite adapter to target the same instance/conversation when multiple instances of a particular Oracle E-Business Suite window are displayed. Enable this feature using the AXF_MULTINSTANCE parameter in the AXF_PROPERTIES Table (Oracle E-Business Suite).

  • If AXF_MULTINSTANCE is set to TRUE, each Oracle E-Business Suite window is treated as a separate conversation and a separate Imaging 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 Imaging or AXF target window.

5.4.7 Adding a Validation

The Validate Task command validates BPEL system attribute or BPEL payload data, and based on validation results, executes a subsequent command, as described in Validate Task Command.

The following example and corresponding steps add a validation that verifies that a Transaction ID is present before allowing a task to complete. This example assumes that you have installed the Invoice Processing solution implementation accelerator data.

Note:

Apply this configuration change only in use cases where users must create the business application invoice before completing the task. This configuration would not apply in use cases where users may not create an invoice before completing the task (typically, for example, when the task is being completed with an outcome of SupplierMaintenance).

  1. Add the following row to the AXF_COMMANDS table:

    Table 5-4 Example AXF_COMMANDS Table

    SOLUTION_NAMESPACE COMMAND_CLASS COMMAND_NAMESPACE

    InvoiceProcessing

    oracle.imaging.axf.commands.bpel.ValidateTaskCommand

    ValidateTransactionID

  2. Add the rows shown in Table 5-5 to the AXF_SOLUTION_PARAMETERS table.

    The following configuration validates that the invoice has been saved (Invoice Transaction ID is not 0). If it is 0, the command reports the error message specified in the FAIL_MESSAGE parameter.

    Fields not shown: SOLUTION_NAMESPACE=InvoiceProcessing

    Table 5-5 Example ValidateTask Command in AXF_SOLUTION_PARAMETERS Table

    COMMAND_NAMESPACE CONFIGURATION_NAMESPACE PARAMETER_KEY PARAMETER_VALUE

    ValidateTransactionID

    oracle.imaging.axf.commands.bpel.ValidateTaskCommand

    ATTRIBUTE_TO_VALIDATE

    XPATH:InvoiceProcessing_TransactionID

    ValidateTransactionID

    oracle.imaging.axf.commands.bpel.ValidateTaskCommand

    CMD_ON_PASS

    CompleteInvoice

    ValidateTransactionID

    oracle.imaging.axf.commands.bpel.ValidateTaskCommand

    REGULAR_EXPRESSION

    [^0]

    ValidateTransactionID

    oracle.imaging.axf.commands.bpel.ValidateTaskCommand

    FAIL_MESSAGE

    Please save the transaction before completing the task.

  3. In the AXF_ACTIONS Table, edit the row in which the Complete Task is configured, replacing the Complete action's COMMAND_NAMESPACE column with the ValidateTransactionID's command namespace.

    Table 5-6 AXF_ACTIONS Table

    ACTION_ID VIEW_ID DISPLAY_NAME COMMAND_NAMESPACE MENU_ORDER

    CompleteInvoice

    /TaskViewer.jspx

    Complete Invoice

    ValidateTransactionID

    3

5.4.8 Deploying Custom Commands

You can also deploy custom commands to work within the AXF infrastructure. Custom commands must implement the oracle.imaging.axf.commands.AxfCommand interface. The execute(AxfRequest) method is invoked by the infrastructure. Configure the implementation to execute in the AXF configuration database.

In addition, commands may implement the oracle.imaging.axf.commands.ValidatableCommand interface, which provides a way for the AXF infrastructure to validate the configuration and operation of a command without executing it to provide a system command status.

5.4.9 Configuring Chained Commands and User Interface Components

Some AXF commands have parameter keys that specify what occurs after the command completes, allowing you to chain them. For example, Table 5-7 shows a portion of the AXF_SOLUTION_PARAMETERS table. After the CompleteTask command executes, additional AXF commands are executed (StartInvoiceProcessing and AutoOpenTask, based on program logic).

Table 5-7 Example AXF_SOLUTION_PARAMETERS Table for CompleteTask Command (InvoiceProcessing Solution)

COMMAND_NAMESPACE CONFIGURATION_NAMESPACE PARAMETER_KEY PARAMETER_VALUE

DuplicateInvoice

oracle.imaging.axf.commands.bpel.CompleteTaskCommand

CMD_AUTOTASK_OFF

StartInvoiceProcessing

DuplicateInvoice

oracle.imaging.axf.commands.bpel.CompleteTaskCommand

CMD_AUTOTASK_ON

AutoOpenTask

DuplicateInvoice

oracle.imaging.axf.commands.bpel.CompleteTaskCommand

OUTCOME

DUPLICATE_INVOICE

5.4.10 Configuring or Disabling a Dynamic Data Table

In the Task Viewer, you can display a table of dynamic data from the BPEL payload XML, such as General Ledger lines for an invoice processing solution, as shown in the bottom tabs in Figure 1-5. You configure the table in the AXF_METADATA_BLOCKS Table and its data lines in the AXF_METADATA_ATTRIBUTES Table. For information on formatting XML data in the BPEL payload, see Formatting XML Data For a Dynamic Data Table; also see Task Viewer Web Tool.

The bottom row of Table 5-8 shows an example dynamic data table called GL Lines configured.

Table 5-8 Example AXF_METADATA_BLOCKS Table

BLOCK_ID BLOCK_LOCATION LABEL DISPLAY_ORDER TASK_FLOW_ID SOLUTION_NAMESPACE BLOCK_TYPE METADATA_STYLE

1

LEFT_SIDEBAR

Summary

1

axf-taskviewer-tfd

InvoiceProcessing

METADATA

null

2

LEFT_SIDEBAR

Comments

2

axf-taskviewer-tfd

InvoiceProcessing

COMMENT

null

3

BOTTOM_PANEL

GL Lines

3

axf-taskviewer-tfd

InvoiceProcessing

METADATA

TABLE

Table 5-9 shows the GL Lines table's data lines configured. This example results in three data columns in the table. It assumes that the XPATH attributes exist in the AXF_XPATH_ATTRIBUTES Table.

Fields not shown include: DATA_TYPE=String

Table 5-9 Example AXF_METADATA_ATTRIBUTES Table for Dynamic Data Table

BLOCK_ID ATTRIBUTE_ID LABEL ATTRIBUTE_KEY IS_XPATH DISPLAY_ORDER

2

8

Line Number

DistributionLines_LineNumber

TRUE

0

2

9

Dist Account

DistributionLines_DistributionAccount

TRUE

1

2

10

Amount

DistributionLines_Amount

TRUE

2

5.4.10.1 Formatting XML Data For a Dynamic Data Table

After adding the table in the AXF_METADATA_BLOCKS Table and configuring its data lines in the AXF_METADATA_ATTRIBUTES Table, follow the guidelines below to ensure that the XML data in the BPEL payload is correctly formatted for display in the table.

Below is an XML sample for display at any level within the XML payload. The First column XPATH retrieves the parent and its peer elements (collectionItem). Each of the configured XPATHs point to an itemValue element used to retrieve the cell values for the table from each collectionItem.

Note:

All columns must display within the same direct parent element.

<rootElement>
  <collectionContainerElement>
    <collectionItem>                                        <--First row for table
      <itemValue1>value1</itemValue1>                       <--First column XPATH
      <itemValue2>value2</itemValue2>
      <itemValue3>value3</itemValue3>
    </collectionItem>
    <collectionItem>                                        <--Second row
      <itemValue1>value1</itemValue1>
      <itemValue2>value2</itemValue2>
      <itemValue3>value3</itemValue3>
    </collectionItem>
    <collectionItem>
      <itemValue1>value1</itemValue1>
      <itemValue2>value2</itemValue2>
      <itemValue3>value3</itemValue3>
    </collectionItem>
  </collectionContainerElement>
</rootElement>

The first column XPATH for the above XML should be similar to the following:

/task:payload/task:rootElement/collectionContainerElement/collectionItem/itemValue1
5.4.10.2 Hiding the Bottom Panel in the Task Viewer

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 page 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.

5.4.11 Reenabling Paperclip Attachments (Oracle E-Business Suite and Imaging Only)

Installing and configuring the Managed Attachments solution automatically disables the Oracle E-Business Suite attachments paperclip icon and functionality. To reenable the paperclip functionality for an Imaging Solution only configuration, follow these steps to disable the Managed Attachments solution:

Note:

This section applies to Oracle E-Business Suite use only.

  1. Open the AXF_CONFIGS table (Oracle E-Business Suite) table.
  2. In the FORMFUNCTION field, rename the AXF_MANAGED_ATTACHMENTS entry. For details, see AXF_CONFIGS Table (Oracle E-Business Suite).

    For example, rename the entry as follows:

    AXF_MANAGED_ATTACHMENTS-DISABLED

    Note:

    To reenable the Managed Attachments solution, change the FORMFUNCTION field back to the following entry:

    AXF_MANAGED_ATTACHMENTS

  3. Verify that the AXF_PAPERCLIP property in the AXF_PROPERTIES table is set to TRUE. For more information, see AXF_PROPERTIES Table (Oracle E-Business Suite).

    Table 5-10 AXF_PROPERTIES Values For PaperClip Use

    PROPNAME PROPVALUE

    AXF_PAPERCLIP

    Set to TRUE to enable the paperclip option, or FALSE to disable it. (Value must be in uppercase characters.)

5.4.12 Resizing Oracle PeopleSoft Popup Solution Windows

You can change the default system-wide size for all Oracle PeopleSoft popup windows that display as part of solutions. Note the following:

  • The default popup window size is 600 pixels high by 800 wide, set in the PS_AXF_PROPERTIES Table. When a size is set in this table, users cannot set and save popup window size themselves.

  • To change window size, enter new values in the table, as shown in PS_AXF_PROPERTIES Table.

  • To remove the popup window size (and allow individual users to change and save popup window size using standard browser controls), remove the WINDOW_HEIGHT and WINDOW_WIDTH rows from the PS_AXF_PROPERTIES Table.