3Appointment Booking Integration

Appointment Booking Integration

This chapter describes the appointment booking process integration. It includes the following topics:

Overview of Appointment Booking Integration

The appointment booking process includes the following flows:

  • Get and Confirm Appointment. Makes an appointment request, displays the available slots, and then confirms one of the slots.

  • Reschedule an Appointment. Rebooks a previously confirmed appointment.

  • Cancel an Appointment. Cancels a confirmed appointment.

  • Update an Appointment. Updates activity details.

  • SLA Based Appointment (Contract Scheduling). Inserts an appointment into an optimized schedule to meet the SLA Service Level Agreement (SLA) requirements of the customer.

  • Get Latest Appointment Details. Gets the latest appointment details from Oracle Real-Time Scheduler.

  • Book Appointment for Child Activity. Makes an appointment request for a bounded job.

A composite is a deployment unit of the Service-Oriented Architecture (SOA) composite architecture that Oracle SOA Suite 11g supports. A composite includes various components, such as Mediator, BPEL flow, Adapters, and so forth. Siebel Field Service Integration to Oracle Real-Time Scheduler creates a single SOA composite to perform tasks that are related to the Appointment Booking System (ABS). The entry point to this composite is an outbound Web service call from Siebel CRM.

The Web Service Definition Language (WSDL) file defines the operations and the expected message formats. The service that is available is the entry point that Siebel CRM uses to target the Siebel CRM Web service request. Separate operations are defined within the WSDL to book an appointment, cancel an appointment, and so forth.

A single Business Process Execution Language (BPEL) process handles requests that occur in this composite. The mediator sets the OPERATION_TYPE global variable in the BPEL process in one of the following ways:

  • To Book_Appt if the Web service operation is Book_Appointment

  • To Confirm_Appt if the Web service operation is Confirm_Appointment

  • And so forth for other Web service operations

This integration handles these requests so that it can use a single Business Process Execution Language (BPEL) process for these tasks and so that it can place a switch inside the BPEL that calls the appropriate Oracle Real-Time Scheduler Web service.

For more information, see Integration Services

Integration Flow That Books or Reschedules an Appointment

The following illustrates the integration flow to book an appointment. The flow to reschedule an appointment is same as the flow to book an appointment. The is a synchronous request and reply flow. It uses Simple Object Access Protocol (SOAP) over Hypertext Transfer Protocol (HTTP) for all interactions with Siebel CRM and Oracle Real-Time Scheduler. For more information, see Mapping Definitions That Book, Confirm, Insert, or Reschedule an Appointment.

