SAP BODS Reference guide for any project
- Introduction
SAP BODS Reference guide for any project: SAP Business Objects Data Services is an Extract, Transform and Load (ETL) tool used to move and manipulate data between source and target environments. SAP Data Services provides a data management platform that can support various initiatives including business intelligence, data migration, application integration and many more specific applications. SAP Data Services are the executable components within the application that can be deployed in either a batch or real time (services) based architecture.
The following document details the best practices regarding development within the SAP Data Service product. This includes:
- General SAP Data Services naming standards
- Design best practices
- Performance consideration
- Audit and Execution framework
- Audit database schema
Related areas that are not covered in this document include:
- Change control and project migration
- Data modeling techniques
- 1. Audience
This is technical document that is only indented only for developers and peer-reviewers who are already experienced in SAP Data Services.
- Data Services Naming Standards
- 1. Overview
The use of naming conventions within SAP Data Services will assist in the ability to support a single or multi user development environment in a controlled fashion. It will also assist in the production of documentation as through correct naming and object descriptions Data Services can produce component based documentation through its Auto Documentation tool found within the Management Console web based application.
The following sections describe the naming conventions for each type of object in Data Services.
The use of naming conventions can result of long names being used. To avoid very long objects names being truncated in the design workspace of Data Services Designer, it is possible to increase the number of characters displayed for an object. To do so:
DI Designer > Tools > Options Menus:
The parameter “Number of characters in workspace icon name” defines the maximum number of characters displayed in the workplace. Set this parameter to the desired value.
As a general note, Data Services object names should not have the following imbedded in them:
- Object versions (i.e. naming a Data Flow DF_LOAD_SALES_V0.3) Versioning should be handled by central repositories, not by naming conventions.
- Environment specific information (i.e. naming a datastore DS_WAREHOUSE_DEV_1). Environment information should be configured using datastore configurations, not by creating different names for each datastore.
- 2. Server Environment Objects
Object |
Naming Convention |
Example |
SANDPIT |
SPT |
JS_PRJ_SPT_001 |
DEVELOPMENT |
DEV |
JS_PRJ_DEV_001 |
TESTING |
TST |
JS_PRJ_TST_001 |
PRODUCTION |
PRD |
JS_PRJ_PRD_001 |
- 3. Server Objects
The naming conventions for other server side objects are defined below:
Object |
Naming Convention |
Example |
Job Server |
JS_ |
JS_PRJ_SPT_001 |
Job Server Group(Cluster) |
JS_GR_ |
JS_GR_PRJ_TST_001 |
Data Services Local Repository |
DSL_ |
DSL_SPT_001 |
Data Services Central Repository |
DSC_ |
DSC_SPT_001 |
Data Services Profile Repository |
DSP_ |
DSP_DEV_001 |
Data Services Data Quality Repository |
DSQ_ |
DSQ_DEV_001 |
- 4. Reusable Objects
Object |
Naming Convention |
Example |
Project |
PRJ_{Name} |
PRJ_Load_Warehouse |
Batch Job |
JOB_{Short Name}_{ Description } |
JOB_LW_Load_Data_Warehouse |
Real Time Job |
RJB_{Short Name}_{ Description } |
RJB_LW_Update_Customers |
Work Flow contained in one Job only |
WF_{JOB Short Name}_{ Description } |
WF_LW_Load_Dimensions |
Work Flow that is reused |
WF_G_{Description} |
WF_G_Load_Dimensions |
Data Flow contained in one Job only |
DF_{JOB Short Name}_{ Description } |
DF_LW_Load_Customer |
Data Flow that is reused |
DF_G_{Description} |
DF_G_Start_Job |
Embedded Data Flow |
Same as Data Flow except use EDF_ |
EDF_G_Write_Audit |
ABAP Data Flow |
Sales as Data Flow expect ADF_ |
ADF_LW_Load_Customer |
Custom Function contained in one Job only |
FN_{JOB Short Name}_{ Description } |
FN_LW_Customer_Lookup |
Custom Function that is reused |
FN_G_{ Description } |
FN_G_Convert_Time |
SAP Datastore Configuration |
{ENV}_{SYSTEM}_{Client} |
TST_BIO_400 |
Non SAP Datastore Configuration |
{ENV}_{SYSTEM}_{Description} |
DEV_IM_ADMIN |
Server Configuration |
{Number}.{ENV}_{Description} |
|
- 5. Sources and Targets
Object |
Naming Convention |
Example |
Datastore that connects to database |
DS_{ Description } |
DS_Source |
Datastore that connects to web service |
DS_WS_{ Description } |
DS_WS_Customers |
Datastore that connects to custom adapter |
DS_{Type} _{ Description } |
DS_HTTP_Legacy_Customers |
Application Datastore that connects to an application e.g. SAP R/3 |
AP_{Application}_{ Description } |
DS_R3_Finance |
Application Datastore that connects to SAP BW Source |
AP _BW_{ Description } |
DS_BW_Sales |
File Format Template |
FMT_{Delimiter}_{Description} Delimiter = CSV,TAB,FIX |
FMT_CSV_Customers |
DTD’s |
DTD_{Name} |
DTD_Customer_Hierarchy |
XSD Schema |
XSD_{Name} |
XSD_Customer_Hierarchy |
SAP IDoc |
IDC_{Name} |
IDC_SAP_Customers |
Cobol Copy Book |
CCB_{Name} |
CCB_Account |
- 6. SAP specific Extractions
The principle of keeping all the SAP extraction names the same helps with debugging of flows inside Sap. The application name describes the source (SAP DM, BP or BW)
Object |
Naming Convention |
Example |
SAP R/3 Dataflow |
Z{APP}{Name}{DESC} |
ZBWFLEX3DSO |
Generated ABAP Filename |
Z{APP}{Name}{DESC} |
ZBWFLEX3DSO.sba |
ABAP Program Name in R/3 |
Z{APP}{Name}{DESC} |
ZBWFLEX3DSO |
Job Name in R3 |
Z{APP}{Name}{DESC} |
ZBWFLEX3DSO |
- 7. Work Flow Objects
Object |
Naming Convention |
Example |
Script |
SCR_{Description} |
SCR_Initialise_Variables |
Condition |
CD_{Description} |
CD_Full_Or_Delta |
While Loop |
WHL_{Description} |
WHL_No_More_Files |
Try |
TRY_{Description} |
TRY_Dimension_Load |
Catch |
CAT_{Description}_{Error group} |
CAT_Dimension_Load_All |
- 8. Variables
Object |
Naming Convention |
Example |
Global Variable |
$G_{Description} |
$G_Start_Time |
Parameter Variable – Input |
$P_I_{Description} |
$P_I_File_Name |
Parameter Variable – Output |
$P_O_{Description} |
$P_O_Customer_ID |
Parameter Variable – Input/Output |
$P_IO_{Description} |
$P_IO_Running_Total |
Local Variable |
$L_{Description} |
$L_Counter |
- 9. Transforms
Object |
Naming Convention |
Example |
CASE |
CSE_{Description} |
CSE_Countries |
Date Generation |
DTE_{Description} |
DTE_GENERATION |
Data Transfer |
DTF_{Description} |
DTF_StageData |
Effective Date |
EFD_{Description} |
EFD_Effective_From_Date_Seq |
Hierarchy Flattening (Horizontal) |
HFH_{Description} |
HFH_Customers |
Hierarchy Flattening (Vertical) |
HFV_{Description} |
HFV_Customers |
History Preservation |
HSP_{Description} |
HSP_Products |
Map CDC Operation |
CDC_{Description} |
CDC_Products |
Map Operation |
MAP_{Description} |
MAP_Customer_Updates |
Merge |
MRG_{Description} |
MRG_Customers |
Pivot |
PVT_{Description} |
PVT_Products |
Query |
QRY_{Description} |
QRY_Map_Customers |
Reverse Pivot |
RPT_{Description |
RPT_Products |
Row Generation |
ROW_{Number of Rows} |
ROW_1000 |
SQL |
SQL_{Description} |