Create Basic Routing Integrations

You create an integration that provides a template with empty trigger and invoke connections in which to add your own adapters. You can also create a single routing expression and request and response enrichments, as needed. You cannot create multiple routing expressions. If your integration requires this feature, create an orchestrated integration.

Create a Basic Routing Integration

This section describes how to create a basic routing integration.

  1. Follow the steps in Create Integrations to create a basic routing integration.

    An integration canvas with empty trigger and invoke connections is displayed.

Add a Trigger (Source) Connection

The trigger (source) connection sends requests to Oracle Integration. The information required to connect to the application is already defined in the connection. However, you still must specify certain information, such as the business object and operation to use for the request and how to process the incoming data.

To add a trigger connection:
  1. In the Integration Designer, drag a connection from the Connections or Technologies panel on the right to the Trigger (source) area on the canvas.
    Description of ics_canvas.png follows
    Description of the illustration ics_canvas.png
    The Adapter Endpoint Configuration Wizard for the selected connection is displayed. The pages in the wizard that appear are based on the adapter you selected. See Understand Trigger and Invoke Connections.

Add an Invoke (Target) Connection

Oracle Integration sends requests or information to the invoke (target) connection. The information required to connect to the application is already defined in the connection. However, you still must specify certain information, such as the business object and operation to use for the request and how to process the data.

To add an invoke (target) connection:
  1. In the Integration Designer, drag a connection from the Connections or Technologies panel on the right to the Invoke (target) area on the canvas.
    Description of ics_target_canvas.png follows
    Description of the illustration ics_target_canvas.png
    The Adapter Endpoint Configuration Wizard for the selected connection is displayed. The pages in the wizard that appear are based on the adapter you selected. See Understand Trigger and Invoke Connections.
  2. After you configure the connection, the Summary page appears.
  3. Click Done, then click Save.
The connection information appears on the canvas, along with arrows depicting the configured operations. Because of space limitations on the canvas, names of connections that are more than 15 characters are truncated and ellipses are added. If you hover over a name, the complete name is displayed in a tool tip.
Description of ics_integ_canvas.png follows
Description of the illustration ics_integ_canvas.png

Add Request and Response Enrichments

When you create an integration, you also have the option of adding both request and response message enrichment points to the overall integration flow. Enrichments participate in the overall integration flow and can be used in the request and/or response payloads between the trigger and invoke.

To add request and response enrichments:
  1. Design an integration with trigger and invoke connections and request and response mappings. For this example, the integration looks as follows when complete. Note the two enrichment point circles in the design; one appears on the inbound (request) side and the other appears on the outbound (response) side.

    The request and response mappings for this example are as follows:
    Mapping Source Target
    Request HelloRequest/FirstName sayHello/name
    Response sayHelloResponse/sayHelloReturn HelloResponse/Greeting
    You are now ready to add enrichments to the integration. For this example, a response message enrichment is added to the Drag and drop an enrichment source for the response message area. You can also add request message enrichments on the request (inbound) side.

  2. From the Connections panel on the right, drag an adapter to the enrichment area on the response message shown below.
    For this example, a SOAP Adapter is dragged to the Drag and drop an enrichment source for the response message area. This action invokes the wizard for configuring the SOAP Adapter.

  3. Complete the pages of the wizard to configure the SOAP Adapter, then click Done. For this configuration, a different operation for selecting timestamp details is chosen.
    You are prompted with a dialog to delete any impacted response mappings that you previously configured for the response mapper. The response mapper requires updates because of the enrichment response adapter configuration you just performed.
  4. Click Yes. You recreate the response mappings later in these steps.
  5. Click Save.
    A SOAP Adapter icon and response enrichment mapper are added to the response side of the integration. Note that because you deleted the response mappings in the previous step, that icon is no longer shaded in green. This indicates that the response mapper requires configuration.
  6. Click the Response Enrichment Mapping icon between the trigger and invoke.
  7. Click the Create icon that is displayed. This invokes the mapper.

  8. Map source elements to target elements to include a timestamp with the response, then click Save when complete.
    The response enrichment mappings are as follows:
    Mapping Source Target
    Response Enrichment sayHelloResponse/sayHelloReturn visitTimestampReq > reqMsg
    The Response Mapping icon is displayed in green, indicating that it has been configured.
  9. Click the Response Mapping icon to invoke the mapper again. This mapper requires updates because of the enrichment response mapping you performed.

  10. Remap the source elements to target elements in the response mapper.
    The response mappings are updated. Note that a different source is now mapped to the original target of HelloResponse/Greeting.
    Mapping Source Target
    Response $ResponseEnrichmentApplicationObject > visitTimestampResp > respMsg HelloResponse/Greeting
    The Response Enrichment Mapping icon is displayed in green, indicating that it has been reconfigured.
  11. Click Close, then click Apply when complete.
    The integration with response enrichments added to the invoke (target) area looks as follows:

  12. Click Save, then click Close when complete.
    You are ready to activate the integration. While not demonstrated in this example, you can also configure the enrichment area on the request message shown below by dragging and dropping an adapter to the Drag and drop an enrichment source for the request message area. This invokes the adapter configuration wizard.

