TABC42 2/2
TABC42 ABAP Programming Techniques 2/2 .................0-1
Copyright .............................................................................0-2
Section Overview ..........................................................0-4
Section: Programming Database Updates .......................1-1
Content: Programming Database Updates .................1-2
Course Overview ................................................................2-1
Course Goals ..................................................................2-2
Course Overview Diagram ..........................................2-3
Database Updates With Open SQL .................................3-1
Course Overview Diagram - Open SQL .....................3-2
Overview: Database Updates ......................................3-3
Open SQL: Portability and Buffering .......................3-4
Open SQL Property: Target Set On The Database..........................3-5
Open SQL Properties: Client Dependency, Results Confirmations .................3-6
Creating a Single Record ..............................................3-7
Creating a Set of Records .............................................3-8
Changing a Single Record ............................................3-9
Changing Record Sets Via Conditions .....................3-10
Changing Record Sets Via Internal Tables ....................................3-11
Modifying Single Records and Sets ..........................3-12
Deleting a Single Record ............................................3-13
Deleting Record Sets Via Conditions .......................3-14
Deleting Record Sets Via Internal Tables ................................................................3-15
DB Rollback With Error Messages of Open SQL Change Statements..........................3-16
Database Updates With Open SQL: Unit Summary ................................................3-17
Navigating in the Exercises .......................................3-18
Exercises .......................................................................3-19
Tips on Model Solutions for this Course ..................3-22
Solutions ........................................................................3-23
LUWs and Client/Server Architecture ............................4-1
Course Overview Diagram - LUWs ...........................4-2
SAP Logical Unit of Work (SAP LUW):Preliminary Definition ..................................4-3
Database LUW ...............................................................4-4
R/3 Software View: Client/Server Architecture............................................................4-5
System Architecture: Implicit DB Commit........................................................4-6
Target: Bundling The DB Changes Of An SAP LUW ........................................4-7
LUWs and Client/Server Architecture: Unit Summary .........................................4-8
Exercises .........................................................................4-9
Solutions ........................................................................4-11
SAP Lock Concept .............................................................5-1
Overview: Overview .....................................................5-3
Why Set Locks? .............................................................5-4
Database Locks Are Not Enough ................................5-5
SAP Lock Concept: Logical Locks .............................5-6
Overview: Setting and Releasing Locks .....................5-7
Setting and Deleting Logical Locks ............................5-8
Calling the Lock Modules ............................................5-9
Lock Table ....................................................................5-10
Lock Arguments ..........................................................5-11
Lock Mode ....................................................................5-12
Using the Lock Mode: Other Users ..........................5-13
Using the Lock Mode: Same Program ......................5-14
Locks: Timescale .........................................................5-15
Overview: Lock Objects .............................................5-16
SAP Lock Objects .......................................................5-17
Generating Lock Modules ..........................................5-18
Overview: Using Locks: Time Sequence .................5-19
Reading Current Data .................................................5-20
Risk of Inconsistent Data as a Result of Using Locks Incorrectly ....................................5-21
Using a Lock Container ..............................................5-22
SAP Lock Concept: Unit Summary ..........................5-23
Exercises .......................................................................5-24
Solutions ........................................................................5-27
Organizing Database Updates ..........................................6-1
Course Overview Diagram - Database Updates........................................................6-2
Overview Organizing Database Updates: Direct Changes From the Dialog .........................6-3
Direct Changes from the Dialog: Timescale ....................................................6-4
Direct Changes From the Dialog: Data Flow ......................................6-5
Direct Changes From the Dialog: Locks ....................6-6
Overview of Changes From the Dialog: Using Delayed Subroutines...................6-7
PERFORM ON COMMIT: Timescale (1) .................6-8
PERFORM ON COMMIT: Timescale (2) .................6-9
PERFORM ON COMMIT: Data Flow .....................6-10
Overview Organizing Database Updates: Update Techniques...................6-11
Summary: Database Updates From the Dialog ................................6-12
Overview Update Techniques: Process ....................6-13
Update: Principle .........................................................6-14
Process: Writing Requests .........................................6-15
Process: Completing Requests ..................................6-16
Process: Reading Requests ........................................6-17
Process: Performing DB Updates ..............................6-18
Process: Deleting Requests ........................................6-19
Process: Flow ...............................................................6-20
Overview Update Techniques: Technical Implementation........................6-21
Update Modules ...........................................................6-22
Writing Requests .........................................................6-23
Completing Requests ..................................................6-24
The Result of ROLLBACK WORK .........................6-25
ROLLBACK WORK and Memory States..............................6-26
Rollback in the Update Program ...............................6-27
Update: Locks ..............................................................6-28
Overview Update Techniques: Use ...........................6-29
Asynchronous Update .................................................6-30
Local Update ................................................................6-31
Synchronous Update ...................................................6-32
SAP LUW: Comparison of the Timescale .....................................6-33
Overview Update Techniques: V1 and V2 Updates.........................6-34
V1 and V2 Update Modules ......................................6-35
Generating V1 and V2 Updates ................................6-36
V1 Update .....................................................................6-37
V2 Update .....................................................................6-38
Update and Lock Durations (Scope = 2) ..................6-39
Overview Update Techniques: The Concept of the SAP LUW ........................6-40
The SAP LUW - Developer Perspective ..................6-41
Properties of an SAP LUW ........................................6-42
Asynchronous Update in Three-Phase Model..................................6-43
Local Update in Three-Phase Model .........................6-44
Synchronous Update in Three-Phase Model......................6-45
Overview Update Techniques: Tips for Optimizing Database Changes .................6-46
DB LUW and Database Locks ..................................6-47
PERFORM ON COMMIT in the Update .................6-48
Organizing Database Updates: Unit Summary.....................6-49
Exercises .......................................................................6-50
Solutions ........................................................................6-52
Complex LUW Processing ...............................................7-1
Course Overview Diagram - Complex LUW Processing...................................7-2
Overview Complex LUW Processing:Call Techniques for Programs ...........................7-3
Synchronous Calls .........................................................7-4
Calling an Executable Program ..................................7-5
Calling a Transaction ....................................................7-6
Encapsulating Dialogs in Function Modules....................................7-7
Overview of Complex LUW Processing:Logical Memory Level Model.....................7-8
The Logical Memory Level Model .............................7-9
CALL TRANSACTION , SUBMIT AND RETURN.........................................................7-10
Implicit End of a Program or LEAVE PROGRAM ...............................7-11
LEAVE TO TRANSACTION ...................7-12
SUBMIT ..................................................7-13
CALL FUNCTION .......................................7-14
Asynchronous Call of a Function Module .........................................................................7-15
Overview of Complex LUW Processing:Data Transfer Between Programs ...............................7-16
Data Transfer Between Programs: Overview..........................................................................7-17
Data Transfer Via the Program Interface .................7-18
SUBMIT Statement: The WITH Addition....................................................................7-19
ABAP Memory and SAP Memory ............................7-20
Data Transfer Via the ABAP Memory .....................7-21
Parameter Transfer Via the SAP Memory .......................................................7-22
SAP Memory and CALL TRANSACTION..................................................................7-23
Overview Complex LUW Processing:LUW Processing for Program Calls .............................7-24
SAP LUWs With Synchronous Program Calls .............................................................7-25
SAP LUW for CALL TRANSACTION ..................7-26
Combined, Simplified Transaction Sequence..................................................................7-27
SAP LUWs For Function Modules Called Asynchronously ............................................7-28
Possible Use of Program Calls ..................................7-29
Overvie w Complex LUW Processing:Locks for Program Calls ................................................7-30
Locks Entries for Program Calls ...............................7-31
Complex LUW Processing: Unit Summary .............................................7-32
Exercises .......................................................................7-33
Solutions ........................................................................7-35
Appendix .............................................................................8-1
Solutions ..........................................................................8-2
Solutions ........................................................................8-12
Authorization Checks .................................................8-36
Authorization Checks: Unit Objectives...................................................8-37
Course Overview Diagram - Authorization Checks ...................................................8-38
Authorization Objects and Authorizations.......................................................................8-39
Performing Authorization Checks ........................8-40
Administering Authorizations ...............................8-41
Authorization Checks for Transactions..........................................................8-42
Authorization Checks: Unit Summary .................8-43
Section: Enhancements and Modifications ....................9-1
Content: Enhancements and Modifications ....................................................9-2
Introduction: Contents .....................................................10-1
Course Objective .........................................................10-2
Course Overview Diagram ........................................10-3
Main Business Scenario .............................................10-4
Changing the SAP Standard ...........................................11-1
Overview Diagram: Changing the Standard................................................11-2
Change Levels ..............................................................11-3
Procedure for Changing a Function ..........................11-4
Customizing ..................................................................11-5
Personalization .............................................................11-6
Change Levels in the ABAP Workbench .................11-7
Table Enhancements ...................................................11-8
Table Enhancements: SAP and the Customer ..............................11-9
Field Exits ...................................................................11-10
Program Enhancements: How they Work ...............................................................11-11
Program Enhancements: SAP and the Customer..................................................................11-12
Menu Enhancements: SAP and the Customer................................................11-13
Screen Enhancements ...............................................11-14
Modifications .............................................................11-15
Changing the SAP Standard: Unit Summary .................................................11-16
Data Used ....................................................................11-17
Personalization ..................................................................12-1
Personalization: Business Scenario ...........................12-2
Personalizing the Work Center: Unit Objectives ...........................................12-3
Overview Diagram Personalization ..........................12-4
Personalization Levels ................................................12-5
Description of the Work Center ................................12-6
Area Menus ..................................................................12-7
Area Menus: Objects ...................................................12-8
Creating Area Menus ..................................................12-9
Maintaining Area Menus: Important Functions.......................................................12-10
Area Menus: Migration of Earlier Techniques................................................12-11
Role -Based Menus ....................................................12-12
Activity Groups: Work Steps ..................................12-13
Creating Activity Groups .........................................12-14
Activity Groups: Build Menu ..................................12-15
Activity Groups: Maintain authorizations....................................................12-16
Activity Groups: Assign Users ................................12-17
Using Delivered Activity Groups ...........................12-18
Personalizing Transactions: Topic Objectives ..........................................................12-19
Transaction Variants: Objectives ............................12-20
Transaction Variants: Example ...............................12-21
Transaction Variants: Principle ...............................12-22
Transaction Variants: Options: ................................12-23
Creating Transaction Variants .................................12-24
Transaction Variants: Evaluating Fields .................12-25
Screen Variants ..........................................................12-26
GuiXT ..........................................................................12-27
GuiXT: Script Language ..........................................12-28
Starting Transaction Variants ..................................12-29
Creating Variant Transactions .................................12-30
Inserting Variant Transactions in the Menu......................................................12-31
Personalization: Unit Summary ..............................12-32
PersonalizationExercises ..........................................12-33
Personalization Solutions .........................................12-38
Enhancements to Dictionary Elements .........................13-1
Enhancements to the ABAP Dictionary Overview Diagram.......................13-2
Enhancements to Dictionary Elements .....................13-3
Table Enhancements: Overview ...............................13-4
Append Structures .......................................................13-5
Append Structures at Upgrade ..................................13-6
Customizing Includes .................................................13-7
Enhancements to Dictionary Elements .....................13-8
Global Enhancements .................................................13-9
Field Exits ...................................................................13-10
Global and Local Field Exits ...................................13-11
Creating Field Exits ...................................................13-12
Field Exits: Source Code ..........................................13-13
Local Field Exit .........................................................13-14
Activate Field Exit ....................................................13-15
Enhancements to Dictionary Elements: Unit Summary .....................................13-16
Enhancements to Dictionary Objects Exercises............................................................13-17
Erweiterungen an Objekten des Enhancements to Dictionary Objects Solutions.............13-20
Enhancements Using Customer Exits ...........................14-1
Enhancements using Customer Exits Overview Diagram.....................................14-2
Customer Exits: Overview .........................................14-3
SAP Application Enhancements ...............................14-4
Customer Enhancement Projects ..............................14-5
Enhancements and Enhancement Projects ......................................................14-6
Customer Exits: Enhancement Management..........................................14-7
The SAP Enhancement Creation Procedure .....................................................14-8
Procedure at the Customer's Premises ......................14-9
Creating Customer Enhancement Projects..............................................14-10
Assigning SAP Enhancements to Customer Projects................................14-11
Editing Components ..................................................14-12
Activating Enhancement Projects ...........................14-13
Transporting Projects ................................................14-14
Customer Exits: Function Module Exit ..................14-15
Program Exits Overview ..........................................14-16
Function Module Exit: Process Flow ......................14-17
Calling and Creating Function Modules .................14-18
Finding Function Module Exits ..............................14-19
Editing Function Module Exits ...............................14-20
Structure of a Function Group .................................14-21
Structure of an Exit Function Group .......................14-22
Exit Function Group: Global Data ..........................14-23
Customer Source Code .............................................14-24
Exit Function Group: Other SAP Objects ............................14-25
Exit Function Group: Customer Objects .................................14-26
Customer Screens ......................................................14-27
Summary: Function Module Exits ..........................14-28
Customer Exits: Menu Exit ......................................14-29
Menu Exits Overview ...............................................14-30
Menu Exit Requirements ..........................................14-31
Editing Menu Exits ....................................................14-32
Menu Exits and Function Module Exits .................14-33
Summary: Menu Exits ..............................................14-34
Customer Exits: Screen Exit ....................................14-35
Screen Exits Overview .............................................14-36
Subscreens in the R/3 System .................................14-37
Calling a Normal Subscreen ....................................14-38
Defining Screen Exits ...............................................14-39
Calling Customer Subscreens ..................................14-40
Transporting Data to Subscreens .............................14-41
Transporting Data from Subscreens .......................14-42
Editing Subscreens (1) ..............................................14-43
Editing Subscreens (2) ..............................................14-44
Summary: Screen Exits ............................................14-45
Enhancements using Customer Exits: Unit Summary .......................14-46
Customer Exits Exercises .........................................14-47
Customer Exits Solutions .........................................14-50
Business Transaction Events ..........................................15-1
Overview: Transaction Events ..................................15-2
BTE: Software Delivery Process ..............................15-3
Business Transaction Events (BTE) ..........................15-4
BTE: Possible Scenarios (1) ......................................15-5
BTE: Possible Scenarios (2) ......................................15-6
Publish & Subscribe Interfaces; Process Interfaces......................15-7
BTE Functions: Process Flow ..................................15-8
BTE: Calling Program ................................................15-9
Business Transaction Events: SAP and the Customer ............................15-10
Finding a Business Transaction Event ....................15-11
BTE: Documentation ................................................15-12
BTE: The Product Function .....................................15-13
Implementing a BTE .................................................15-14
Customer Exits and BTE: Differences ...................15-15
Business Transaction Events: Unit Summary.....................................15-16
Business Add-Ins: ............................................................16-1
Business Add-Ins: Business Scenario .......................16-2
Add-Ins: Overview Diagram .....................................16-3
Business Add-Ins: Motivation ...................................16-4
Software Delivery Process .........................................16-5
Business Add-Ins: Interfaces in ABAP Objects..................16-6
Objects ...........................................................................16-7
Instances of Function Groups as Objects .................16-8
Classes Generalize Function Groups ........................16-9
Interfaces .....................................................................16-10
Business Add-Ins: Implementing business add-ins................................16-11
Business Add-Ins: Architecture ..............................16-12
Business Add-Ins: Components ..............................16-13
Business Add-Ins: Process Flow .............................16-14
Business Add-Ins: Calling Program .......................16-15
Business Add-In Definition: Naming Conventions (1)................................16-16
Finding a Business Add-In .......................................16-17
Implementing Business Add-Ins: Initial Screen .............................................16-18
Business Add-In Implementation: Naming Conventions......................................16-19
Implementing Business Add-Ins: Methods..........................................16-20
Implementing Business Add-Ins: Private Methods.....................................16-21
Implementing Business Add-Ins: Activation.........................................16-22
BAdI: Function Codes - Overview .........................16-23
Business Add-In: Function Codes - Prerequisites..........................16-24
Business Add-Ins: Function Codes - Restrictions..........................................16-25
Business Add-Ins: Function Code Processing in the Program ....................16-26
Business Add-Ins: Defining business add-ins........................................16-27
BAdI Definition: Initial Screen ...............................16-28
Business Add-in Definition: Attributes ..................16-29
BAdI Definition: Function Codes ...........................16-30
BAdI Definition: Interface Methods .......................16-31
Business Add-in Definition: Method Interface Parameters ..........................16-32
BAdI Definition: Activating the Interface ..................................16-33
Business Add-in Definition: Call in Program.............................16-34
Calling a Filter-Dependent BAdI ............................16-35
Comparison With Other Enhancement Techniques ...................16-36
Business Add-Ins: Unit Summary ...........................16-37
Business Add-Ins Exercises .....................................16-38
Business Add-Ins Solutions .....................................16-41
Modifications ....................................................................17-1
Modifications: Overview Diagram ...........................17-2
Modifications: What are Modifications ...................17-3
Originals and Copies ...................................................17-4
Corrections and Repairs .............................................17-5
Modifications and Upgrades ......................................17-6
Modifications: Procedure ...........................................17-7
Registering Modifications in SSCR ..........................17-8
Carrying Out a Registered Modification ..................17-9
When the Modification is Finished ........................17-10
Versions .......................................................................17-11
Critical Success Factors (1) .....................................17-12
Critical Success Factors (2) .....................................17-13
Critical Success Factors (3) .....................................17-14
Modifications: Modification Assistant ...................17-15
Modification Assistant: Objectives .........................17-16
Modification Adjustments Then and Now...................................17-17
Modification Assistant: Software Layers ..................................17-18
Modification Assistant: Tools Supported.................................17-19
Modification Assistant: Prerequisites .....................17-20
Modification Assistant Icons ...................................17-21
Example: ABAP Editor ............................................17-22
Modification Overview ............................................17-23
Restoring the Original ...............................................17-24
Modifications: Modification Browser .....................17-25
Modification Browser: Initial Screen ......................17-26
Modifications: Non-registered modifications..........................17-27
Documenting Modifications in Programs .................................17-28
Modification Logs: Example ...................................17-29
Modifications: User exits .........................................17-30
User Exit: Structure of a Module Pool ....................17-31
User Exits ....................................................................17-32
User Exit: Example ...................................................17-33
Using User Exits ........................................................17-34
Modifications: Modification Adjustments ...................................17-35
Objects for Adjustment .............................................17-36
Modification Adjustment: SPDD and SPAU..............................17-37
Modification Adjustment: Objects ..........................17-38
Transporting Adjustments between Systems ..................................17-39
Modification Adjustment: Initial Screen .................................17-40
Modification Assistant Icons ...................................17-41
Modifications: Unit Summary .................................17-42
Modifications Exercises ...........................................17-43
Modifications Solutions ...........................................17-45
Epilog .................................................................................18-1
Modifications: Critical Repository Objects ................................18-2
The Amount of Work Necessary at Upgrade Increases..............................18-3
Avoiding Adjustments ................................................18-4
Modifying versus Copying ........................................18-5
Evaluation of ABAP Development Projects................................18-6
Naming Conventions for Repository Objects.....................................18-7
Epilog: Unit Summary ................................................18-8
Download attached file: You must be Loged in to download file