10Extending the Connector
Extending the Connector
This chapter describes how to extend the connector. It includes the following topics:
Overview of Extending the Connector
A hook point is a service you can use to extend a composite. It uses input that you provide to communicate with a composite and it returns a result from the composite. You can use hook points to extend the following items:
Schema
Mediator
BPEL flow
Note the following:
This integration uses each hook point as a placeholder in a BPEL flow.
A hook point does not include any functionality or perform any manipulation other than to access a composite.
Every hook point uses a synchronous request and reply model.
You can use hook points to extend a direct integration flow.
This integration disables every hook point by default. To use a hook point, you must set a DVM (domain value map) parameter for the hook point parameter to true. For more information, see Parameters You Must Set in the Parameter Definition File.
If you use a hook point, then make sure you avoid a name space conflict in the implementation.
The following illustrates a generic flow that includes hook points.

Explanation of Callouts
This integration performs the following work for most hook points:
Hook Point 1. The input for hook point 1 is the Siebel request message. For example, the Siebel input for the appointment booking flow is absInput. The output of hook point 1 is the extended Siebel request message.
Hook Point 2. The input for hook point 2 is the extended Siebel request message to the composite and the Oracle Real-Time Scheduler request message for the operation. The composite that calls the hook point determines this operation. The output for hook point 2 is the Oracle Real-Time Scheduler requested message for the called operation. For more information, see Hook Point Operations That This Integration Calls.
Hook Point 3. The input for hook point 3 is the Oracle Real-Time Scheduler response message. The composite that calls the hook point determines this output. For example, the Siebel output for the appointment booking flow is absReply. The output for hook point 3 is the Siebel response message.
ORS Web Service. The external Web service that the composite calls.
Process of Extending the Connector
This topic describes one example of extending the connector. You might use this feature differently, depending on your business model. To extend the connector, perform the following tasks:
In this example, you add the following new fields to the book appointment flow:
Minimum Offset
Maximum Offset
Primary Activity
Creating Siebel CRM Objects
This task is a step in Process of Extending the Connector.
In this topic, you create Siebel CRM objects.
To create Siebel CRM objects
Open Siebel Tools or Web Tools as Administrator and create a new Workspace.
Display the object types you must modify:
Click the View menu, and then the Options menu item.
In the Development Tools Options dialog box, click the Object Explorer tab.
In the Object Explorer Hierarchy window, make sure the Integration Object tree contains a check mark, and then click OK.
Create new table columns:
In the Object Explorer, click Table.
In the Tables list, query the Name property for S_EVT_ACT.
Right-click the S_EVT_ACT table, and then choose Lock Object.
In the Object Explorer, expand the Table tree, and then click Column.
In the Columns list, add three new columns using values from the following table.
Name Physical Type Length Type X_MAX_OFFSET
Varchar
30
Extension
X_MIN_OFFSET
Varchar
30
Extension
X_PRIMARY_ACT_ID
Varchar
30
Extension
In the Tables list, click Apply/DDL.
Create new business component fields:
In the Object Explorer, click Business Component.
In the Business Components list, query the Name property for Action.
In the Object Explorer, expand the Business Component tree and then click Field.
In the Fields list, add three new fields using values from the following table.
Name Column Default Value Max Offset
X_MAX_OFFSET
00:40:00
Min Offset
X_MIN_OFFSET
00:10:00
Primary Activity Id
X_PRIMARY_ACT_ID
Field: "Id"
This configuration uses default values. Siebel CRM includes these values in the fields of each new activity record.
Create new integration component fields:
In the Object Explorer, click Integration Object.
In the Integration Object list, query the Name property for Abssiebel.
The Abssiebel integration object is predefined with this integration.
In the Object Explorer, expand the Integration Object tree, and then click Integration Component.
In the Integration Component list, query the Name property for Action.
In the Object Explorer, expand the Integration Component tree, and then click Integration Component Field.
In the Integration Component Fields list, add a new field using values from the following table.
Property Value Name
Max Offset
Data Type
DTYPE_TEXT
External Name
Max Offset
External Data Type
DTYPE_TEXT
External Sequence
656
XML Tag
MaxOffset
In the Integration Component Fields list, add a new field using values from the following table.
Property Value Name
Min Offset
Data Type
DTYPE_TEXT
External Name
Min Offset
External Data Type
DTYPE_TEXT
External Sequence
655
XML Tag
MinOffset
In the Integration Component Fields list, add a new field using values from the following table.
Property Value Name
Primary Activity Id
Data Type
DTYPE_TEXT
External Name
Primary Activity Id
External Data Type
DTYPE_TEXT
External Sequence
654
XML Tag
PrimaryActivityId
Deliver the changes to the Integration Branch for the following projects:
Activity
AdvScheduler
The AdvScheduler project is predefined with this integration.
Incorporating Your Extensions in Oracle Fusion Middleware
This task is a step in Process of Extending the Connector.
In this topic, you incorporate your extensions in Oracle Fusion Middleware. To configure this example, you must possess detailed expertise and knowledge of using Oracle JDeveloper.
To incorporate your extensions in Oracle Fusion Middleware
Open the Oracle SOA Composer for your integration.
For example, open Internet Explorer, and then navigate to the following address:
http://computer_address:soa_server_port/soa/composer
At the login screen, enter your user name and password, and then click Login.
Enable the hook point you use in this example:
Click Open, and then choose Open DVM.
In the Select a DVM dialog box, click SBL_ORS_Parameter_Definition.dvm, and then click Open.
In the SBL_ORS_Parameter_Definition.dvm screen, enable the CustomExtn_BookAppt_Hook2_Enabled parameter using values from the following table.
Parameter Value CustomExtn_BookAppt_Hook2_Enabled
true
For more information, see Parameters You Must Set in the Parameter Definition File.
Open Oracle JDeveloper, and then do the following work:
Add three new fields:
Use the same name and type that you used in Step 4 in Creating Siebel CRM Objects.
Add these fields in the absSiebel.xsd input XSD. This XSD is located in the following directory:
oramds:/apps/SBL_ORS_INTRG/v1/XSD
Add these fields in the Action complexType element.
Add the fields that you added in the previous step to the mediator XSLT files:
Mediator_Input_To_BPEL_ApptBookingSys_BookAppt.xsl
This XSLT file is located in the following directory in Oracle MDS:
oramds:/apps/SBL_ORS_INTRG/v1/XSLT
This step configures this integration to route the changes you make in Siebel CRM through the mediator to Oracle Fusion Middleware.
Add the extra fields that you added in Step A to hook point 2 in the following file:
CustomExtn_BookAppt_Hook2_Inpt.xsl
This step configures this integration to send information about the new fields to the hook point.
To manipulate the transformation from Siebel CRM to Oracle Real-Time Scheduler, map the following fields in the input for hook point 2.
Siebel CRM Oracle Real-Time Scheduler PrimaryActivityId
PRIMARY_STOP_ID
MinOffset
MIN_OFFSET
MaxOffset
MAX_OFFSET
To avoid a conflict, make sure all names you use are unique.
Deploy the main composite and the hook point:
To make sure this integration updates the Oracle Meta Data Services with your changes, use the updateMDS ant command.
For more information, see Ant Commands You Can Use to Compile and Deploy Composites.
Compile and deploy your changes.
For more information, see Compiling and Deploying Oracle Fusion Middleware Artifacts.
Test your changes.
To test your extension you run the appointment booking flow. For more information, see Siebel Field Service Integration to Oracle Real-Time Scheduler Installation and Administration Guide.
Using Hook Point 1 and Hook Point 3
This topic describes how to use only hook point 2. To make sure the output is correct, hook point 1 and hook point 3 are disabled. If you require hook point 1 or hook point 3, then make sure you do the following work:
Modify the XSLT transformation files for hook point 1 and hook point 3.
Set the corresponding DVM parameters to true.
Other Examples of Extending the Connector
This topic describes other examples of extending the connector.
Transforming Fields
You can use this integration to transform fields. For example, assume you must transform the employee Start Depot Address field and End Depot Address field instead of the Employee Start Home field and End Home address field. In this situation, you must configure this integration to send the Employee Logon field and Employee Logoff field to Oracle Real-Time Scheduler.
Siebel CRM | Oracle Fusion Middleware | Oracle Real-Time Scheduler |
---|---|---|
You can do the following work:
|
You can do the following work:
|
No configuration. |
Reference Information for Extending the Connector
This topic describes reference information for extending the connector. It includes the following topics:
Predefined Hook Points You Can Use in Integration Flows
This topic describes the predefined hook points you can use in integration flows. It includes the following topics:
Hook Points That Book an Appointment
Hook Point Name | Placement of Hook Point | How You Can Use the Hook Point |
---|---|---|
BookAppointment_Hook1 |
In the integration flow to book an appointment as soon as the input from Siebel CRM reaches Oracle Fusion Middleware. For more information, see Step 1 in Explanation of Callouts. |
Manipulate the input from Siebel CRM as soon as it reaches Oracle Fusion Middleware. |
BookAppointment_Hook2 |
In the integration flow to book an appointment before this integration calls the CHS_SLOT method. For more information, see Step 5 in Explanation of Callouts. |
Manipulate the input to the CHS_SLOT method. |
BookAppointment_Hook3 |
In the integration flow to book an appointment before this integration sends the output from the CHS_SLOT method to Siebel CRM. For more information, see Step 7 in Explanation of Callouts. |
Manipulate the output from the CHS_SLOT method. |
ConfirmAppointment_Hook1 |
In the integration flow to confirm an appointment as soon as the input from Siebel CRM reaches Oracle Fusion Middleware. For more information, see Step 1 in Explanation of Callouts. |
Manipulate the input from Siebel CRM as soon as it reaches Oracle Fusion Middleware. |
ConfirmAppointment_Hook2 |
In the integration flow to confirm an appointment before this integration calls the ASSIGN_JOB_COND method. For more information, see Step 5 in Explanation of Callouts. |
Manipulate the input to the ASSIGN_JOB_COND method. |
ConfirmAppointment_Hook3 |
In the integration flow to book an appointment before this integration sends the output from the ASSIGN_JOB_COND method to Siebel CRM. For more information, see Step 7 in Explanation of Callouts. |
Manipulate the output from the CHS_SLOT method. |
UpsertActivity_Hook1 |
In the integration flow to update and insert an appointment as soon as the input from Siebel CRM reaches Oracle Fusion Middleware. For more information, see Step 1 in Explanation of Callouts. |
Manipulate the input from Siebel CRM as soon as it reaches Oracle Fusion Middleware. |
UpsertActivity_Hook2 |
In the integration flow to update and insert an appointment before this integration calls the UPDATE_STOP method. For more information, see Step 5 in Explanation of Callouts. |
Manipulate the input to the UPDATE_STOP method. |
UpsertActivity_Hook3 |
In the integration flow to book an appointment before this integration sends the output from the UPDATE_STOP method to Siebel CRM. For more information, see Step 7 in Explanation of Callouts. |
Manipulate the output from the UPDATE_STOP method. |
For more information about each flow that this table describes, see Integration Flows That Book an Appointment.
Hook Points That Retrieve Activity Details fromOracle Real-Time Scheduler
Hook Point Name | Placement of Hook Point | How You Can Use the Hook Point |
---|---|---|
RefreshActivity_Hook1 |
As soon as the input from Siebel CRM reaches Oracle Fusion Middleware. For more information, see Step 1 in Explanation of Callouts. |
Manipulate the input from Siebel CRM as soon as it reaches Oracle Fusion Middleware. |
RefreshActivity_Hook2 |
Before this integration calls the GET_STOP method. For more information, see Step 5 in Explanation of Callouts |
Manipulate the input to the GET_STOP method. |
Refresh Activity_Hook3 |
Before this integration sends the output from the GET_STOP method to Siebel CRM. For more information, see Step 7 in Explanation of Callouts. |
Manipulate the output from the GET_STOP method. |
For more information about each flow described in this table, see Integration Flow That Retrieves Activity Details from Oracle Real-Time Scheduler.
Hook Points That Synchronize a Shift, Break, or POU Status
Hook Point Name | Placement of Hook Point | How You Can Use the Hook Point |
---|---|---|
SyncBackShift_Hook1 |
Before this integration calls the GET_SHIFT method of the ORS Web service. |
Manipulate the input to the GET_SHIFT method. |
SyncBackShift_Hook2 |
After this integration calls the ORS_WebService Web service. |
Manipulate the output from the GET_SHIFT method. |
SyncBackDeleteShift_Hook1 |
Before this integration calls the IntegratedPOUShiftBreakORSWS_Delete method of the deleteShift Web service in the syncback shift flow. |
Manipulate the input to the IntegratedPOUShiftBreakORSWS_Delete method. |
SyncBackPOU_Hook1 |
Before this integration calls the GET_POU method of the ORS_WebService Web service. |
Manipulate the input to the GET_POU method. |
SyncBackPOU_Hook2 |
After this integration calls the GET_POU method of the ORS_WebService Web service. |
Manipulate the output to the GET_POU method. |
SyncBackPOU_Hook3 |
Before this integration calls the POUUpsert method of the POUShiftBreakUpdate Web service. |
Manipulate the input to the POUUpsert method. |
SyncBackShift_Hook3 |
Before this integration calls the POUUpsert method of the POUShiftBreakUpdate Web service. The SyncBackShift_Hook3 hook point calls the same operation and Web service as the SyncBackPOU_Hook3 hook point. |
Manipulate the input to the POUUpsert method. |
SyncBackBreak_Hook |
Before this integration calls the POUUpsert method of the POUShiftBreakUpdate Web service. |
Manipulate the input to the POUUpsert method. |
SyncBackActivity_Hook1 |
Before this integration calls the GET_STOP method of the ORS_WebService Web service. |
Manipulate the input to the GET_STOP method. |
SyncBackActivity_Hook2 |
After this integration receives a reply from the GET_STOP method of the ORS Web service. |
Manipulate the output from the GET_STOP method. |
SyncBackActivity_Hook3 |
Before this integration calls the ActivitySyncORSWS_Update method of the ORS Web service. |
Manipulate the input to the ActivitySyncORSWS_Update method. |
For more information about each flow described in this table, see Integration Flow That Synchronizes a Shift, Break, or POU Status from Siebel CRM to Oracle Real-Time Scheduler.
Hook Points That Update Employee Data
Hook Point Name | Placement of Hook Point | How You Can Use the Hook Point |
---|---|---|
EmployeeUpsert_Hook1 |
In the integration flow to update employee data as soon as the input from Siebel CRM reaches Oracle Fusion Middleware. For more information, see Step 1 in Explanation of Callouts. |
Manipulate the input from Siebel CRM as soon as it reaches Oracle Fusion Middleware. |
EmployeeUpsert_Hook2 |
In the integration flow to update employee data before this integration calls the UPDATE_DRIVER method. For more information, see Step 5 in Explanation of Callouts. |
Manipulate the input to the UPDATE_DRIVER method. |
EmployeeUpsert_Hook3 |
In the integration flow to update employee data before this integration sends the output from the UPDATE_DRIVER method to Siebel CRM. For more information, see Step 6 in Explanation of Callouts. |
Manipulate the output from the UPDATE_DRIVER method. |
AddressUpsert_Hook1 |
In the integration flow to update an address as soon as the input from Siebel CRM reaches Oracle Fusion Middleware. |
Manipulate the input from Siebel CRM as soon as it reaches Oracle Fusion Middleware. |
AddressUpsert_Hook2 |
In the integration flow to update an address before this integration calls the UPDATE_COMMON_ADDRESS method. |
Manipulate the input to the UPDATE_COMMON_ADDRESS method. |
AddressUpsert_Hook3 |
In the integration flow to update an address before this integration sends the output from the UPDATE_COMMON_ADDRESS method to Siebel CRM. |
Manipulate the output from the UPDATE_COMMON_ADDRESS method. |
For more information about each flow described in this table, see Integration Flows That Update Employee Data in Real Time.
Hook Points That Perform a Service Region Data Transfer
Table Predefined Hook Points That Perform a Service Region Data Transfer
Hook Point Name | Placement of Hook Point | How You Can Use the Hook Point |
---|---|---|
StartAddressTransfer |
Before this integration calls the UPSERT_ADDRESS method in the start address data transfer flow. For more information, see Step 6 in Explanation of Callouts. |
Manipulate the input to the UPSERT_ADDRESS method. |
EndAddressTransfer |
Before this integration calls the UPSERT_ADDRESS method in the end address data transfer flow. For more information, see Step 6 in Explanation of Callouts. |
Manipulate the input to the UPSERT_ADDRESS method. |
EmployeeTransfer |
Before this integration calls the UPSERT_EMPLOYEE method. |
Manipulate the input to the UPSERT_EMPLOYEE method. |
ActivityTransfer |
Before this integration calls the Upsert_Activity method. For more information, see Step 10 in Explanation of Callouts. |
Manipulate the input to the Upsert_Activity method. |
For more information about each flow described in this table, see Integration Flow That Performs a Service Region Data Transfer. These hook points occur in a subflow in the address transfer flow. Integration Flow That Performs a Service Region Data Transfer does not display this subflow.
Hook Point Operations That This Integration Calls
Table Hook Point Operations That This Integration Calls
Hook Point Name | Operation That This Integration Calls |
---|---|
BookAppointment_Hook1 |
custom_extension_book |
BookAppointment_Hook2 |
custom_extension_bookappt_hook2 |
BookAppointment_Hook3 |
custom_extension_book_hook3 |
ConfirmAppointment_Hook1 |
custom_extension_confirm |
ConfirmAppointment_Hook2 |
custom_extension_confirmappt_hook2 |
ConfirmAppointment_Hook3 |
custom_extension_confirm_hook3 |
UpsertActivity_Hook1 |
custom_extension_upsertactivity_hook1 |
UpsertActivity_Hook2 |
custom_extension_upsertactivity_hook2 |
UpsertActivity_Hook3 |
custom_extension_book_hook3 |
EmployeeUpsert_Hook1 |
custom_extension_employee_upsert |
EmployeeUpsert_Hook2 |
custom_extension_employeeupsert_hook2 |
EmployeeUpsert_Hook3 |
custom_extension_employeeupsert_hook3 |
AddressUpsert_Hook1 |
custom_extension_book |
AddressUpsert_Hook2 |
custom_extension_addressupsert_hook2 |
AddressUpsert_Hook3 |
custom_extension_book_hook3 |
RefreshActivity_Hook1 |
custom_refresh_activitystatus_hook1 |
RefreshActivity_Hook2 |
custom_refresh_activitystate_hook2 |
Refresh Activity_Hook3 |
custom_refresh_activitystate_hook3 |
StartAddressTransfer_Hook |
custom_serviceregncutover_addresstransfer_hook |
EndAddressTransfer_Hook |
custom_serviceregncutover_addresstransfer_hook |
EmployeeTransfer_Hook |
custom_serviceregncutover_employeetransfer_hook |
ActivityTransfer_Hook |
custom_serviceregncutover_activitytransfer_hook |
SyncBackShift_Hook1 |
custom_extension_syncback_shift_hook1 |
SyncBackShift_Hook2 |
custom_extn_syncback_shift_hook2 |
SyncBackDeleteShift_Hook1 |
custom_extn_shiftdelete_hook1 |
SyncBackPOU_Hook1 |
custom_extn_syncback_pou_hook1 |
SyncBackPOU_Hook2 |
custom_extn_syncbackpou_hook2 |
SyncBackPOU_Hook3 |
custom_extn_syncbackpou_hook3 |
SyncBackShift_Hook3 |
custom_extn_syncbackshift_hook3 |
SyncBackBreak_Hook |
custom_extn_syncback_break_hook1 |
SyncBackActivity_Hook1 |
custom_extn_syncback_activity_hook1 |
SyncBackActivity_Hook2 |
custom_extn_syncback_activity_hook2 |
SyncBackActivity_Hook3 |
custom_extn_syncback_activity_hook3 |
Parameters You Must Set in the Parameter Definition File
To use a hook point, you must set the enable parameter for the hook point to true. For example, to use the BookAppointment_Hook1 hook point, you must set the following DVM parameter in the SBL_ORS_Parameter_Definition.dvm file to true:
CustomExtn_BookAppt_Hook1_Enabled
Hook Point Name | Parameter |
---|---|
BookAppointment_Hook1 |
CustomExtn_BookAppt_Hook1_Enabled |
BookAppointment_Hook2 |
CustomExtn_BookAppt_Hook2_Enabled |
BookAppointment_Hook3 |
CustomExtn_BookAppt_Hook3_Enabled |
ConfirmAppointment_Hook1 |
CustomExtn_ConfirmAppt_Hook1_Enabled |
ConfirmAppointment_Hook2 |
CustomExtn_ConfirmAppt_Hook2_Enabled |
ConfirmAppointment_Hook3 |
CustomExtn_ConfirmAppt_Hook3_Enabled |
UpsertActivity_Hook1 |
CustomExtn_UpsertActivity_Hook1_Enabled |
UpsertActivity_Hook2 |
CustomExtn_UpsertActivity_Hook2_Enabled |
UpsertActivity_Hook3 |
CustomExtn_UpsertActivity_Hook3_Enabled |
EmployeeUpsert_Hook1 |
CustomExtn_EmployeeUpsert_Hook1_Enabled |
EmployeeUpsert_Hook2 |
CustomExtn_EmployeeUpsert_Hook2_Enabled |
EmployeeUpsert_Hook3 |
CustomExtn_EmployeeUpsert_Hook3_Enabled |
AddressUpsert_Hook1 |
CustomExtn_AddressUpsert_Hook1_Enabled |
AddressUpsert_Hook2 |
CustomExtn_AddressUpsert_Hook2_Enabled |
AddressUpsert_Hook3 |
CustomExtn_AddressUpsert_Hook3_Enabled |
RefreshActivity_Hook1 |
CustomExtn_RefreshActivity_Hook1_Enabled |
RefreshActivity_Hook2 |
CustomExtn_RefreshActivity_Hook2_Enabled |
Refresh Activity_Hook3 |
CustomExtn_RefreshActivity_Hook3_Enabled |
StartAddressTransfer_Hook |
CustomExtn_ServiceRegnCutover_AddressTranfer_Hook_Enabled |
EndAddressTransfer_Hook |
CustomExtn_ServiceRegnCutover_EndAddressTansfer_Hook_Enabled |
EmployeeTransfer_Hook |
CustomExtn_ServiceRegnCutover_EmployeeTransfer_Hook_Enabled |
ActivityTransfer_Hook |
CustomExtn_ServiceRegnCutover_ActivityTransfer_Hook_Enabled |
SyncBackShift_Hook1 |
CustomExtn_SyncBackActivity_Hook1_Enabled |
SyncBackShift_Hook2 |
CustomExtn_SyncBackActivity_Hook2_Enabled |
SyncBackDeleteShift_Hook1 |
CustomExtn_SyncShiftDelete_Hook_Enabled |
SyncBackPOU_Hook1 |
CustomExtn_SyncBackPOU_Hook1_Enabled |
SyncBackPOU_Hook2 |
CustomExtn_SyncBackPOU_Hook2_Enabled |
SyncBackPOU_Hook3 |
CustomExtn_SyncBackPOU_Hook3_Enabled |
SyncBackShift_Hook3 |
CustomExtn_SyncBackShift_Hook3_Enabled |
SyncBackBreak_Hook |
CustomExtn_SyncBackBreak_Hook_Enabled |
SyncBackActivity_Hook1 |
CustomExtn_SyncBackActivity_Hook1_Enabled |
SyncBackActivity_Hook2 |
CustomExtn_SyncBackActivity_Hook2_Enabled |
SyncBackActivity_Hook3 |
CustomExtn_SyncBackActivity_Hook3_Enabled |