You can also update existing enrichments at a later time, such as the objects selected in the adapter configuration wizard and the enrichment mappings.

Delete Request and Response Enrichments

You can delete the request and response message enrichment point mappings added to an integration. After deleting the enrichment point mappings, the integration is returned to its original pre-enrichment state.

To delete request and response enrichments:
  1. On the Integration page, select the integration. The integration must not be active.
  2. Click the enrichment area on the request message or response message to delete.
  3. Select the Delete icon that is displayed.
    This deletes the mappings.
  4. Click Yes when prompted to confirm.
    Click Save, then click Close.

Create Routing Paths for Two Different Invoke Endpoints in Integrations

You can create an integration in which you define routing paths for two different invoke endpoints. During runtime, the expression filtering logic for the routing paths is evaluated and, based on the results, the path to one of the invoke endpoints is taken. If the filtering logic for neither routing path is satisfied, then neither invoke endpoint is contacted.

The expression logic works as follows:
  • You define an expression filter on the first (upper) invoke endpoint.

  • You define either an ELSE condition or an expression filter on the second (lower) invoke endpoint.

During runtime, if the expression filtering logic for the first (upper) invoke endpoint evaluates to true, then the path to that invoke endpoint is taken. If the expression evaluates to false, then that invoke endpoint is skipped, and the path to the second (lower) invoke endpoint is taken through either an ELSE condition or an expression filter.

In addition to creating routing paths, you also define request and response (and optionally, enrichment) mappings on both invoke endpoints.

To create routing paths for two different invoke endpoints in integrations:

  1. On the Integrations page, select the integration in which to define a routing filter. Ensure that the integration is fully defined with trigger and invoke connections, business identifier tracking, and mappings.
  2. Click the Filter icon on the trigger side of the integration to create a filtering expression. Routing is created after any defined request enrichment and before the initial request mapping.
    Description of routing_filter.png follows
    Description of the illustration routing_filter.png
  3. Click the Routing icon in the menu that is displayed.
    The Expression Builder is displayed for building routing expressions. The Expression Builder supports multiple source structures. You can create OR expressions using both source structures. You can also name expressions and calculate expression summaries with the Expression Summary icon. Elements and attributes with and without namespace prefixes are also supported.

    You can filter the display of source structures by clicking the Filter link. This enables you to filter on whether or not fields are used and on the type of field (required fields, custom fields, or all fields). You can also select to filter both required and custom fields together.

  4. Drag an element from the Source area to the Expression field.
  5. Define a value.
    For this example, the ClassificationCode element is defined as equal to Org. This means that Org is retrieved when this expression evaluates to true.
  6. If you want to calculate the expression, click the Expression Summary icon. This shows the summary of the expression and defines a more user-friendly, readable version of the expression you just created.
  7. If that name is not sufficiently user-friendly, copy and paste the expression to the Expression Name field for additional editing.
    Description of ics_express_bld_names.png follows
    Description of the illustration ics_express_bld_names.png
  8. Click Close to save your changes.
    The defined expression is displayed above the integration. The Filter icon has now changed to indicate that an expression is defined.
    Description of routing_expression_integ.png follows
    Description of the illustration routing_expression_integ.png
  9. On the right side of the integration, click the Routing Drawer icon to display a graphical routing diagram with two potential paths. The first route that you just defined (the upper trigger and invoke) shows the defined expression above the line. The second route (the lower trigger and invoke) is displayed as a dotted line because it is not yet defined.

    You can activate the integration now if additional filtering is not required or define an additional routing filter. For this example, a second route is defined.
  10. Click the bull’s eye icon in the lower trigger icon to define routing on the second trigger and invoke route.
    Description of routing_drawer2.png follows
    Description of the illustration routing_drawer2.png
    This refreshes the integration to display the lower trigger and invoke route in the integration. The trigger side remains as defined for the first route, but the invoke route is undefined.
  11. Click Show Palette to display the list of available connections and technologies.
  12. Drag an adapter to the invoke (target) area of the integration (for this example, an Oracle RightNow adapter is added).
    The Adapter Configuration Wizard is invoked.
  13. Configure the pages of the wizard for the Oracle RightNow adapter. For this example, the Get operation and Account business object are selected on the Operations page.
    Description of routing_target_config.png follows
    Description of the illustration routing_target_config.png
    The integration is now defined for the second invoke. You now need to create a filtering expression for the second invoke.
  14. Click the Filter icon to create a filtering expression.
  15. If no additional expression is required, click the E icon (to create an ELSE condition).
    Description of routing_filter_edit.png follows
    Description of the illustration routing_filter_edit.png
    This defines an ELSE condition for the second trigger and invoke. The ELSE condition is taken if the first route evaluates to false (that is ClassificationCode does not equal Org). You can toggle back and forth between the two trigger routes by clicking the adapter icon on the individual line. The line in blue is the currently visible invoke in the integration.
    Description of routing_logic_else.png follows
    Description of the illustration routing_logic_else.png
  16. If you want to define your own expression filter for the second route instead of using the ELSE condition, perform the following steps:
    1. Click the Filter icon.
    2. Select Clear Expression to remove the ELSE condition.
    3. Click Yes when prompted to confirm.
    4. Click the Filter icon again and select the Edit icon to invoke the Expression Builder as you did in Step 3.
    5. Define an expression.
    6. Click Close to save your changes.
      Request and response mappings must now be defined.
  17. Click the Request Mapper icon to define the mapping.
    For this example, the following mapping is defined.
    Source Target

    process > Organization > Organizationid

    Get > Account > ID > id

  18. Click the Response Mapper icon to define the mapping.
    For this example, the following mapping is defined.
    Source Target

    process > GetResponse > Account > ID > LookupName

    processResponse > Organization > Name

    Integration design in now 100% complete.

  19. Activate the integration.