Integration Flow to Book or Reschedule an Appointment: This image is described in he surrounding text.

    Explanation of Callouts

    The integration flow to book or reschedule an appointment includes the following steps:

    1. Receives input from Siebel CRM.

    2. Siebel CRM makes a Web service call to the Book_Appointment method of the ABSService Web service.

    3. The mediator forwards the request to the BPEL flow.

    4. The decision diamond represents a case statement. If the flow is a book appointment flow, then this integration performs the flow illustrated in the Integration Flow to Book or Reschedule an Appointment. For other flows, see the appropriate topic in this book.

    5. To get slots from Oracle Real-Time Scheduler, the BPEL flow calls the M1-RouteAppointmentRequestToScheduler Web service method of Oracle Real-Time Scheduler.

    6. If there is a network error, then this integration automatically attempts to communicate again with the Web service. A network error indicates that this integration cannot establish communication with the Oracle Real-Time Scheduler Web service.

    7. The BPEL flow formats the slots that Oracle Real-Time Scheduler returns and sends them back to Siebel CRM.

    For more information, see Integration Services.

      How This Integration Locks Assignments and Schedules

      This integration locks assignments and schedules in the following ways:

      • If the Lock Assignment flag is set in the Web service input that the BPEL flow receives, then this integration sets the ROW_ID of the employee at the Allowed Crew Name field while sending the request to Oracle Real-Time Scheduler.

      • If the Lock Schedule flag is set in the input, then this integration does not set the period of the request from the earliest start field and latest start field that the input specifies. Instead, it uses the planned start and planned end fields of the input. This integration uses a tolerance of plus or minus ten minutes for the duration of the time period.

        Domain Value Map That Books or Reschedules an Appointment

        A domain value map (DVM) is an SOA utility that facilitates the mapping of a list of values from one application to another application. In this integration, the Siebel application provides source values to Oracle Real-Time Scheduler. For example, assume the State value in a list of values includes the following values:

        • CA in Siebel CRM

        • California in Oracle Real-Time Scheduler

        The DVM maps CA to California.

        The following table describes the DVM that occurs in the book and reschedule appointment flow. This integration assumes that all DVMs are stored on the Oracle Meta Data Services (MDS). The Oracle MDS is a shared area in Oracle Fusion Middleware. It can reference a database or files. To support access to the same DVMs and cross references for multiple composites, this integration assumes Oracle MDS references a database. For more information, see Configuring Domain Value Maps.

        DVM Description

        SBL_ORS_Parameter_Definition.dvm

        This integration uses the following DVM parameters:

        • ORS-No of Slots

        • ORS-No of Slots-<SRV_REGION_NAME>

          If SRV_REGION_NAME is missing, then this integration uses only ORS-No of Slots.

        • ORS-Request Slot MaxCost

        • ORS-Request Slot MaxCost-<SRV_REGION_NAME>

          If SRV_REGION_NAME is missing, then this integration uses only ORS-Request Slot MaxCost.

        For more information, see Mapping Run-Time Parameters.

        DVM- SBL_ORS_Endpoint_Definition.dvm

        This integration uses the Appointment Booking DVM parameter.

          Integration Flow That Confirms an Appointment

          The integration flow to confirm an appointment is the same as the flow to book or reschedule an appointment illustrated in Integration Flow That Books or Reschedules an Appointment except for the following differences:

          • Siebel CRM makes a Web service call to the Confirm_Appointment method of the ABSService Web service.

          • To confirm the chosen slot, the BPEL flow calls the M1-MaintainActivityByHost Web service method of Oracle Real-Time Scheduler.

          • The BPEL flow sends the reply that it receives from Oracle Real-Time Scheduler to Siebel CRM. The reply from Oracle Real-Time Scheduler can be a success or failure.

          For more information, see Integration Services and Mapping Definitions That Manage an Appointment.

            DVM That Confirms an Appointment

            The following table describes the DVM to confirm an appointment. For more information, see Configuring Domain Value Maps.

            DVM Description

            SBL_ORS_Parameter_Definition.dvm

            This integration uses the following DVM parameters:

            • ORS-Confirm Slot MaxCost

            • ORS-Confirm Slot MaxCost-<SRV_REGION_NAME>

              If SRV_REGION_NAME is missing, then this integration uses only ORS- Confirm Slot MaxCost.

            • ORS-FindShift

            • ORS-FindShift-<SRV_REGION_NAME>

              If SRV_REGION_NAME is missing, then this integration uses only ORS-FindShift.

            DVM- SBL_ORS_Endpoint_Definition.dvm

            This integration uses the Activity Maintenance DVM parameter.

              Integration Flow That Cancels an Appointment

              The integration flow to cancel an appointment is the same as the flow to confirm an appointment described in Integration Flow That Confirms an Appointment except for the following differences:

              • Siebel CRM calls the Cancel_Appointment method.

              • To cancel the appointment in Oracle Real-Time Scheduler, the BPEL flow calls the M1-ActivityStatusUpdatesFromHost Web service method of Oracle Real-Time Scheduler.

              For more information, see Integration Services and Mapping Definitions That Cancel an Appointment.

                DVM That Cancels an Appointment

                The following table describes the DVM to cancel an appointment. For more information, see Configuring Domain Value Maps.

                DVM Description

                SBL_ORS_Endpoint_Definition.dvm

                This integration uses StatusUpdatesFromHost DVM parameter.

                  Integration Flow That Schedules an Appointment According to a Contract

                  The integration flow to schedule an appointment according to a contract is the same as the flow to confirm an appointment described in Integration Flow That Confirms an Appointment except for the following differences:

                  • Siebel CRM calls the Upsert_Activity method.

                  • To insert the activity in Oracle Real-Time Scheduler, the BPEL flow calls the M1-MaintainActivityByHost Web service method of Oracle Real-Time Scheduler.

                  For more information, see Integration Services.

                    DVM That Schedules an Appointment According to a Contract

                    The following table describes the DVM to schedule an appointment according to a contract. For more information, see Configuring Domain Value Maps.

                    DVM Description

                    SBL_ORS_Endpoint_Definition.dvm

                    This integration uses Activity Maintenance DVM parameter.

                      Integration Flow That Updates and Inserts an Appointment

                      The integration flow to update and insert an appointment is the same as the flow to confirm an appointment described in Integration Flow That Confirms an Appointment except for the following differences:

                      • Siebel CRM calls the Upsert_Activity method. Upsert means to perform an update operation and an insert operation.

                      • To insert the activity in Oracle Real-Time Scheduler, the BPEL flow calls the M1-MaintainActivityByHost Web service method.

                        DVM That Updates and Inserts an Appointment

                        The DVM to update and insert an appointment is the same as the DVM to schedule an appointment according to a contract. For more information, see DVM That Schedules an Appointment According to a Contract.

                          Output XSD That Updates and Inserts an Appointment

                          The output XML Schema Definition (XSD) to update and insert an appointment is the same as the output XSD it uses to confirm an appointment. For more information, see Integration Services.

                            Integration Flow That Retrieves Activity Details from Oracle Real-Time Scheduler

                            The details of an appointment continue to change in Oracle Real-Time Scheduler even after the customer service representative (CSR) confirms the appointment. Details include Crew assigned to the activity, planned start, and so forth. If the CSR requires the current details of the activity, then the CSR must click Refresh Activity in Siebel CRM.

                            The integration flow to retrieve activity details is the same as the flow to book or reschedule an appointment illustrated in Integration Flow That Books or Reschedules an Appointment except for the following differences:

                            • Siebel CRM calls the Retrieve_Activity_State method of the ActivityStateRetrieval Web service.

                            • To get the latest details on the activity from Oracle Real-Time Scheduler, the BPEL flow calls the M1-ActivityStatusInquiry Web service method.

                            • The BPEL flow formats the reply that it receives from Oracle Real-Time Scheduler and then sends this reply to Siebel CRM.

                            This integration uses the ActivityLatestStateRetrieval_EBF project to get appointment details.

                            For more information, see the following topics:

                              DVM That Gets Appointment Details

                              The following table describes the DVM to get appointment details. This integration assumes that all DVMs are stored on the Oracle MDS. For more information, see Configuring Domain Value Maps.

                              DVM Description

                              SBL_ORS_Endpoint_Definition.dvm

                              This integration uses the ActivityStatusInquiry DVM parameter.

                              ORS_to_SBL_ActivityStatusMapping.dvm

                              Used to extract the Siebel CRM equivalent of an Oracle Real-Time Scheduler status. For more information, see Configuring Domain Value Maps.

                                Integration Flow That Books an Appointment for a Child Activity

                                Users must associate an already booked activity, which will be the parent activity for the current activity, and set the minimum offset duration (within which the child activity has to be scheduled from parent activity) and the maximum offset (within which the child activity has to be scheduled from parent activity) activity. The minimum offset and maximum offset are in minutes and considered from the Start time of the Parent activity.

                                When you click of Book Appointment, Siebel CRM makes a Web service call to the Upsert_Appointment method of the ABSService Web service. The mediator forwards the request to the BPEL flow to insert the activity in Oracle Real-Time Scheduler. The BPEL flow then calls the M1- MaintainActivityByHost Web service method from the Oracle Real-Time Scheduler. Instead of displaying the slots, Siebel CRM will display a confirmation message while booking an appointment for Child Activity.

                                  Web Services That Book an Appointment

                                  This topic describes Web services that book an appointment.

                                    Outbound Web Service That Books an Appointment

                                    The following table describes the outbound Web service for the Appointment Booking System.

                                    Web Service Name Proxy Business Service Name

                                    ABSWebService

                                    ABSWebServiceSoap

                                    The Data Type property is Integration Object for all method arguments of the ABSWebService Web service that book an appointment.

                                    Name Integration Object Name Type

                                    Book_Appointment_IN:in

                                    Abssiebel

                                    Input

                                    Book_Appointment_OUT:out

                                    BOOK_APPT_RESPONSE

                                    Output

                                    Name Integration Object Name Type

                                    Cancel_Appointment_IN:in

                                    Abssiebel

                                    Input

                                    Cancel_Appointment_OUT:out

                                    CANCEL_APPT_RESPONSE

                                    Output

                                    Name Integration Object Name Type

                                    Confirm_Appointment_IN:in

                                    Abssiebel

                                    Input

                                    Confirm_Appointment_OUT:out

                                    CONFIRM_APPT_RESPONSE

                                    Output

                                    Name Integration Object Name Type

                                    Contract_Scheduling_IN:in

                                    Abssiebel

                                    Input

                                    Contract_Scheduling_OUT:out

                                    CONFIRM_APPT_RESPONSE

                                    Output

                                    Name Integration Object Name Type

                                    Upsert_Activity_IN:in

                                    Abssiebel

                                    Input

                                    Upsert_Activity_OUT:out

                                    UPSERT_ACTIVITY_RESPONSE

                                    Output

                                      Integration Objects That Book an Appointment

                                      Integration Object Name Business Object Type

                                      Abssiebel

                                      Action

                                      Hierarchy

                                      BOOK_APPT_RESPONSE

                                      Not applicable

                                      XML

                                      CONFIRM_APPT_RESPONSE

                                      CANCEL_APPT_RESPONSE

                                      UPSERT_ACTIVITY_RESPONSE

                                      Integration Component Business Component Parent Integration Component

                                      Action

                                      Action

                                      Not applicable

                                      Action_Service Address

                                      CUT Address

                                      Action

                                      FS Activity Skill

                                      FS Activity Skill

                                      Action

                                      FS Activity Skill Item

                                      FS Activity Skill Item

                                      FS Activity Skill Item

                                      Integration Component Business Component Parent Integration Component

                                      CHS_REPLY

                                      CHS_REPLY

                                      BOOK_APPT_RESPONSE

                                      ERROR

                                      ERROR

                                      BOOK_APPT_RESPONSE

                                      RESULT

                                      RESULT

                                      BOOK_APPT_RESPONSE

                                      Integration Component Business Component Parent Integration Component

                                      CANCEL_APPT_RESPONSE

                                      CANCEL_APPT_RESPONSE

                                      Not applicable

                                      ERROR

                                      ERROR

                                      CANCEL_APPT_RESPONSE

                                      RESULT

                                      RESULT

                                      CANCEL_APPT_RESPONSE

                                      Integration Component Business Component Parent Integration Component

                                      CONFIRM_APPT_RESPONSE

                                      CONFIRM_APPT_RESPONSE

                                      Not applicable

                                      ERROR

                                      ERROR

                                      CONFIRM_APPT_RESPONSE

                                      RESULT

                                      RESULT

                                      CONFIRM_APPT_RESPONSE

                                      Integration Component Business Component Parent Integration Component

                                      UPSERT_ACTIVITY_RESPONSE

                                      UPSERT_ACTIVITY_RESPONSE

                                      Not applicable

                                      ERROR

                                      ERROR

                                      UPSERT_ACTIVITY_RESPONSE

                                      RESULT

                                      RESULT

                                      UPSERT_ACTIVITY_RESPONSE