Beruflich Dokumente
Kultur Dokumente
CR590
BDT - Business
Data Toolset
SAP AG 2002
2002/Q3
SAP BBPCRM / 300
Material number 5005 5126
Copyright
SAP AG 2002
Trademarks:
Some software products marketed by SAP AG and its distributors contain proprietary software
components of other software vendors.
Microsoft, WINDOWS, NT, EXCEL, Word, PowerPoint and SQL Server are registered
trademarks of Microsoft Corporation.
IBM, DB2, OS/2, DB2/6000, Parallel Sysplex, MVS/ESA, RS/6000, AIX, S/390,
AS/400, OS/390, and OS/400 are registered trademarks of IBM Corporation.
ORACLE is a registered trademark of ORACLE Corporation.
INFORMIX-OnLine for SAP and INFORMIX Dynamic ServerTM are registered trademarks of
Informix Software Incorporated.
UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group.
HTML, DHTML, XML, XHTML are trademarks or registered trademarks of W3C, World Wide
Web Consortium, Massachusetts Institute of Technology.
JAVA is a registered trademark of Sun Microsystems, Inc.
JAVASCRIPT is a registered trademark of Sun Microsystems, Inc., used under license for
technology invented and implemented by Netscape.
SAP, SAP Logo, R/2, RIVA, R/3, ABAP, SAP ArchiveLink, SAP Business Workflow, WebFlow,
SAP EarlyWatch, BAPI, SAPPHIRE, Management Cockpit, mySAP.com Logo and mySAP.com
are trademarks or registered trademarks of SAP AG in Germany and in several other countries all
over the world. All other products mentioned are trademarks or registered trademarks of their
respective companies.
mySAP CRM 1 Col22
CR400 3 Days
Interaction Center in
CRM
CR600 3 Days
Marketing Planning
CR100 3 Days & Campaign
Management
CRM Basics
CR700 3 Days
CRM Service
CR010 2 Days
Internet Sales
(ex ECO220)
CR205 3 Days
CR900 3 Days
Analytical CRM
SAP AG 2001
mySAP CRM 2 Col22
CR010 2 Days
CR245 2 Days
SAP AG 2001
mySAP CRM 3 Col22
CR550 3 Days
CR500 2 Days
CRM Middleware
Overview
CR010 2 Days
CRM Overview
CR590 2 Days
SAP AG 2001
Course Prerequisites
Essential:
good knowledge of ABAP programming
Recommended:
experience with dialog programming
SAP AG 2002
Target Audience
Participants
Technical consultants and developers
who work with the BDT and
develop new functions and extensions
within SAP or for development partners
Customers who extend existing BDT
applications
Duration:
2 days
SAP AG 2002
User notes
The training materials are not teach-yourself programs. They complement the explanations
provided by your course instructor. Space is provided on each page for you to note down additional
information.
There may not be time during the course itself for you to complete all the exercises. The exercises
provide additional examples that are covered during the course. You can also work through these
examples - if you have time - to increase your understanding of the topics.
Course Overview CR590
Contents:
z Course Goals
z Course Objectives
z Course Content
z Course Overview Diagram
z Main Business Scenario
SAP AG 2002
SAP AG 2002
SAP AG 2002
Preface
Exercises
Solutions
Appendices
SAP AG 2002
SAP AG 2002
SAP AG 2002
Contents:
Why the BDT?
Targets
Functionality
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
Definition:
Toolset for master data and simple transaction data
SAP AG 2002
The BDT (Business Data Toolset) is a central control tool for maintaining master data and simple
transaction data. In addition to dialog maintenance, the BDT also supports maintenance with direct
input and/or function modules.
The BDT also provides generic object services for consistently recurring requirements such as the
change to document lists, field groupings and the deletion program. The BDT controls these objects
as well as generic parts thereof and calls the applications using predefined interfaces (control tables
and events). The applications introduce application-specific enhancements, such as writing and
reading database application tables.
Note: The BDT is used at SAP for maintaining several application objects. Development partners
and customers can also extend these application objects via the BDT interfaces, without having to
make modifications. However, application objects belonging entirely to development partners and
customers are not supported by the BDT technology since this does not concern a development tool
of the ABAP Workbench.
The BDT resulted from the project 'Central Business Partner.' Besides many demands made by the
business world of the data entry technology, those demands listed in the following slides had a high
priority. Initially the necessary technology was developed in a common program with the
application data for the Business Partner. It quickly became clear that not only the second part of
this project - the BP relationship - made the same technical demands of the data maintenance, but
that other application objects did as well. For this reason the project group Business Partner decided
to separate the technical part of the application data and to make this technology available to other
application objects as well. This technical part, which was for a long time called BP Control or
Master Data Control, is now called the Business Data Toolset, or BDT for short.
Extensibility
Configurability
Divisibility
Alternative user interfaces
Usability
Quicker development
Generic object services
SAP AG 2002
Extensibility: modification-free extension of various dialog parts, for example screen layout, screen
sequence, program logic, menu, field grouping, etc. via several layers.
Configurability: application developers (maintenance of the control tables of the BDT) or customers
(Visual Configuration Tool) can adapt screen layout and screen sequence.
Divisibility: the maintenance of larger object parts can be split into smaller sections.
Alternative user interfaces: the interface and the program logic are separate in the BDT. The
program logic of the application can be found entirely in the function modules. These are called at
defined events. In this way the SAP GUI interface can be replaced by another interface.
Usability: besides the SAP Business Partner, other application objects can also take advantage of the
BDT. Various application objects have the same design targets.
Quicker development: the dialog control is carried out via the BDT. The business functions are
realized by the applications. In addition the BDT provides several services in which the applications
can include themselves.
Generic object services: direct input, transfer mode, field control, etc.
Tables
Append / Include Structures
Own Tables
Screen Layout and Screen Sequence
Program Logic
Event Techniques
Field Checks
Data Retention
SAP AG 2002
The project group Business Partner defined the central attributes of a business partner (for example,
name components, addresses and bank details). In addition to that, other applications have
application-specific attributes. Development partners and customers needed to incorporate their own
attributes into the maintenance. In the area of customer and vendor master data, you have to make a
modification to do this.
Because you can not collect and implement all these different attributes in one project group,
maintenance for downstream enhancements has to be extensible without the need for modifications.
Distributed Without
development in modifications
various systems DevtPartner1
IS-U MM IS-B
FI Central SD
Data
TR-TM
IS-IS
DevtPartner2
Customer
SAP AG 2002
Several development groups are working with the same object. Based on the development of the
central data in the SAP Basis (for example, Business Partner) there is standard and industry
application development, as well as the additional development layers of the development partners
and customers.
The BDT can support all the development cycles listed above, with regard to the extension of a BDT
standard object.
Partner TESTER
Partner
Name
SAP BP Form of addr.
Address
SAP AG 2002
Mid-sized customers in particular tend to suppress most of the standard SAP data fields.
However, dialog maintenance becomes tedious when you 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, SAP decided to make screens configurable so customers could tailor data
entry screens to their individual needs and keep the number of screens to a minimum.
Note:
BAS - Business Address Services (previously CAM - Central Address Management). All addresses
are contained in the tables of the Business Address Services. In order to be able to access addresses
later, the application saves only the key of an address in its application table.
Configuration via
Drag&Drop (Visual
Basic)
Screen layout and
screen sequence
Technology
Subscreens
Generation of
subscreen
containers
SAP AG 2002
SAP AG 2002
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 where only those attributes
are visible that are relevant in the current business context. These parts are called roles in the SAP
Business Partner.
Object parts, like roles, narrow the view of the whole object.
Policyholder
Premium Payer
Contract
Borrower
SAP AG 2002
The example above shows that a business partner can have several BP roles (account holder,
contract partner, borrower), depending on the business process in which he is involved.
The BP role determines which fields are displayed and which fields are changeable.
Others ...
SAP BP ApplObject
ApplObject ????
BUPA
BDT
SAP BP-
Relationships Claims
ApplObject Capture
BUPR ApplObject
ICL
Bank IS-RE
Account Contract Contract
ApplObject Account ApplObject
BKK ApplObject RECN
FICA
SAP AG 2001
These are some examples of objects that were developed using BDT.
Central Business Partner
Partner maintenance
Relationship maintenance
Contract Accounts Receivable and Payable
Contract account
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
Cost efficiency analysis
Processing Data
Transactions Transfer
Field Change
Grouping Service Document
Evalutions
Authori-
Notes
zations
SAP AG 2002
In a development project and also in an implementation project, you always need the same
functionality. SAP Basis provides service functions, but most of the functions still have to be
developed.
Examples are field grouping, change document evaluation and screen checking from the ABAP
Dictionary.
TA Da
s ing ta
Tr
es an
roc s fe
P r
Au
t ho
riz
ati o tes
o ns N
Central
Central service
service
Less
Less development
development work
work
SAP AG 2002
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 provide significant reductions in the time needed to develop applications.
The applications loose a small part in individuality, but gain the advantage of less object
maintenance, equality of dialogs, generic services and quicker development.
Dialog Maintenance
Configuration of Screen and Screen Sequence
Extension of Program Logic
Definition and Configuration of the Menu
Field Groups and Extensible Field Group Criteria
Search Help
Transfer Mode
External Interfaces
Authorization Checks
Notes
Change Documents (Planned)
SAP AG 2002
SAP AG 2002
Additional functions:
Different interfaces exist for data maintenance without a dialog. These interfaces are integrated
and always use the same coding for the business logic.
Archiving is connected to the BDT and is supported by it.
Where-used list: this tool shows all other objects with their identification, in which the actual
object is used. By a simple select, you can call up the relevant programs.
Visual Configuration Tool (VCT): this tool makes a configuration possible by means of
Drag&Drop. This tool, which is based on Visual Basic, simplifies the configuration process for
the customer.
SAP AG 2002
Contents:
System Architecture and Example Program with
Selection Screen
BDT Programming
Positioning
Application Objects and Applications
Basis and the BDT
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
Presentation
Server
Layer SAPGUI SAPGUI SAPGUI SAPGUI SAPGUI SAPGUI
Dispatcher Dispatcher
Application
Server
Layer Work Work Work Work
Process Process Process Process
SAP AG 2001
The R/3 System has a modular software architecture that follows software-oriented client / server
principles.
The R/3 System allocates presentation, applications, and data storage to different computers. This
serves as the basis for the scalability of the R/3 system.
The lowest level is the database level. Here data is managed with the help of a relational database
management system (RDBMS). In addition to master data and transaction data, programs and the
metadata that describe the R/3 System are stored and managed here.
ABAP programs run at the application level, which includes both the applications provided by SAP
and the ones you develop yourself. ABAP programs work with data called up from the database
level. New data stores there as well.
The third level is the presentation level (SAPGUI). This level contains the user interface where an
end user can access an application, enter new data, and receive the results of a work process.
The technical distribution of software is independent of its physical location on the hardware.
Vertically, all levels can be installed on top of each other on one computer or each level on a
separate computer. Horizontally, application and presentation level components can be divided
among any number of computers. The horizontal distribution of database components, however,
depends on the type of database installed.
Presentation
Server
Layer
Work Process
Database
SAP AG 2002
This graphic can be simplified for most topics discussed during this course. The interaction between
ABAP programs and their users will be of primary interest to you during this course. The exact
processes involved in user dispatching on an application server are secondary to understanding how
to write an ABAP program. Therefore, you will work with a simplified graphic that does not
explicitly show the dispatcher and the work process. Certain slides will, however, be enhanced to
include these details whenever they are relevant to ABAP programming.
ABAP programs are processed on the application server. The design of the user dialogs and the
database dialogs is therefore of particular importance when writing application programs.
Screen
Screen
Black Box
Selection
Selection Screen
Screen
List
List
The user is primarily interested in how his or her business transaction flows and in how data can be
input into and displayed from the transaction. Technical details, such as whether a single program is
running or multiple programs are called implicitly, or the technical differences between the kind of
screens being displayed, are usually less important to the user. The user does not need to know the
precise flow of the ABAP program on the application server. Users see the R/3 System with
application servers and database as a black box.
There are, however, three technically distinct screen types (screens, selection screens, and lists) that
offer the user different services. The developer's job is to determine which type of user dialog is
most suitable to the user's needs.
Database
Table
ABAP
Processing
Block
When the user performs a user action (choosing Enter, a function key, a menu function or a
pushbutton, for example), control is handed over from the presentation server to the application
server and certain parts of the ABAP program are processed. If further user dialog is triggered
within the ABAP program, the system sends a screen to the presentation server and control is once
again handed over to the presentation server.
Database
Table
Screen ABAP
Processing
Block
When the user starts the program, the program context is loaded first. This time, however, our
sample program contains three processing blocks, a selection screen, a screen, and a variable and
two structures as its data objects.
Database
Table
Screen ABAP
Processing
Block
Since the program contains a selection screen, the ABAP runtime system sends it to the presentation
server at the beginning of program processing.
Database
Table
Screen ABAP
Processing
Block
As soon as the user has finished entering data on the selection screen, he or she can trigger further
processing by choosing Execute. All data input on the selection screen is then automatically placed
in its corresponding data object in the program and the ABAP runtime system resumes control of
processing. The runtime system then triggers sequential processing of the ABAP processing block
that comes after the selection screen.
Database
Table
Screen ABAP
Processing
Block
The ABAP processing block contains a read access to the database that has been programmed into
it. The program also passes the database information about which database table to access and which
line in the table to read.
Database
Table
Screen ABAP
Processing
Block
The database returns the requested data record to the program and the runtime system ensures that
this data is stored in the appropriate data objects. Normally a structure is the target field when you
access a single record. The structure contains variables for all fields requested from the database.
Database
Table
Screen ABAP
Processing
Block
Process
Before
Output
The ABAP processing block now triggers screen processing. This is often expressed simply by
saying the program calls the screen. However, in reality, each screen possesses its own processing
block that is sequentially processed before the runtime system sends the screen to the presentation
server (Process Before Output). This allows screens to be used in a very flexible manner.
PBO contains coding that is fixed to the screen. Other interfaces have to call a screen in the
background to get coding or development has to replicate the code.
Database
Table
Screen ABAP
Processing
Block
Process
Before
Output
After processing the screen's processing block, the ABAP runtime system sends the screen to the
presentation server. During this process, data is transported into the screen's fields from a structure
that serves as an interface for the screen.
Database
Table
Screen ABAP
Processing
Block
Process
Before
Output
Process
After
Input
Once the user performs a user action (choosing Enter, a function key, a menu function or a
pushbutton, for example), control is handed over to the runtime system on the application server
again. The screen fields are transported into the structure that serves as the screen's interface and a
special processing block belonging to the screen is triggered. This processing block is always
processed immediately following a user action (Process After Input).
PAI contains coding that is fixed to the screen. Other interfaces have to call a screen in the
background to get coding or development has to replicate the code. This is mainly important for
checking logic.
Database
Table
Screen ABAP
Processing
Block
Process
Before
Output
Process
After
Input
After processing the Processing After Input block, the program continues at the the next ABAP
statement after the screen was called.
Screen
Screen Screen Screen
Screen
1000 2000 3000
PBO
PBO PAI
PAI PBO
PBO PAI
PAI PBO
PBO PAI
PAI
User
User Exit
Exit
Start ABAP Program Flow
Customer
Customer Programs
Programs
SAP AG 2002
The program flow in conventional ABAP programs is mostly fixed without the possibility of
changing the screen sequence. Only user exits support customer changes or enhancements.
CALL CUSTOMER
FUNCTION
Include in
Customer
Namespace
SAP AG 2002
This diagram represents the flow of a program that provides an extension in the form of a function
module exit
The exit function module is called at a point in the source text that has been defined by an SAP
application developer. Within the function module, the user can add functionality with the help of an
include in the customer namespace.
***Global Data***
DATA: gl_field... 9000
CALL CUSTOMER FUNCTION exit_prg_001.
FUNCTION '001 *IMPORTING i_vars
EXPORTING
i_vars = gl_field. INCLUDE ZXaaaU01.
ZXaaaU01.
ENDFUNCTION.
*INCLUDE ZXaaaU01
Text element
GUI interface
SAP AG 2002
You can extend an SAP application at pre-determined points through additional processing logic.
In the context of such an extension, you can also include your own screens with the relevant
processing logic and GUI interface, and create customer text elements.
SAP AG 2002
SAP
SAP BP
BP Exit Function Module
ApplObj
ApplObj BUPA
BUPA EXIT_<prog_name>_001
CALL CUSTOMER
FUNCTION
Include in
Customer
Namespace
Customer
Application
Sub-
Sub-
screen FMFB
screen
SAP AG 2002
The term 'application' is central to the BDT. Applications are, for example, central data of the
Business Partner or central data of the Business Partner Relationships. An application can own one
or more tables and also participate in the tables of other applications.
Each application is based technically on a function group in which its screens (including PBO and
PAI), function modules and data structures are found.
The application's behavior is controlled by the BDT by means of events. The application can
therefore offer function modules for various events. These function modules are called up by the
BDT in dependence on the control tables.
Visible
Application
Control Tables
Initial screen Data screen
DTITL DTITL
DCUAD DCUAC DCUAD DCUAC
ISDAT
Before Output ISDST Before Output A
Before Before
ISSTA Call AUTH1 Call
Events
Call Subscreen Call Subscreen
Start
Call Subscreen Call Subscreen
After Input After Input
BDT
FCODE FCODE
Change ?
No
Change ?
No
Change ?
No
Change ?
No
Status ...
Fixed DSAVB
AUTH1
Yes
Abbr.
Yes
Save ?
No Abbr
.
Yes
Save ?
No
Yes
Cancel ?
Yes
Program
Yes Yes No
DCHCK A A
DTAKE DSAVB DSAVB A
DSAVC AUTH1 AUTH1
DSAVE DCHCK DCHCK
Logic
DTAKE DTAKE
DSAVC DSAVC
DSAVE DSAVE
DLVE1
DLVE2
End
Screen 1: Events with Dialog, Save Mode
SAP Basis
SAP AG 2001
The program logic of the BDT us static (fixed). Events call dynamically customized Function
Modules and Screens.
SAP AG 2002
Application Programs
(programmed
(programmed with
with BDT)
BDT)
BDT
SAP AG 2001
BDT, which is developed in ABAP, is a layer between the applications and the SAP Basis.
SAPGUI WEB
Visual Basic
Java
....
SAP AG 2001
BDT is internal divided into several layers. One part is for data retention, one for checking purposes.
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 simultaneously in external maintenance.
Note: In order to work with external interfaces, you must 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.
SAP AG 2002
SAP AG 2002
The values for application objects and differentiation types must be established centrally. This is the
only way of avoiding objects with the same ID being created in the case of distributed development.
This could potentially lead to entries overwriting each other.
Application Objects
SAP- Contract
Bank Account SAP BP Additional...
Additional...
BP Relations Account
(BKKA)
BKKA) (BUPA)
BUPA) ...
(BUPR)
BUPR) (FICA)
FICA)
BDT
The BDT (Business Data Toolset) is a central control tool for maintaining master data and simple
transaction data.
The BDT is based on the ABAP Workbench, the Data Dictionary, etc.
The BDT was developed with ABAP and constitutes a layer between the SAP Basis and the
applications. Since R/3 Release 4.0, the BDT is shipped in all core R/3 installations.
SAP AG 2002
SAP BASIS
Function
Function Function
Group Group
Group
FuMo Sub-
Sub- FuMo Sub-
Sub-
FB screen
screen FB screen
screen
SAP AG 2002
An application object (for example, SAP BP object BUPA) is extensible for SAP applications,
development partners, SAP Industry Business Solutions and customers.
All applications are assigned to exactly one application object.
Each application always has one or several own function groups. By using separate function groups
in each application, the memory areas are encapsulated.
The function groups in the BDT are not customized. Only the content of the BDT, like screens and
function modules, is maintained in the BDT control tables.
A function group includes all program objects of an application:
Event function modules
- (Service) function modules (GET / COLLECT)
- Module (PBO / PAI)
- Subscreens
- Update task
- Digression: Function modules
- Functions are like subroutines (forms). They encapsulate code and data. Accessing data is
allowed only via the function module interface.
- Function modules are executed via their name, which is unique in the SAP System.
- Function modules have a defined interface, which can be extended.
SAP AG 2002
Applications
SAP
SAP SAP
SAP Customer
Customer
Application
Application II Application
Application IIII Application
Application 77
SAP BP
(BUPA)
Development
Development
DDIC BDT Control Tables
Workbench
SAP AG 2002
Function
Function Modules
Groups
ISSTA
ISDAT Events for Each
Application
ISDST
...
Program Logic
GET Events for
Screens PBO Module Tables
Collect
ISSTA Initialization
ISDAT Read data from DB
ISDST Distribute data to participating application
FCODE Process own function code
XCHNG Check whether data changed
DCHCK Check data
DSAVB Collect data from owning app.
DTAKE Note data in global memory
DSAVC Complete data (internal number)
DSAVE Save data on DB
DLVE1 Initialize current memory
DLVE2 Initialize global memory
SAP AG 2002
The BDT uses fixed events within the dialog flow. All applications are able to extend the object by
their own program logic.
The BDT calls application-specific function modules dynamically.
The most important events are displayed in the above slide.
SAP AG 2002
Within a view all attributes are grouped together that are displayed and checked together.
You can not separate fields by means of the Customizing. The fields are fixed on one screen. A view
is assigned to only one application.
Other applications are not allowed to extend an existing standard view. An application has to use
own screens and BDT views.
Create a View
Create a screen in the DWB with screen type subscreen.
Create a PBO module in the flow logic that calls the function module BUS_PBO.
Create a PAI module in the flow logic that calls function module BUS_PAI.
Don't program any field checks. Field checks take place separately in function modules.
Otherwise checks are linked to the calling of a screen. For direct input, you have to create the
same coding twice.
Create Events for each View
(All events are optional, screens are called without any coding in the events of the view).
Create function module "before call"
This event is triggered by the BDT for all views of a screen when moving from one
screen to another. Normally views with step-loop / table controls need a function module
for sorting entries.
Create function module "before output"
This event is triggered before the subscreen is called by the BDT. Used for displaying and
reading of explanatory text.
Create function module "after input"
This event is triggered after all the relevant subscreens are called in the PAI. Used for field
checking for the view.
Event DCHCK provides the possibility for checking several views.
SAP AG 2002
Applications
SAP
SAP SAP
SAP Customer
Customer
Application
Application II Application
Application IIII Application
Application
SAP AG 2002
Contents:
Views
Field Groups
Sections
Screens
Screen Sequences
BDT Screen Processing
GUI Menu
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
Screen layout and sequence should be extended and configured using control tables (without the
need for modification). Customers should adapt standard SAP screens to their needs with
Drag&Drop in the Customizing. Using the Visual Configuration Tool (VCT), customers can change
screen layout - or group several screens together
screen sequence
screen titles
frame titles
Screen Sequence
View 1
Section 1
View 2
A screen contains one
or more sections
View 3
A section contains one or
View 4 Section 2
more views
View 5 A view is presented by a
subscreen
View 6
View 7 Section 3
View 8
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
During the use of object parts, the BDT offers the possibility of making different settings for screen
layout and sequence for each object part.
A business process-specific dialog provides employees with the best support for their business
processes.
SAP AG 2002
Screen-specific coding is encapsulated in function modules. This coding can now be carried out
without calling the screen.
In the actual subscreen logic, only service function modules of the BDT (BUS_PBO, BUS_PAI) are
called.
All subscreen checks have to be switched off.
SAP AG 2002
Existing views can not be changed in event PAI. All changes in the Customizing of the SAP System
are modifications.
Other applications are able to define input checks by creating "additional checks" and customizing
the view.
You have to issue all messages via the message handler. The message handler is used for all modes,
as well as for direct input.
SAP AG 2002
Position numbers are for SAP, SAP IBS, development partners and customers. You can find
namespace descriptions in the BDT manual.
SAP AG 2002
SAP AG 2001
SAP AG 2001
SAP AG 2001
SAP AG 2001
SAP AG 2001
SAP AG 2001
SAP AG 2001
SAP AG 2001
SAP AG 2001
BDT automatically compresses the screen. Dialog surface without fields is suppressed.
SAP AG 2002
Other Back
Data
Initial
Initial Screen
Screen Address
Address Control
Control ...
...
ENTER
Next Next
Screen Screen
SAP AG 2002
The starting point is always the main screen sequence category (customized as SPACE).
One or more screen sequences are assigned to a screen sequence category. You then assign the
specific screen sequence to an object part.
From the main screen sequence, you can move via the dialog to each screen sequence category
supported by the dialog.
SAP AG 2002
Business Partner and Relationships is an example of BDT screens that appear within another
application object.
The Business Document Navigator (BDN) in the application object Business Partner is an example
of an integrated, external screen.
SAP AG 2002
Screen sequences are flexible and can be called by the function module BUS_SCREEN_CALL.
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
View
View
Delete Delete
SAP AG 2002
Section
Section Section Section
View View
View View
SAP AG 2002
SAP AG 2002
The menu is determined in events DCUAD and DCUAC. Menu options can also be set to active or inactive
here if the rule that applies to this function cannot be represented using the settings in the Customizing table.
Event DCUAD (Customizing of the menu)
Description:The application determines the GUI status and sends it to the BDT. The BDT also receives the
name of the function module that sets the GUI status (command SET PFSTATUS...). This function module
must be included in the function group of the application that owns the application object. The naming
convention for this function module is <Application>_<Application object>_PFSTATUS_SET.
Application area: Application that owns the application object.
Naming convention: <Application>_<Application object>_EVENT_DCUAD
(Customer: Function module name also has the prefix Y_ or Z_).
Example: BUP_BUPA_EVENT_DCUAD
Action required:
Determine GUI status for the screen and send it 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 Customizing tables.
Application area: All applications.
Naming convention: <Application>_<Application object>_EVENT_DCUAD
(Customer: Function module name also has the prefix Y_ or Z_).
Example: BUP_BUPA_EVENT_DCUAC
Action required:
Determine current GUI status with the function module BUS_CUA_STATUS_GET
Include inactive standard functions or active additional functions in the relevant tables
Return current GUI status to the Customizing with the function module BUS_CUA_STATUS_SET
SAP AG 2002
Unit: Dialog
Topic: Dialog Maintenance
The processor maintains credit card data and bank details for prospects. To
improve the business process, the application consultant has to integrate
the views of credit card details and bank details and to provide both with a
frame.
Copy ZCXX10
Role ZC##10
Description ZC##: Prospect
Title ZC##: Prospect
Screen Sequence ZF##
Differentiation type 0
Screen selection not specified
Valid Business Partner categories Organization
Person
Group
1-1-4 Check that the screen sequence in role ZC##10 has been changed.
Contents:
Program Flow
Events
Table-Participating Applications
Table-Owning Applications
Current and Global Memory
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
Communication
Between the BDT and applications
Between applications
Defined Events
Within the maintenance dialog
With different object services
Assignment Event --> Event Function Modules
Define name in control tables
Dynamic call via BDT
Sequence of event function modules by way of position
numbers
SAP AG 2002
Within the dialog flow, events defined by the BDT are used, for which the applications can develop
a separate program logic in the form of function modules. The function modules can be defined for
each event; then the BDT automatically calls up these modules.
Position numbers have separate namespaces for SAP, SAP-IBS, development partner and customers.
Program Events
Table
Check
BDT processing
Views
Event Table
Field Status
Field Grouping Criteria
SAP AG 2002
The BDT can be divided into different areas with regard to the events.
The events for tables serve the purposes of direct input, the communication between applications,
and the evaluation of change documents.
Views have events for PBC (Process Before Call), PAI and PBO.
Program events
Table events are for read- and save-processing (for example, ISDAT, DSAVE)
The check is for business check and data integration checks (for example, DCHCK).
The BDT processing contains events for the BDT program flow (for example, XCHNG,
DTAKE).
The event field status changes the status of the field group during BDT processing.
The event field grouping criteria allows you to adapt different field grouping statuses for each
criterion.
ISSTA Initialization
ISDAT Read data from DB
ISDST Distribute data to participating applications
FCODE Process own function code
XCHNG Check to see if data has been changed
DCHCK Check before saving
DSAVB Collect data at owning application
DTAKE Note data in global memory
DSAVC Complete data (get internal number)
DSAVE Save data in DB
SAP AG 2002
SAP AG 2002
Views encapsulate their coding in function modules. These function modules are called both in the
dialog and in the direct input mode.
DTITL DTITL
DCUAD DCUAC DCUAD DCUAC
ISDAT
Before output ISDST Before output A
Before Before
ISSTA Call Call Subscreen AUTH1 Call Call Subscreen
Start
Call Subscreen Call Subscreen
After entry After entry
FCODE FCODE
No No No No
Change ? Change ? Change ? Change ?
DSAVB . Save ?
Cancel No . Save ?
Cancel No Cancel ? Yes
AUTH1
Yes Yes No
DCHCK A A
DTAKE DSAVB DSAVB A
DSAVC AUTH1 AUTH1
DSAVE DCHCK DCHCK
DTAKE DTAKE
DSAVC DSAVC
DSAVE DSAVE
DLVE1
DLVE2
SAP AG 2002
A normal transaction code is the starting point. The transaction code always carries out the same
program (in BP BUSSTART). The BDT reads all the necessary information in the control tables
together with the name of transaction code.
The program flow has a fixed definition. All function modules belonging to the object part that has
been carried out are called dynamically in the relevant events.
SAP AG 2002
Each table-owning application can provide data to its current tables, which is encapsulated in its
function module. This data can also be provided via communication interfaces to other applications.
Without this interface, a table-participating application is not able to receive the data that it has to
process.
Applications: SAP BP
Financial Service BP Table-participating
Customer applications
Tables: Table BUT000:
Owner: SAP BP
Key fields
APPEND for FS BP
ZZCNT_FIRST
APPEND for Customer
ZZCNT_FIRST
SAP AG 2002
Applications: SAP BP
Financial Service BP
Customer
Event ISDAT
(Read data)
SAP AG 2002
The BDT carries out all necessary function modules in event ISDAT.
Applications: SAP BP
Financial Service BP
Customer
SAP AG 2002
Applications: SAP BP
Financial Service BP
Customer
SAP AG 2002
Applications: SAP BP
Financial Service BP
Customer
Event ISDST
(Distribute data)
SAP AG 2002
Event ISDST carries out all function modules for distributing data from table-owning to table-
participating applications.
Applications: SAP BP
Financial Service BP
Customer
SAP AG 2002
Applications: SAP BP
Financial Service BP
Customer
Service
Function Modules
SAP AG 2002
The application Financial Service BP calls the data from BUT000 via the call of the service
function module.
Applications: SAP BP
Financial Service BP
Customer
Service
Function Modules
SAP AG 2002
The data from BUT000 including the append data is stored in the function module of the Financial
Service BP application.
Applications: SAP BP
Financial Service BP
Customer
Service
Function Modules
Get BUT000
SAP AG 2002
Applications: SAP BP
Financial Service BP
Customer
Service
Function Modules
SAP AG 2002
The customer application calls the data from BUT000 via the call of the service function module.
Applications: SAP BP
Financial Service BP
Customer
Service
Function Modules
SAP AG 2002
The data from BUT000 including the append data is stored in the function group of the customer
application.
Applications: SAP BP
Financial Service BP
Customer
Event DSAVB
(Collect data)
SAP AG 2002
Applications: SAP BP
Financial Service BP Service
Customer Function Modules
BUT000
Transfer BUT000
BUT000
SAP AG 2002
The application Financial Service BP transfers data from the append structure to the application
SAP BP.
The application Financial Service BP calls service function module Collect from BUT000.
Applications: SAP BP
Financial Service BP Service
Customer Function Modules
BUT000
Transfer BUT000
BUT000
SAP AG 2002
Only data of the Financial Service BP table append is transferred to the BUT000 structure in the
application SAP BP.
Applications: SAP BP
Financial Service BP Service
Customer Function Modules
BUT000
Transfer BUT000
BUT000
Transfer BUT000
SAP AG 2002
The customer application calls the service function module Collect from BUT000.
Applications: SAP BP
Financial Service BP Service
Customer Function Modules
BUT000
Transfer BUT000
BUT000
Transfer BUT000
SAP AG 2002
Only data of the table append of the customer application is transferred to the BUT000 structure in
the application SAP BP.
Applications: SAP BP
Financial Service BP Service
Customer Function Modules
BUT000
Transfer BUT000
BUT000
Transfer BUT000
Event DTAKE
(Transfer data)
SAP AG 2002
The BDT carries out all necessary function modules for the event DTAKE.
DTAKE moves all data from current memory to the global memory.
Applications: SAP BP
Financial Service BP Service
Customer Function Modules
BUT000
Transfer BUT000
BUT000
Transfer BUT000
Event DTAKE
BUT000 in Global Memory
(Transfer data)
SAP AG 2002
Applications: SAP BP
Financial Service BP Service
Customer Function Modules
BUT000
Transfer BUT000 FIBUB1
BUT000
Transfer BUT000
Event DTAKE
BUT000 in Global Memory
(Transfer data)
Event DSAVE
(Save data)
SAP AG 2002
All the necessary function modules in event DSAVE are carried out.
The event DSAVE is available only to table-owning applications.
Applications: SAP BP
Financial Service BP Service
Customer Function Modules
BUT000
Transfer BUT000
BUT000
Transfer BUT000
Event DTAKE
BUT000 in Global Memory
(Transfer data)
Event DSAVE
BUT000 in DB
(Save data)
SAP AG 2002
The application SAP BP saves the structure BUT000 in the database, including the table append
data.
Applications: SAP BP
Financial Service BP
SAP AG 2002
Applications: SAP BP
Financial Service BP
Event ISDAT
(Read data)
SAP AG 2002
The BDT carries out all necessary function modules in event ISDAT.
Applications: SAP BP
Financial Service BP
SAP AG 2002
Applications: SAP BP
Financial Service BP
SAP AG 2002
Applications: SAP BP
Financial Service BP
SAP AG 2002
The application Financial Service BP needs the data from BUT000 for reading its own table. (The
partner number is the search parameter.)
Applications: SAP BP
Financial Service BP GET / Service
Function Modules
SAP AG 2002
For the purpose of reading data, Financial Service BP calls the GET function module of table
BUT000.
Applications: SAP BP
Financial Service BP Service
Function Modules
SAP AG 2002
Applications: SAP BP
Financial Service BP Service
Function Modules
SAP AG 2002
The application FS BP reads its own table FSBUB1 with the partner number of the structure
BUT000.
Applications: SAP BP
Financial Service BP Service
Function Modules
SAP AG 2002
Applications: SAP BP
Financial Service BP Service
Function Modules
Event ISDST
(Distribute data)
SAP AG 2002
The event ISDST carries out all function modules for distributing data from table-owning to table-
participating applications.
Applications: SAP BP
Financial Service BP Service
Function Modules
SAP AG 2002
Applications: SAP BP
Financial Service BP
Event DSAVB
(Collect data)
SAP AG 2002
Applications: SAP BP
Financial Service BP Service
Function Modules
SAP AG 2002
Applications: SAP BP
Financial Service BP Service
Function Modules
Event DTAKE
(Transfer data)
SAP AG 2002
The BDT carries out all necessary function modules for the event DTAKE.
DTAKE moves all data from the current memory to the global memory.
Applications: SAP BP
Financial Service BP Service
Function Modules
SAP AG 2002
Applications: SAP BP
Financial Service BP Service
Function Modules
SAP AG 2002
The application FS BP moves the current memory from FSBUB1 to the global memory.
Applications: SAP BP
Financial Service BP Service
Function Modules
Event DSAVE
(Save data)
SAP AG 2002
All the necessary function modules in event DSAVE are carried out.
The event DSAVE is available only to table-owning applications.
Applications: SAP BP
Financial Service BP Service
Function Modules
SAP AG 2002
Applications: SAP BP
Financial Service BP Service
Function Modules
SAP AG 2002
SAP AG 2002
Contents:
Create Table Append
Create Screen
Create Events for Screen
Create Events for Program Logic
Add Additional Checks
Special Case: Data Fields
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
Applications
SAP
SAP SAP
SAP Customer
Customer
Application
Application II Application
Application IIII Application
Application 77
SAP BP
(BUPA)
Development
Development
DDIC BDT Control Tables
Workbench
SAP AG 2002
Applications
SAP
SAP SAP
SAP Customer
Customer
Application
Application II Application
Application IIII Application
Application
In the first step, an existing table is extended with the help of an append structure in the DDIC. In
the following exercise the SAP Business Partner standard table, BUT000, is extended.
Function
Function Modules
Group
ISSTA
ISDAT Events for each
application
ISDST
PBO Module
...
Program Logic
PBO ..._PBO_..
...
Screen ..._PAI_.. Events for each
PAI Module view
..._POV_..
0010 First Contact
PAI ...
...
POV-Modul
POV
...
SAP AG 2002
In the second step, a screen with Process Before Output (PBO) and Process After Input (PAI)
modules is created. In these modules the BDT service function modules are called up. In order to be
able to provide a suitable input help (F4 help) for entering the date in our scenario, an additional
Process On Value Request (POV) module is created.
Function
Function Modules
Group
ISSTA
ISDAT Events for each
application
DSAVE
PBO Module
...
Program Logic
PBO ..._PBO_..
...
Screen ..._PAI_.. Events for each
PAI Module view
..._POV_..
0010 First Contact
PAI ...
...
POV Module
POV
...
SAP AG 2002
In the third step, the function modules are created for the events per application and view.
ISSTA Initialization
SAP AG 2002
The BDT defines several events for an application object. In these events, assigned function
modules are available for the functions of reading, checking and saving. Assigned function modules
are called dynamically by the BDT.
The events represented by the darker blocks are absolutely necessary for table-participating
applications.
Communication:
via GET and
COLLECT modules
Table-Owning
Table-
Applications
Call Participating
Applications
Flow
Data
..._GET
..._COLLECT Table-
Participating
Applications
SAP AG 2002
ISDST
Current new old Current new old
Memory Memory
DSAVB
DTAKE (COLLECT FM)
Global
ISDAT new old
Memory
DSAVE
DB
SAP AG 2002
Table-participating and table-owning applications have in each case their own function groups with
decoupled memory areas. For this reason, the table-participating application gets, in event ISDST,
the current memory of the table-owning application by calling the GET function module. Old and
new data is saved.
In event DSAVB, data is transferred by the table-participating application to the table-owning
application by calling the COLLECT function module. Only new data from the current memory and
the table append is transferred.
The table-owning application is responsible for writing the data to the database in event DSAVE.
View 1
Screen
View 4 Section 2
View 5
SAP AG 2002
In addition to the Process Before Call (PBC), Process Before Output (PBO) and Process After Input
(PAI) function modules of the views, any number of additional function modules can be attached to
each view.
The function modules included under "additional checks" are called up in the Process After Input
(PAI) event of the view.
This allows a modification-free check of the data from "external" views.
Date
20010701 01.07.2001
DATS CHAR10
SAP AG 2002
Date fields are a special case. Internally, a date is represented in the format "YYYYMMDD" (field type
DATS).
This format is suitable not only for representation on the screen. For this reason, screens contain
service functions that carry out the automatic conversion of date fields in the required format for
representation.
The check functions can only be used for the dialog interfaces.
ABAP Screen
Date
No conversion
01/07/2001 01/07/2001
CHAR10 CHAR10
_PBO _PAI
_POV (F4)
20010701
DATS
SAP AG 2002
In order to make the program code usable for different interfaces, the code must be encapsulated in
function modules.
The BDT events Process Before Output (PBO) and Process After Input (PAI) are used to convert the
internal format "DATS" into "CHAR10".
No data conversion takes place between screen processes and ABAP processes.
To provide an input help (F4 help), you have to call a BDT service function module, Process On
Value Request (POV), within the screen.
SAP AG 2002
During the first contact between a processor and a customer, the processor
has to enter the date and his rating of the first contact. He should be able to
save the first contact date and the rating.
1-7 Create the following event function modules for the tables append. You will find
example coding in the Coding Appendix.
The function modules are created for the different events in function group. These
objects from the Development Workbench Objects are made known by the Customizing
to the BDT.
(SE80) SAP Menu Tools ABAP Workbench Overview Object Navigator
ISSTA
Position 7000## +10
Function module Z_ZC##_BUPA_EVENT_ISSTA
Call X
Application ZC##
ISDAT
Position 7000## +10
Function module Z_ZC##_BUPA_EVENT_ISDAT
Call X
Application ZC##
XCHNG
Position 7000## +10
Function module Z_ZC##_BUPA_EVENT_XCHNG
Call X
Application ZC##
DSAVB
Position 7000## +10
Function module Z_ZC##_BUPA_EVENT_DSAVB
Call X
Application ZC##
DLVE1
Position 7000## +10
Function module Z_ZC##_BUPA_EVENT_DLVE1
Call X
Application ZC##
2-1 Create a function module for the additional check of view BUP300.
(SE80) SAP Menu Tools ABAP Workbench Overview Object Navigator
Function Group ZC##
2-3 Check the result in the dialog. Process a word without vowels and try to switch the
screen. An error message will be displayed.
BUPT Menu Application Business Partner Create Role ZC##10
ISSTA
Position 7000## +10
Function module Z_ZC##_BUPA_EVENT_ISSTA
Call X
Application ZC##
ISDAT
Position 7000## +10
Function module Z_ZC##_BUPA_EVENT_ISDAT
Call X
Application ZC##
XCHNG
Position 7000## +10
Function module Z_ZC##_BUPA_EVENT_XCHNG
Call X
Application ZC##
DSAVB
Position 7000## +10
Function module Z_ZC##_BUPA_EVENT_DSAVB
Call X
Application ZC##
DLVE1
Position 7000## +10
Function module Z_ZC##_BUPA_EVENT_DLVE1
Call X
Application ZC##
2-1 Create a function module for the additional check of view BUP300.
(SE80) SAP Menu Tools ABAP Workbench Overview Object Navigator
Function Group ZC## Choose Function Modules with Right Mouse Button
Create
Use Z_ZC##_BUPA_PAI_BUP300 in the Coding Appendix as a template.
2-3 If you try to save a business partner in your role without vowels the in name field, an
error message will be displayed.
BUPT Menu Application Business Partner Create Role ZC##10
Contents:
Create Table
Create Screen
Create Events for the Screen
Create Events for the Program Logic
GUI Menu
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
Applications
SAP
SAP SAP
SAP Customer
Customer
Application
Application II Application
Application IIII Application
Application 77
SAP BP
(BUPA)
Development
Development
DDIC BDT-Control Tables
Workbench
SAP AG 2002
For table-participating applications, you have the same development areas as you have for table-
owning applications -Data Dictionary (DDIC), Development Workbench and BDT control tables.
Applications
SAP
SAP SAP
SAP Customer
Customer
Application
Application II Application
Application IIII Application
Application
In the first step an own table is created in the data dictionary (DDIC).
Function
Function Modules
Group
ISSTA
ISDAT Events for each
application
ISDST
PBC Module
...
Program Logic
PBC GET
... Events for each
COLLECT table
PBO Module ...
Screen ..._PBC_..
PBO
...
..._PBO_.. Events for each
0020 Hobby
PAI Module view
..._PAI_..
PAI ...
...
SAP AG 2002
In the second step, a screen with Process Before Output (PBO) and Process After Input (PAI)
modules is created. In these modules the BDT service function modules are called up.
A Process Before Call (PBC) module is still needed for sorting the data for the table control.
Function
Function Modules
Group
ISSTA
ISDAT Events for each
application
ISDST
PBC Module
...
Program Logic
PBC GET
... Events for each
COLLECT table
PBO Module ...
Screen ..._PBC_..
PBO
...
..._PBO_.. Events for each
0020 Hobby
PAI Module view
..._PAI_..
PAI ...
...
SAP AG 2002
In the third step, the function modules are created for the events for each application and view.
If the table-owning application allows a table-participating application an append structure, the
table-owning application must make available a so-called GET and COLLECT function module
(events per table) for communication with other applications. In this way the table-participating
application is able to exchange the current table content with the owning application.
Read data (GET FunMod):
With this function module, the table-participating applications are able to determine the current
content of the table.
Collect data (COLLECT FunMod):
With this function module, a table-participating application is able to export to the table-owning
application, the data of fields that it has attached.
ISSTA Initialization
SAP AG 2002
All the events represented by the dark blocks are necessary events.
Current Memory
Table-owning applications
All table-participating applications
Global Memory
Only table-owning applications
SAP AG 2002
Service functions like direct input or the transfer mode make it necessary to differentiate between
the current and global memory.
The current memory works with the structure or internal table of the current object. Table-owning
and participating applications also have a current memory.
The global memory works with the internal table of one or more objects. Only table-owning
applications have a global memory.
DTAKE
DSAVE
DB
SAP AG 2002
The current memory contains the data of the instance (for example, Business Partner) that is
currently being processed. Old and new data statuses are separated. The old status is taken from the
data that is read at event ISDAT (table-owning application). At this point new and old data are
identical. During maintenance, the new current memory is updated after each entry.
The global memory contains the data for all instances that you have processed but not yet saved in
the database. For each table, there is only one global memory. Data of table-participating
applications is also included. Also in the case of the global memory, a differentiation is made
between the old and new status, and they are stored separately. The old data represents the current
database status. For this reason the current database status is created for an instance only when data
is maintained for the first time. This is done in the event DTAKE. If the same instance is maintained
again without saving, the old status may no longer be changed. The new data is transferred from the
new status of the current memory into the new status of the global memory.
Events
In event ISDAT, you look for data in the global memory. If no data for the current instance has
been stored in the global memory, the data is read from the database.
In event DTAKE, the table-owning application writes the data from the old and new current
memory to the global memory.
In event DSAVE, you check if there are differences between the new and old global memory. If
this is the case, changes have taken place and the database must be updated.
ISDST
Current new old Current new old
Memory Memory
DSAVB
DTAKE (COLLECT FM)
Global
ISDAT new old
Memory
DSAVE
DB
SAP AG 2002
Table-participating and table-owning applications have in each case their own function groups with
decoupled memory areas. For this reason, the table-participating application gets, at event ISDST,
the current memory of the table-owning application by calling the GET function module. Old and
new data is saved.
In event DSAVB, data is transferred by the table-participating application to the table-owning
application by calling the COLLECT function module. Only new data from the current memory and
the table append is transferred.
The table-owning application is responsible for writing the data to the database in event DSAVE.
SAP AG 2002
The BDT provides the events DCUAD (set menu) and DCUAC (change menu) for adding GUI
menus and functions.
By means of these events it is possible to
add own menus and functions to the standard menus and functions
activate / deactivate functions
create links between pushbuttons and menu functions
SAP AG 2002
Pushbutton PUSH_ZC##_HOBBY_DELE
ICON-Name ICON_DELETE_ROW
Function code ZC##_HOBBY_DELE
Table GT_ZBUTHOBBY
Field name HOBBY
Input field X
Table ZBUTHOBBY
Field name HOBBY
Input field O
1-3-2 Create a view.
BUPT Menu BP Control Screen Layout Views
View ZS##20
Description Hobby ##
Application ZC##
Diff-Typ 0
Dataset ZD##10
Entry View X
Dialog View X
Subscreen SAPLZBUPA##
0020
Process Before Call Z_ZC##_BUPA_PBC_ZC##20
Data screen X
1-3-3 Assign the field group to a view.
Screen ZB##10
Position number 100010
Section BUP009
1-5 Make the necessary entries in the BDT. The position numbers are (7000## + 10) and
application ZC##.
BUPT Menu BP Control Events
The processor should be able to call up the function delete hobby via the
GUI menu.
Pushbutton PUSH_ZC##_HOBBY_DELE
ICON name ICON_DELETE_ROW
Function code ZC##_HOBBY_DELE
Table GT_ZBUTHOBBY
Field name HOBBY
Input field X
Table ZBUTHOBBY
Field name HOBBY
Input field O
1-3-2 Create a view.
BUPT Menu BP Control Screen Layout Views
View ZS##20
Description Hobby ##
Application ZC##
Diff-Typ 0
Dataset ZD##10
Entry View X
Dialog View X
Subscreen SAPLZBUPA##
0020
Process Before Call Z_ZC##_BUPA_PBC_ZC##20
Data screen X
1-3-3 Assign the field group to a view.
BUPT Menu BP Control Screen Layout Views Assign View to
Field Group
Screen ZB##10
Position number 100010
Section BUP009
1-5 Make the necessary entries in the BDT. The position numbers are (7000## + 10) and
application ZC##. Select events and assign function modules to them. You only have to
assign the same function module once.
BUPT Menu BP Control Events Select Event Assign Events to Function
Modules
Be sure, that the global constant for the pushbutton in the top include
GC_FCODE_HOBBY_DELE are changed into your Pushbutton name
PUSH_ZC##_HOBBY_DELE, and that the parameter for calling
'BUS_FMOD_STATUS_GET' is the function group of the table control.
2-3 Perform the Customizing in the BDT and assign the event DCUAC to the function
module.
Menu BUPT BP control Events Assign Event DCUAC to
Z_ZC##_BUPA_EVENT_DCUAC
Contents:
Processing Modes
Interfaces
Field Groupings
Search Help
Change Documents
Archiving
Visual Configuration Tool
Where-Used Lists
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
Save Mode
Changes to a BP are either saved or discarded before leaving
the maintenance
Transfer Mode
Maintenance via dialog, save is triggered by external application
Example:
Contract calls BP maintenance
BP data is noted
The BP data is not saved until the contract is saved
Direct Input
Mass insert / update!!
SAP AG 2002
Owning Participating
Application Application
Save Function Current
Memory
DTAKE
Event DTAKE
Note data
Current
Memory
Event DSAVC
Complete data
DSAVC
DB
SAP AG 2002
Event DSAVC
Save
Complete data
Event DSAVE
Save data
SAP AG 2002
The transfer mode allows you to jump to a BDT object, into creation / maintenance, without saving
the data directly on the database. The trigger for saving or discarding comes from the leading
application. In case of saving, the events DSAVC and DSAVE are performed.
SAP AG 2002
Note: Direct input is not used in CRM. Instead, mass data is processed via the Middleware.
The two diagrams compare events of the dialog and of direct input with each other.
The direct input mode calls the same events, however without running through screens.
Event DSAVE will only be performed in direct input after a few hundred objects (for example, BP),
while this takes place in the dialog mode after each maintained object (for example, BP).
SAP AG 2002
SAP AG 2002
Note:
Direct input is not used in CRM. Instead, mass data is processed via the Middleware.
To enhance the batch input procedure, the system offers the direct input technique, especially for
transferring large amounts of data. In contrast to batch input, this technique does not create sessions,
but stores the data directly. No screens are processed. To directly enter the data into the
corresponding database tables, the system calls a number of function modules that carry out any
necessary checks. In case of errors, the direct input technique provides a restart mechanism.
However, to be able to activate the restart mechanism, direct input programs must only be executed
in the background.
The BDT uses the event technique to work with direct input.
DINP1 gets the header data of an application object in a file-structure. This technique no longer
needs to be programmed for extensions.
DINP2 reads data records and checks / saves data in corresponding applications. To extend direct
input by an own table, you only have to create DINP2 for table-owning application. Table-
participating applications do not have to extend DINP2, because save processes are carried out the
by table-owning application.
Sender
Sender Receiver
Receiver
structure
structure structure
structure
Restart
Customer
SAP
SAP AG 2002
This diagram represents direct input flow without the BDT. The customer creates a file for import
into the SAP System. The sender structure in the file is identical to the sender structure for reading
in the SAP System. The sender structure will be mapped to the receiver structure (BUS_DI). In the
DI function part, the data will be checked by five events and loaded into the system. Several log files
are written and incorrect records are stored in a separate file.
Mapping
File DI BDT
Sender Structure
Automatic Integration
Receiver Structure
Prelim.
Prelim. run
run ISSTA
ISSTA
Check
Check DINP1
DINP1
Save
Save ISDAT
ISDAT
Commit
Commit DINP2
DINP2
...
Subs.
Subs. run
run DSAVE
DSAVE
SAP AG 2002
The BDT uses the functions of DI while using all event function modules. For direct input there are
the additional events DINP1 (header data) and DINP2 (detailed data of applications).
Start A
B
ISSTA no
Change?
ja
DINP1
DCHCK
After entry
(header views)
yes
Error?
no
ISDAT
DTAKE
ISDST
DLVE1
DINP2
After entry
(data views) Block end no
or last data B
record?
DSAVB yes
DSAVE
AUTH1
DLVE2
XCHNG
Last no
A
data record? B
yes
End
SAP AG 2002
In the events, direct input uses the same coding as in the dialog mode. DINP1 and DINP2 are
additional events for working with direct input.
Entry File
Rec. type Table Del. Flag Data
2 BUT000 SPACE 0030001234567...
2 BUT020 SPACE 0030001234567...
2 BUT021 SPACE 0031122334455...
2 BUT0BK SPACE 0030001234567...
BDT
Distribute data records to applications
Application 1 Application 2
SAP AG 2002
The complete file structure is separated into DI structures for each application. Each application
carries out a DINP2 function module to check / save the data.
SAP AG 2002
SAP AG 2002
External interfaces are designed solely in external maintenance transactions (abbreviation: external
maintenance). There are no restricting factors for the distribution of data fields on the screens of this
maintenance transaction.
External maintenance and BDT maintenance can be fully integrated. You can call the BDT
maintenance in transfer mode from the external maintenance. Data can be changed in both types of
maintenance. Changes are also visible in each type of maintenance.
Each external interface is allowed to call the BDT via the "BUS_FOREIGN_..." function modules.
SAP AG 2002
Field Status
Hide
Display
Required entry
Optional entry
Determine field status of related fields together
Different field grouping criteria
Field grouping criteria can be added by the applications
(Examples from BP: Co.Code by FI: Sales Org. by SD)
Programmed field grouping
SAP AG 2002
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 the settings for various criteria
during the runtime using predefined rules.
SAP AG 2002
Field status bar 1 (200 characters) Field status bar 2 Field status bar 3
+ * . - * ......... .........
Field group: 1 2 3
Field Status
+ Required entry
. Optional entry
* Display
- Hide
SPACE Not specified
Position in status bar corresponds to field group number
(at present:maximum of 1750 field groups)
SAP AG 2002
Each instance of the field grouping criterion is stored in the database for one record. Each position in
the record represents one field group number. There are five values allowed (+, ., *,- and SPACE).
Radio buttons facilitate the Customizing in the maintenance view.
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
The elementary search help of customers or development partners extends the existing collective
search help (BP BUPA).
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
SAP AG 2002
Data
Data Input
Input Data
Data Input
Input
Check
Check Data
Data ARCH1
ARCH1 Check
Check Data
Data
Sort
Sort Data
Data Sort
Sort Data
Data
Create
Create Archive
Archive Create
Create Archive
Archive
Create
Create Archive
Archive ARCH2/3
ARCH2/3 Write
Write Archive
Archive
Close
Close Archive
Archive Close
Close Archive
Archive
Log
Log Log
Log
SAP AG 2002
Archiving without the BDT is extensive because various functions have to be developed.
Archiving with the BDT provides all generic functions for archiving processing. Only application-
related function modules have to be programmed.
ARCH1
Application-specific Uniqu
e Call
of AD
K FMs
ARCH2
.
.
*------ Write Data in Archive ----------
call function 'ARCHIVE_PUT_RECORD
exporting
archive_handle = p_archive_handle
record = lt_but000
record_flags = et_chart-del_flag
record_structure = 'BUT000'.
Endfunction.
SAP AG 2002
SAP AG 2002
SAP AG 2002
Configuration via
Drag&Drop
(Visual Basic)
Screen layout and
screen sequence
Techniques
Subscreens
Generation of
subscreen
containers
SAP AG 2002
An administrator is able to customize the screen layout and screen sequence via Drag&Drop.
The BDT standard Customizing table may be reactivated via the "SAP Standard" in the VCT.
SAP AG 2002
Where-Used List
SAP AG 2002
Where-used lists give an overview of where other components are using the object currently
displayed . In this example you can see where the business partner is used.
Nodes can be extended. You are able to move into the corresponding application via double-click.
The overview consists of different screens that are time-dependent. These screens show the actual,
future and past status of all the items in the where-used list.
SAP AG 2002
SAP AG 2002
Screen Sequence m n m
Object
Object Part
Part Application
Application
Screen n
(e.g.
(e.g. Role)
Role) 1
1 Data
Data 1
Section
Sets
Sets
Section n
View n
View 1
1
View
Field group
Field group
3 n
FM
FM PAI/PBO/PBC
PAI/PBO/PBC
Event
Event FMs
FMs
1 PAI
PAI
Screen
Screen
PBO
PBO SAP BASIS
SAP AG 2002
This is an overview of the BDT Customizing. It can also provide support and be used as a check
during the Customizing. However, this is not a final list.
BDT Customizing is divided into a dialog part and a function part.
The starting point for carrying out the BDT is always the application object or object part.
SAP AG 2002
The technical consultants have to enable your extensions for Direct Input.
1-2 Create the program logic for event DINP2 and carry out the Customizing.
(SE80) SAP Menu Tools ABAP Workbench Overview Object Navigator
2-1 Change the screen sequence and screen layout of your BP role ZC##10.
BUPT Menu Customizing Basic Settings Screen Configuration Main
Screen Sequence
2-1-1 Change sequence of the tables Hobby and Date/Rating
2-1-2 Change screen sequence.
(Address, Central Data, Additional Data, Bank and Credit Cards, Relationships)
2-1-3 Check the result in the Business Partner dialog.
BUPT Menu Application Business Partner Create Role ZC##10
2-1-4 Reset the VCT settings.
BUPT Menu Customizing Basic Settings Screen Configuration
Main Screen Sequence
Reset by SAP Standard and Save
All visible control tables in the screen layout are switched off if
someone has saved the VCT changes.
3-1 Customize the application object BUPA for the tree of the where-used list.
Transaction SM30
3-1-1 Create your own node in the tree.
Customizing View V_TBZ5
Current node ZC##
Node text Object Group ##
3-1-2 Define a view variant for the objects of the where-used list.
Customizing View V_TBZ5E
View variant ZC##
Variant text Variant Group ##
2-1 Change the screen sequence and screen layout of your BP role ZC##10.
BUPT Menu Customizing Basic Settings Screen Configuration General
Data
If you are using the old dialog or you are not working in a CRM-
System, use the path Screen ConfigurationMain Screen Sequence.
2-1-1 Change sequence of the tables Hobby and Date/Rating. Call up the screen in the
lower part of the VCT. Select the entry Date / Rating in the section and move it
via Drag&Drop into the section Hobby.
2-1-2 Change the screen sequence via Drag&Drop of the screens.
Goto Screen Sequence
2-1-3 Check the result in the Business Partner dialog. Transfer the data from the VCT
to the SAP System and save.
Screen Configuration Transfer
BUPT Menu Application Business Partner Create Role ZC##10
2-1-4 Reset the VCT settings.
BUPT Menu Customizing Basic Settings Screen Configuration
General Data
Reset via Edit SAP Standard and Transfer
All visible control tables in the screen layout are switched off if
someone has saved the VCT changes.
3-1 Customize the application object BUPA for the tree of the where-used list.
Transaction SM30
3-1-1 Create your own node in the tree. Select V_TBZ5 for the Customizing and press
the button maintain. Select the application object BUPA. Click the pushbutton
new entry and create the node ZC##.
Customizing View V_TBZ5
Current node ZC##
Node text Object Group ##
3-1-2 Select V_TBZ5E for the Customizing and click the pushbutton maintain.
Select the application object BUPA. Choose New Entry and create the view
variant ZC##. Select the view variant and compose your screen.
Customizing View V_TBZ5E
View variant ZC##
Variant text Variant Group ##
3-1-3 Select V_TBZ5A for the Customizing and click the pushbutton maintain.
Select the application object BUPA. Select New Entry and create the
Assignment for the object part (role) or in field context or transaction.
Customizing View V_TBZ5A
View variant ZC##
Transaction/Context ZC##10
z Coding
SAP AG 2001
************************************************************************
* Tables *
************************************************************************
TABLES: BUT000,
ZBUSFLDS,
ZBUTHOBBY,
ZTB001,
ZTB001T.
************************************************************************
* Constants *
************************************************************************
CONSTANTS:
GC_ACTVT_DELETE LIKE BUS000FLDS-CHAR1 VALUE 'D',
GC_ACTVT_INSERT LIKE BUS000FLDS-CHAR1 VALUE 'I',
GC_ACTVT_UPDATE LIKE BUS000FLDS-CHAR1 VALUE 'U',
GC_AKTYP_CHANGE LIKE TBZ0K-AKTYP VALUE '02',
GC_AKTYP_DISPLAY LIKE TBZ0K-AKTYP VALUE '03',
GC_FCODE_HOBBY_DELE LIKE TBZ4-FCODE VALUE
'ZC##_HOBBY_DELE',
GC_FSTAT_OPTIONAL LIKE BUS000FLDS-FLDSTAT VALUE '.',
GC_FSTAT_REQUIRED LIKE BUS000FLDS-FLDSTAT VALUE '+',
GC_FSTAT_DISPLAY LIKE BUS000FLDS-FLDSTAT VALUE '*',
GC_FSTAT_NONSPECIF LIKE BUS000FLDS-FLDSTAT VALUE ' ',
GC_FSTAT_SUPPRESSED LIKE BUS000FLDS-FLDSTAT VALUE '-',
GC_MESSG_ARBGB LIKE MESG-ARBGB VALUE 'ZBUPA',
GC_MESSG_CANCEL LIKE MESG-MSGTY VALUE 'A',
GC_MESSG_ERROR LIKE MESG-MSGTY VALUE 'E',
GC_OBJAP_PARTNER LIKE TBZ1-OBJAP VALUE 'BUPA',
GC_STATUS_DISPLAY LIKE TBZ0K-AKTYP VALUE '*',
GC_X LIKE BOOLE-BOOLE VALUE 'X'.
************************************************************************
* Variables *
************************************************************************
DATA:
GV_AKTYP LIKE TBZ0K-AKTYP,
GV_ZBUTHOBBY_LINACT LIKE SY-INDEX,
GV_CNT_FIRST_OLD LIKE ZBUSFLDS-CNT_FIRST,
GV_XSAVE LIKE BOOLE-BOOLE,
GV_XUPDTASK LIKE BOOLE-BOOLE.
************************************************************************
* Structure *
************************************************************************
DATA:
GL_BUT000_OLD LIKE BUT000.
************************************************************************
* Controls: *
************************************************************************
CONTROLS: TCTRL_ZBUTHOBBY TYPE TABLEVIEW USING SCREEN '0020'.
Flow
PROCESS BEFORE OUTPUT.
MODULE PBO.
*
PROCESS AFTER INPUT.
MODULE PAI.
*
PROCESS ON VALUE-REQUEST.
FIELD ZBUSFLDS-CNT_FIRST MODULE F4_CNT_FIRST.
Flow
*--------------------------------------------------------------------------*
* Module PBO OUTPUT *
*--------------------------------------------------------------------------*
* *
*--------------------------------------------------------------------------*
MODULE PBO OUTPUT.
CALL FUNCTION 'BUS_PBO'.
ENDMODULE.
*--------------------------------------------------------------------------*
* Module PAI *
*--------------------------------------------------------------------------*
* *
*--------------------------------------------------------------------------*
MODULE PAI.
CALL FUNCTION 'BUS_PAI'.
ENDMODULE.
*--------------------------------------------------------------------------*
* Module F4_CNT_FIRST *
*--------------------------------------------------------------------------*
* F4 for the fieldDate of the first contact *
*--------------------------------------------------------------------------*
MODULE F4_CNT_FIRST.
PERFORM F4_CNT_FIRST.
ENDMODULE.
FUNCTION Z_ZC##_BUPA_PBO_ZC##10.
*--------------------------------------------------------------------------*
*"*"Local interface:
*--------------------------------------------------------------------------*
*--------------------------------------------------------------------------*
* Form ZZCNT_FIRST_PBO *
*--------------------------------------------------------------------------*
* Represent date of the first contact
*--------------------------------------------------------------------------*
FORM ZZCNT_FIRST_PBO.
CALL FUNCTION 'BUS_DATEFIELD_PBO'
EXPORTING
I_VALUE_DB = BUT000-ZZCNT_FIRST
CHANGING
C_VALUE_DYNP = ZBUSFLDS-CNT_FIRST
C_VALUE_DYNP_OLD = GV_CNT_FIRST_OLD.
ENDFORM.
*--------------------------------------------------------------------------*
* Form ZZCNT_FIRST_PAI *
*--------------------------------------------------------------------------*
* Check date of first contact *
*--------------------------------------------------------------------------*
FORM ZZCNT_FIRST_PAI.
*------ Check date of first contact-----------------------------------------
*------ ... Call up BDT FM for checking ------------------------------------
CALL FUNCTION 'BUS_DATEFIELD_PAI'
EXPORTING
I_PAST_ALLOWED = GC_X
I_FUTURE_ALLOWED = SPACE
IMPORTING
E_VALUE_DB = BUT000-ZZCNT_FIRST
CHANGING
C_VALUE_DYNP = ZBUSFLDS-CNT_FIRST
EXCEPTIONS
OTHERS = 1.
FUNCTION Z_ZC##_BUPA_EVENT_ISSTA.
*--------------------------------------------------------------------------*
*"*"Local interface:
*--------------------------------------------------------------------------*
FUNCTION Z_ZC##_BUPA_EVENT_ISDAT.
*--------------------------------------------------------------------------*
*"*"Local interface:
*--------------------------------------------------------------------------*
*--------------------------------------------------------------------------*
* Form BUT000_ISDAT *
*--------------------------------------------------------------------------*
* Table BUT000: Event ISDAT *
*--------------------------------------------------------------------------*
FORM BUT000_ISDAT.
*--------------------------------------------------------------------------*
* Form BUT000_XCHNG *
*--------------------------------------------------------------------------*
* Table BUT000: Changes? *
*--------------------------------------------------------------------------*
* <-- E_XCHNG Set indicator: Changes exist *
*--------------------------------------------------------------------------*
FORM BUT000_XCHNG CHANGING E_XCHNG LIKE BUS000FLDS-XCHNG.
*--------------------------------------------------------------------------*
* Form BUT000_DSAVB *
*--------------------------------------------------------------------------*
* Table BUT000: EventDSAVB *
*--------------------------------------------------------------------------*
FORM BUT000_DSAVB.
*--------------------------------------------------------------------------*
* Form BUT000_DLVE1 *
*--------------------------------------------------------------------------*
* Table BUT000: Event DLVE1 *
*--------------------------------------------------------------------------*
FORM BUT000_DLVE1.
CLEAR BUT000.
CLEAR GL_BUT000_OLD.
ENDFORM.
FUNCTION Z_ZC##_BUPA_PAI_BUP300.
*--------------------------------------------------------------------------*
*"*"Local interface:
*--------------------------------------------------------------------------*
*--------------------------------------------------------------------------*
* Form NAME_LAST_PAI *
*--------------------------------------------------------------------------*
* Check Last name *
*--------------------------------------------------------------------------*
FORM NAME_LAST_PAI.
Flow logic
PROCESS BEFORE OUTPUT.
MODULE PBO_0020.
LOOP AT GT_ZBUTHOBBY WITH CONTROL TCTRL_ZBUTHOBBY
CURSOR GV_ZBUTHOBBY_LINACT.
MODULE GT_ZBUTHOBBY_INIT.
ENDLOOP.
*
PROCESS AFTER INPUT.
MODULE PAI.
LOOP AT GT_ZBUTHOBBY.
MODULE GT_ZBUTHOBBY_MODIFY.
ENDLOOP.
MODULE GT_ZBUTHOBBY_LINACT_DETERMINE.
Program flow
*--------------------------------------------------------------------------*
* Module PBO_0020 OUTPUT *
*--------------------------------------------------------------------------*
* Carry out control actions on the subscreen for PBO *
*--------------------------------------------------------------------------*
MODULE PBO_0020 OUTPUT.
CALL FUNCTION 'BUS_PBO'.
CHANGING
C_TC1 = TCTRL_ZBUTHOBBY.
ENDMODULE.
*--------------------------------------------------------------------------*
* Form GT_ZBUTHOBBY_MODIFY
*--------------------------------------------------------------------------*
* Save changes
*--------------------------------------------------------------------------*
FORM GT_ZBUTHOBBY_MODIFY.
MODIFY GT_ZBUTHOBBY INDEX GV_ZBUTHOBBY_LINACT.
IF SY-SUBRC <> 0
AND NOT GT_ZBUTHOBBY IS INITIAL.
GT_ZBUTHOBBY-CLIENT = SY-MANDT.
GT_ZBUTHOBBY-PARTNER = BUT000-PARTNER.
INSERT GT_ZBUTHOBBY INDEX GV_ZBUTHOBBY_LINACT.
ENDIF.
ENDFORM.
*--------------------------------------------------------------------------*
* MODULE GT_ZBUTHOBBY_LINACT_DETERMINE. *
*--------------------------------------------------------------------------*
* Note new index
*--------------------------------------------------------------------------*
MODULE GT_ZBUTHOBBY_LINACT_DETERMINE.
PERFORM GT_ZBUTHOBBY_LINACT_DETERMINE.
ENDMODULE.
*--------------------------------------------------------------------------*
* Form GT_ZBUTHOBBY_LINACT_DETERMINE *
*--------------------------------------------------------------------------*
* Hobbys: note new index
*--------------------------------------------------------------------------*
FORM GT_ZBUTHOBBY_LINACT_DETERMINE.
GV_ZBUTHOBBY_LINACT = TCTRL_ZBUTHOBBY-TOP_LINE.
ENDFORM.
FUNCTION Z_ZC##_BUPA_PBO_ZC##20.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(I_ACTION) LIKE BUS000FLDS-CHAR1 OPTIONAL
*"----------------------------------------------------------------------
*------ Do not carry out actions during return from additional screen---
CHECK I_ACTION = '1'
OR I_ACTION = '2'.
FUNCTION Z_ZC##_BUPA_EVENT_ISDAT.
*--------------------------------------------------------------------------*
*"*"Local interface:
*--------------------------------------------------------------------------*
*--------------------------------------------------------------------------*
* Form ZBUTHOBBY_ISDAT *
*--------------------------------------------------------------------------*
* Table ZBUTHOBBY: Event ISDAT *
*--------------------------------------------------------------------------*
FORM ZBUTHOBBY_ISDAT.
*--------------------------------------------------------------------------*
* Form GT_ZBUTHOBBY_DELETE *
*--------------------------------------------------------------------------*
* Function Delete hobbys *
*--------------------------------------------------------------------------*
FORM GT_ZBUTHOBBY_DELETE.
DELETE GT_ZBUTHOBBY WHERE XMARK = GC_X.
ENDFORM.
*--------------------------------------------------------------------------*
* Form ZBUTHOBBY_DTAKE
*--------------------------------------------------------------------------*
* ZBUTHOBBY in local memory
*--------------------------------------------------------------------------*
FORM ZBUTHOBBY_DTAKE.
*------ Note partner number in the directory of the processed partners -----
DELETE MEM_PARTNER-Partner where partner = BUT000-Partner
MEM_PARTNER-PARTNER = BUT000-PARTNER.
APPEND MEM_PARTNER.
ENDIF.
ENDFORM.
*--------------------------------------------------------------------------*
* Form ZBUTHOBBY_DSAVC *
*--------------------------------------------------------------------------*
* Complete data for table ZBUTHOBBY *
*--------------------------------------------------------------------------*
* --> T_PARTNER Assignment of temp.no. -> final no. for partner *
*--------------------------------------------------------------------------*
FORM ZBUTHOBBY_DSAVC TABLES T_PARTNER STRUCTURE BUS_PARTNR.
*"*"Local interface:
*" TABLES
*" T_ZBUTHOBBY STRUCTURE ZBUSHOBBY
*" T_ZBUTHOBBY_OLD STRUCTURE ZBUSHOBBY
*--------------------------------------------------------------------------*
*------ Update table ZBUTHOBBY ---------------------------------------------
PERFORM ZBUTHOBBY_UPDATE TABLES T_ZBUTHOBBY
T_ZBUTHOBBY_OLD.
ENDFUNCTION.
*--------------------------------------------------------------------------*
* Form ZBUTHOBBY_UPDATE *
*--------------------------------------------------------------------------*
* Update table ZBUTHOBBY *
*--------------------------------------------------------------------------*
* --> T_ZBUTHOBBY New status *
* --> T_ZBUTHOBBY_OLD Old status *
*--------------------------------------------------------------------------*
FORM ZBUTHOBBY_UPDATE TABLES T_ZBUTHOBBY STRUCTURE ZBUSHOBBY
T_ZBUTHOBBY_OLD STRUCTURE ZBUSHOBBY.
FUNCTION Z_ZC##_BUPA_EVENT_DLVE1.
*--------------------------------------------------------------------------*
*"*"Local interface:
*--------------------------------------------------------------------------*
*------ Table BUT000 -------------------------------------------------------
PERFORM BUT000_DLVE 1.
*--------------------------------------------------------------------------*
* Form ZBUTHOBBY_DLVE2 *
*--------------------------------------------------------------------------*
* Table ZBUTHOBBY: event DLVE2 *
*--------------------------------------------------------------------------*
FORM ZBUTHOBBY_DLVE2.
CLEAR MEM_ZBUTHOBBY. REFRESH MEM_ZBUTHOBBY.
CLEAR MEM_ZBUTHOBBY_OLD. REFRESH MEM_ZBUTHOBBY_OLD.
CLEAR MEM_PARTNER. REFRESH MEM_PARTNER.
ENDFORM.
FUNCTION Z_ZC##_BUPA_EVENT_DCUAC.
*--------------------------------------------------------------------------*
*"*"Local interface:
*--------------------------------------------------------------------------*