Create Routing Expression Logic in Both Expression Mode and Condition Mode

You can create XPath expressions for routing conditions in two different user interface modes:

  • Expression mode: This mode provides an interface for creating and viewing the entire XPath expression.

  • Condition mode: This mode provides an easier-to-read interface to create and view XPath condition expressions. This mode is useful for business analysts who may be less experienced with XPath expressions.

You can toggle between expression mode and condition mode when creating and viewing your expressions. Elements and attributes for which mapping is required are identified by a blue asterisk (*) to the left of their names. You can also place your cursor over elements and attributes to display specific schema details such as the data type, if mapping is required, and so on. When creating an expression, note the following functionality in the tree:
  • Three levels of elements are loaded by default in the tree in the Source area. When you reach the third level, a Load more link is displayed. Click this link to display all the direct children of that element. Only base types are loaded automatically. To load the extended types of the base type, click the base type, which is identified by a unique icon. This invokes a menu of extended types that you can select to load one by one into the tree.
    Description of ics_logic_express_base.png follows
    Description of the illustration ics_logic_express_base.png

  • Elements in the tree in the Source area that you have already dragged to an expression are identified by green checkboxes. These elements are displayed even if they are deeper than three levels in the tree.

  • You can search for an element that is not yet loaded in the tree by entering the name in the Find field and clicking the Search icon. This action loads that specific element into the tree.

This section provides an example of building an expression using both modes.

