4Setting Up Application Services Interfaces for Siebel PRM

Setting Up Application Services Interfaces for Siebel PRM

This chapter discusses how to set up Application Services Interfaces (ASIs), which allow integration of Siebel PRM with other CRM systems. It describes mandatory initial setup, and it documents workflows used by the ASIs. It includes the following topics:

    About Application Services Interfaces and Siebel PRM

    Siebel’s Application Services Interfaces (ASIs) allow you to integrate Siebel business Applications with other applications in real time.

    Two features of Siebel PRM use ASIs:

    • Opportunity Transfer. Use this feature if some of your partners have their own CRM systems and do not want to use the Siebel PRM Portal to share opportunities. Opportunity transfer synchronizes your Siebel database with the partner's CRM system. You can transfer opportunities and the contacts, revenues, notes, and activities associated with them to your partner’s CRM system, or you can query the partner's system to transfer their opportunities to your Siebel system. For more information about how opportunity transfer can be used in your business, see Managing Sales with Siebel PRM.

    • Shopping Cart Transfer. Use this feature if your company wants to make sales through its own Web site but wants distributors or other partners to fulfill the orders. The customer can use Siebel Sales on your Web site to create a shopping cart and transfer the shopping cart to a partner’s site for fulfillment. For more information about how shopping cart transfer can be used in your business, see Managing Partner Commerce.

    For general information about ASIs, see Siebel Application Services Interface Reference. This chapter provides the following information that is specific to Siebel PRM:

    • Setting Up ASIs. You must set up the ASIs shipped with Siebel PRM before you can use them. This chapter provides the procedures that you must perform to set up these ASIs.

    • ASI Workflows. You might want to modify the way that Siebel PRM calls its ASIs to customize it for your business. This chapter documents the workflows that you might want to modify to change the ways that ASIs are called.

      About Setting Up ASIs for Siebel PRM

      You can set up ASIs for Siebel PRM in the following ways:

      After following the specific instructions to set up either of these, you must follow the general instructions for setting up ASIs, which applies to both of them, described in General Setup for ASIs for Siebel PRM.

        Setting Up Opportunity Transfer for Siebel PRM

        To set up real-time opportunity transfer with a partner, you must:

        • Set up the Web services

        • Assign a port to the partner

        • Do the general setup for ASIs

        To set up the Web services, you must log in to Siebel PRM Manager as a user with system administrator privileges. Then, you must set up outbound Web services and set up inbound Web services. To set up real-time opportunity transfer, in addition to setting up inbound and outbound Web services, you must assign a port to the partner.

        To set up outbound Web services

        1. Navigate to the Administration - Web Services screen, then the Outbound Web Service view.

        2. In the Outbound Web Service list, create a query to display all records with "External Opportunity*" in the Name field.

        3. Select Active in the Status field of all of these records to activate these Web services.

        4. Select the record with the name External Opportunity Create.

        5. In the Service Ports list, add a new record, and enter the values in the following table in the fields of the new record.

          Field

          Description

          Name

          Enter a name for the port, such as Transfer opportunity.

          Port Type

          Select External Opportunity Create.

          Transport

          Select HTTP.

          Address

          Specify the address or URL of the target system with which you are communicating.

          If you are communicating with another Siebel instance, enter the following:

          http://webserver/eai_lang/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&WSSOAP=1

          For the values in angle brackets, use the actual values for your system.

          Protocol

          Select SOAP_RPC_ENCODED.

          Comment

          Enter a comment for your own use.

        6. In the Operation Bindings list, add a new record, and enter the values in the following table in the fields of the new record.

          Field

          Description

          Operation Name

          Use the list to select ExternalOpportunityCreateExecute.

          Binding Property

          namespace

          Binding Value

          http://siebel.com/asi/

        7. Follow Step 1 through Step 6 to define the service port for External Opportunity Update, with these exceptions:

          1. In the Outbound Web Service list, select External Opportunity Update.

          2. Add a new record in the Service Ports list with the same values you entered for External Opportunity Create, but change the port type value to External Opportunity Update.

          3. Add a new record in the Operation Bindings list with the same values you entered for External Opportunity Create, but change the Operation Name value to ExternalOpportunityUpdateExecute.

        8. Follow Step 1 through Step 6 to define the service port for External Opportunity Query, with these exceptions:

          1. In the Outbound Web Service list, select External Opportunity Query.

          2. Add a new record in the Service Ports list with the same values you entered for External Opportunity Create, but change the port type value to External Opportunity Query.

          3. Add a new record in the Operation Bindings list with the same values you entered for External Opportunity Create, but change the Operation Name value to ExternalOpportunityQueryExecute.

        9. Follow Step 1 through Step 6 to define the service port for External Opportunity Update Response, with these exceptions:

          1. In the Outbound Web Service list, select External Opportunity Update Response.

          2. Add a new record in the Service Ports list with the same values you entered for External Opportunity Create, but change the port type value to External Opportunity Update Response.

          3. Add a new record in the Operation Bindings list with the same values you entered for External Opportunity Create, but change the Operation Name value to ExternalOpportunityUpdateResponseExecute.

            Note: Users must activate the workflows before they set up the Inbound Web services, or they cannot select the workflow under the Implementation Name in the Type field. For more information, see Activate Workflows.
        1. From the Link bar, select Inbound Web Service.

        2. In the Inbound Web Service list, create a query to display all records with "Siebel Opportunity*" in the Name field.

        3. Select Active in the Status field of all of these records to activate these Web services.

        4. Select the record with the name Siebel Opportunity Create.

        5. In the Service Ports list, add a new record, and enter the values in the following table in the fields of the new record.

          Field

          Description

          Name

          Enter a name for the port, such as Receive opportunity.

          Type

          Click the select icon. In the dialog box, add a new record and enter the following values in the new record:

          Implementation Type: Workflow Process

          Implementation Name: Select Opportunity Sharing Siebel Create

          Name: Siebel Opportunity Create

          After creating this record, select it as Type.

          Business Service

          Entered automatically when you select the Type.

          Transport

          Select HTTP.

          Address

          Enter:

          http://webserver/eai_lang/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&WSSOAP=1

          For the values in angle brackets, use the actual values for your system.

          Bindings

          Select SOAP_RPC_ENCODED.

          Comment

          Enter a comment for your own use.

        6. In the Operations list, add a new record, and enter the values in the following table in the fields of the new record.

          Field

          Description

          Name

          Enter ExternalOpportunityCreateExecute.

          Business Service

          Entered automatically when you create a new operation.

        7. Follow Step 1 through Step 6 to define the service port for Siebel Opportunity Update, with these exceptions:

          1. In the Inbound Web Service list, select Siebel Opportunity Update.

          2. Add a new record in the Service Ports list with the same values you entered for External Opportunity Create, but use the following values for the Type field when you create the new record in the list:
            • Implementation Type: Workflow Process

            • Implementation Name: Select Opportunity Sharing Siebel Update

            • Name: Siebel Opportunity Update

          3. Add a new record in the Operations list with the same values you entered for External Opportunity Create, but change the Name in the Operations list to ExternalOpportunityUpdateExecute.

        8. Follow Step 1 through Step 6 to define the service port for Siebel Opportunity Query, with these exceptions:

          1. In the Inbound Web Service list, select Siebel Opportunity Query.

          2. Add a new record in the Service Ports list with the same values you entered for External Opportunity Create, but use the following values for the Type field when you create the new record in the list:

            • Implementation Type: Workflow Process

            • Implementation Name: Select Opportunity Sharing Siebel Query

            • Name: Siebel Opportunity Query

          3. Add a new record in the Operations list with the same values you entered for External Opportunity Create, but change the Name in the Operations list to ExternalOpportunityQueryExecute.

        9. Follow Step 1 through Step 6 to define the service port for Siebel Opportunity Update Response, with these exceptions:

          1. In the Inbound Web Service list, select Siebel Opportunity Update Response.

          2. Add a new record in the Service Ports list with the same values you entered for External Opportunity Create, but use the following values for the Type field when you create the new record in the list:

            • Implementation Type: Workflow Process

            • Implementation Name: Select Opportunity Sharing Receive Update Response

            • Name: SiebelOpportunityUpdateResponse

          3. Add a new record in the Operations list with the same values you entered for External Opportunity Create, but change the Name in the Operations list to ExternalOpportunityUpdateResponseExecute.

        1. Navigate to the Administration - Partner screen, then the Registered Partners view.

        2. In the Partners list, drill down on the name of the partner company.

        3. Navigate to the Integration view.

        4. In the Integration list, add a new record, and use the list to select one of the ports you created for the Outbound Web Services list.

        5. Continue to create a new record in the Integration list for each of the ports you created in the Outbound Web Services list that belongs to this partner.

          Additional Setup Tasks

          To finish setting up opportunity transfer, you must also complete the tasks described in General Setup for ASIs for Siebel PRM.

            Setting Up the Partner

            For testing, you can set up a second system to represent a partner. On the second system, repeat the steps for setting up the Web services and assigning the port. However, when you assign the port, as the partner, pick the organization that is the brand owner on the first system you set up.

            After you have tested opportunity transfer and are ready to use it with actual partners, you must set up outbound ports for every partner to which you plan to transfer.

            In the External Opportunity Create Web service, you must create a separate service port for each partner, as described in Setting Up Opportunity Transfer for Siebel PRM. Repeat this process for the rest of the outbound Web services. Then, use the Administration - Partner screen to assign the partner a port, as described in Setting Up Opportunity Transfer for Siebel PRM, where you must add the port with each partner’s URL to that partner’s integration profile.

            In addition, you must talk to your partners to make sure the partners have some structure set up to receive a transfer. You must also make sure that partners have your organization listed as a partner in their own systems and that they have the correct value for the D-U-N-S number.

            On your system, there is an Internal DUNS Number System Preference. This has to be changed to match your company’s D-U-N-S number.

            If your organization expects to receive transfers from partners, you must also make sure those partners are listed as partners and their D-U-N-S numbers are set correctly in your system.

              Setting Up Shopping Cart Transfer for Siebel PRM

              To set up real-time shopping cart transfer to a partner, you must:

              • Set up the Web services

              • Assign a port to the partner

              • Change the Siebel PRM Portal configuration file

              • Assign global product identifiers

              • Check setup of ATP

              • Do the general setup for ASIs

                Setting Up Web Services for Shopping Cart Transfer

                To set up the Web services, you must log in to Siebel PRM Manager as a user with system administrator privileges, and then set up outbound Web services and set up inbound Web services.

                To set up outbound Web services

                1. Navigate to the Administration - Service Administration screen, then the Outbound Web Service view.

                2. In the Outbound Web Service list, create a query to display the records with "External Shopping Cart Create" in the Name field.

                3. Select Active in the Status field of this record to activate this Web service.

                4. In the Service Ports list, add a new record, and enter the values in the following table in the fields of the new record.

                  Field

                  Description

                  Name

                  Enter a name for the port, such as Transfer Cart.

                  Port Type

                  Select External Shopping Cart Create.

                  Transport

                  Select HTTP.

                  Address

                  Specify the address or URL of the target system with which you are communicating.

                  If you are communicating with another Siebel instance, enter the following:

                  http://webserver/eai_lang/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&WSSOAP=1

                  For the values in angle brackets, use the actual values for your system.

                  Binding

                  Select SOAP_RPC_ENCODED.

                  Comment

                  Enter a comment for your own use.

                5. In the Operation Bindings list, add a new record, and enter the values in the following table in the fields of the new record.

                  Field

                  Description

                  Operation Name

                  In the picklist, select ExternalShoppingCartCreateSynchronize

                  Binding Property

                  namespace

                  Binding Value

                  http://siebel.com/asi/

                  Note: Users must activate the workflows before they set up the Inbound Web services, or they cannot select the workflow under the Implementation Name in the Type field. For more information, see Activate Workflows.

                To set up inbound Web services

                1. Navigate to the Administration - Web Services screen, then the Inbound Web Service view.

                2. In the Inbound Web Service list, create a query to display the record with "Siebel Shopping Cart Create" in the Name field.

                3. Select Active in the Status field of this record to activate this Web service.

                4. Select the record with the name Siebel Shopping Cart Create.

                5. In the Service Ports list, add a new record, and enter the values in the following table in the fields of the new record.

                  Field

                  Description

                  Name

                  Enter a name for the port, such as Receive Cart.

                  Type

                  Click the select icon. In the dialog box, add a new record and enter the following values in the new record:

                  Implementation Type: Workflow Process

                  Implementation Name: Select Transfer Cart Inbound Receive Process

                  Name: Siebel Shopping Cart Create

                  After creating this record, select it as Type.

                  Business Service

                  Entered automatically when you select the port type.

                  Transport

                  Select HTTP.

                  Address

                  Enter:

                  http://webserver/eai_lang/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&WSSOAP=1

                  For the values in angle brackets, use the actual values for your system.

                  Binding

                  Select SOAP_RPC_ENCODED.

                  Comment

                  Enter a comment for your own use.

                6. In the Operations list, add a new record, and enter the values in the following table in the fields of the new record.

                  Field

                  Description

                  Name

                  Enter ExternalShoppingCartCreateSynchronize.

                  Business Service

                  Entered automatically when you create a new operation.

                  Assigning a Partner Port for Real-Time Shopping Cart Transfer

                  To set up real-time shopping cart transfer, in addition to setting up inbound and outbound Web services, you must assign a port to the partner. If you are not using middleware, you might want to set up a different port for each partner.

                  To assign a port to the partner for real-time shopping cart transfer

                  1. Navigate to the Administration - Partner screen, then the Registered Partners view.

                  2. Drill down on the partner company.

                  3. Navigate to the Integration view.

                  4. In the Integration list, add a new record and select the port you created in the Outbound Web Services list.

                    Change the PRM Portal Configuration File

                    The final step to allow shopping cart transfer is to change the configuration file for the Siebel PRM Portal.

                    To change the parameters to allow shopping cart transfer

                    1. Use any text editor to open the configuration file for the Siebel PRM Portal, which is the file installation directory\siebsrvr\bin\lang\scw.cfg.

                    2. In the [InfraShoppingService] section of the file, edit the EnableTransferCart parameter as follows:

                      EnableTransferCart=TRUE 
                      
                    3. Change this parameter in the Server Administration screen as follows:

                      1. Navigate to the Server Administration screen, then the Components view.

                      2. Navigate to the Component Parameters view.

                      3. In the Components list, search for eChannel Object Manager in the Name field.

                      4. In the Component Parameters list, find the parameter EnableTransferCart and select TRUE as its value.

                    4. Restart your server.

                      Global Product Identifiers

                      The brand owner and partners uniquely identify products using the Global Product Identifier field defined in the Product Administration screen of Siebel Business Applications (or the equivalent field of other applications that your partners use).

                      To receive shopping carts, the partners must have the same products as the brand owner in their product databases and they must use the Global Product Identifier. If a partner that is receiving a shopping cart transfer does not have a product with a matching Global Product Identifier, the transfer fails.

                      Before using shopping cart transfer, make sure the brand owner and partners have defined the relevant products in their respective applications. This is generally done as an offline batch process.

                        Checking Setup of ATP

                        If you are using ATP functionality, you must set it up to call your partner's ATP engine (or your own internal ATP engineer).

                        Alternatively, you can modify the workflows so they do not use the ATP step. For information about modifying workflows, see Shopping Cart Transfer Workflows.

                        This topic describes how to set up ATP functionality for testing purposes.

                        Note: Before performing the following procedure, make sure that you are using the ATP ASI Test service for the ATP Web Service.

                        To set up ATP functionality for testing purposes

                        1. Navigate to the Administration - Web Service screen, then the Outbound Web Service view.

                        2. Find the Web service named External ATP Check.

                        3. Change the value for Address to ATP ASI Test.

                        4. Change the value for Transport to Local Business Service.

                        5. Change the value for Binding to Property Set.

                        6. Create a new record in the Operation Bindings list with Operation Name=Execute, Bind Property=namespace, and Binding Value=http://siebel.com/asi/.

                        7. If you have tried to run this service before, you must restart the server.

                          Additional ATP Setup Tasks

                          To finish setting up shopping cart transfer, you must also complete the tasks described in General Setup for ASIs for Siebel PRM.

                            General Setup for ASIs for Siebel PRM

                            To set up either opportunity transfer or shopping cart transfer, in addition to the tasks described previously, you must also perform the tasks in this topic:

                            • Activate workflows

                            • Assign D-U-N-S numbers

                              Activate Workflows

                              For either opportunity transfer or shopping cart transfer, you must activate the workflow processes used for real-time integration. Activate all workflows where the Group field has the value PRM ASI.

                              Note: For testing, you must perform this task on the second system as well.

                              You activate workflows in Siebel Tools. For more information, see Siebel Business Process Framework: Workflow Guide.

                                Assigning D-U-N-S Numbers

                                For either opportunity transfer or shopping cart transfer, you must enter a D-U-N-S number for your own company and for all partner companies that use ASIs. The ASIs use the D-U-N-S number to uniquely identify the companies that are sending and receiving information.

                                Though it is recommended that you use the D-U-N-S number, you can use any unique identification number that you and your partners agree on.

                                You must also assign D-U-N-S numbers for Accounts that you transfer back and forth to make sure both systems are referring to the same account. Alternatively, you can change the inbound workflows to search for the Account Name instead of the D-U-N-S number when checking to see if the Account already exists.

                                To set D-U-N-S numbers

                                1. Set the D-U-N-S number for your own company as follows:

                                  1. Navigate to the Administration - Application screen, then the System Preferences view.

                                  2. Search for a preference named Internal DUNS Number and enter its value.

                                2. Set the D-U-N-S number for all partner companies that use ASIs as follows:

                                  1. Navigate to the Partners screen, then the Partner List view.

                                  2. In the Partners list, drill down on the record for the partner company.

                                  3. In the More Info view, enter the value in the DUNS# field.

                                  Note: The D-U-N-S numbers that your partners use must match the D-U-N-S numbers you use. The D-U-N-S number you enter for a partner in your system must match the D-U-N-S number that partner uses for itself in its system. The D-U-N-S number you enter for your own company in your own system must match the number the partner uses for your company in its system.

                                You do not need to modify these workflows, but you can modify them to suit your business model.

                                  Opportunity Transfer Workflows

                                  The workflow processes described in this topic are associated with opportunity transfer. They are used for the following functions:

                                  • Transferring an opportunity

                                  • Updating an opportunity

                                  • Requesting an opportunity update

                                  Either the brand owner or the partner can transfer an opportunity, update the opportunity, or request an update. The following descriptions refer to the two systems involved as "System A" and "System B." These can refer to either the brand owner or the partner’s system, depending on who ran the opportunity transfer, updated the opportunity, or requested an update.

                                    Workflows to Transfer an Opportunity

                                    The workflows to transfer an opportunity are called in the following order:

                                    • Opportunity Sharing Pick Partner. When the brand owner or partner navigates to the Transfer button on the Transfer Opportunity Child form, it calls the Opportunity Sharing Pick Partner workflow. This workflow retrieves the partner’s ID and passes it on to the Opportunity Sharing External Create workflow, which the Opportunity Sharing Pick Partner workflow calls as a subprocess.

                                    • Opportunity Sharing External Create. This workflow captures the object ID of the opportunity that is being transferred. It changes the opportunity's transfer status to Transfer In Progress. It then creates an internal key that System A uses to reference the opportunity. This workflow passes the opportunity ID, opportunity key, and the partner ID to the workflow Build Siebel Message, which it calls as a subprocess.

                                    • Opportunity Sharing Build Siebel Message. This workflow uses the opportunity ID to gather all the necessary information on the opportunity and put it into a Siebel message. Opportunity Sharing Build Siebel Message also collects the partner information and System A's organizational information, and adds it to the Siebel message. This Siebel message is passed back to Opportunity Sharing External Create, which transfers it to system B and waits for a response.

                                    • Opportunity Sharing Siebel Create. System B receives the Siebel message and runs the Opportunity Sharing Siebel Create workflow. Opportunity Sharing Siebel Create first inserts the opportunity's account by calling PRM ANI Inbound Create Account, and then inserts the Opportunity's information. If successful, it creates a key that System B uses to reference the opportunity, updates the Transfer Status on system B to Transfer Successful, and stores System A's key. This workflow then adds System B’s key and the current transfer status to the Siebel message and sends the message back to System A.

                                    • Opportunity Sharing Receive Create Response. After System A receives the response, it calls the Opportunity Sharing Receive Create Response. This workflow updates the status of the transfer based on the response. It also stores System B's key.

                                      Workflows to Update an Opportunity

                                      After an opportunity has been transferred, the brand owner or partner can click the Update Opportunity button to update the transferred opportunity in the other company’s system with new information that they have entered in their system. When the brand owner or partner navigates to this button, the following workflows are called in this order:

                                      • Opportunity Sharing External Update. This workflow is called when the brand owner navigates to the Update button on the Transfer Opportunity Child form. Opportunity Sharing External Update calls Opportunity Sharing Set Update Status.

                                      • Opportunity Sharing Set Update Status. This workflow first calls Opportunity Sharing Inbound or Outbound.

                                      • Opportunity Sharing Inbound or Outbound. This workflow figures out whether this opportunity was originally sent to System B from System A or was originally sent to System A by System B. (That is, it determines whether this opportunity was originally an outbound opportunity or an inbound opportunity.) It also retrieves System B's key and ID of the partner to whom the opportunity was sent, and passes this information back to Opportunity Sharing Set Update Status. Opportunity Sharing Set Update Status updates the Transfer Status to Update Pending. Then, this workflow calls Opportunity Sharing Build Siebel Message, passing the opportunity ID, System A and System B's keys, and the partner ID. (Depending on your setup, this workflow might not be necessary. A call to this workflow can be replaced with a Siebel operation that queries the ANI Keymap business component.)

                                      • Opportunity Sharing Create Siebel Message. This workflow creates a Siebel message and passes it back to Set Update Status, which passes the Siebel message back up to External Update. External Update transfers the Siebel message to System B.

                                      • Opportunity Sharing Siebel Update. System B receives the Siebel message and runs Opportunity Sharing Siebel Update, which checks to see if it needs to insert the opportunity's account again by calling PRM ANI Inbound Create Account. It then updates the Opportunity's information. If successful, this workflow updates the Transfer Status on system B to Update Successful, and then adds the current transfer status to the Siebel message, which it sends back to System A.

                                      • Opportunity Sharing Receive Update Response. After System A receives the response, it calls the Opportunity Sharing Receive Update Response workflow, which updates the status of the transfer based on the response.

                                        Workflows to Receive an Opportunity Update

                                        After an opportunity has been transferred, the brand owner or partner can click the Receive Update button to query the other company’s system for new information that has been entered about the opportunity, and to update the opportunity in its own system with this new information. When the brand owner or partner navigates to this button, the following workflows are called in this order:

                                        • Opportunity Sharing External Query. When the brand owner calls the Receive Update button on the Transfer Opportunity Child form, this workflow calls the Opportunity Sharing External Query workflow. External Query first uses the Opportunity Sharing Inbound or Outbound workflow to determine whether this opportunity was originally an inbound or an outbound opportunity, as described in Workflows to Update an Opportunity. Then, Opportunity Sharing External Query takes that information and creates a Siebel message with System A's and System B's keys. It then transfers this Siebel message to System B.

                                        • Opportunity Sharing Siebel Query. When System B receives the Siebel message, it runs the Opportunity Sharing Siebel Query workflow. Opportunity Sharing Siebel Query makes sure the opportunity exists and then calls Opportunity Sharing Set Update Status.

                                        • Opportunity Sharing Set Update Status. This workflow first calls the Opportunity Inbound or Outbound workflow, which does the following:

                                          • Determines whether this opportunity was originally an outbound opportunity or an inbound opportunity, as described in Workflows to Update an Opportunity.

                                          • Retrieves System A's key and the partner ID of the employee to whom the opportunity was sent, and passes this information back to Opportunity Sharing Set Update Status.

                                          Opportunity Sharing Set Update Status then updates the Transfer Status to Update Pending and calls the Opportunity Sharing Opportunity Build Siebel Message workflow to create a message containing the opportunity ID, System B and System A's keys, and the partner ID. After the Siebel message is passed back to Opportunity Sharing Set Update Status, this workflow passes the Siebel message back up to Opportunity Sharing External Update. Opportunity Sharing External Update transfers the Siebel message to System A.

                                        • Opportunity Sharing Siebel Update. After System A receives the response, it calls Opportunity Sharing Siebel Update. This workflow returns a Siebel message, which Opportunity Sharing External Query transfers back to System B.

                                        • Opportunity Sharing Receive Update Response. System B receives the Siebel message and calls Receive Update Response, which updates the status of the transfer based on the response.

                                          Update of the Status Field by These Workflows

                                          The final step in these opportunity transfer processes updates the status field to tell the user whether the transfer, send update, or receive update process was successful. The Transfer Status field can have the following values:

                                          • Blank. The opportunity has never been transferred to a partner. In this situation, only the Transfer button is active. You cannot send or receive an update until after the opportunity has been transferred.

                                          • Transfer Pending. The opportunity has been transferred to a partner, but the acknowledgement from the partner has not yet been received. In this situation, none of the transfer buttons are active.

                                          • Transfer Successful. The opportunity has been transferred to a partner, and the acknowledgement indicates that the transfer went through. In this situation, only Send Update and Receive Update are active. Once an opportunity has been transferred successfully, it cannot be transferred again.

                                          • Transfer Unsuccessful. The opportunity has been transferred to a partner, but the acknowledgement indicates that the transfer did not go through for one of these possible reasons:

                                            • The connection timed out

                                            • The opportunity already exists on the other system

                                            • The source organization is not listed as a partner in the other system

                                            • There was an exception with the insert step

                                            In this situation, the Transfer button is the only active one. The user can try again to transfer the opportunity to the same partner or a different one.

                                          • Update Pending. The send update or receive update process is underway, but no response has yet been received. In this situation, none of the buttons are active.

                                          • Update Successful. The send update or receive update process completed successfully. In this situation, the Send Update and Receive Update buttons are active.

                                          • Update Unsuccessful. The send update or receive updated process failed, based on the return message from the partner’s system, for one of these possible reasons:

                                            • The connection timed out

                                            • The opportunity does not exist on the other system

                                            • There was an exception with the update step

                                            In this situation, the Send Update and Receive Update buttons are active.

                                            Opportunity Sharing Build Siebel Message

                                            The Opportunity Sharing Build Siebel Message workflow process is shown in the following image.

                                            Opportunity Sharing Build Siebel Message Process

                                            When this workflow is called, the following events happen:

                                            • Create Message Header. This event creates an empty message header for the Siebel message. This header will eventually contain the transfer information.

                                            • Store Message Header/Append Message. This event creates an empty Siebel message using the ANI Opportunity Message (PRM ANI) format and appends the message header to it.

                                            • Query Oppty. This event queries the Siebel database for the opportunity matching the object ID and returns the account ID for the account of this opportunity.

                                            • Store Oppty & Append Oppty. This event adds the opportunity to the Siebel message.

                                            • Oppty Has An Account. This event checks to see if the account ID is null. If it is, the workflow does not need to query for an account.

                                            • Create Account Message. If there is no account for this opportunity, this event creates an empty account property set to follow the ANI Opportunity Message (PRM ANI) format for the Siebel message.

                                            • Query Account. If there is an account for this opportunity, this event returns the account information.

                                            • Store Oppty Account/Append Account. This event adds the account information to the Siebel message.

                                            • Query Partner/Store Partner/Append Partner. This event queries for the partner to whom the opportunity is being sent and appends that information to the Siebel message.

                                            • Query Source Org/Store Source Org/Append Source Org. This event queries for the source organization and appends that information to the Siebel message.

                                            • Get Organization DUNS/Set Organization DUNS. This event retrieves the source organization's D-U-N-S number and adds it to the Siebel message.

                                            • Add Internal Key. This event adds the internal key to the Siebel message.

                                            • Add Internal Key Description. This event adds the internal key description to the Siebel message.

                                            • Add External Key. This event adds the external key to the Siebel message.

                                            • Add External Key Description. This event adds the external key description to the Siebel message.

                                            • Add Sent Time to Message. This event adds the current timestamp to the Siebel message.

                                              Opportunity Sharing External Create

                                              This Opportunity Sharing External Create workflow process is shown in the following image.

                                              Opportunity Sharing External Create Process

                                              When this workflow is called, the following events happen:

                                              • Create Source Key. This event generates an internal key from the process property internal key description. Currently, internal key description has a default value. This value can be changed manually or passed in from any workflow that calls this workflow as a subprocess.

                                              • Query ANI Keymap. This event searches for a transfer record for this opportunity in ANI Keymap, the buscomp that stores all the transfer information.

                                              • ANI Keymap Record Exist. This event checks to see if the number of transfer records for this opportunity is greater than zero, that is, whether a transfer record already exists for this opportunity.

                                              • Insert Value into Keymap. If a transfer record for this opportunity does not already exist, this event creates a new transfer record for this opportunity.

                                              • Update Value in Keymap. If a transfer record for this opportunity already exists, this event updates the transfer status to Transfer In Progress.

                                              • Create Siebel Message. This event calls the Opportunity Sharing Build Siebel message, passing in the internal key, internal key description, partner ID, and object ID, and returns a Siebel message.

                                              • Get Rid of Extra Message Layer. This event removes the extra layer that is added to a Siebel message when it is passed up from a subprocess.

                                              • Output Siebel Message. This event checks to see if the value of the process property Write Orig File is Y or N.

                                              • Find Port. This event finds the Web service port for the partner to whom the opportunity is being sent.

                                              • Transfer. This event sends the opportunity to the other system.

                                              • Update Status to Failed. If the transfer step returns an exception, this event updates the transfer status of the opportunity to Transfer Unsuccessful.

                                              • Write Response. This event checks to see if the value of the process property Write Response to File is Y or N.

                                              • Write Siebel Message. If Write Orig File is Y, this event writes the pretransfer Siebel message to an XML file. If Write Response to File is Y, this event writes the post-transfer Siebel message to an XML file.

                                              • Receive Create Response. This event calls the subprocess Oppty Sharing Receive Create Response, passing it the Siebel message received from the transfer.

                                                Opportunity Sharing External Query

                                                The Opportunity Sharing External Query workflow process is shown in the following image.

                                                Opportunity Sharing External Query Process

                                                When this workflow is called, the following events happen:

                                                • Get Dest Org Id. This event calls Opportunity Sharing Inbound or Outbound. This workflow returns the partner ID of the partner requesting an update, the external key, and external key description.

                                                • Set Status. This event updates the transfer status to Update Pending.

                                                • Create Message/Store Message/Append Message. This event creates an empty Siebel message.

                                                • Generate Key. This event creates the internal key.

                                                • Add Internal Key. This event adds the internal key to the Siebel message.

                                                • Add Internal Key Description. This event adds the internal key description to the Siebel message.

                                                • Add External Key. This event adds the external key to the Siebel message.

                                                • Add External Key Description. This event adds the external key description to the Siebel message.

                                                • Find Port. This event finds the Web service port for the partner.

                                                • Send Oppty Update Request. This event sends this Siebel message to the other system and returns the response from the other system.

                                                • Get Request Update Status. This event gets the transfer status from the response Siebel message.

                                                • Request Update Ok. This event checks that the transfer status is successful.

                                                • Update Opportunity. This event calls Opportunity Sharing Siebel Update as a subprocess, passing it the Siebel message, and returns the response Siebel message.

                                                • Remove Extra Message Layer. This event removes the extra layer that is added when a Siebel message is passed up from a subprocess.

                                                • Get Update Oppty Status. This event retrieves the status of the update from the Siebel message that Opportunity Sharing Siebel Update inserts before returning the message.

                                                • Status Ok. This event checks to see if the update status is Update Successful.

                                                • Swap Addresses. This event swaps the source organization and channel partner information, the internal key and external key, and the internal key description and the external key description.

                                                • Remove Extra Layer from Message. When a Siebel message is passed up from a subprocess it adds an extra layer to the message. This event removes that layer.

                                                • Add Method Name. This event inserts the name of this method, Query, into the Siebel message. This will be used in a later workflow.

                                                • Find Response Port. This event finds the Web service port for sending an update response for this partner.

                                                • Transfer Response. This event transfers the Siebel message with the update status back to the partner.

                                                • Update Status. If any of the transfer statuses from the Siebel message are Update Unsuccessful or any of the transfers returns an exception, this event updates the transfer status to Update Unsuccessful.

                                                  Opportunity Sharing External Update

                                                  The Opportunity Sharing External Update workflow process is shown in the following image.

                                                  Opportunity Sharing External Update Process

                                                  When this workflow is called, the following events happen:

                                                  • Build Message. This event calls the subprocess Opportunity Sharing Set Update Status, passing in the opportunity ID, and returns the partner ID and a Siebel message.

                                                  • Get Rid of Extra Siebel Message Layer. This event removes the extra layer that is added to a Siebel message when it is passed up from a subprocess.

                                                  • Write Siebel Message. This event checks to see if the value of the process property Write Orig File is Y or N.

                                                  • Find Port. This event finds the Web service port for the partner.

                                                  • Transfer. This event sends the opportunity to the other system and returns a response Siebel message.

                                                  • Write Response to File. This event checks to see if value of the process property Write Response is Y or N.

                                                  • Receive Update Response. This event calls the subprocess Opportunity Sharing Receive Update Response, passing it the response Siebel message.

                                                  • Write to File. If Write Orig File is Y, this event writes the pretransfer Siebel message to an XML file. If Write Response to File is Y, this event writes the post-transfer Siebel message to an XML file.

                                                  • Set Status to Failed. If transfer returns an exception, this event updates the transfer status for this opportunity to Update Unsuccessful.

                                                    Opportunity Sharing Inbound or Outbound

                                                    The Opportunity Sharing Build Siebel Message workflow process is shown in the following image.

                                                    Opportunity Sharing Inbound or Outbound Process

                                                    When this workflow is called, the following event happens:

                                                    • Get Inbound Partner Id. This event queries the ANI Keymap bus comp and retrieves the initial direction, the partner ID, the external key, and the external key description of this opportunity.

                                                      Opportunity Sharing Pick Partner

                                                      The Opportunity Sharing Pick Partner workflow process is shown in the following image.

                                                      Opportunity Sharing Pick Partner Process

                                                      When this workflow is called, the following events happen:

                                                      • Catch Partner Id. This event retrieves the Partner ID of the partner to whom the opportunity is sent, and stores it in a process property.

                                                      • Send Opportunity. This event calls Oppty Sharing External Create, passing it the partner ID.

                                                        Opportunity Sharing Receive Create Response

                                                        The Opportunity Sharing Receive Create Response workflow process is shown in the following image.

                                                        Opportunity Sharing Receive Create Response Process

                                                        When this workflow is called, the following events happen:

                                                        • Get External Key. This event finds the value of the external key in the Siebel message and returns it.

                                                        • Get External Key Desc. This event finds the external key description in the Siebel message and returns it.

                                                        • Get Internal Key. This event finds the value of the internal key in the Siebel message and returns it.

                                                        • Get Internal Key Description. This event finds the value of the internal key description in the Siebel message and returns it.

                                                        • Get Status. This event returns the transfer status from the Siebel message.

                                                        • Get Status Message. This event returns the transfer status message from the Siebel message.

                                                        • Get Last Update Time. This event retrieves the time when the Siebel message was created, which was added to the Siebel message when it was created.

                                                        • Insert Values into Keymap Bus Comp. This event adds the external key, external key description, status, and the timestamp to the keymap record.

                                                          Opportunity Sharing Receive Update Response

                                                          The Opportunity Sharing Receive Update Response workflow process is shown in the following image.

                                                          Opportunity Sharing Receive Update Response Process

                                                          When this workflow is called, the following events happen:

                                                          • Get Method. This event returns the method value from the Siebel message. Both update and query use Opportunity Sharing Receive Update Response, and this method value tells the workflow whether this is a send update or receive update.

                                                          • Query Response. This event checks to see if this is a response from an update or if this is a response from a query.

                                                          • Get Internal Key/Get Internal Key Description/Parse Key/Query Opportunity. If this is a response from a query, this workflow is started from the inbound Web services, so there is no active object ID. The workflow needs to find the opportunity and retrieve the object ID. This group of steps returns the external key and the external key description and creates a search specification from them. Query Opportunity uses this search specification to find the opportunity and return its object ID. If this is a response from an update, the workflow is activated from the Opportunity Sharing External Update workflow and an object ID is passed in as an argument, so these steps are skipped.

                                                          • Get Status. This event returns the transfer status from the Siebel message.

                                                          • Get Status Message. This event returns the transfer status message from the Siebel message.

                                                          • Get Last Update Time. This event retrieves the time when the Siebel message was created, which was added to the Siebel message when it was created.

                                                          • Update Status and Time. This event updates the status and the timestamp to the keymap record.

                                                            Opportunity Sharing Set Update Status

                                                            The Opportunity Sharing Set Update Status workflow process is shown in the following image.

                                                            Opportunity Sharing Set Update Status Process

                                                            When this workflow is called, the following events happen:

                                                            • Get Dest Key. This event calls Opportunity Sharing Inbound or Outbound and returns the partner ID, external key, and external key description.

                                                            • Generate Key. This event generates an internal key from the process property internal key description. Currently, internal key description has a default value. This value can be changed manually or passed in from any workflow that calls this as a subprocess.

                                                            • Update Status. This event updates the transfer status to Update Pending.

                                                            • Create Siebel Message. This event calls Opportunity Sharing Build Siebel Message, passing in an object ID, partner ID, external key, external key description, internal key, and internal key description. It returns a Siebel message.

                                                            • Get Rid of Extra Message Layer. This event gets rid of the extra layer that is added to a Siebel message when it is passed up from a subprocess.

                                                              Opportunity Sharing Siebel Create

                                                              The Opportunity Sharing Siebel Create workflow process is shown in the following image.

                                                              Opportunity Sharing Siebel Create Process

                                                              When this workflow is called, the following events happen:

                                                              • Get Opportunity. This event retrieves the opportunity property set from the Siebel message.

                                                              • Query Opportunity. Using the opportunity property set, this event searches for the opportunity in this database and returns the number of opportunities that match the search specification.

                                                              • Oppty Exists. This event checks to see if the number of opportunities found by the query is greater than zero, to determine whether the opportunity already exists.

                                                              • Set Opportunity Error Status. If the opportunity already exists, this event sets the status process property to an error status and sets the status message process property to the appropriate error message.

                                                              • Get External DUNS Number. If the opportunity does not exist, this event retrieves the source organization’s D-U-N-S number.

                                                              • DUNS Num Exists. This event checks to see if the previous step returns an empty D-U-N-S Number.

                                                              • Set Partner DUNS Error Status. If the D-U-N-S number is empty, this event sets the status process property and sets the status message process property to the appropriate error message.

                                                              • Retrieve Record Id. If the D-U-N-S Number has a value, this event uses that value to find the partner ID of the source organization.

                                                              • Partner Exists. This event checks to see if the previous step returns an empty partner ID.

                                                              • Set Partner Id Error Status. If the partner ID is empty, this event sets the status process property and set the status message process property to the appropriate error message.

                                                              • Add Account. This event calls the PRM ANI Inbound Create Account Process, passing it the Siebel message, the name of the account integration object this process uses, and the account object hierarchy path. It returns an account status code and an account status message.

                                                              • Account OK. This event checks to see if the account status code equals the general error code.

                                                              • Set Account Error Status. If the account status code returned a general error, this event sets the status process property to an error status and sets the status message process property to the appropriate error message.

                                                              • Upsert Opportunity. This event inserts the opportunity property set into the Siebel CRM system.

                                                              • Set Oppty Error Status. If the opportunity insert returns an exception, this event sets the status process property to an error status and sets the status message process property to the appropriate error message.

                                                              • Get External Key. This event finds the value of the external key in the Siebel message and returns it.

                                                              • Get External Desc. This event finds the external key description in the Siebel message and returns it.

                                                              • Create Internal Key. This event generates an internal key from the process property internal key description. Currently, internal key description has a default value. This value can be changed manually or passed in from any workflow that calls this as a subprocess.

                                                              • Swap Addresses. This event swaps the source organization and channel partner information, the internal key and external key, and the internal key description and the external key description.

                                                              • Remove Extra Message Layer. When a Siebel message is passed up from a subprocess it adds an extra layer to the message. This event removes that layer.

                                                              • Insert Values into Keymap Bus Comp. This event creates a new transfer record for this opportunity.

                                                              • Set Status OK. This event sets the status process property to successful.

                                                              • Add Status. This event adds the status to the Siebel message. This is done whether there has been a problem and the status is an error code or whether the status is okay.

                                                              • Add Status Message. This event adds the status message to the Siebel message.

                                                                Opportunity Sharing Siebel Query

                                                                The Opportunity Sharing Siebel Query workflow process is shown in the following image.

                                                                Opportunity Sharing Siebel Query Process

                                                                When this workflow is called, the following events happen:

                                                                • Get Internal Key. This event finds the value of the internal key in the Siebel message and returns it.

                                                                • Get Internal Desc. This event finds the internal key description in the Siebel message and returns it.

                                                                • Parse Key. This event takes in internal key and internal key description and creates a search specification.

                                                                • Get Opportunity. This event searches for the opportunity using the search specification.

                                                                • Opportunity Exists. This event checks to see if the number of opportunities found by the query is greater than zero to determine if the opportunity already exists.

                                                                • Add Error Status. If the opportunity does not exist, this event sets the transfer status in the Siebel message to an error status.

                                                                • Add Error Message. If the opportunity does not exist, this event sets the transfer status message in the Siebel message to an error status message.

                                                                • Set Update Status and Create Siebel Message. This event calls Opportunity Sharing Set Update Status, passing it the opportunity ID.

                                                                • Get Rid of Extra Message Layer. This event removes the extra layer that is added to a Siebel message when it is passed up from a subprocess.

                                                                  Opportunity Sharing Siebel Update

                                                                  The Opportunity Sharing Siebel Update workflow process is shown in the following image.

                                                                  Opportunity Sharing Siebel Update Process

                                                                  When this workflow is called, the following events happen:

                                                                  • Get Internal Key. This event finds the value of the internal key in the Siebel message and returns it.

                                                                  • Get Internal Key Description. This event finds the internal key description in the Siebel message and returns it.

                                                                  • Parse Key. This event takes in the internal key and internal key description and creates a search specification.

                                                                  • Find Opportunity. This event searches for the opportunity using the search specification.

                                                                  • Opportunity Exists. This event checks to see if the number of opportunities found by the query is greater than zero to determine if the opportunity already exists.

                                                                  • Set Opportunity Error Status. If the opportunity does not exist, this event sets the status process property to an error status and set the status message process property to the appropriate error message.

                                                                  • Get Opportunity. If the opportunity does exist, this event retrieves the opportunity property set from the Siebel message.

                                                                  • Insert Account. This event calls PRM ANI Inbound Create Account Process, passing it the Siebel message, the name of the account integration object this process uses, and the Account Object Hierarchy Path. It returns an account status code and an account status message.

                                                                  • Account OK. This event checks to see if the account status code equals the general error code.

                                                                  • Set Account Error Status. If the account status code returned a general error, this event sets the status process property to an error status and sets the status message process property to the appropriate error message.

                                                                  • Upsert Opportunity. This event updates the opportunity.

                                                                  • Get External Key. This event retrieves the external key from the Siebel message.

                                                                  • Get External Key Description. This event retrieves the external key description from the Siebel message.

                                                                  • Swap Addresses. This event swaps the source organization and channel partner information, the internal key and external key, and the internal key description and the external key description.

                                                                  • Remove Extra Message Layer. When a Siebel message is passed up from a subprocess it adds an extra layer to the message. This event removes that layer.

                                                                  • Set Oppty Error Status. If the opportunity update returns an exception, this event sets the status process property to an error status and sets the status message process property to the appropriate error message.

                                                                  • Update Status. This event updates the transfer status and the timestamp for this transfer record.

                                                                  • Set OK Status. This event sets the status process property to successful.

                                                                  • Add Status. This event adds the status to the Siebel message. This is done whether there has been a problem and the status is an error code or whether the status is okay.

                                                                  • Add Status Message. This event adds the status message to the Siebel message.

                                                                    PRM ANI Inbound Create Account Process

                                                                    The PRM ANI Inbound Create Account workflow process is used by both opportunity transfer and shopping cart transfer. This process is described in PRM ANI Inbound Create Account Process Workflow.

                                                                      PRM ANI Inbound Addressing Change Process

                                                                      The PRM ANI Inbound Addressing Change workflow process is used by both opportunity transfer and shopping cart transfer. This process is described in PRM ANI Inbound Addressing Change Process Workflow.

                                                                        Shopping Cart Transfer Workflows

                                                                        The workflow processes described in this topic are associated with shopping cart transfers.

                                                                        These processes are used for the following functions:

                                                                        • Outbound transfer

                                                                        • Inbound transfer

                                                                        They transfer as much data as is needed for the receiving system to be able to process the shopping cart. This includes sending information on the account and contact that serve as customers to the shopping cart, as well as the quote, any of the extended attributes of products in the shopping cart, and information about the source and destination organizations.

                                                                          Workflows for Outbound Shopping Cart Transfer

                                                                          Outbound shopping cart transfer uses the following workflows:

                                                                          Many of these workflows have steps with names similar to Rename Child Object and Remove Message Layer. These steps deal with formatting the data structures correctly as they are passed up from subprocesses, and they are not associated with any business logic.

                                                                            Workflows for Inbound Shopping Cart Transfer

                                                                            Inbound shopping cart transfer uses the following workflows:

                                                                            Error handling is used to catch problems and report them to the external (requesting) system. Generally, if an error is found, the process stops and passes the error messages up to the calling process. The calling process then passes the error back to its calling process. When it reaches the first process, it returns an error saying that the transfer was unsuccessful.

                                                                              Transfer Cart Outbound Initial Workflow

                                                                              The Transfer Cart Outbound Initial workflow is shown in the following image.

                                                                              Transfer Cart Outbound Initial Workflow

                                                                              When this workflow is called, the following events happen:

                                                                              • The first event checks for the availability of the items the customer wants to purchase.

                                                                              • The next event finds the communication information associated with the partner and runs the Transfer Cart Outbound Request Process subprocess to create the shopping cart data structure.

                                                                              • The next event checks to see if the brand owner is in debug mode (controlled by the Debug Flag in the Process Properties). If so, the brand owner needs to dump the data into a file and read in a suitable response from a file.

                                                                              • Most of the time the Debug Flag is set to false, and allows use of the Web Services instead. In this situation, the RPC call is made and a response is received when Web services is complete.

                                                                              • The Response is processed by Transfer Cart Outbound Receive Acknowledgement Workflow (either success or failure) as the final event in this workflow.

                                                                                Transfer Cart Outbound Request Process Workflow

                                                                                The Transfer Cart Outbound Request Process workflow is shown in the following image.

                                                                                Transfer Cart Outbound Request Process Workflow

                                                                                When this workflow is called, the following events happen:

                                                                                • The first event creates the message header with information about the message itself including timestamps, and so on.

                                                                                • The next event adds the shopping cart data (Quote, Quote Item, and so on) to the shopping cart data structure.

                                                                                • The workflow then includes information about the source organization sending the data.

                                                                                • Then, the workflow appends information about the destination partner to this message.

                                                                                • Finally, the workflow adds the customer information, including account and customer data.

                                                                                  Transfer Cart Outbound Create Header Process Workflow

                                                                                  The Transfer Cart Outbound Create Header Process workflow is shown in the following image.

                                                                                  Transfer Cart Outbound Create Header Process Workflow

                                                                                  When this workflow is called, the following events happen:

                                                                                  • The early events gather and set data used in the message header as follows:

                                                                                    • They set all of the key information first, including the internal key and key description. The external system uses this to reference a record in the Siebel database.

                                                                                    • They also set the timestamps and status messages.

                                                                                  • The later events instantiate the header instance by creating an empty data structure based on the metadata provided by the integration object definition in Siebel Tools. They append all the data to the empty data structure.

                                                                                    Transfer Cart Outbound Create and Append Process Workflow

                                                                                    The Transfer Cart Outbound Create and Append Process workflow is shown in the following image.

                                                                                    Transfer Cart Outbound Create and Append Process Workflow

                                                                                    When this workflow is called, the following events happen in this order:

                                                                                    • The workflow creates the child hierarchy. If no business component reference is provided (empty Customer Account Data, for instance), it instantiates an empty instance of the child.

                                                                                    • The workflow appends the child instance to the parent object (usually this is the shopping cart object). If a flag is set, it can create an empty parent and append this child to it.

                                                                                      Transfer Cart Outbound Receive Acknowledgment Process Workflow

                                                                                      The Transfer Cart Outbound Receive Acknowledgment Process workflow is shown in the following image.

                                                                                      Transfer Cart Outbound Receive Acknowledgement Process Workflow

                                                                                      When this workflow is called, the following events happen in this order:

                                                                                      • The workflow gets the status of the message that has been received and looks for the partner it was received from.

                                                                                      • The workflow looks for an existing Keymap record that indicates whether to update it or create a new record. The Keymap data includes a record of the transferred information, including the time of the last transfer and the key used to reference the shopping cart's counterpart in the external system.

                                                                                      • If there is no error, the workflow creates or updates the keymap record and retrieves the URL information. Then, it renders the redirection view with the URL it has retrieved, using Virtual Fields.

                                                                                      • If there is an error, the workflow presents the customer with an option view that allows him or her to decide whether to choose another partner or cancel the transaction.

                                                                                        Transfer Cart Inbound Receive Process Workflow

                                                                                        The Transfer Cart Inbound Receive Process workflow is shown in the following image.

                                                                                        Transfer Cart Inbound Receive Process Workflow

                                                                                        When this workflow is called, the following events happen in this order:

                                                                                        • The workflow makes sure that the sender is someone that is authorized to send requests.

                                                                                        • The workflow checks that the external system's key is present, and that the brand owner is the intended recipient.

                                                                                        • The workflow gets the key description and runs the Transfer Cart Inbound Create Cart Process.

                                                                                        • If an error is generated, the workflow reports it to the calling system and finishes the process. No Keymap record is created because the quote might not have been created.

                                                                                        • If no error is generated (OK status), the workflow does the following:

                                                                                          • Updates the keys’ statuses in the shopping cart message.

                                                                                          • Creates the Keymap record.

                                                                                          • Generates the URL needed to send to the calling system, so it can redirect the user to this system, with this shopping cart.

                                                                                          • Sets the timestamps and sends the message back to the caller.

                                                                                          Transfer Cart Inbound Create Cart Process Workflow

                                                                                          The Transfer Cart Inbound Create Cart Process workflow is shown in the following image.

                                                                                          Transfer Cart Inbound Create Cart Process Workflow

                                                                                          When this workflow is called, it performs the following events in this order:

                                                                                          • Checks for the quote

                                                                                          • Inserts the customer account information

                                                                                          • Inserts the customer contact information

                                                                                          • Inserts the quote information and links it to the customer information

                                                                                            PRM ANI Inbound Create Account Process Workflow

                                                                                            The PRM ANI Inbound Create Account Process workflow is shown in the following image.

                                                                                            PRM ANI Inbound Create Account Process Workflow

                                                                                            When this workflow is called, it performs the following events in this order:

                                                                                            • Checks to see if the Account Name and D-U-N-S number are viable

                                                                                            • Looks in the Siebel database for an account with the same D-U-N-S number. This number is the Siebel method of uniquely identifying an account or partner.

                                                                                              • If the account is found, reports the record’s ID

                                                                                              • If the account is not found, creates a new account

                                                                                              Transfer Cart Inbound Create Contact Process Workflow

                                                                                              The Transfer Cart Inbound Create Contact Process workflow is shown in the following figure.

                                                                                              Transfer Cart Inbound Create Contact Process workflow

                                                                                              When this workflow is called, it performs the following events in this order:

                                                                                              • Checks for the presence and viability of data

                                                                                                • If data is not present, it assumes that the contact is anonymous

                                                                                                • If the data is not viable, it returns an error

                                                                                              • Creates a user key for the contact similar to the user key acceptable for most credit card transactions, which is the combination of first name, last name, street address, city, state, and postal code

                                                                                              • Extracts customer information from the data structure, and then uses the key to query for the contact

                                                                                                • If a duplicate is found, it is reported

                                                                                                • If a duplicate is not found, it attempts to insert the contact into the contact table

                                                                                                Transfer Cart Inbound Create Quote Process Workflow

                                                                                                The Transfer Cart Inbound Create Quote Process workflow is shown in the following figure.

                                                                                                Transfer Cart Inbound Create Quote Process Workflow

                                                                                                When this workflow is called, the following events happen:

                                                                                                • The unique identifier for the quote is the Destination Key. The key is provided by the source system to reference objects on the external system. If this is the first request for a transfer of this cart, the value of the key is empty. Then, the workflow creates the cart and generates a new key for the Quote record.

                                                                                                • If this cart has been transferred before, then the key contains data that is used to locate the existing cart on the destination system. The workflow updates this cart data.

                                                                                                • Finally, the quote is attached to the correct Contact and Account Records (the customer data).

                                                                                                  PRM ANI Inbound Addressing Change Process Workflow

                                                                                                  The PRM ANI Inbound Addressing Change Process workflow is shown in the following image.

                                                                                                  PRM ANI Inbound Addressing Change Process Workflow

                                                                                                  When this workflow is called, the following events happen:

                                                                                                  • The first events take the information about the system keys, internal and external, and use it to judge whether to swap the source organization and destination channel partner information in the message.

                                                                                                  • If the key manipulation is handled elsewhere, the remaining steps are ignored.

                                                                                                  • If the key manipulation is not handled elsewhere, the next events swap the source organization and destination channel partner data as follows:

                                                                                                    • Because the fields (including the addresses) are the same, the names of the components are altered. For example, Channel Partner Address becomes Organization Address. No data is actually moved.

                                                                                                    • The hierarchy component names are kept in process properties to allow for greater flexibility. If an integration component is renamed, a small change in the process properties is all that is needed.

                                                                                                    Business Services Used by Siebel PRM ASIs

                                                                                                    A set of business services named PRM ANI Utility Services have been created to support both opportunity transfers and shopping cart transfers.

                                                                                                    Most of these service methods deal with the manipulation of integration objects, and rely on the Siebel Adapter Service on the internal side. Whenever possible, follow usage examples from the workflows provided.

                                                                                                    You can use the PRM ANI Utility Services in situations where there is only one instance of a component type in the hierarchy path. So if there are multiple instances of a contact under the opportunity, you cannot get the Contact element from the integration object because each hierarchy path provided (Account.Contact here) must be unique. If this constraint must be violated, then refer to each instance with a separate Integration Component Name. For example, if Person had the same type of data as Contact, then use a reference to Account.Person to store another contact.

                                                                                                      Conventions for Hierarchy Paths

                                                                                                      The following convention is used for hierarchy paths in a number of service methods:

                                                                                                      Hierarchy paths are inputs of the form IC1.IC2.IC3…, where IC1, IC2, IC3, and so on, are Integration Component Names that tell the method how to traverse the object definition to find the correct place to put the child. For example, when placing a business address under the account under the opportunity object, the path would read Opportunity.Account.

                                                                                                      For the Set Child Type method, a slightly different methodology in the hierarchy path is used, as follows:

                                                                                                      For Set Child Type, refer to IC1, IC2, IC3, and so on as the actual structure of the Siebel hierarchy. The examples listed come from the ANI Shopping Cart Message (PRM ANI) Integration object.

                                                                                                      The first three substrings appear as follows: ChildObject.ListOfMessageType.RootComponentName. An example is:

                                                                                                      SiebelMessage.ListOfANI Shopping Cart Message (PRM ANI).Message Details 
                                                                                                      

                                                                                                      The following substrings alternate between ListOf Component Names and the Component Names themselves. An example is:

                                                                                                      ListOfChannel Partner.Channel Partner.ListOfChannel Partner Business 
                                                                                                      Address.Channel Partner Business Address 
                                                                                                      

                                                                                                        Append Hierarchy Method

                                                                                                        This method appends a child integration object to a parent integration object. The parent object must contain the child object’s full definition.

                                                                                                        See the notes about calls to the Load Child Hierarchy method. There is a dependency in calls to Append Hierarchy on calls to Load Child Hierarchy, so the Load Child Hierarchy method must be called before calling this method.

                                                                                                        The following are inputs for Append Hierarchy:

                                                                                                        • Hierarchy Path - String. This is used to denote where to append the child to the parent.

                                                                                                        • SiebelMessage - Hierarchy. This is used to store the parent hierarchy’s integration object data.

                                                                                                        Append Hierarchy has only one output:

                                                                                                        • SiebelMessage - Hierarchy. This is the resulting object instance with the child attached to the parent in the correct place on the data structure.

                                                                                                        Example: Transfer Cart Outbound Create Header Process, Append Header to Message

                                                                                                          Create Empty Hierarchy Method

                                                                                                          This method creates an empty integration object instance with the same structure as a normal integration object but with two notes. All data fields are present and empty (initialized to empty string).

                                                                                                          Each component in the definition of the integration object is instantiated once only in the exact structure that is prescribed by the definition.

                                                                                                          The following are inputs for Create Empty Hierarchy:

                                                                                                          • Hierarchy Name - String. This provides the name of the integration object to instantiate.

                                                                                                          • Message Id - String. (Optional) This provides the Message ID that is used to identify this specific integration object instance. If this is not provided, a new one is calculated.

                                                                                                          Create Empty Hierarchy has only one output:

                                                                                                          • SiebelMessage - Hierarchy. This returns the integration object instance with the empty Component fields.

                                                                                                          Example: Transfer Cart Outbound Create Header Process, Create Header Instance

                                                                                                            Generate Key Method

                                                                                                            This method returns a string that you can use to uniquely identify a record in the service's business component. For Workflow Processes, it refers to the primary business component of the processes’ business object.

                                                                                                            Generate Key has only one input:

                                                                                                            • Key Description - String. This is used to describe the form of the string to be generated.

                                                                                                            • This input is in the form [A].[B].[C]… where A, B, C… are names of fields that correspond to a unique key in your database.

                                                                                                            • For instance, when using Contact, [Last Name].[First Name] would generate an insufficient value. However, [Id].[Last Name] would work because [Id] itself is guaranteed unique in this system.

                                                                                                            Generate Key has only one output:

                                                                                                            • Source Key - String. This is used to identify the record in the service's business component.

                                                                                                            Example: Transfer Cart Inbound Create Cart Process, Create New Quote Key

                                                                                                              Get Child Type Method

                                                                                                              This method reports the child type of a property set. For integration objects, this is generally of type SiebelMessage.

                                                                                                              Get Child Type has only one input:

                                                                                                              • SiebelMessage - Hierarchy. These are hierarchy children that are examined.

                                                                                                              Get Child Type has only one output:

                                                                                                              • Child XX - String. (Optional) The outputs have names numbering from 0 to n-1 where n is the number of children in the input Siebel Message.

                                                                                                                For example, if there are two children, the output property names are Child 0 and Child 1. The output values are the names of the Child Types.

                                                                                                                Get Hierarchy Value Method

                                                                                                                This method returns a string field value in the integration object structure.

                                                                                                                The following are inputs for Get Hierarchy Value:

                                                                                                                • Hierarchy Path - String. This is the path to the IC parent of the field. Note that this path does not include the field name.

                                                                                                                • Property Name - String. This is the name of the field to read.

                                                                                                                • Siebel Message - Hierarchy. This is the integration object you are looking into.

                                                                                                                • ReturnBlankIfNull - String. (Optional) This allows the returned value to be blank, instead of returning an error if the field is not found in the hierarchy.

                                                                                                                Get Hierarchy Value has only one output:

                                                                                                                • Property Value - String. This is the value of the field the brand owner is examining.

                                                                                                                Example: Transfer Cart Inbound Create Contact Process, Get Contact Street Address

                                                                                                                  Get System Preference Method

                                                                                                                  This method looks up values in the system preferences.

                                                                                                                  Get System Preference has only one input:

                                                                                                                  • System Preference Name - String. The name of the system preference to look for.

                                                                                                                  Get System Preference has only one output:

                                                                                                                  • System Preference Value - String. The value of the system preference.

                                                                                                                  Example: Transfer Cart Outbound Request Process, Get Organization DUNS

                                                                                                                    Isolate Integration ID Method

                                                                                                                    This method strips an integration object instance of everything except for the Integration ID, including child components.

                                                                                                                    This method is not called by PRM ASIs, but is referenced by other ASIs. It is used to direct Siebel Adapter Operations to consider only the Integration ID to look for a record in some situations.

                                                                                                                    Isolate Integration ID has only one input:

                                                                                                                    • Siebel Message - Hierarchy. This contains the object to be stripped through.

                                                                                                                    Isolate Integration ID has only one output:

                                                                                                                    • Siebel Message - Hierarchy. This is the object that is returned. The only field that contains any data is the Integration Id.

                                                                                                                      Load Child Hierarchy Method

                                                                                                                      This method places a child hierarchy in memory to be used at a later time. It is used for operations that require two hierarchy type operands, such as Append Property Set.

                                                                                                                      Load Child Hierarchy has only one input:

                                                                                                                      • Siebel Message - Hierarchy. This is the message you want to load that will be operated upon later.

                                                                                                                      There are no outputs.

                                                                                                                      Example: Transfer Cart Outbound Create and Append Process, Set the Child Hierarchy

                                                                                                                        Parse Key Method

                                                                                                                        This method generates a search specification from a given key and key description. The search specification can be fed into a query step (Siebel operation or otherwise) to look for the record that the key has specified.

                                                                                                                        The following are inputs for Parse Key:

                                                                                                                        • Key Description - String. This is a description of the key following the format described in Generate Key Method.

                                                                                                                        • Source Key - String. Along with the description, this defines the record you want to view.

                                                                                                                        Parse Key has only one output:

                                                                                                                        • Search Spec - String. This is the search specification used to execute the primary business component. Only one record is in this record set because it is unique.

                                                                                                                        Example: Transfer Cart Inbound Create Quote Process, Parse Quote Key

                                                                                                                          Query Business Component Method

                                                                                                                          This method provides a way to query any business component in the business object. This gives you a bit more flexibility than the standard Siebel operation query, because you can search the entire business component without regard to the links to the primary business component.

                                                                                                                          If both Search Spec and Query fields are provided, the Search Spec is chosen over the Query field arguments to execute the business component with. If neither is provided, then an error is returned.

                                                                                                                          The following are inputs for Query Business Component:

                                                                                                                          • Business Component - String. This is the name of the business component in the business object to query through.

                                                                                                                          • Keep Context - String. (Optional, defaults to Yes) This is a string defining whether to query with regard to the current state of the business object or if to instantiate a new business object to query with (outside of context).

                                                                                                                          • Output Field - String. (Optional) These are the values you want to have returned from the record. A number can be appended to the name so that more than one field can be retrieved.

                                                                                                                          • For instance, if you wanted a Name and Location, there would be the arguments Output Field 1 and Output Field 2 with Name and Location as their values. If there is more than one record with the search specification, you obtain values from the first record in the executed business component.

                                                                                                                          • Query Field - String. (Optional) These are the input values determining the search specification that is used on the business component.

                                                                                                                          • To use this argument correctly, you must append the name of the field to the argument name. The value of the field can be any Workflow Process-evaluated string. For instance, if you are looking for a record where [Account Id] = Process Property [Siebel Operation Object Id], you would have:

                                                                                                                            • Argument Name: Query Field Account Id

                                                                                                                            • Type: Process Property

                                                                                                                            • Process Property: Siebel Operation Object Id

                                                                                                                          • Search Spec - String. (Optional) If the search specification is more easily formulated as a string, then you can choose to provide it here. The string can have the same format as any other search specification in Siebel Tools; also, you can also choose to have a Workflow Process-evaluated string as a possible input.

                                                                                                                          • The following are outputs for Query Business Component:
                                                                                                                            • Record Count - String. This returns a string representation of the number of records found in the query, up to 100. If there are more than 100 records, it returns the value -1, indicating that there are too many records in the query.

                                                                                                                            • Output Fields - String. These are fields that are returned in the query with the property name equal to the field name.

                                                                                                                            • In the previous example, the two output arguments are named Name and Location. Their values would be those of the first record returned by the query.

                                                                                                                            Example: PRM ANI Inbound Create Account Process, Find Account

                                                                                                                            Detach Hierarchy Method

                                                                                                                            This method is a complementary function to Append Hierarchy. It takes the specified integration object and extracts it from the parent object.

                                                                                                                            The following are inputs for Detach Hierarchy:

                                                                                                                            • Child Hierarchy Name - String. This is the name of the child hierarchy to instantiate from the parent data.

                                                                                                                            • Hierarchy Path - String. This specifies the path to trace to find the child root integration component.

                                                                                                                            • Siebel Message - Hierarchy. This specifies the parent from which the child object is extracted.

                                                                                                                            Detach Hierarchy has only one output:

                                                                                                                            • SiebelMessage - Hierarchy. The Child Object Instance defined by The Child Hierarchy Name, with data contributed from the input Siebel Message.

                                                                                                                            Example: PRM ANI Inbound Create Account Process, Get Account Object

                                                                                                                              Set Child Type Method

                                                                                                                              This method is a complementary function to Get Child Type. It sets the hierarchy type if you need to change something to the type Siebel Message.

                                                                                                                              The following inputs are for Set Child Type:

                                                                                                                              • Siebel Message - Hierarchy. The string name of the actual child type that is being passed from the external Web service’s hierarchy response. (The input argument’s type is Process Property, and the property name picks the hierarchy property.)

                                                                                                                              • Child Type - String. (Optional) This lists the current child types, their values, and the values to which you want to change them. For instance, if a user wanted to change a child of type Account to a child of type Partner, the user would need to specify the following:

                                                                                                                                • Argument Name: Child Type: Account

                                                                                                                                • Argument Value: Partner

                                                                                                                              • Hierarchy Path - String. (Optional). This tells the method where to do its work. For more information about the structure of this string, see Conventions for Hierarchy Paths.

                                                                                                                              Set Child Type has only one output:

                                                                                                                              • Siebel Message - Hierarchy. This is the existing object with the child type changed.

                                                                                                                              Example: Transfer Cart Outbound Request Process, Rename Root Object 1

                                                                                                                                Set Hierarchy Value Method

                                                                                                                                This method is a complementary function to Get Hierarchy Value. It sets the value of a property in an object.

                                                                                                                                The following are inputs for Set Hierarchy Value:

                                                                                                                                • Hierarchy Path - String. This specifies the integration component path to the field.

                                                                                                                                • Property Name - String. This is the name of the property you want to set.

                                                                                                                                • Property Value - String. This is the value for which you want to set the property.

                                                                                                                                • Siebel Message - Hierarchy. This is the object that you want to have this new field. If there is a problem with the path (a component in the path cannot be found), an error is returned.

                                                                                                                                Set Hierarchy Value has only one output:

                                                                                                                                • Siebel Message - Hierarchy. This is the object with the hierarchy value set correctly.

                                                                                                                                Example: Transfer Cart Outbound Create Header Process, Set Message Time Stamp