Credits: Bhushan Raval
in
Data Transfer Process (DTP)
DTP determines the process for transfer of data between two persistent/non persistent objects within BI.
As of SAP NetWeaver 7.0, InfoPackage loads data from a Source System only up to PSA. It is DTP that determines the further loading of data thereafter.
Use
- Loading data from PSA to InfoProvider(s).
- Transfer of data from one InfoProvider to another within BI.
- Data distribution to a target outside the BI system; e.g. Open HUBs, etc.
In the process of transferring data within BI, the Transformations define mapping and logic of data updating to the data targets whereas, the Extraction mode and Update mode are determined using a DTP.
NOTE: DTP is used to load data within BI system only; except when they are used in the scenarios of Virtual InfoProviders where DTP can be used to determine a direct data fetch from the source system at run time.
Key Benefits of using a DTP over conventional IP loading
- DTP follows one to one mechanism between a source and a Target i.e. one DTP sources data to only one data target whereas, IP loads data to all data targets at once. This is one of the major advantages over the InfoPackage method as it helps in achieving a lot of other benefits.
- Isolation of Data loading from Source to BI system (PSA) and within BI system. This helps in scheduling data loads to InfoProviders at any time after loading data from the source.
- Better Error handling mechanism with the use of Temporary storage area, Semantic Keys and Error Stack.
Extraction
There are two types of Extraction modes for a DTP – Full and Delta.
Full:
Update mode full is same as that in an InfoPackage.
It selects all the data available in the source based on the Filter conditions mentioned in the DTP.
When the source of data is any one from the below InfoProviders, only FULL Extraction Mode is available.
- InfoObjects
- InfoSets
- DataStore Objects for Direct Update
Delta is not possible when the source is anyone of the above.
Delta:
Unlike InfoPackage, delta transfer using a DTP doesn’t require an explicit initialization. When DTP is executed with Extraction mode Delta for the first time, all existing request till then are retrieved from the source and the delta is automatically initialized.
The below 3 options are available for a DTP with Extraction Mode: Delta.
- Only Get Delta Once.
- Get All New Data Request By Request.
- Retrieve Until No More New Data.
I Only get delta once:
If this indicator is set, a snapshot scenario is built. The Data available in the Target is an exact replica of the Source Data.
Scenario:
Let us consider a scenario wherein Data is transferred from a Flat File to an InfoCube. The Target needs to contain the data from the latest Flat File data load only. Each time a new Request is loaded, the previous request needs to be deleted from the Target. For every new data load, any previous Request loaded with the same selection criteria is to be removed from the InfoCube automatically. This is necessary, whenever the source delivers only the last status of the key figures, similar to a Snap Shot of the Source Data.
Solution – Only Get Delta Once
A DTP with a Full load should suffice the requirement. However, it is not recommended to use a Full DTP; the reason being, a full DTP loads all the requests from the PSA regardless of whether these were loaded previously or not. So, in order to avoid the duplication of data due to full loads, we have to always schedule PSA deletion every time before a full DTP is triggered again.
‘Only Get Delta Once’ does this job in a much efficient way; as it loads only the latest request (Delta) from a PSA to a Data target.
- Delete the previous Request from the data target.
- Load data up to PSA using a Full InfoPackage.
- Execute DTP in Extraction Mode: Delta with ‘Only Get Delta Once’ checked.
The above 3 steps can be incorporated in a Process Chain which avoids any manual intervention.
II Get all new data request by request:
If you set this indicator in combination with ‘Retrieve Until No More New Data’, a DTP gets data from one request in the source. When it completes processing, the DTP checks whether the source contains any further new requests. If the source contains more requests, a new DTP request is automatically generated and processed.
NOTE: If ‘Retrieve Until No More New Data’ is unchecked, the above option automatically changes to ‘Get One Request Only’. This would in turn get only one request from the source.
Also, once DTP is activated, the option ‘Retrieve Until No More New Data’ no more appears in the DTP maintenance.
Package Size
The number of Data records contained in one individual Data package is determined here.
Default value is 50,000.
Filter
We have following options to restrict a value / range of values:
Multiple selections
OLAP variable
ABAP Routine
Semantic Groups
Choose Semantic Groups to specify how you want to build the data packages that are read from the source (DataSource or InfoProvider). To do this, define key fields. Data records that have the same key are combined in a single data package.
This setting is only relevant for DataStore objects with data fields that are overwritten. This setting also defines the key fields for the error stack. By defining the key for the error stack, you ensure that the data can be updated in the target in the correct order once the incorrect data records have been corrected.
Update
Error Handling
- Deactivated:
If an error occurs, the error is reported at the package level and not at the data record level.
The incorrect records are not written to the error stack since the request is terminated and has to be updated again in its entirety.
This results in faster processing.
- No Update, No Reporting:
If errors occur, the system terminates the update of the entire data package. The request is not released for reporting. The incorrect record is highlighted so that the error can be assigned to the data record.
The incorrect records are not written to the error stack since the request is terminated and has to be updated again in its entirety.
- Valid Records Update, No Reporting (Request Red):
This option allows you to update valid data. This data is only released for reporting after the administrator checks the incorrect records that are not updated and manually releases the request (by a QM action, that is, setting the overall status on the Status tab page in the monitor).
The incorrect records are written to a separate error stack in which the records are edited and can be updated manually using an error DTP.
- Valid Records Update, Reporting Possible (Request Green):
Valid records can be reported immediately. Automatic follow-up actions, such as adjusting the aggregates, are also carried out.
The incorrect records are written to a separate error stack in which the records are edited and can be updated manually using an error DTP.
Error DTP
Erroneous records in a DTP load are written to a stack called Error Stack.
Error Stack is a request-based table (PSA table) into which erroneous data records from a data transfer process (DTP) are written. The error stack is based on the data source (PSA, DSO or Info Cube), that is, records from the source are written to the error stack.
In order to upload data to the Data Target, we need to correct the data records in the Error Stack and manually run the Error DTP.
Execute
Processing Mode
Serial Extraction, Immediate Parallel Processing:
A request is processed in a background process when a DTP is started in a process chain or manually.
Serial in dialog process (for debugging):
A request is processed in a dialog process when it is started in debug mode from DTP maintenance.
This mode is ideal for simulating the DTP execution in Debugging mode. When this mode is selected, we have the option to activate or deactivate the session Break Points at various stages like – Extraction, Data Filtering, Error Handling, Transformation and Data Target updating.
This mode is ideal for simulating the DTP execution in Debugging mode. When this mode is selected, we have the option to activate or deactivate the session Break Points at various stages like – Extraction, Data Filtering, Error Handling, Transformation and Data Target updating.
You cannot start requests for real-time data acquisition in debug mode.
Debugging Tip:
When you want to debug the DTP, you cannot set a session breakpoint in the editor where you write the ABAP code (e.g. DTP Filter). You need to set a session break point(s) in the Generated program as shown below:
No data transfer; delta status in source: fetched:
This processing is available only when DTP is operated in Delta Mode. It is similar to Delta Initialization without data transfer as in an InfoPackage.
In this mode, the DTP executes directly in Dialog. The request generated would mark the data found from the source as fetched, but does not actually load any data to the target.
We can choose this mode even if the data has already been transferred previously using the DTP.
Delta DTP on a DSO
There are special data transfer options when the Data is sourced from a DTP to other Data Target.
- Active Table (with Archive)
The data is read from the DSO active table and from the archived data.
- Active Table (Without Archive)The data is only read from the active table of a DSO. If there is data in the archive or in near-line storage at the time of extraction, this data is not extracted.
- Archive (Full Extraction Only)The data is only read from the archive data store. Data is not extracted from the active table.
- Change Log
The data is read from the change log and not the active table of the DSO.