To create routing expressions in both expression mode and condition mode:

  1. Click the Filter icon on the source side of an integration to create a filtering expression.
    Description of routing_filter.png follows
    Description of the illustration routing_filter.png
  2. Click the Routing icon in the menu that is displayed.
    The Expression Builder is displayed for building routing expressions. Expression mode is the default mode.
  3. In the field immediately below Expression Name, optionally enter a short description about the expression you want to build.

  4. Add an element from the Source area on the left side to the expression field immediately below the short description field. If needed, you can also add functions from the Components section.
    There are two ways to add an element to the expression field:
    1. Drag the element from the Source area.
    2. Select the row of the element in the Source area, then click the Move icon in the middle of the page to move the element.

      The expression for the selected element is displayed in the expression field (for this example, the expression for the Country element was added). The selected element is identified by green checkbox in the Source area.

  5. To the right of the added expression, define an operator and a value within single or double quotes (for this example, = “USA” is defined).
  6. Click the Expression Summary icon to view a simplified, user-friendly version of the expression. Easy-to-read output is displayed.
    Description of ics_logic_express_bldnw.png follows
    Description of the illustration ics_logic_express_bldnw.png

    Note:

    • To add additional elements to the expression, you can place your cursor in the exact location of the expression, select the row of an element in the Source area, and click the Move icon. These actions add that element to the exact location of your cursor.

    • You can drag an element to the exact location of your cursor in the expression, and the expression of the element is added to the cursor location, and not the location in which you drop the element.

    • You can drag an element on top of an existing expression element to replace it.

  7. In the upper right corner, click Condition Mode to view the expression you created in condition mode. Condition mode provides an easy-to-read interface for creating and viewing your expressions.

    Note the following details about accessing condition mode:

    • Condition mode can only be accessed if the expression field is empty or completely defined with an expression that returns true or false. If you only partially define an expression (for example, you drag an element to the expression field, but forget to define expression logic and a value such as = “USA”), you receive an error saying that you must provide a valid condition to access condition mode.

    • The Condition Mode button toggles to Expression Mode.

    Note:

    At any time, you can click Expression Mode to view the entire XPath expression.
  8. Click the expression.

    Description of ics_logic_express_add2.png follows
    Description of the illustration ics_logic_express_add2.png

    This refreshes the page to display icons for adding additional conditions and conditions groups. Groups enable you to combine multiple conditions into a single logical expression.


    Description of ics_logic_express_build3.png follows
    Description of the illustration ics_logic_express_build3.png
  9. Click the Add Condition icon (first icon) to add additional condition expressions.
    This creates an additional field for entering additional expression logic. The message Drag and drop or type here is displayed in this field.
    Description of ics_logic_express_add_cond2.png follows
    Description of the illustration ics_logic_express_add_cond2.png
  10. Drag an element from the Source area to the first Drag and drop or type here field (for this example, the Country element is again added).
  11. Select an operator (for example, =, >,!=, and so on) and enter a value (for this example, “Mexico” is added).
  12. From the Match list, select an option. This list is hidden until at least two conditions are defined.
    • Any of: Select if any of the added expressions must be true. This equates to an OR condition in the entire XPath expression shown in expression mode.

    • All of: Select if all expressions must be true. This equates to an AND condition in the entire XPath expression shown in expression mode.



  13. Select the Add Group icon (second icon) to group a series of conditions. This option enables you to build a number of conditions within a single group. The group is identified by the gray outline and the indentation.
  14. Add an element from the Source area.
    For this example:
    • The DisplayName element is added to the first Drag and drop or type here field.

    • The not equal operator (!=) is selected.

    • The Country element is added to the second Drag and drop or type here field.

  15. Click the Add Condition icon (first icon) to add an additional condition expression within the group.
    For this example:
    • The DisplayOrder element is added to the first Drag and drop or type here field.

    • The less than operator (<) is selected.

    • A value of 10 is entered in the second Drag and drop or type here field.

  16. Continue building your group condition, as necessary.
    When complete, the expression is displayed. For this example, there are the conditions: if Country is USA OR Country is Mexico OR DisplayName does not equal country and DisplayCount is less than 10, the integration continues.
    Description of ics_logic_express_add_gr3.png follows
    Description of the illustration ics_logic_express_add_gr3.png
  17. Click Expression Mode.
    Note the entire XPath expression and the expression summary at the bottom. The selected elements are displayed (no matter their level of depth in the tree) and identified by green checkboxes in the Source area.
    Description of ics_logic_express_final2.png follows
    Description of the illustration ics_logic_express_final2.png
  18. If you want, you can place your cursor in the XPath expression and edit it as necessary (for example, change USA to Canada), then click the Expression Summary icon to refresh the calculation. If you make an error when editing the XPath expression (for example, forget to add a double quote to a value), an error message is displayed.
  19. Click Save to view the expression in read-only mode. You can also click Done Editing at any time during the creation process to view the expression in read-only mode.
  20. Click Close to return to the integration. The user-friendly expression is displayed in the blue banner above the integration.

Delete Routing Paths

You can delete routing paths that have been created on different target endpoints in an integration.

There are two methods for deleting routing paths:
  • Delete the routing path and expression filter.

  • Delete the endpoint and routing path, but retain the expression filter.

Deleting the Routing Path and Expression Filter

To delete the routing path and expression filter:

  1. In the Integrations page, select the integration in which to delete a routing path.

  2. Expand the Routing Drawer icon to display the diagram of routing paths.

  3. Above the integration, select the routing path to delete.
    Description of routing_select_delete.png follows
    Description of the illustration routing_select_delete.png

  4. Click the Filter icon.

  5. Select Delete Route from the menu that is displayed.


    Description of routing_delete.png follows
    Description of the illustration routing_delete.png
  6. Click Yes when prompted to confirm.

    This action deletes the routing path, including the expression filter and the request mapping for the selected path. The diagram above the integration shows that the routing path is deleted.
    Description of routing_delete_complete.png follows
    Description of the illustration routing_delete_complete.png

Deleting the Endpoint and Routing Path

To delete the endpoint and routing path:

  1. In the integration, click the target endpoint to delete.

  2. Click Delete in the menu that is displayed.

  3. Click Yes when prompted to confirm.

    This action deletes the target endpoint and routing path. The diagram above the integration shows that the routing path is deleted. Within the integration, only the expression remains defined in the integration because it is not using anything from the deleted target endpoint.
    Description of routing_delete_endpt.png follows
    Description of the illustration routing_delete_endpt.png