Business Data Toolset (BDT) : Developer's Manual
Business Data Toolset (BDT) : Developer's Manual
Developers Manual
Page 1 of 50
1 Introduction................................................................................................................................................................4
2 Introduction to the BDT............................................................................................................................................5
2.1 What is the BDT?...............................................................................................................................................5
2.2 History.................................................................................................................................................................5
2.3 Current Status.....................................................................................................................................................5
2.3.1 Users............................................................................................................................................................5
2.3.2 Advantages...................................................................................................................................................6
2.3.3 Functionality................................................................................................................................................7
2.4 Future Enhancements.........................................................................................................................................8
2.4.1 For Release 4.6............................................................................................................................................8
2.4.2 After Release 4.6..........................................................................................................................................9
2.5 Problem Messages/Development Requests......................................................................................................10
2.6 Task Menu BUPT.............................................................................................................................................10
3 Function Overview...................................................................................................................................................11
3.1 Basic Settings....................................................................................................................................................11
3.1.1 Differentiation Types..................................................................................................................................11
3.1.2 Application Objects...................................................................................................................................12
3.1.3 Applications...............................................................................................................................................14
3.2 Dialog................................................................................................................................................................14
3.2.1 Activities....................................................................................................................................................14
3.2.2 Screen Layout............................................................................................................................................14
3.2.3 Screen Sequences.......................................................................................................................................19
3.2.4 Tables.........................................................................................................................................................21
3.2.5 Program Logic...........................................................................................................................................22
3.2.6 Screen Title................................................................................................................................................25
3.2.7 Menus........................................................................................................................................................26
3.2.8 Field Groupings.........................................................................................................................................28
3.2.9 Assigning Screen Fields Database Fields.............................................................................................29
3.2.10 Search Helps............................................................................................................................................30
3.2.11 Authorizations..........................................................................................................................................30
3.2.12 Divisibility...............................................................................................................................................32
3.2.13 Application Transactions.........................................................................................................................33
3.2.14 Transfer Mode..........................................................................................................................................34
3.3 Change Document Lists...................................................................................................................................34
3.3.1 Events CHGD1 to CHGD4........................................................................................................................35
3.3.2 Calling Lists..............................................................................................................................................36
3.4 Data Maintenance Without Dialog...................................................................................................................36
3.4.1 Direct Input................................................................................................................................................36
3.4.2 Function Modules......................................................................................................................................39
3.5 External Interfaces............................................................................................................................................40
3.5.1 Process.......................................................................................................................................................40
3.5.2 BDT Function Modules.............................................................................................................................40
4 Roadmap for Implementation..................................................................................................................................43
4.1 Additional Check for Existing View.................................................................................................................43
4.2 New Table Fields and New Tables....................................................................................................................43
4.2.1 New Table Field Using Owning Application............................................................................................43
4.2.2 New Table Field Using Participating Application....................................................................................43
4.2.3 New Table..................................................................................................................................................44
4.3 Extend Screen Layout and Screen Sequence...................................................................................................44
4.3.1 Include Field in Existing Field Group......................................................................................................44
4.3.2 Include Field in Existing View..................................................................................................................44
4.3.3 Include New View in Existing Section......................................................................................................45
4.3.4 Include New Section in Existing Screen...................................................................................................45
4.3.5 New Screen in Existing Screen Sequence.................................................................................................45
4.3.6 New Screen Sequence as Main Screen Sequence.....................................................................................45
4.3.7 New Additional Screen and/or New Additional Sequence.......................................................................46
4.4 New Object Part................................................................................................................................................46
4.5 New Field Grouping Criterion.........................................................................................................................46
4.6 New Application Object....................................................................................................................................46
5 Appendix..................................................................................................................................................................48
5.1 Terminology Definitions...................................................................................................................................48
5.2 Abbreviations....................................................................................................................................................48
5.3 Naming Conventions........................................................................................................................................49
Page 2 of 50
1 Introduction
This manual describes the functions in the Business Data Toolset (BDT) as of January 1999.
Development for Release 4.6A in the standard R/3 system has already begun at this point. The
following IBU releases have the same development status:
IBU Banking
Release 4.01B
IBU Insurance
Release 2.1A
IBU Telecommunications
Release 1.2
IBU Utilities
Release 1.2
This manual is divided into five main sections.
After this introduction, section 2 provides a brief overview of the BDTs origins, current features and
enhancements planned for the future.
Section 3 describes current functionality in detail. In writing this manual, the authors have assumed
thorough knowledge of dialog programming and the related tools.
Section 4 is intended as a rough guide to problem-solving: it lists any necessary steps and then makes
reference to sections that provide more detailed descriptions.
Explanations of special terms and abbreviations as well as an overview of naming conventions (section
5) comprise the last section of the manual.
Depending on your interests, different sections will be more or less relevant for you:
Developers and consultants who plan to use the BDT for implementation but are unfamiliar with it
need to read the entire manual.
Developers and consultants with BDT experience may only need to consult section 4 to solve
actual problems.
Page 3 of 50
2.2 History
The Business Data Toolset originated in the Central Business Partner project. The following demands on
the technical aspect of data entry played an important role in the development of the BDT:
Extensibility
Although the Business Partner project group had realized the central attributes of a business
partner, (such as name components, addresses and bank details) there were other specific
attributes in many of the remaining applications. Development partners and customers needed a
facility for incorporating their own attributes into maintenance. In master data for accounts
receivable and accounts payable, you had to make modifications to do this.
Because it is impossible to collect and implement all these different attributes in one project group,
maintenance for downstream enhancements had to be extensible without the need for
modifications.
Configurability
Because mid-sized customers in particular tend to suppress most of the standard SAP data fields,
dialog maintenance becomes tedious when you still have to go through screen after screen on
which only one or two fields are relevant. Switching screens often slows down data entry
considerably.
As a result, it was decided to make screens configurable in order for customers to both tailor entry
screens to their individual needs and keep the number of screens to a minimum.
Divisibility
If you were to count up all the attributes in the SAP system that are relevant for a business partner,
you would have several hundred fields. Since it is impossible to include all these attributes in each
type of maintenance, the maintenance itself must be divisible into parts wherein only those
attributes are visible which are relevant in the current business context. These parts are called roles
in Business Partner.
The necessary technology was first developed in a common program with application data for Business
Partner. However, it soon became apparent that the second part of this project - i.e., the business
partner relationships - were placing the same technical demands on data maintenance. The
requirements listed above were also applicable to other business objects. As SAP restructured with a
new industry orientation, extensibility assumed a greater importance for development. Many of the IBUs
wanted to extend or enhance application objects from the standard system. As a consequence, the
Business Partner project group decided to separate the technical part from the application data and
then make this technology available to other application objects. This technical part, which was called
BP control or master data control for a long time, is now known as the Business Data Toolset, or BDT.
Page 4 of 50
The integration of the Treasury business partner is currently in process and should be complete by R/3
Release 5.0.
In the meantime, other application objects have already taken advantage of the BDT. The following
application objects are currently being realized or developed in conjunction with the BDT:
IBU Banking
Bank account
Standing order
Financial product
Financial conditions
Risk object
Variable transactions
IBU Insurance
Insurance: Claims
Insurance: Loss event
Commissions: Remuneration agreements
Real Estate
Real estate contract
Tenant information
Cost efficiency analysis
2.3.2 Advantages
Similar technical demands are often placed on the development of application objects. By using the
BDT, an application object can provide functions without having to realize them itself. The essential
advantages of using the BDT are:
Extensibility
You can extend various dialog parts without the need for modifications using downstream
applications either within SAP or through development partners or customers. This applies to
Screen layout
Screen sequence
Program logic
Menu
Search help
Field grouping
Authorization checks
Other areas, such as data maintenance without dialog or change document lists, are also
extensible.
Configurability
Screen layout and sequence can be configured by application developers and/or customers. While
Page 5 of 50
developers use BDT control tables to modify screens, customers can take advantage of a
configuration tool developed using Visual Basic for changing standard SAP screen layout and
sequence with the drag&drop method.
Divisibility
The maintenance of large objects can be broken down into smaller parts. You use control tables to
define which attributes can be maintained in an object part. The term object part can be replaced by
a more suitable term for any given application object. The BDT supports two types of divisibility:
Each object instance can take on multiple parts (example: roles with a business partner)
Each object instance can take on just one part (example: account type with a bank account)
Delinking
Each application develops within its own function group, thereby delinking individual applications.
Faster Development
Because the BDT takes control of dialog processes, the applications limit themselves to realizing
business functions. The BDT also provides services in which the applications can be included.
These factors reduce considerably the time needed to develop applications.
Uniformity
In all application objects that use the BDT, online navigation takes place using the BDT and is
therefore identical. Using the generic object services also contributes to a certain uniformity.
2.3.3 Functionality
The following provides you with an overview of functions that have already been realized.
Dialog Maintenance
Existing tables can be extended by downstream applications using the APPEND structure technique
from Basis. These new table fields as well as completely new tables can be integrated seamlessly
into a dialog by SAP applications, development partners or customers.
Screen layout and sequence can be extended and configured using control tables (without the
need for modification). Customers can adapt standard SAP screens to their needs with drag&drop
within customizing. Using the Visual Configuration Tool (VCT), customers can change
screen layout - or also group several screens together
screen sequence
screen titles
frame titles
Program logic can be extended by SAP applications, development partners or customers using
event function modules In this way, each application can
read its tables
check its fields
carry out additional checks for fields in other applications
save its tables
The screen title is composed by the BDT in accordance with SAP ergonomic guidelines. Its
elements are
the title of the application object (business partner)
the activity (change)
the title of the current screen (address)
In this example, the BDT created the screen title Change Business Partner: Address.
You can change the title created by the BDT with event DTITL.
The menu is defined by the application that owns the application object. The central menu options,
such as Cancel, Exit, Save and Back, provided by the BDT are part of the menu. You can use
control tables to define when a menu option is to be active depending on the:
maintenance mode (save or transfer mode)
activity (create, change, display)
views on the current screen
Example: The menu option Delete bank details is only to be active in the Create or Change
activity and when the view of bank details is on the current screen.
Page 6 of 50
Field groupings can be made using criteria of your choosing. The BDT supports the application
when creating a maintenance transaction for one criterion and links settings for various criteria to
the runtime using predefined rules.
Using a control table, applications can add any number of other elementary search help functions to
fields related to search help. Starting in Release 4.6A, this service will be provided by Basis in the
form of APPEND search help functions.
You can include notes easily on a screen and, like any other dialog part, place them wherever you
like.
Authorization checks can be carried out between the initial screen and the first data screen as well
as prior to saving. The BDT provides some of the recurring authorization checks that can be used
by application objects.
Authorization for field groups
Example: Only user A may maintain names and addresses of business partners, while all users can
maintain any remaining fields.
Authorization for field values of any fields
Example: Authorizations for a business partner are to be granted using the Last name field
User A may only maintain those business partners whose last names begin with A-K
User B may only maintain those business partners whose last names begin with L-Z
Every application can also carry out any other authorization checks.
Change documents are written by each application when saving data itself; the BDT provides
evaluations. The following evaluation types are available:
Field changes (display changes to a field of an instance)
Account changes (display changes to all fields of an instance)
Display changes to multiple/all instances
Transfer mode: The maintenance dialog is called from the maintenance of another object. The
data is saved together with the calling object.
Example: Maintaining a contract requires you specify both parties to the contract - two business
partners. You should be able to create and/or change both business partners from contract
maintenance. The contract data and the business partner involved are to be saved together. In
order to do this, business partner maintenance must be called from the contract in transfer mode.
When you exit business partner maintenance, the data entered is flagged but not yet saved in the
database. Once the contract has been saved, the flagged business partner data is written to the
database.
External interfaces can be realized for application objects that were developed with the BDT. In
this case, the external maintenance transaction only takes over the structuring of the interface and
forwards the field contents entered on to the BDT. BDT function modules are called to carry out
program logic such as reading, checking and saving data. They trigger the events that call the event
functions modules in the applications.
Maintenance Without Dialog
Direct Input (DI)
Using the DI tools developed in EIS, data is read from a file and transferred to the BDT. The BDT
then forwards that data on to the applications within events DINP1 (header data) and DINP2 (data).
Finally, the same events are processed in this type of maintenance transaction as in a dialog. Most
of the program logic developed by the applications can be reused.
Maintenance Using Function Modules
In contrast to DI, the data in this case is transferred in the interface of a function module instead of
being read from a file. Once the data has been transferred to the BDT, the process is the same as
that for DI.
Time Dependency
There are numerous ways of creating time dependency, including planned change documents and
extending a table key by one or more date fields. It is left up to applications that use the BDT to
decide whether and what kind of time dependency they want to use.
The BDT supports the use of planned change documents with two service function modules, which
Page 7 of 50
Archiving
The ADK (Archive Development Kit) is used for archiving. As in the deletion program, the
applications can use events to intervene in the archiving process.
Where-Used List
An employee may sometimes need an overview of all the transactions a company had or is having
with a business partner. Ideally, you would be able to include all or only selected areas of a
company in this kind of list.
Because this service has also been requested for other application objects, the BDT has developed
an infrastructure for it. Its various uses are displayed in a user-defined tree structure. Each
application can add its own nodes to the tree.
The application decides which form of data retention is required on an individual basis for each
node.
Reading Data at Runtime
The application stores the name of the function module in the BDT with which data can be imported.
The advantage of this method is that redundant data need not be retained.
Saving Data in Redundant Usage Tables
For each application object there is a usage table in which the applications can update their usage
at the same time as the operative tables. At runtime, the where-used list extracts the data from this
table. This type of data retention generally has a better runtime and should be used for usage from
external systems.
Default Values
You will be able to maintain an unlimited number of default variants so that they can be used as a
reference when creating a new instance. You will be able to include default values from other
sources using a separate event. By using a field grouping, you will be able to decide whether a
Page 8 of 50
The centrally defined application calls for Business Partner can be found in the Application
submenu. There is also a branching point into the menu for BP-BP relationships, which represent a
separate application object. All calls relevant for an application will be included in their respective
menu so that there is no need to call from the BUPT menu.
Cross-application settings (see section 3.1) are located in the General control submenu. You can
also store differentiation types in addition to defining application objects at this point.
The BP control submenu contains the object-specific settings (see section 3.2) for the Business
Partner application object. You have to create a separate task menu for each additional object
which contains the calls of the settings specific to this object.
The Customizing submenu contains the settings a customer can make in Business Partner. You will
also find the same points in the IMG under Cross-Application Settings Central Business Partner.
Documentation for the individual points, which you need to set up your system with the IMG is
located here as well.
Page 9 of 50
3 Function Overview
The BDTs functions are described in detail in this section. Menu paths refer to task menu BUPT
explained in section 2.6. Task menus belonging to other application objects will generally look very
similar.
Page 10 of 50
to use divisibility
Examples: Currently, there are about 15 application objects from IBU Banking, IBU Insurance, Contract
Accounts Receivable and Payable and Real Estate Management. Some examples include:
BUPA
Business partner
BUPR
BKKA
Bank account
FICA
Contract account
Naming convention: The BDT has been released solely for the development of SAP application
objects. It should not be used to develop customer application objects. To register a new application
object, contact the Business Partner development group. The group keeps a central register that
prevents different application objects being given the same name, which could cause problems.
Activit
Description
Req
Op
Requirement
y
d
t
0001
Applications
X
0002
Field groups
X
0003
Views
X
0004
Sections
X
0005
Screens
X
0006
Screen sequences
X
0007
Events
X
0008
GUI standard functions
X
0009
GUI additional functions
X
Page 11 of 50
0010
0011
0012
0013
0014
0015
0016
0017
Matchcodes
Assign screen field DB field
Field grouping criteria
Object parts
Object part groupings
Application transactions
Tables
External applications
0100
0101
0102
0103
0104
0105
0200
X
X
X
X
X
Divisibility
Divisibility
External
interfaces
Service needed
Divisibility
Service needed
Service needed
X
X
X
X
X
X
X
X
X
External
interface
Change
document
Activities: Maintain a setting transaction for each setting activity. For each activity, carry out the
following steps:
Create a report transaction and enter the report BUSVIEWS as the start parameters.
Procedure: Go into the ABAP Workbench menu and choose Development Other tools
Transactions. Enter the transaction code and choose Create. Now select the Report transaction
option and on the screen that follows enter BUSVIEWS in the program field next to the transaction
text.
Enter the setting activity with your application object and assign the transaction code you created in
the first step.
When the transaction is started, the maintenance view that is part of the control function or the view
cluster for your application object is called automatically.
Page 12 of 50
3.1.3 Applications
Each application that is active in the maintenance of an application object has to register itself at this
point. They always develop within their own function group, where they create subscreens as well as
their own function modules for BDT events.
This encapsulates the application and prepares it for delinking. Avoid grouping heterogeneous
components in a single application. Any later delinking of these components that becomes necessary
would only be possible with your own expenditure of time and effort - in other words, you would have to
split the application and thus also the function group.
Menu path: Control <Object> Applications
Naming convention: Name ranges Y* and Z* are reserved for customer applications, while
development partners can use name range X*. SAP applications register their application with the
application responsible for the application object.
The application ID plays an important role in the naming conventions for other BDT objects.
3.2 Dialog
Using the BDT ensures that the dialog created by an SAP application is extensible for other applications
both inside and outside SAP. The procedure is changeable. To do this, you would use fully maintained
interfaces. Modifications to development objects in other applications are not necessary.
3.2.1 Activities
For each application object, you can define any number of activities in which an object is to be
processed. Each application developer can show or hide fields on an individual activity basis. The
activity-dependent part of the screen title (see section 3.2.6) is stored within the activity based on
language.
Each activity has to refer one of the activity types predefined by the BDT. The following activity types
exist for the dialog:
Create
Change
Display
01 Create
Activity type 01
02 Change
Activity type 02
03 Display
Activity type 03
Examples: For a standing order in IBU Banking (BCA) there is the Delete activity in addition to the
three main activities. However, only a deletion flag is set - the associated activity type is actually
Change.
Environment: Direct Input also recognizes activity type Modify in addition to the three others listed
above. At runtime, the application determines whether a record already exists with the transferred key. If
this is the case, the Change activity is set. Otherwise, the activity would be Create.
Procedure: Carry out the following steps for each activity:
Define the activities for your application object and assign to each an activity type.
Once the screen layout and screen sequence have been created, hide those field groups that are
unnecessary for an activity.
Field groups
Page 13 of 50
View
Section
Screen
Naming convention: Values from 1 to 1000 are permitted for field groups. While groups 750-1000 are
reserved for development partners and groups 500-749 for customers, areas within SAP should be
discussed with the development group responsible for the application object. The Business Partner
development group is responsible for the business partner (application object BUPA) as well as
business partner relationships (application object BUPR).
3.2.2.2 Views
One or more field groups constitute a view. All attributes that are displayed and checked together are
grouped in one view. The fields of a view cannot be separated in screen layout since they are located
on the same subscreen.
A view may only contain fields from one application. A downstream application may not extend a view;
instead, it should create its own views for its attributes and assign its own subscreens to these views.
The same applies to customers as extending a view amounts to a modification.
Menu path: Control <Object> Screen layout Views
Procedure: The following steps are necessary for defining a view:
Create Subscreen
Use the Screen Painter to create a screen. But take note of the following when doing so:
Screen attributes:
Mark the screen type subscreen
Layout:
Generally, you wont need to put a frame around your data. The BDT automatically inserts a
frame around the fields of a section (see 3.2.2.3).
The field name of a pushbutton positioned on the subscreen should adhere to the following
naming convention: PUSH_<Menu option>. If this is the case, the BDTs field grouping
automatically hides the pushbutton if the menu option is not active.
Flow logic:
Page 14 of 50
Create a PBO module that calls function module BUS_PBO; call the PBO module from the
PBO of each of your subscreens. If your subscreen contains a table control, transfer the data
relating to the table control to the BDT using parameter C_TC1 when calling BUS_PBO.
Create a PAI module that calls function module BUS_PAI. Call this PAI module from the PAI of
each of your subscreens.
Do not carry out any field checks within the flow logic, neither in a module nor in any of the
sub-programs called from a module. Checks on a view should generally be carried out in a
separate function module whose name is stored in the after-input field (see below).
Text tables for displaying check texts should be read and other actions related to PBO should
be carried out within the function module whose name is to be defined in the prior-to-output field
(see next section).
Define view
Description: The program name and screen number of the subscreen, as well as its name, must be
specified here. The names of the function modules for the events listed above are also defined
here.
Naming convention: <Application>NNN
The ID for a view should always have 6 places. It should start with the application ID followed by a
set of numbers.
Page 15 of 50
Example: The following examples can be found within function group FBU0 (application FI for
application object BUPA).
field KNB1-DATLZ (date of last interest calculation)
Within function module FI_BUPA_EVENT_ISDAT, function module BUS_DATEFIELD_START is
called in the form of KNB1_ISDAT.
Within function module FI_BUPA_PAI_FI2100, function module BUS_DATEFIELD_PAI is called in
the form of DATLZ_CHECK.
Field KNB1-WEBTR (exchange limit in local currency)
Within function module FI_BUPA_EVENT_ISDAT, function module BUS_NUMBERFIELD_START is
called in the form of KNB1_ISDAT.
Within function module FI_BUPA_PAI_FI2410, function module BUS_NUMBERFIELD_PAI is called
in the form of WEBTR_CHECK.
As with foreign key checks, you also have the option with data types of letting the screen perform
the check in dialog. However, you still have to use the procedure outlined above for direct input.
Message Output
Never display messages directly using the message statement, as this creates problems with direct
Page 16 of 50
input and external interfaces. Call function module BUS_MESSAGE_STORE instead. You can enter
the following information in this module:
Message type
Message class
Message number
Message parameters
Name of the field on which the cursor is placed
Names of fields affected by the message (highlighted)
3.2.2.3 Sections
One or more views are grouped together as a section. The BDT automatically puts a frame around each
section. The only exception to this rule is the first section of a screen in which the header data appears.
According to SAP ergonomic guidelines, a frame should not be put around this data. In addition to the
description, you also define a language-dependent title for the section, which is displayed in a dialog in
the upper left-hand corner of the frame.
Menu path: Control <Object> Screen layout Sections
Procedure: The following steps are necessary for defining a section:
Define Section
For each section, fill in Description and Title. Both are language-dependent. In dialog, the title
appears in the upper left-hand corner of the frame.
Naming convention: <Application>NNN
The ID for a view should always have 6 places. It should start with the application ID followed by a
set of numbers.
Application basis
1+2
Standard applications
Industry applications
Development partners
Customers (central)
Customers (branch)
3.2.2.4 Screens
The screen represents the largest unit in screen layout. One or more sections are grouped together as a
screen. In addition to screens created with BDT, you can integrate screens that were not created with
BDT by using the External screens selection.
Menu path: Control <Object> Screen layout Screens
Procedure: The following steps are necessary for defining a screen:
Define Screen
In addition to the description, you also specify the screen-dependent part of the title as an additional
language-dependent text. This is included in the determination of the complete screen title (see
section 3.2.6). You can also decide whether the screen is to appear as a full screen or a dialog box
(popup).
Screens not configured using the BDT can also be integrated into the process. To do this, mark the
External screen indicator and enter the name of the function module for calling this screen. This
module is called automatically by the BDT as soon as you start to navigate in the external screen.
One example of this is the BP relationships of a business partner, whose overview was integrated
as an external screen.
Naming convention: <Application>NNN
Page 17 of 50
The ID for a screen should always have 6 places. It should start with the application ID followed by
a set of numbers.
Delete section (the assigned views flow into the list of unused views)
Delete screen (the views flow into the list of unused views)
General Functions
If an application object uses divisibility, you can set screen layout and screen sequence for each object
part. If divisibility is not used, only one screen configuration can be created by the customer.
Action required: If you want to use configuration for your application object, you have to define just
one setting transaction for setting activity 0104 (see section 3.1.2.3).
Future plans: Functionality in VCT is to be extended progressively in Releases to come. The next
steps include configuration of all screen sequences and/or the additional screens, integration of field
grouping as well as the use of VCT by developers.
Page 18 of 50
If just one object part is maintained, the screen sequence defined in it is used. If no screen
sequence is defined for the object part, the standard sequence is used.
If just one object part grouping is maintained, the screen sequence defined in it is used. If no
object part grouping is defined for the object part, the standard sequence is used.
If several object parts or object part groupings are maintained and the same screen sequence
assigned to all of them, then this is the sequence that will be used.
Standard Screen Sequence for Main Screen Sequence Category: Make sure that this sequence
includes all views relevant to the main screen sequence. The reason for this is that the BDT sequence is
always used in those cases when no sequence variant has been unambiguously assigned (functions as
a catch-all).
Number of Screen Sequences for Main Screen Sequence Category: In many cases, one sequence
is enough even for application objects that use divisibility. The BDT automatically skips over screens
that contain no input fields for the current dialog. You only need to create more sequences for special
object parts if:
several nearly empty screens would appear due to hidden fields (in an additional sequence, the
relevant fields can be grouped together on one screen)
Page 19 of 50
Screen Sequences for Other Categories At the moment, only one sequence is to be assigned, which
is then marked as standard. The BDT always uses the standard screen sequence for a screen sequence
category. In a future Release, it will be possible for the application to determine the screen sequences
based on object parts for all screen sequence types.
3.2.4 Tables
Menu path: Control <Object> Tables
Description: Each application table you want to maintain must be entered here. The application
responsible for the table (determined by the tables development class) must write two function modules
for communicating with other applications. These modules allow applications that participate in tables
as well as the BDT to exchange table contents with the responsible application during dialog.
Read Data
This function module is used by other applications as well as the BDT to determine the current
content of the table at any time during data maintenance. For more details on how to use it, see the
description for event ISDST (section 3.2.5).
Naming convention: <application>_<application>_<table name>_GET
(Customer: Function module name also has the prefix Y_ or Z_)
Example:
BUP_BUPA_BUT000_GET
BUP_BUPA_BUT0BK_GET
Collect Data
This function module allows an application that participates in tables to transfer the values of fields
it attached to the application that owns the table. For more details on how to use it, see the
description for event DSAVB (section 3.2.5). The function module has to be developed in such a
way that only the fields of the application participating in tables in the current memory of the
application that owns the table are overwritten. The name of the INCLUDE/APPEND structure in the
interface is also transferred.
Naming convention: <application>_<application>_<table name>_COLLECT
(Customer: Function module name also has the prefix Y_ or Z_)
Example: BUP_BUPA_BUT000_COLLECT
Page 20 of 50
Data screen
DTITL
DTITL
DCUAD DCUAC
ISSTA
Prior
to call
Start
Prior to output
CALL SUBSCREEN
DCUAD DCUAC
ISDAT
ISDST
AUTH1
Prior to
call
CALL SUBSCREEN
Save
CALL SUBSCREEN
After input
FCODE
FCODE
Change?
yes
XCHNG
no
Change?
yes
DSAVB
AUTH1
DCHCK
Cancel
A
Cancel
Exit
XCHNG
no
Change?
CALL SUBSCREEN
After input
Back
XCHNG
Do you want no
to save?
yes
Prior to output
XCHNG
no
yes
Cancel
Do you want no
to save?
yes
DTAKE
DSAVB
DSAVB
DSAVC
AUTH1
AUTH1
DSAVE
DCHCK
DTAKE
DCHCK
DTAKE
DSAVC
DSAVC
DSAVE
DSAVE
Change?
no
yes
Do you want yes
to cancel?
no
A
DLVE1
DLVE2
End
Fig. 1: Events in dialog, save mode
ISSTA (Initialization)
The applications initialize their global variables and get the relevant control information from the
BDT. Default values may also be assigned to the initial screen here.
Runtime: Before the initial screen, the event will be processed in the initial screen when the activity
is changed.
User group: All applications
Naming convention:
<Application>_<Application object>_EVENT_ISSTA
(Customer: Function module name also has the prefix Y_ or Z_)
Example:
BUP_BUPA_EVENT_ISSTA
FI_BUPA_EVENT_ISSTA
Action required:
Page 21 of 50
Activity
Etc.
To do this, call up the BDT function module BUS_PARAMETERS_ISSTA_GET and note the
information in your function groups global variables.
If default values have been set for a field, these should be transferred to the relevant
screen fields
If no default value has been set for a field, the SET/GET parameters should be read where
available
BUP_BUPA_EVENT_ISDAT
FI_BUPA_EVENT_ISDAT
Action required:
Determine data from other tables if this is necessary to read own tables. The communication
modules can be used to read a table.
Read in global memory if the data for the current instance has already been noted in this
LUW (transfer mode).
If, in this LUW, the data for the current instance has not yet been transferred, it will be read
from the database.
Note the data in current memory as the old and new status of current instance.
Draw temporary number (when creating with internal number assignment). In event DSAVC this
number will be replaced by the final number.
Determine screen field values for fields of particular data types if the check is not to be carried
out directly on the screen (see section 3.2.2.2).
Page 22 of 50
Determine table data from the application which owns the table using the function module for
reading data.
BUP_BUPA_EVENT_XCHNG
FI_BUPA_EVENT_XCHNG
Action required:
Transfer new data from the current memory to the application which owns the table. The
function module defined for the table is called to collect the data.
Write new data from the current memory to the global memory for new data.
Write old data from the current memory to the global memory for old data, if the data
for this object instance has been noted for the first time in this LUW.
Note: In the event DSAVE, the global memory for each instance is checked to see whether
changes have been made and whether the data therefore needs to be written to the database.
This means the old status of the global memory must correspond to the old status of the current
memory as it was when the data was first noted in the LUW.
Page 23 of 50
Draw object number (only when creating with internal number assignment).
Replace temporary number (see event ISDAT) with the number just drawn.
Write new data from the global memory to database. The BDT will state, using a
parameter of the function module BUS_PARAMETERS_ISSTA_GET, whether this is to be done
with or without an update task.
Write change documents using the old and the new status from the global memory.
Activity name
Page 24 of 50
The name of the activity forms the second part of the screen title. It is separated from the other two
parts by a colon.
Screen title
The title fixed when defining the screen forms the third part of the title.
Example:
Change contract partner: Address
Display business partner: Payment transactions
3.2.7 Menus
3.2.7.1 Creating Menus
Description: The application which owns the application object creates a menu for the application
object. The application object menu BUPA (Business Partner) may be used as a template. The statuses
of this menu (program SAPLBUDO) should be copied into the function group of the application which
owns the application object, and adjusted there. The OK codes for the control functions (function code
BUS*) may not be changed. You generally need the following statuses:
INITDATF
Initial screen of main screen sequence as full screen
INITDATP
Initial screen of main screen sequence as dialog box
STNDDATF
Data screen of a screen sequence as full screen
STNDDATP
Data screen of a screen sequence as dialog box
EXTRDATF
Individual data screen (extra screen) as full screen
EXTRDATP
Individual data screen (extra screen) as dialog box
Important note: The central control functions (function code BUS*) are defined by the BDT. You should
include these in your menu. The function codes may not be changed as these are used as a basis for
programming by the BDT. The following central functions are defined by the BDT.
Code
BUS1
BUS2
BUS3
BUSA
BUSB
BUSC
Function text
Create
Change
Display
<Changing instance>
Back
Cancel
Menu
<Object>
<Object>
<Object>
Extras
Goto
Edit
Explanations
On initial screen only, for changing the activity.
On initial screen only, for changing the activity.
On initial screen only, for changing the activity.
Display change documents for current instance
Page 25 of 50
BUSE
BUSF
BUSH
<Enter> key
Exit
Check input
None
<Object>
Edit
BUSI
Changes to fields
Extras
BUSL
BUSM
BUSS
BUSV
Deselect all
Select all
Save
Other functions
Edit
Edit
<Object>
<Object>
BUSW
BUSX
Further editing
Additional goto
destinations
Additional extras
Expanded
environment
Edit
Goto
BUSY
BUSZ
Enter
Data is checked and the current screen is called
up again
Display change documents for current instance
(for current cursor field only)
For screen selection on initial screen
For screen selection on initial screen
Display additional functions for the <Object>
menu
Display additional functions for the Edit menu
Display additional functions for the Goto menu
Extras
Display additional functions for the Extras menu
Environme Display additional functions for the Environment
nt
menu
The activity
Standard functions
The function Delete bank details in Business Partner (function code BUPI) is active only
if the view Bank details is in the current screen and
for activity types Create and Change.
The function Address overview in Business Partner (function code BUAO) is active only
if the view Address data is in the current screen
in the screen sequence category Main screen sequence, not in the screen sequence category
Address details.
Naming convention: <Application><Function>
Application area: Application which owns the application object
Page 26 of 50
Determine GUI status for the screen and send to the BDT.
Send the name of the function module for setting the GUI status to the BDT.
Event DCUAC (changing the menu)
Description: Menu options may be set to active or inactive at runtime. This is done here for the
menu options whose active/inactive rule cannot be fully represented in the control tables.
Application area: All applications.
Naming convention: <Application>_<Application object>_EVENT_DCAUC
(Customer: Function module name also has the prefix Y_ or Z_).
Example: BUP_BUPA_EVENT_DCUAC
Action required:
Include inactive standard functions or active additional functions in the relevant tables
Return current GUI status to the control with the function module
BUS_CUA_STATUS_SET
Page 27 of 50
Activity and
Object part
as a service. Each application object can use both of these predefined criteria.
Activities: Only the setting activities
The fields for storing the field status definitions (maintenance attribute H: Field does
not appear on the maintenance screen) and
Possibly a name from the text table belonging to it (maintenance attribute R: Field is
read-only).
The maintenance status is usually Read and change as, in this maintenance view, entries should
neither be created nor deleted.
Generating maintenance programs
Using transaction SE54 you can generate the maintenance program for the maintenance view
created in the previous step.
Adjusting generated maintenance programs
The field status should not be maintained by the user directly in the field status definition. The BDT
offers a clearly arranged maintenance interface with selection fields. The generated maintenance
program must therefore be adjusted as follows:
Page 28 of 50
directly.
The following two chapters describe the procedure up to Release 4.5.
Create search help and elementary search help in the Data Dictionary
Define elementary search helps in the BDT table for search helps
menu path: Control <Object> Search helps
Call up the BDT function module BUS_MCODE for event POV on the screen
Call up the BDT function module BUS_PAI for event PAI on the screen - this will also support the
search help short entry with =
For all fields wishing to use this search help, the above BDT function modules should be called up in
Page 29 of 50
POV and PAI. Only this will ensure that any elementary search helps, added subsequently by other
applications (see next chapter), are available everywhere.
3.2.11 Authorizations
Authorizations are checked thoroughly
Before saving
Authorization types
Using this authorization object, authorizations can be defined on the basis of the field value of any
data fields. Authorization types can be defined within the IMG for this purpose. For each
authorization type, you must determine which field is to be checked. Within the authorizations you
can then determine which user is permitted to maintain which field values.
Example of the use of authorization types:
Page 30 of 50
Define the name of the authorization object and the authorization field for authorization
types within application object maintenance
Generate setting transaction for the setting activity 0102 authorization types and include
maintenance in the IMG.
If a customer now wishes to use the authorization types, they must carry out the following steps:
Create authorization type within the IMG giving the field name
Example: The definition of the authorization type can be found in the business partners IMG
under
Cross-Application Components Central Business Partner Business Partner Basic
Settings Authorization Management Maintain Authorization Types.
Create authorizations, giving the field values, and allocate to the users
Authorization per field group
Using this authorization object the customer can determine which user is authorized to maintain
which field groups. The authorization-relevant field groups can be determined for this within
customizing. This check is not carried out for any other field group. In other words, from the point of
view of this authorization check, the field group can be maintained by any user.
To use it the developer must carry out the following steps for an application object:
Define the name of the authorization object and the authorization field for field groups
within application object maintenance.
Before saving.
3.2.12 Divisibility
Particularly for central application objects with a lot of tables and fields, it is easier not to have to
maintain the whole object each time, but only parts of the data (object parts) depending on the business
environment. The divisibility function within the BDT can be used for this.
The BDT supports two types of divisibility:
Simple divisibility
Each instance can be created in exactly one object part
The information regarding which object part an instance is created in is an attribute of the primary
table. An example of this is a bank account which can only be created in exactly one account type
(for example, current account, clearing account etc.).
Multiple divisibility
Each instance can be created in several object parts
The information regarding which object parts an instance is created in is stored in a separate table.
The table key is made up of the objects primary key and the object part. An example of this is a
business partner who can appear in several roles (for example, ordering party, payer, account
holder etc.).
Page 31 of 50
In this form of divisibility, a further distinction can be made between whether it is permitted to
maintain the instance in several object parts within a maintenance dialog. If it is permitted, object
part grouping can be used to combine several parts for maintenance.
Page 32 of 50
Transaction code
Activity
When the application transaction is started, the BDT will determine the parameters you have defined
and call up the central dialog module BUS_CONTROL_MAIN.
Note: Not all maintenance transactions are covered by the application transactions. If, for example,
several object parts are to be maintained at the same time or the initial screen is to be filled with
reference values and skipped, you will have to call up the BDT function module BUS_CONTROL_MAIN
directly.
Page 33 of 50
Data screen
DTITL
DTITL
DCUAD DCUAC
ISSTA
Start
dialog
Prior to output
Prior to
call
CALL SUBSCREEN
DCUAD DCUAC
ISDAT
ISDST
AUTH1
CALL SUBSCREEN
CALL SUBSCREEN
Transfer
Cahnge?
no
FCODE
Change?
Cancel
Exit
XCHNG
no
Do you want no
to save?
yes
XCHNG
no
Change?
yes
Cancel.
AUTH1
DCHCK
DTAKE
After input
FCODE
XCHNG
yes
DSAVB
CALL SUBSCREEN
After input
Back
XCHNG
Prior to output
Prior to
call
yes
Cancel.
A
Change?
no
yes
Do you want no
to save?
yes
DSAVB
DSAVB
AUTH1
AUTH1
DCHCK
DCHCK
DTAKE
DTAKE
DLVE1
End
dialog
Start
save
DSAVC
DSAVE
DLVE2
End
save
Changes to instances
Change documents for the instance currently being processed are displayed. The user first
receives a dialog box showing all the fields and tables which have been changed, from which a
selection can be made for display.
Changes to fields
Change documents for the instance currently being processed are displayed insofar as they are
relevant for the current cursor field.
2) Report lists
Page 34 of 50
These lists are started as a separate report (transaction SA38 or SE38). The number of change
documents to be displayed can be defined on a generated selection screen according to object key,
change date, person who made the changes and the field name. The selection can also be
expanded using the differentiation types, where these are used in the application object.
The list of change documents can be re-sorted subsequently, and further restrictions applied to the
display.
Dialog lists
Collect keys from the relevant instances into one table
Call BDT function module BUS_CDOBJECTID_COLLECT and the transfer the relevant instances to
its interface table T_OBJECTID. This creates an entry from the combination of object class
(corresponds to the change document object) and object value. If table T_OBJECTID remains
blank, the BDT reads the change documents for all object instances.
Report lists
Note value of parameter I_XGLOBAL for event CHGD4
Note value of interface table T_VALUE_DIFFTYP for event CHGD4 (only if application object uses
differentiation)
Read entries on the selection screen for the primary key; determine interface table
T_VALUE_OBJECTID and thus the relevant object instances using the parameter
Enter the relevant object instances in interface table T_OBJECTID This creates an entry from the
combination of object class and object value. If table T_OBJECTID remains blank, the BDT reads
the change documents for all object instances.
Application area: All applications which own tables and write change documents for their tables.
Naming convention: <Application>_<Application object>_EVENT_CHGD1.
(Customer: Function module name has the prefix Y_ or Z_).
Example: BUP_BUPA_EVENT_CHGD1
CHGD2 (Change documents: Collect object names)
Various texts for the dialog box in which you select tables/fields (dialog list of object changes) as
well as for the change document list itself are defined here by the applications.
Interface:
C_OBJBEZ
Object name in change document list
T_TABBEZ
Names of tables
Activities
Define names of individual tables for selecting tables/fields in the list of object changes
Define object name for the change document list (only application which owns
application object)
Application area: All applications which own tables and write change documents for their tables.
Naming convention: <Application>_<Application object>_EVENT_CHGD2.
(Customer: Function module name has the prefix Y_ or Z_).
Example: BUP_BUPA_EVENT_CHGD2
Page 35 of 50
Decide whether an item is relevant and tell this to the BDT using parameter C_XREL
Item is relevant
-
If additions or deletions are made from a table, the name of the table is output in the Field name
field. You can define this name using parameter C_TABBEZ.
The output in the Additional key field can be defined using parameters C_KEYNAM and
C_KEYVAL.
Application area: All applications which own tables and write change documents for their tables.
Naming convention: <Application>_<Application object>_EVENT_CHGD4.
(Customer: Function module name also has the prefix Y_ or Z_)
Example: BUP_BUPA_EVENT_CHGD4
Page 36 of 50
entered every time there is a change. If the NODATA character is transferred for a field, the old value
remains.
In the definition of the tables, you store the name of the associated DI structure S3 for
each table.
You have to mark the Header data DI indicator for all views which fields are located in
the S1 structure. This ensures that the function modules After input are processed directly after
event DINP1.
Page 37 of 50
B
ISSTA
DINP1
Change?
no
yes
DCHCK
After input
(header views)
Error?
ISDAT
yes
no
DTAKE
ISDST
DLVE1
DINP2
After input
(data views)
DSAVB
Blocking
or last
data record?
no
B
yes
DSAVE
AUTH1
DLVE2
XCHNG
Last data
record?
no
B
yes
End
For runtime reasons, the application data is not written individually to the database for each instance,
but in packages of 200 object instances instead. For this reason, the processing of an instance after
events DTAKE and DLVE1 is terminated, as in transfer mode. Events DSAVE and DLVE2 are only
executed once the data for multiple instances was noted and/or no further data exists.
In addition to the events in dialog, events DINP1 and DINP2 - which take care of the data transport from
the BDT to the applications - are both important for DI.
Event DINP1 (Direct input: Enter data in header fields)
The content of the application object-specific header data (structure S1) is transferred from the BDT
to the applications. The content corresponds to data input on the initial screen in dialog.
Runtime: After ISSTA and before the header data is checked.
Note: In the next step, the BDT starts the function modules at event After input for all header views
(indicator Header data DI marked in the definition of views), which checks all header data which
was flagged.
Application area: All applications that have their own header fields.
Naming convention: <Application>_<Application object>_EVENT_DINP1.
(Customer: Function module name has the prefix Y_ or Z_).
Interface:
I_INIT
Header data
Action required:
Read header data from the BDT in unstructured form (parameter I_INIT) and place it in
a field structure with structure S2
Flag header data in a function group in fields that will later be subjected to checks
Example: BUP_BUPA_EVENT_DINP1
Page 38 of 50
One data record for every table (without header data) is transferred from the BDT to the
applications. In dialog, this corresponds to data input on the data screens.
Runtime: After reading the old data (event ISDAT and ISDST) and prior to checking the data fields.
Application area: All applications that have data fields in their own views. Applications that use
tables.
Naming convention: <Application>_<Application object>_EVENT_DINP2.
(Customer: Function module name has the prefix Y_ or Z_).
Example: BUP_BUPA_EVENT_DINP2
Interface:
I_DATA
Data record for a table
Action required:
For header data, you have to convert the data to the format of structure BUSSDI2.
You convert each data record in a table to the format of structure BUSSDI3. The field
TABNAME requires the name of the DI structure and the DATA field needs the transferred data
contents in CHAR format.
You return the data in unstructured for to interface table T_DATA, which references
structure BUSSDI.
Examples:
BUP_DI_DATA_GLOBAL_DATA
BUP_DI_DATA_BANK_DETAILS
BUA_DI_DATA_ADRESS
2. Function module per application object/object part
If an application object uses divisibility, one function module per object part is usually available. For
all other application objects, one function module is generally sufficient to maintain all the data for
an application object. This module calls the function modules of all relevant tables/table groups (see
1) and collects the data in unstructured form in a table. The BDT function module
BUS_CONTROL_MAIN_DI is then called and the content of this table is transferred.
Examples:
BUP_DI_ROLE_GLOBAL
BUP_DI_ROLE_CONTACT_PARTNER
3. Extensibility
Page 39 of 50
If a downstream application adds other fields to a table, it also needs to add these fields to the DI
structure for this table with the APPEND function. These fields can then be transferred to the
function modules created in step 2, as the structure and/or table in the interface references the
complete DI structure.
On the other hand, adding another table requires you to create a separate function module for it
(see step 1). In order to provide a function module for each application object/object part (see 2),
this application creates an additional layer in the form of its own function module.
3.5.1 Process
External interfaces are designed solely in external maintenance transactions (abbreviation: external
maintenance). You define how data fields are distributed on the screens of this maintenance transaction.
The only restriction is that fields belonging to one view always have to be put together on a data screen
since there is a common function module for each view that is used to check data (event After input).
The function modules defined for the BDT events are used to read data from the database as well as to
check the data and save it. External maintenance determines the current data prior to output using the
function modules that read the data (see section 3.2.4).
External maintenance and BDT maintenance can be fully integrated. You can call BDT maintenance in
transfer mode from external maintenance. Data can be changed in both types of maintenance. Changes
are also visible in each type of maintenance. When making the transition from one kind of maintenance
to the other, the data is flagged in the global memory of the application function groups.
The BDT provides varying function modules that are called in external maintenance (procedure
described in detail in the next section). These modules in turn process one or more BDT events, which
calls event modules in the applications.
Multiple BDT application objects can be maintained at once in external maintenance.
Note: In order to be able to work with external interfaces, it is very important that you adhere to the
specifications given by the developer for the required actions in events. Correct reading and correct
supply of the current and global memory in events ISDAT, DTAKE, DSAVC and DSAVE are particularly
important.
Example: External interfaces are used in IBU Utilities to maintain move-in documents. A business
partner and a contract account, among other objects, are maintained using the maintenance
transactions for move-in documents (transactions EC50, EC51 and EC52).
Page 40 of 50
External Maintenance
Initial Screen
INIT_ALL
Data Screen
Read data
Daten lesen
INIT_OBJECT
Start
Dialog
DATA_READ
A
HEADER_CHECK
Save
DATA_CHECK
Back
Exit
CHANGES_EXIST
Change?
Cancel
CHANGES_EXIST
no
Change?
yes
CHANGES_EXIST
no
yes
Abbr.
Do you want no
to save?
yes
BDT Maint.
DATA_COLLECT
DATA_COLLECT
LOCAL_MEMORY_
FILL
LOCAL_MEMORY_
FILL
LEAVE_TO_INITIAL
LEAVE_TO_INITIAL
SAVE
SAVE
Change?
FULL_
MAINTENANCE
no
yes
Do you want yes
to cancel?
no
A
LEAVE_TO_INITIAL
LEAVE_
MAINTENANCE
BDT Maintenance
Ende
Dialog
Cancel
Exit
Transfer
Back
Page 41 of 50
module BUS_DI_DATA_INITIALIZE). Now write the field values input in the screen to the DI
structure and convert the content of this structure to the neutral format comprehensible to the BDT.
Go through these steps for all tables maintained on the data screen. Then call
BUS_FOREIGN_DATA_CHECK and transfer the data records to the BDT.
In function module BUS_FOREIGN_DATA_CHECK, all data views are determined for which at least
one field was transferred with a value not equal to NODATA. Event DINP2 is then processed to
forward the transferred data to the applications. Function modules After input for the views
determined above are now called. Any messages that may occur are either shown directly on
screen or in a message table, as you defined in BUS_FOREIGN_INITIALIZE_ALL.
BUS_FOREIGN_FULL_MAINTENANCE
You can call BDT maintenance in transfer mode from external maintenance. Changes made in
external maintenance are visible in BDT maintenance. Once you leave BDT maintenance, any
changes you made there become visible in external maintenance too. This takes place when the
data is written from the current memory to the global memory (BDT events XCHNG; DSAVB and
DTAKE) in function module BUS_FOREIGN_FULL_MAINTENANCE prior to calling BDT
maintenance. BDT maintenance is called in transfer mode, where the data for the instance is
imported from the global memory to the current memory in BDT event ISDAT. When making the
transition between BDT maintenance and external maintenance, the same procedure is performed
in the reverse order if the user decides to copy the changes that were made. The data from the
current memory is copied to the global memory. When returning to external maintenance, the data
is read from the global memory to the current memory.
BUS_FOREIGN_CHANGES_EXIST
Before saving data and/or before leaving external maintenance, the BDT asks the applications
whether changes were made to the data. The external interface provides function module
BUS_FOREIGN_CHANGES_EXIST for this purpose. The module then says whether changes were
made. Internally, BDT event XCHNG is processed at this point.
BUS_FOREIGN_DATA_COLLECT
The application data is collected in the application that owns the table. If changes exist (call BDT
event XCHNG), events DSAVB, AUTH1 and DCHCK are processed internally.
BUS_FOREIGN_LOCAL_MEMORY_NEW
The content of the current memory is written to the global memory of the application function
groups. BDT event DTAKE is processed for this purpose.
BUS_FOREIGN_SAVE
The data is read from the global memory of the application function groups and written to the
database. In the function module, events DSAVC and DSAVE are processed for this purpose.
Whether or not data is written to the database with an update task is determined by the setting
made during initialization. You can also tell the BDT whether or not it is to perform a COMMIT
WORK when you call BUS_FOREIGN_SAVE.
Page 42 of 50
Customers add another check for a standard SAP view (see section 4.1)
Customers extend a standard SAP table with their own fields and integrate them into data
maintenance (see section 4.2.2)
Customers integrate the fields from their own table into data maintenance (see section 4.2.3).
Define application if you have not already done so (see section 3.1.3)
Assign the application to the object part if the application object uses divisibility and the application
is not yet assigned (see section 3.2.12)
Store the name of the function module in the view definition in the subnode Additional checks (see
section 3.2.2.2.)
Note: Do NOT store the name of your check function module directly in the After input field in the view
definition if this view belongs to another application. If you were to do this, it would change the table
entry of the other application. The change could then be lost during an upgrade.
Define application if you have not already done so (see section 3.1.3)
Assign the application to the object part, if this has not already been done and the object uses
divisibility (see 3.2.12.2)
Extend screen layout/screen sequence with the new field (see section 4.4)
Page 43 of 50
ISSTA
Initialize
ISDST
Distribute data
XCHNG
DSAVB
Collect data
DLVE1
Note: SAP policy has it that a table should only be extended by additional fields after first consulting
with the owning application. Alternatively, you can also create new tables and integrate them into the
dialog.
Define application if you have not already done so (see section 3.1.3)
Extend screen layout/screen sequence with new fields (see section 4.4)
ISSTA
Initialize
ISDAT
Read data
XCHNG
DTAKE
Transfer data
DSAVC
Complete data
DSAVE
Save data
DLVE1
DLVE2
Assign the new field to an existing field group (see section 3.2.2.1)
Change view to which the field group is assigned (see section 3.2.2.2)
Assign screen field and database field if necessary (see section 3.2.9)
Note: A field group may only be assigned fields from one application. Other applications must define
separate field groups for their fields.
Page 44 of 50
Create field group and assign new field (see section 3.2.2.1)
Change view to which the field group is assigned (see section 3.2.2.2)
Assign screen field and database field if necessary (see section 3.2.9)
Note: Only fields belonging to the same application can be located in a view. Other applications must
define separate views for their fields.
Create field group and assign new field (see section 3.2.2.1)
Create view and assign new field group (see section 3.2.2.2)
Adapt object part if the application object uses divisibility (see section 3.2.12.2)
Create field group and assign new field (see section 3.2.2.1)
Create view and assign new field group (see section 3.2.2.2)
Adapt object part if the application object uses divisibility (see section 3.2.12.2)
Create field group and assign new field (see section 3.2.2.1)
Create view and assign new field group (see section 3.2.2.2)
Adapt object part if the application object uses divisibility (see section 3.2.12.2)
Assign the new screen to an existing screen sequence (see section 3.2.3.2)
Page 45 of 50
If an application object uses divisibility, you have the option of creating a new main screen sequence
and assigning it to the object part in which the new field is relevant. Since the views not assigned to an
object part are not automatically displayed by the BDT, a new main screen sequence is only necessary
if:
Various screens are to be combined because otherwise there would be a number of nearly blank
screens
The following actions are required to create a new main screen sequence:
Create field group and assign new field (see section 3.2.2.1)
Create view and assign new field group (see section 3.2.2.2)
Adapt object part if the application object uses divisibility (see section 3.2.12.2)
Assign new sequence to category Main screen sequence (see section 3.2.3.4)
Create field group and assign new field (see section 3.2.2.1)
Create view and assign new field group (see section 3.2.2.2)
Adapt object part if the application object uses divisibility (see section 3.2.12.2)
Create new sequence and assign screens (see section 3.2.3.1 and 3.2.3.2)
Create new sequence category and assign new screen sequence (see section 3.2.3.3 and 3.2.3.4)
Create new menu option and assign the new sequence category to it (see section 3.2.7)
Page 46 of 50
Create setting transaction and use this to create a task menu (see sections 3.1.2.3 and 3.1.2.4)
Define applications
Note:Using the BDT for development has only been approved for registered application objects in SAP.
Page 47 of 50
5 Appendix
5.1 Terminology Definitions
Current memory: The current memory contains the data on the instance that is being edited at the
moment. To do this, the owning application as well as the participating applications in their function
group create globally valid field structures (only one record per instance possible) or tables (several
records possible) for each table. Old and new datasets are kept separately in the current memory.
The old set is made up of data that exists on the initial screen in maintenance. This data is generally
flagged at event ISDAT (table-owning application) or ISDST (table-participating application). The new
set reflects the data currently entered and is also flagged for the first time at events ISDAT and/or
ISDST. The status is then updated after each entry.
Global memory: This memory contains data for all instances that have already been edited but have
not yet been saved to the database. The owning application creates only one memory for each table.
The data from the participating application is also flagged in the table. Regardless of whether one or
more records can exist for each instance in the table, the owning application creates a globally valid
table within its function group. As in the current memory, a distinction is made in the global memory
between the old and new statuses, which are also flagged separately. The old status represents the
current database status and is only created in the first data maintenance for an instance for this reason.
This takes place by transferring the data (event DTAKE) from the old status of the current memory. If
this instance is maintained again in transfer mode without saving in the meantime, you cannot change
the old status at this point. The new status is updated every time the data is transferred. The new status
is copied from the new status of the current memory.
Applications which own the tables: Application that created the table and in whose development
class the table is located. This application is responsible for reading the data on the initial screen (event
ISDAT) as well as for writing the data to the database (event DSAVE).
Applications using the tables: Application that adds data fields to the table of another application
using the APPEND structure. This application takes data from the application that owns the tables
(event ISDST) and transfers the new status of its own data fields to this application prior to saving the
data (event DSAVB).
Events: Events are defined in different places in the BDT. Each application can define the name of its
own function modules in the BDTs control tables at these events. Once the process reaches an event,
the BDT automatically calls all the function modules in the applications whose names are entered for
this event. Applications can use this technique to include their own program logic.
5.2 Abbreviations
ADK
ALV
BDT
DDIC
DI
FM
BP
PAI
PBO
SAP-BP
VCT
CAM
CBP
Page 48 of 50
this, they add entries to the BDT control tables. To a certain extent, these applications complete
implementation in different systems. For this reason, each application must adhere to the predefined
naming conventions when making entries in control tables. Otherwise, entries in other applications
would be overwritten. There is also a recommendation for naming event function modules.
You will find the relevant naming convention for each topic in chapter 3. The table below provides you
with an overview of the naming conventions needed when using the BDT. Adhere to these rules
wherever possible.
Naming conventions:
Object
Differentiation types
Differentiation type
elements
Application objects
Applications
Field groups
Views
Sections
Assignment
Section Views
Screens
Assignment
Screen Sections
Screen sequences
Assignment
Screen sequence
Screens
Screen sequence
categories
Event function
modules
Assignment
Event FMs
Menu options
Field grouping
criteria
Object parts
SAP
Dev. partner
Customer
0*..9*, A*..W*
X*
Y*, Z*
(central assignment)
0*..9*, A*..W*
X*
Y*, Z*
(central assignment)
A*..W*
May only be used
May only be used for
(central assignment) for SAP objects
SAP objects
Aa
.. Wa
Xa
Ya, Za
Aaa
.. Waa
Xaa
Yaa, Zaa
(Aaaa .. Waaa)
(Xaaa)
(Yaaa, Zaaa)
(central assignment)
001 599
750 1000
600 - 749
(central assignment)
<pp>nnnn
<pp>nnnn
<pp>nnnn
<ppp>nnn
<ppp>nnn
<ppp>nnn
<pppp>nn
<pppp>nn
<pppp>nn
<pp>nnnn
<pp>nnnn
<pp>nnnn
<ppp>nnn
<ppp>nnn
<ppp>nnn
<pppp>nn
<pppp>nn
<pppp>nn
Naming conventions for item numbers (see below)
<pp>nnnn
<pp>nnnn
<pp>nnnn
<ppp>nnn
<ppp>nnn
<ppp>nnn
<pppp>nn
<pppp>nn
<pppp>nn
Naming conventions for item numbers (see below)
<pp>nn
<pp>nn
<pp>nn
<ppp>n
<ppp>n
<ppp>n
<pppp>
<pppp>
<pppp>
Naming conventions for item numbers (see below)
<pp>nn
<ppp>n
<pppp>
<pp>_<apo>_*
<pp>_<apo>_*
<pp>_<apo>_*
<pp>nn
<ppp>n
<pppp>
<pp>_<apo>_*
<ppp>_<apo>_*
<pppp>_<apo>_*
<pp>nn
<ppp>n
<pppp>
Y_<pp>_<apo>_*
Z_<pp>_<apo>_*
Y_<ppp>_<apo>_*
Z_<ppp>_<apo>_*
Y_<pppp>_<apo>_*
Z_<pppp>_<apo>_*
Naming conventions for item numbers (see below)
<pp>nn
<ppp>n
<pppp>
<pp>nnnnnnnn
<ppp>nnnnnnn
<pppp>nnnnnn
<pp>nnnn
<ppp>nnn
<pppp>nn
<pp>nn
<ppp>n
<pppp>
<pp>nnnnnnnn
<ppp>nnnnnnn
<pppp>nnnnnn
<pp>nnnn
<ppp>nnn
<pppp>nn
<pp>nn
<ppp>n
<pppp>
<pp>nnnnnnnn
<ppp>nnnnnnn
<pppp>nnnnnn
<pp>nnnn
<ppp>nnn
<pppp>nn
Page 49 of 50
Object part
groupings
<pp>nnnn
<ppp>nnn
<pppp>nn
Key:
Capital letters
a
(A..Z)
n
(0..9)
<apo>
<pp>, <ppp>, <pppp> ==>
<pp>nn
<ppp>n
<pppp>
==>
<pp>nn
<ppp>n
<pppp>
constants
==>
Alphabetic characters
==>
Numeric characters
==>
application object (2,3 or 4 places)
application (2,3 or 4 places)
Place X
1,2
3
4
5
6
7
Page 50 of 50