1. 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. 1. Audience

This is technical document that is only indented only for developers and peer-reviewers who are already experienced in SAP Data Services.

  1. Data Services Naming Standards
  1. 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.
  1. 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

  1. 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

  1. 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}

  1. 1.Sandpit or 4.TST_MIGRATION
  1. 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

  1. 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

  1. 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

  1. 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

  1. 9.    Transforms
<td

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}