Siebel Order Management Infrastructure Guide > Data Transfer Utilities Business Service > About Data Transfer Utilities >
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.
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.
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.
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.