14Data Transfer Utilities Business Service

Data Transfer Utilities Business Service

This chapter describes the Data Transfer Utilities business service. It includes the following topics:

About Data Transfer Utilities

This business service allows you to transfer data from a source business component to a destination component. For example, a user can enter data in one view, then use a toolbar command to navigate to another view. Data entered in the first view is automatically entered in the second view.

    Considerations for Data Transfer Utilities

    This topic covers considerations that are important when you use the Data Transfer Utilities.

    Caution: Spool SQL statements during the development stage to verify that all operations are performed.

      Use of Active Business Objects

      Data Transfer Utilities execute inside a client's object manager.

      The DTU reuses the current active business objects. It does not instantiate an independent source business object unless directed. This leads to both a leaner memory use and better performance. This is even more so if the destination business object is the same as the source business object. In such a case, no new business objects are instantiated for the business service.

      Because of the reuse of active objects, you must exercise caution to preserve the current business object context. For example, the business components must not be in the query state when DTU is launched.

        Invocation Context

        You can pass a reference to the active Buscomp to DTU, if you invoke the business service from Event Manager, Buscomp Named Method, or from a workflow process that is invoked by the event manager. You are not required to have an active Buscomp.

        Not all Buscomp events can be used to invoke the DataTransfer method. For example, Query event in general must not be used to trigger DataTransfer, as the buscomps are not in an updateable state.

        In general, use PreDeleteRecord event; do not use DeleteRecord event. The Siebel event manager does not pass in a reference to the active Buscomp in the DeleteRecord event.

        Use special care when the service is used with other business services in a workflow. Other business services should not interfere the passing of a reference to the active buscomp. Use a spooled SQL statement to confirm the operations carried out are correct.

          Well-Positioned Buscomps

          A well-positioned Buscomp is a Buscomp that has been positioned correctly, and whose position should not be disturbed. DTU uses the following rule:

          • The initiator Buscomp is a well-positioned Buscomp.

          • The ascendants of a well-positioned Buscomp are well-positioned.

          • For a given data map component, the buscomps involved in all its parent data map components are well positioned.

          If the source Buscomp is well-positioned:

          • Data transfer is only invoked on the current row of the source BusComp. Otherwise, the operation is carried out on all rows in the source BusComp at the moment of invocation.

          • Advanced options such as source search spec, source sort spec should be empty.

          If the destination Buscomp is well-positioned:

          • You do not need to specify key fields to retrieve the destination record. Even if you do in this case, DTU would ignore them.

          • And if the current operation is Insert, it would change to Update by default, unless overridden by Operation Overrides.

          Example of Buscomp That is Not Well-Positioned

          Calling the DTU Data Transfer method from an applet that is based on buscomp Quote, but which has the data mapped source buscomp Opportunity. In this case:

          • The UI context (Quote) does not match the data mapped buscomp (Opportunity), and

          • DTU must query all Opportunity buscomp records, unless the RowId parameter is additionally passed, to identify a single opportunity record.

            Recursive Invocation

            By default, you cannot use the DataTransfer operation to invoke another DataTransfer operation. In other words, at anytime within a client's object manager, there is only one DataTransfer method in the call stack.

              Using Named Parameters in DTU

              You can use named parameters to pass in a run-time dynamic value into Data Transfer Utilities (DTU). For example, imagine you want to pull a contact's latest information into your Buscomp. At design-time, you cannot foresee what is the contact’s ID. Instead, you use a named parameter, &ContactId, and at run time, you pass in the value &ContactId.

              Named parameters are defined implicitly in two ways:

              • Business Service Arguments. Pass in the named parameters when DTU is invoked. DTU knows an argument is a named parameter if the argument name is prefixed with an ampersand (&).

              For example:

              var psinputs, psoutputs;
              var myContactId = '0-45TU890';
              psinputs = TheApplication().NewPropertySet();
              psoutputs = TheApplication().NewPropertySet();
              psinputs.SetProperty ("DataMapObj", "My Test DTU Object");
              psinputs.SetProperty ("Operation", "Update");
              psinputs.SetProperty ("&ContactId", myContactId);
              var obs = TheApplication().GetService("FINS Data Transfer Utilities");
              obs.InvokeMethod ("DataTransfer",psinputs, psoutputs);
              

              &ContactId serves as a named parameter.

              The input value of a named parameter can be a calculation expression. In order to do so, set the value to:

              Expr: "YourExpression"
              

              which is the syntax of Buscomp field predefault. At run time, the expression is evaluated against the initiator Buscomp. For more information about initiator buscomp, see the argument description in DataTransfer Method.

              • Assignment by DTU. At run time, you can transfer into a named parameter if the field type is Parameter. When this happens, if the named parameter is still not defined, it is instantiated.

              A named parameter must be implicitly defined first before it can be used. In other words, un-assigned named parameters cannot be used.

              Named parameters can be used to define Data Map Component Advanced Options, and Data Map Field Source or Destination that are of type Expression.

              All named parameters are output into the DTU service output arguments.

              Tip: Whenever a named parameter is used in DTU, it must be prefixed with &.

                Calculation Expressions in DTU

                When Data Map Field Source or Destination Type is Expression, the Source or Destination Fields are calculation expressions that follow Siebel Query Language syntax. See Siebel Personalization Administration Guide for more information about Siebel Query Language.

                DTU contains two extensions to Siebel Query Language: curly bracket pair {field}, and named parameter.

                  Curly Bracket Pair {field}

                  Use this syntax to refer to a buscomp field at the other business component side. For example, if you define the following expression as the source:

                  {ContactId}
                  

                  [ContactId] would be evaluated at the destination bsucomp. When {} is involved, please note that {} takes the highest precedence over other operator. Thus, if you have an expression like:

                  ‘{Last Name}' +  'Test'
                  

                  {Last Name} has precedence over quotes "". If the person's last name is Agee, {Last Name} is evaluated to be "Agee". As a result, the final value is:

                  "Agee" Test
                  
                  instead of 
                  
                  {Last Name} Test
                  

                    Named Parameter

                    A calculation expression can contain named parameters, using the syntax of [&Parameter]. It is important to pre-fix the ampersand to indicate a named parameter. For example,

                    "Sadmin's opportunity #" + [&OpptyId]
                    

                    For more information about named parameters, see Using Named Parameters in DTU.

                      Using DTU with Order Management Signals

                      Order Management signals are a powerful infrastructure that allow you to define complicated runtime events. For more information, see Signals.

                      DTU can be directly invoked through a signal. When this happens, the signal infrastructure passes the row ID of the current instance buscomp to the RowId argument of DTU. This tells DTU which source buscomp record to work with.

                      In a rare case when you invoke DTU from a signal, but you do not want DTU to use RowId passed from the signal as the context, simply set the IgnoreRowId argument to Y.

                      Since signals pass the RowId argument instead of the buscomp instance into DTU, a new instance of source buscomp is always created.

                        About Working with Hierarchical Business Components

                        Hierarchical business components, such as Quote Item, are business components that define a recursive hierarchical foreign key field to themselves. In Web Tools, these buscomps have the Hierarchical Parent Field attribute defined. Sometimes, their buscomp user properties also contain a definition for Root ID Field Name. For more information, see Siebel Tools Online Help.

                        When the data of a hierarchical buscomp is copied to another hierarchical buscomp, care must be taken to re-wire the hierarchical foreign keys: the hierarchical parent field and the root ID field. They must be re-wired to point to the corresponding destination records. DTU automatically re-wires those two foreign keys when a hierarchical buscomp is copied to another hierarchical buscomp.

                        For performance reasons, many data map objects in Siebel Order Management use a flattened version of a hierarchical buscomp instead. For example, data map object QuoteToSalesOrder, which creates a sales order based on a quote, contains the Line Item component that uses Quote Item (Simple) and Order Entry - Line Items (Simple). Both simple buscomps are not hierarchical. The reason for using simple buscomps is performance, as hierarchical buscomps require more CPU and memory. However, when those simple buscomps are used, you must define the foreign key mapping yourself. This is generally achieved using the field-level advanced option ID Mapping Component described in the following table.

                        This option was referred to as MapId in ISS Copy Service (described in Data Map Fields), which is not used by DTU in 8.0. For more information, see ISS Copy Service and the Data Transfer Utility.

                        In rare cases, you do not want DTU to automatically set hierarchical parent ID and root ID when a hierarchical buscomp is copied to another hierarchical buscomp. Set the component advanced option Disable Hierarchy to Y. You must type this option yourself, as it is not available from the pick list in the data map administration screen.

                          ISS Copy Service and the Data Transfer Utility

                          The DataTransfer method of the DTU replaces the Copy method of the ISS Copy Service. DTU offers more functionality and usability.

                          ISS Copy Service is still supported. Earlier configurations that use the Copy Service will still work with the Copy Service in 8.0. Only the AutoOrderSalesQuote and AutoOrderServiceQuote signals are re-configured to use DTU. It is recommended that new development be based on DTU.

                          Some differences are between DTU and ISS Copy Service are:

                          • DTU does not require you to instantiate the source and destination instances first. Instead DTU instantiates and deletes them automatically. This makes the invocation easier and safer.

                          • Copy service data map field options include:

                            • SequenceField. For the DTU data map, SequenceField is renamed as Sequence Field.

                            • MapId. For the DTU data map, MapId is renamed as the ID Mapping Component option. The difference is that the MapId option value is a source buscomp name, and ID Mapping Component is the data map component name, as DTU allows a buscomp to be used in multiple components.

                            For backward compatibility, DTU still recognizes the copy service field options.

                            Configuring Event-Based Commands for DTU

                            The Data Transfer Utilities (DTU) business service allows you to configure toolbar and menu commands based on Siebel Event Manager.

                            To configure event-based commands

                            1. In Web Tools, create or open a workspace and then navigate to Object Explorer.

                              To use the workspace dashboard, see Using Siebel Tools.

                            2. Define a command where:

                              Business Service is “FINS Data Transfer Utilities” and method is “FAFireEventxxx”.

                              The method name can be anything that begins with “FAFireEvent”. When the command is invoked, it, in turn, invokes method EventMethodxxx on the primary buscomp of the active view, where xxx is of the same value as in FAFireEventxxx.

                            3. Define a toolbar.

                            4. Define a toolbar item for the command you defined.

                            5. Save your changes and submit the workspace for delivery.

                            6. In the Siebel client, define a run-time event that will receive EventMethodxxx.

                            7. Navigate to the Administration - Runtime Events screen, then the Events view, and create a Buscomp run-time event as listed in the following table. See Siebel Personalization Administration Guide for more information about run-time events.

                              Field Entry

                              Sequence

                              -1

                              Object Type

                              BusComp

                              Object Name

                              The name of the business component in which the event is invoked. For a toolbar command, this is the primary business component in the view in which the command is invoked.

                              Event

                              InvokeMethod

                              Sub Event

                              EventMethodxxx. Choose the same value for xxx that you chose for FAFireEvent.

                              Action Set Name

                              The action set that invokes Siebel Workflow Manager or a business service.

                              Alternatively, you can define a workflow that has a Start step that contains run-time events. When the workflow is activated, both the Action Sets and run-time events are created automatically for you. For more information, see Siebel Business Process Framework: Workflow Guide.

                            8. Siebel run-time events are cached. After you make changes, click the Runtime Events applet menu item Reload Runtime Events.

                            9. Configure dynamic enabling of the command. For more information, see Dynamic Enabling of Commands for DTU.

                            10. Define command visibility:

                              1. In Siebel Tools, navigate to Business Services, then FINS Data Transfer Utilities.

                              2. Define a user property in which Name is MethodName GotoView, and Value is set to the name of a view. MethodName is the name of the command method.

                                When you define this user property, this method is enabled only for users who have visibility to the view defined in the value. If the method does not contain a GotoView, visibility is not imposed on the method.

                              Dynamic Enabling of Commands for DTU

                              When a command is invoked from a toolbar button or menu, the Data Transfer Utilities business service invokes the method EventMethodxxx on the primary business component of the active view. The primary business component should be derived from CSSBCBase to allow the invocation to be captured by Siebel Event Manager.

                              When the view is changed, Siebel framework polls each command for the application-level toolbar buttons and application menu to determine whether the button or menu items should be made read-only.

                              There are two mechanisms for the dynamic enabling and disabling of commands in DTU:

                              • Srf mode

                              • Mock Event Sink

                              The System Preference FINS DTU Enable FireEvent Mode is used to determine the mode. The value should be Srf or Runtime Event. The default value is Srf.

                                Srf Mode

                                In the Srf mode, a FAFireEventxxx invocation on a buscomp is enabled if there is a user property underneath the FINS Data Transfer Utilities business service as such that the name of the user property is:

                                Name: FAFireEventxxx Static Enabled BC [n]

                                Value: Buscomp Name

                                You can define multiple Buscomps for a FAFireEventxxx method.

                                Srf mode is introduced primarily for performance reasons. Compared with Runtime Event mode, it allows fast enabling and disabling of a command button without actually invoking a run-time event. Srf mode is the default mode.

                                  Mock Event Sink

                                  When System Preference FINS DTU Enable FireEvent Mode is Runtime Event, Data Transfer Utilities determines at run time whether a FAFireEventxxx method should be disabled or not by initializing Mock Event Mode. It sets up a global mock event flag within the client’s object manager. It then invokes EventMethodxxx on the primary business component of the active view. If this EventMethodxxx is finally captured by a Mock Event Sink, a global response flag is set. When the Data Transfer Utilities finds out the response flag is set by a mock event sink, it enables the FAFireEventxxx method for that particular view. Otherwise, the method is disabled.

                                  Mock Event Sinks are specialized business service methods that capture mock events. They check whether the client’s OM is in the mock event mode. If not, they do nothing. If so, they reply to the mock event by setting the response flag as well as the output argument.

                                  MockMethodReplied is Y.

                                  TryMockMethod in Data Transfer Utilities is a mock event sink. DataTransfer method has a built-in mock event sink.

                                    Performance Tuning for DTU

                                    You can improve performance of DTU by using the following tips:

                                    • "When the operation is insert, and you are sure no duplicate records would be created in the process, do not check Key flags. This means that DTU does not need to query the database to identify duplicates.

                                    • Use BatchMode in the Option argument whenever possible.

                                    • Use Cached Updates whenever possible.

                                    • For bounded picklist fields, MVG primary ID, and MVG source ID fields, skip field validation whenever possible. Note that skipping the bounded picklist validation would also skip setting fields of the pick map.

                                    • When a reference to the active instance buscomp is passed to DTU, it is a delicate balance to decide whether or not to launch the DTU with a new instance of the source buscomp or re-use the current active instance. By using the active instance, you avoid using CPU and memory for the new business object. On the other hand, when DTU works off the active instance, it has to restore the buscomp context to its original state, causing refreshing and looping of buscomps. When a large number of buscomps or buscomp records are involved , this can be expensive. This is why the NewSrcBusObj option is used in the "Auto Order Web Service" example.

                                      About Data Maps

                                      Data maps are the logic defining the flow of data from one location to another. The DTU business service uses data maps to transfer data from one location in the Siebel application to another.

                                      This topic includes information about the following:

                                        Data Map Objects

                                        Data map objects indicate the data that is being transferred from the source business object to the destination business object. You can use the Administration - Application screen, then the Data Map Administration view to define data map objects. Only Siebel administrators have access to this screen. Data map objects are described in the following table.

                                        Object Description

                                        Name

                                        Data map object name. Enter a unique name.

                                        Source Business Object

                                        Source business object name.

                                        Destination Business Object

                                        Destination business object name. You can specify the same business object as both source and destination business object.

                                        Inactive

                                        Check this box to make the data map object inactive.

                                        Tip: Data map objects are cached in memory. Whenever you make changes to an existing data map object, click the Clear Cache button to refresh the cache so that your changes appear.

                                        You can import or export data map objects as XML files through the Data Map Object applet menu items: XML Import, XML Export.

                                          Data Map Components

                                          Data map components define the mapping at the child business component level. Each data map object can contain multiple data map components. You can arrange data map components in a parent-child hierarchy, but you must specify a parent for all except one data map component. The parentless data map component is called the root data map component. Data map components are described in the following table.

                                          Component Description

                                          Name

                                          Data map component name. Enter a unique name for each data map component in a data map object.

                                          Source or Destination Business Component

                                          Source or destination business component name.

                                          If you specify a parent for this data map component, you must define this business component as a child of the source or destination business object to which the parent data map component is mapped.

                                          Parent

                                          Parent data map component name. If you:

                                          • Specify a parent, the parent is mapped to particular source and destination business components. Generally, you map the child data map component to a child of those source and destination business components.

                                          • Do not want to specify a parent, leave it empty to indicate that this is the root data map component. Each data map object can have one or more root data map components.

                                          Inactive

                                          Check this box to make the data map component inactive.

                                            Data Map Component Advanced Options

                                            Fine-tune data transfer at the component level by using Advanced Options multi-value fields. Data map components advanced options are described in the following table.

                                            All advanced option values can contain named parameters. At run time, the named parameter is substituted by its run-time value.

                                            If the source Buscomp has been well positioned, the source search spec, the source sort spec, and source record row number must be evaluated to be empty at run time, otherwise a wrong advanced option error is encountered. See Well-Positioned Buscomps for more information.

                                            Advanced Options does not apply to multi-value group subcomponents.

                                            Component Description

                                            Source Search Specification

                                            Source Sort Specification

                                            Defines the source Buscomp search spec and sort spec. The value can be a literal search spec or sort spec string. It can also contain a named parameter. See Using Named Parameters in DTU. For example:

                                            [Id] = [&ContactId]
                                            

                                            where ContactId is a named parameter. At run time, only named parameters are replaced by their string values.

                                            Source Record Row Number

                                            One can selectively transfer only a subset of source Buscomp records. This can be defined in three formats:

                                            • Start-End

                                            • Start-
                                            • Number

                                            For example, 0-5, 4-, 0.

                                            Note: The row number starts at 0.

                                            Operation Override

                                            This option allows one to override the operation at the component level. For example, if the current operation is Insert, you can use this option to set some component to operate Update instead.

                                            No Association

                                            Y or N. Applicable to buscomps that have association list. By default, it is Y. Data Transfer Utilities first try to locate the desired destination record in the associate list. If successful, the located record is associated. Otherwise, a new record is created.

                                            If N, association of existing records is not attempted. A new record is created instead.

                                            Cached Updates

                                            The valid values include:

                                            • Source Component

                                            • Destination Component

                                            • Source or Destination Component

                                            This is a performance enhancement option that defers sending SQL statements to the database until they can be sent together. Since none of the SQL statements is sent until the end, subsequent steps in the block cannot be dependant on a previous step having been committed to the database.

                                            When you turn on this option, make sure to confirm all SQL statements are generated correctly and there is no inter-dependency.

                                            Field Validation

                                            Y or N. By default it is Y.

                                            By default, setting field values in a Siebel BusComp triggers field value validation. If you have a bounded picklist, the new value is validated against the picklist and the fields in the pick maps are set. Disabling field validation also turns off picklists. It is a performance enhancement option.

                                            Source Filter Specification

                                            An expression in Siebel search specification syntax that is used to filter out records at the runtime. Only source records whose filter specification evaluates to be true are transferred.

                                            Filter specification differs from search specification in that search specification is imposed at the database query, and filter specification is imposed while looping through the records.

                                            Disable Order Management Signals

                                            The valid values include

                                            • Source Component

                                            • Destination Component

                                            • Source or Destination Component

                                            When the Disable Order Management Signals option is imposed on the source or destination components, buscomp operations on those buscomps do not trigger order management signals during the data transfer process.

                                              Data Map Fields

                                              Data map fields define the field-to-field mapping. Data map fields are described in the following table.

                                              Field Description

                                              Source Type or Destination Type

                                              Type of the source or destination field. Can be: Field, Expression, or Parameter:

                                              Source or Destination

                                              The contents of these fields depends on the source and destination type.

                                              If the type is:

                                              • Field, use Buscomp field name.

                                              • Expression, use a Siebel calculation expression.

                                              • Parameter, use a named parameter.

                                              If the destination field is a calculated expression, then the record is not used to update the destination Buscomp. Instead, the result of the expression, evaluated at run time, is written back into the source field at the end of the data transfer operation of the component.

                                              If the Source is:

                                              • A Buscomp field, then source Buscomp is updated.

                                              • A Parameter, the corresponding named parameter value is updated.

                                              • An Expression, nothing happens.

                                              Key

                                              Matches the destination records with source records.

                                              For example, the Update operation updates the record in the destination business component whose key destination fields all match those of the corresponding source fields.

                                              Each data map component in general contains at least one key field.

                                              When there is no key defined, if the operation is:

                                              • Insert, DTU would proceed without checking if a duplicate record with the same key fields already exists.

                                              • Update, it would update the current destination record.

                                              If the destination business component is populated with an associated list business component, at least one key field is required.

                                              Source or Destination Multi-Value Link

                                              This link indicates that the source and destination fields are multi-value fields.

                                              Data is transferred from one multi-value field to another by dividing data map fields into several subcomponents. All entries with the same source and destination multi-value link constitute a subcomponent. Specify a key for each subcomponent.

                                              Note: Data transfer from a multi-value field to a single-value field is not allowed.

                                                Data Map Field Advanced Options

                                                Data map field advanced options allow you to fine tune data transfer operations at the field level. These options are described in the following table.

                                                Option Description

                                                Field Validation

                                                Possible values are Y or N. The default is Y.

                                                For more information, see the Field Value component in Data Map Component Advanced Options. If Field Validation option is defined at both component and field levels, the field level definition wins.

                                                Sequence Field

                                                Possible values are Y or N. The default value is N.

                                                If the value is Y, a sequence number starting from 1 and increased by 1 is assigned to the destination field in each record.

                                                Id Mapping Component

                                                The option is used to re-wire foreign keys. The valid values are the names of data map components in the data map object. At run time, the source ID to destination ID mapping of the named data map component defines the foreign key mapping used by the data map field.

                                                For example, when you copy from quote item to order item in a data map component Items, the hierarchical parent ID of a quote item cannot be literally copied to the order item parent ID. It needs to be re-wired to the corresponding order item ID. The ID mapping component must be Items, as the quote to order ID mapping is used to look up the order parent ID field using the value of the quote parent ID field.

                                                For related information, see Configuring Event-Based Commands for DTU.

                                                  Migrating Data Map Objects Between Environments

                                                  Data map definitions are enabled for export and import by the Application Deployment Manager (ADM). For information about using ADM, see Siebel Application Deployment Manager Guide.

                                                    Example of Defining Data Maps to Use with the DTU

                                                    This topic shows how data mapping is defined to convert a quote into a sales order using the DTU. This is in essence Auto Quote function of the DTU. This example guides you though the mapping in the application.

                                                    The data copied over mainly consists of a three-level hierarchy:

                                                    • Header

                                                    • Line items

                                                    • Extended attributes (XA)

                                                    There are also other auxiliary entities such as payments, requested, and promised scheduled lines. This example shows how header (Mapping Headers), line items (Mapping Line Items) and XA (Mapping the Extended Attributes) are mapped. Other entities are mapped like either line items or XA. First, you must find the data map object where the header, line item, or XA are mapped as described in Finding the Data Map Object.

                                                      Finding the Data Map Object

                                                      You must find the data map object where the header, line items, and XA are mapped.

                                                      To find the data map object

                                                      1. Navigate to the Administration - Application screen, then the Data Map Administration view.

                                                      2. In the Data Map Object list, select the record named QuoteToSalesOrder.

                                                        The components of this data map object, including Header, Line Item, and XZ, appear in the Data Map Component list, after the Data Map Object list.

                                                        Mapping Headers

                                                        First, look at the mapping of the header component, to see how the quote header buscomp is mapped to the order header buscomp.

                                                        Notice that a calculation expression is used to look up the order type LOV to default the order type to sales order.

                                                        Two advanced options at the component level are of interest, because they are both important to improve performance:

                                                        • Cached Updates. Enables cached updates at the destination buscomp level. All updates at the order buscomp, and its descendant buscomps, are cached and issued in one batch to the database.

                                                        • Skip Order Management Signals. Because of this option, setting field values at the order buscomp does not trigger order management signals that usually would invoke pricing and eligibility workflows.

                                                        To view the header mapping

                                                        1. In the Data Map Component list, select the record named Header.

                                                        2. Look at the mapping in the Data Map field list.

                                                          Notice that the record with Expression in the Source Type field has the expression LookupValue("FS_ORDER_TYPE","Sales Order"), which is used to default the order type to sales order.

                                                        3. Click the select button in the Advanced Options field of the Header record to see that Cached Updates and Skip Order Management Signals are selected as options.

                                                          Mapping Line Items

                                                          Next, look at the Line Item component.

                                                          The record defines its parent as Header, so it is invoked as a child of the Header component.

                                                          To improve performance, use simple buscomps instead of the line item buscomps used in the Siebel Call Center user interface. These improve performance because they are light-weight and, most important, because they are not defined as hierarchical buscomps.

                                                          Because they are not hierarchical, you must define their hierarchical parent fields in the mapping, using the Data Map Field records with Root Quote Item ID and Parent Quote Item ID in their Source field.

                                                          Both these records use the advanced option with the name ID Mapping Component to define the foreign keys to define hierarchical parent fields.

                                                          Note: For backward compatibility, the application retains the advanced option MapId, which functions like ID Mapping Component.

                                                          For more information, see Configuring Event-Based Commands for DTU.

                                                          To view the line item mapping

                                                          1. In the Data Map Component list, select the record named Line Item.

                                                          2. Look at Advanced Option and the mapping in the Data Map field list.

                                                            Mapping the Extended Attributes

                                                            Next, look at the XA component.

                                                            Note that deep XA buscomps are used. In Web Tools, these buscomps are defined as children of the header buscomps, not as children of line items. This improves performance, because one query can retrieve all grand-children XA attributes that belong to a quote. To mirror the Tools configuration, XA is defined as a child of Header in the Data Map Component.

                                                            As deep XA buscomps are defined as children of the header, you cannot rely on Siebel buscomp links to set the parent line item IDs, which are stored in the Object Id field. You also cannot literally take object ID from quote to order, as the quote XA object ID points to a quote item, and the order XA object ID points to an order line item. You need to use ID mapping to look up the foreign keys in the order side. This is realized by the advanced options:

                                                            • Name: ID Mapping Component

                                                            • Value: Line Item

                                                            Note: For backward compatibility, the application retains the advanced option MapId, which functions like ID Mapping Component.

                                                            For more information, see Configuring Event-Based Commands for DTU.

                                                            To view the line item mapping

                                                            1. In the Data Map Component list, select the record named XA.

                                                            2. Look at Advanced Option and the mapping in the Data Map field list.

                                                              Examples of Invoking the DTU

                                                              The following topics illustrate the two ways of invoking the DTU, as they are used in the Siebel application, and how to use DTU services:

                                                                Example of Invoking the DTU from a Signal: Auto Sales Order

                                                                Auto sales order is a function that creates a sales order from the current quote. It can be invoked by clicking the Sales Order button in the Quote screen, then the Order view. This button invokes the signal AutoOrderSalesQuote. This example shows you how this signal invokes the DTU.

                                                                To see how the signal Auto SalesOrderQuote invokes the DTU

                                                                1. Log into Siebel application as an administrator.

                                                                2. Navigate to the Administration - Order Management screen, then the Signals view.

                                                                3. Query for AutoOrderSalesQuote.

                                                                4. In the last version list applet, drill into version 3.

                                                                5. You can see the three actions taken by the signal. Be sure that the you have selected the action that uses the method DataTransfer of the DTU Business Service, which copies the data into a new order.

                                                                6. In the Properties list, you can view the arguments of the DataTransfer method in the Parameter list, as shown in the following table:

                                                                  Name of Parameter Value

                                                                  DataMapObj

                                                                  QuoteToSalesOrder
                                                                  

                                                                  Operation

                                                                  Insert
                                                                  

                                                                  Option

                                                                  /BatchMode
                                                                  

                                                                  SharedGlobalDestID

                                                                  Y
                                                                  

                                                                  At runtime, the signal infrastructure also passes the RowId of the current quote ID to DTU.

                                                                7. The SharedGlobalDestId parameter allows the destination record ID to be output to a shared global variable called SharedGlobalDestId. This variable is picked up in by the RefreshBCFromInstance method, whose arguments are shown in the following table:

                                                                  Name of Parameter Value

                                                                  BusCompName

                                                                  Order Entry - Orders
                                                                  

                                                                  InstanceName

                                                                  ISS Instance
                                                                  

                                                                  TargetRowIdShared Global

                                                                  DTUSharedGlobalDestId
                                                                  

                                                                  The TargetRowIdSharedGlobal argument repositions the order buscomp to this row ID after refreshing, which is the row ID of the order just created.

                                                                  Example of Invoking DTU from a Workflow: Auto Order Web Service

                                                                  The Auto Order web service exposes Siebel's auto order function as a web service. It takes a quote row ID as the input argument, creates an order based on the quote, and returns a quote integration object. The web service is implemented by a workflow.

                                                                  To see how the workflow SISOMAuto OrderWebService invokes the DTU

                                                                  1. In Oracle’s Siebel Tools, locate the workflow SISOMAutoOrderWebService.

                                                                  2. In this workflow, select the step DTU Auto Order, which uses DTU to create a new order from a quote using the DataTransfer method.

                                                                  3. Display input arguments, which have the values shown in the following table:

                                                                    Input Argument Sequence Type Value Property Name

                                                                    DataMapObj

                                                                    1

                                                                    Literal

                                                                    QuoteToSalesOrder
                                                                    

                                                                    None

                                                                    Operation

                                                                    2

                                                                    Literal

                                                                    Insert
                                                                    

                                                                    None

                                                                    Option

                                                                    3

                                                                    Literal

                                                                    /BatchMode/NewSrcBusObj
                                                                    

                                                                    None

                                                                    RowID

                                                                    4

                                                                    Process Property

                                                                    None
                                                                    

                                                                    Object Id

                                                                    Notice that there are some subtle differences from the input arguments of the previous example:

                                                                    • Here, RowId is explicitly passed in as an argument, but when you use a signal, the order management infrastructure implicitly passes in a RowId argument.

                                                                    • The Option argument contains "NewSrcBusObj". In the previous example, since signals pass the "RowId" argument instead of the buscomp instance into DTU, a new instance of the source buscomp is always created. This workflow specifies its Business Object as Quote. As a result, DTU receives a reference to the quote business component as part of the invocation context. Because you use NewSrcBusObj in this argument, DTU does not work off the instance of the quote buscomp associated with the workflow. Instead it creates a new instance of the quote business object. For information about why NewSrcBusObj is used, see Performance Tuning for DTU.

                                                                  4. Display the output argument for this step, which has the values shown in the following table:

                                                                    Property Name Sequence Type Output Argument

                                                                    ActiveOrderId

                                                                    5

                                                                    Output Argument

                                                                    &OrderId

                                                                  5. The newly created order ID is output through the DTU named parameter &OrderId. The parameter is defined in the data map Header component data map field view, which has the values shown in the following table:

                                                                    Order Source Type Source Destination Type Destination

                                                                    52

                                                                    Parameter

                                                                    &OrderId

                                                                    Expression

                                                                    [Id]

                                                                    Example of Using DTU Services

                                                                    The following example shows how to use the FINS Data Transfer Utility business service to copy data from one business component to another business component.

                                                                    To copy a business component and specify a search specification

                                                                    1. Create an input property set and search specification as follows:

                                                                      Operation = "Insert"
                                                                      Option =  "/NewSrcBusObj /NewDstBusObj"
                                                                      DataMapObj = "CopyContact"
                                                                      &ContactId = "<the contact row_id you want to copy>"
                                                                      
                                                                    2. Configure DataMapObj ("CopyContact") to include a named parameter as follows:

                                                                      1. Go to the root level data map component in the Data Map Component Applet.

                                                                      2. Open the Advance Options Picker.

                                                                      3. Add following New Advanced Option:

                                                                        • Name: Source Search Specification

                                                                        • Value: [Contact Id]=[&ContactId]

                                                                      4. Clear cache.

                                                                    3. In the business service simulator, invoke the FINS Data Transfer Utility business service using the DataTransfer method, passing in the input property set specified in Example of Using DTU Services.

                                                                      The Siebel CRM client starts copying all the contacts.

                                                                    4. From the documentation, it may seem like the Init parameters are needed, but they are not. The InitBO/InitBC input arguments cannot be used to construct a buscomp to start DTU. They are used to indicate from which buscomp of the active busobj you want to use to launch DTU.

                                                                      Data Transfer Utilities Methods

                                                                      This topic describes the following Data Transfer Utilities business service methods.

                                                                        DataTransfer Method

                                                                        The DataTransfer method transfers data from the source business component to the destination business component. Its arguments are described in the following table.

                                                                        Argument Description

                                                                        Data Map Object (Required)

                                                                        The name of the data map object that defines the mapping.

                                                                        Operation (Required)

                                                                        Valid entries include Insert, Update, Delete, and Upsert.

                                                                        GotoView (Optional)

                                                                        The name of a view that appears to users after the data transfer operation.

                                                                        Option (Optional)

                                                                        A text field that allows you to specify additional options for the operation. Supported options include:

                                                                        • NewSrcBusObj. Force to instantiate a new Source business object. Use instead of NewBusObj.

                                                                        • NewDstBusObj. Force to instantiate a new destination business object.

                                                                        • RootNotCommitted. Suggest DTU not to commit the root component, if possible.

                                                                        • SrcRootAdminMode. Set the source Buscomp of the root data map component to Admin mode. This is valid only if the root source Buscomp has not been executed.

                                                                        • BatchMode. This is a performance enhancement option that suppresses runtime events, disables undo, and defers field pre-defaults until committing the record. Batch mode is only enabled for source or destination business objects that are not the active (initiator) business object.

                                                                        The following syntax is recommended for defining Option:

                                                                        /option1 /option2 …
                                                                        

                                                                        For example,

                                                                        /NewSrcBusObj /NewDstBusObj
                                                                        

                                                                        Initiator Business Object (Optional)

                                                                        Used as a sanity check. If the BusObject that invokes DTU is different from what is specified by the InitBO argument, DTU exits as an external error.

                                                                        Initiator Business Object is part of the invocation context. DTU receives a reference of the initiator business object only when invoked from Runtime Evens, Buscomp Named Methods, or workflow processes with its business object defined. DTU can be invoked without an initiator business object.

                                                                        Initiator Business Component (Optional)

                                                                        By default, the Buscomp that invokes DTU serves as the InitBC. Initiator Buscomp plays an important role in determining how records are transferred. Use the InitBC argument to set other Buscomp in the Initiator BusObject as the Initiator Buscomp.

                                                                        Initiator Search Specification or Initiator Sort Specification (Optional)

                                                                        Initiator Buscomp search spec and sort spec.

                                                                        Initiator Buscomp Enumerate Flag (Optional)

                                                                        Y or N. By default, Initiator Buscomp Enumerate Flag is N. When it is true, DataTransfer is applied to each record in the initiator Buscomp. When InitSearchSpec or InitSortSpec is specified, InitEnumFlag is implicitly true, even if InitEnumFlg is set to N.

                                                                        MockMethodReplied

                                                                        Y or N.

                                                                        RowId (optional)

                                                                        The ID of the root source buscomp record. For more information, see Using DTU with Order Management Signals.

                                                                        IgnoreRowId (optional)

                                                                        Y or N. If Y, RowId argument is then ignored. For more information, see Using DTU with Order Management Signals.

                                                                        SharedGlobalDestId (optional)

                                                                        Y or N. If Y, the destination record ID is output to a shared global called DTUSharedGlobalDestId.

                                                                        Note: It is recommended that you specify both InitBO and InitBC specifically when invoking DTU. DTU requeries the initiator buscomp when InitSearchSpec, InitSortSpec, InitEnumFlg are used.

                                                                          FAFireEventxxx Method

                                                                          FAFireEventxxx is a hidden method that you can use to create a toolbar command. It invokes the method “EventMethodxxx” on the primary business component of the active view. “EventMethodxxx” triggers the event manager, which invokes either a workflow or a business service.

                                                                            GetActiveViewProp Method

                                                                            This is an auxiliary function to retrieve the active view’s properties. It does not take any input arguments.

                                                                            Arguments

                                                                            Argument Description

                                                                            Business Object

                                                                            Business object name.

                                                                            View

                                                                            Active view name.

                                                                            Screen

                                                                            Active screen name.

                                                                            Thread Applet

                                                                            Thread applet name.

                                                                            Is Administration Mode

                                                                            Y or N.

                                                                            View Mode Code

                                                                            An integer representing Siebel view mode:

                                                                            • 0: SalesRep View

                                                                            • 1: Manager View
                                                                            • 2: Personal View
                                                                            • 3: AllView

                                                                              TryMockMethod Method

                                                                              This is an advanced auxiliary function for administration of the tool bar button workflow. It does not take any input arguments.

                                                                              Arguments

                                                                              Argument Description

                                                                              MockMethodReplied

                                                                              Y or N.

                                                                                QueueMethod Method

                                                                                Launch a queue method on an applet in another view. When invoked, the UI navigates to the view specified, and then the Queue method is invoked on the specified applet.

                                                                                Other input arguments of this method will be cached into the application Shared Global, which can be retried back.

                                                                                DTU DataTransfer method has built-in integration with the QueueMethod. When the input argument DataMapObject has the format:

                                                                                SharedGlobal: NameofSharedGlobal
                                                                                

                                                                                The data map object name can be retrieved from Shared Global with the name NameofSharedGlobal.

                                                                                Arguments

                                                                                Argument Description

                                                                                GotoView

                                                                                Name of the view to go to.

                                                                                Applet

                                                                                Applet name.

                                                                                Method

                                                                                Queued method to be invoked on the applet.