Simple ABAP/4 for trouble shooting

May 25th, 2004

Objectives:

Understand and get an idea on what ABAP/4 programming does, and what is the component in ABAP workbench

Get to know common statement, understand the ABAP program logic roughly.

Able to do the basic investigation when facing the problem.

Content

Introduction R/3 Basis system overview ABAP/4 overview
Component, Program, ABAP dictionary, Function Module , Message/Transaction code, etc.

Common Statement / Command
- Main event in ABAP program - General ABAP command

Transportation for ABAP objects Type of problem and how to investigate
Program bug, ABAP runtime error, Update terminate, Unexpected error message.

Introduction R/3 Basis system overview
R/3 user R/3 user R/3 user

Presentation component

ABAP Workbench

R/3 Basis system

R/3 R/3 Application 1 ... Application N

Kernel & Basis services

Database Management System

Database

Unexpected error message. Common Statement / Command . Update terminate. Function Module .Content Introduction R/3 Basis system overview ABAP/4 overview Component. . Message/Transaction code. Program.General ABAP command Transportation for ABAP objects Type of problem and how to investigate Program bug.Main event in ABAP program . ABAP dictionary. etc. ABAP runtime error.

ABAP/4 overview Topics: Often used transactions What is ABAP/4 program? ABAP dictionary Function Module Message Transaction code Authorization in ABAP object .

‡ SE11 . You also use the Dictionary to generate database objects like tables and indexes.Repository Browser: Used to display and edit hierarchical lists of development objects. help information. use the library to write new modules and look up information on existing modules . data relationships. and other information. The Dictionary is a central storage area for system-wide data definitions. they are available for use anywhere in any program throughout the system ‡ SE38 .ABAP editor : Create/edit/Display program code ‡ SE37 .Dictionary : Used to define and save data definitions You can also store documentation.Function Builder : define and store function modules.Often used transactions ‡ SE80 . Because definitions are stored centrally.

Often used transactions (con¶t) ‡ SE51 .Screen Painter : Used to design the screens in an application's graphical user interface.Menu Painter : Used to design the menus that appear in your interface ‡ SE16 . ‡ SE41 .Data browser : Display data in Transparent table or Database view ‡ SM30 - Table maintenance : Maintain data .

ABAP/4 overview Topics: Often used transactions What is ABAP/4 program? ABAP dictionary Function Module Message Transaction code Authorization in ABAP object .

For example: RMCB0100 ) INCLUDE program Can not run on its own. has been included in other program Module pool Processing step of screens. can be executed via transaction code or Menu function (For example: SAPMV45A .Sale order processing) Function group Contain function modules (SE37) Subroutine pool Externally-called subroutines .What is ABAP/4 program? ABAP/4 : Advance Business Application Programming Type of ABAP/4 program 1 I M F S Executable program(Report/Interface) Can be started with transaction code/directly/background (via SE38 or SA38 .

ABAP/4 overview Topics: Often used transactions What is ABAP/4 program? ABAP dictionary Function Module Message Transaction code Authorization in ABAP object .

Data dictionary View Table Structure Data element ABAP Dictionary Domain F4 Search help Lock object .ABAP Dictionary SE11 .

ABAP/4 overview Topics: Often used transactions What is ABAP/4 program? ABAP dictionary Function Module Message Transaction code Authorization in ABAP object .

Different from normal ABAP routine is the clearly defined interface for passing data to and from the function module.Statement in ABAP to call function module are: .Located in Function group (main program start with SAPLxxxx) .Special external subroutines (include) stored in a central library .ABAP/4 program: Include program . The calling program and the called function module have separate work areas .CALL FUNCTION µxxxxx¶ .Can be tested separately in SE37 .Function module Function Module .

ABAP/4 overview Topics: Often used transactions What is ABAP/4 program? ABAP dictionary Function Module Message Transaction code Authorization in ABAP object .

Abend (Transaction terminated) X . Table store the message text is T100.Exit (Terminated with short dump) Note : Transaction code for message maintenance is SE91.Success (message on next screen) I .MESSAGE . ABAP key word .Error (Correction required) S .Information (press Enter to continue) A .Warning (Correction possible) E . language dependent.Message There are several different types of message: W .

ABAP/4 overview Topics: Often used transactions What is ABAP/4 program? ABAP dictionary Function Module Message Transaction code Authorization in ABAP object .

(client specific) start another transaction with variant (for example UPAR) Area menu . Transaction type: Dialog transaction . Maintain via SE93 .Start program with type 1 (for example MCBA) Variant transaction .Flow by sequence of screens (for example FB03) Report transaction .pre-assign values in the initial screen and suppress the screen when transaction is executed (for example OB22) Note : All transactions are stored in table TSTC.Transaction code Transaction code is: Sequence of alphanumeric characters forming a code for business task.Menu which contain the group of frequently-used transactions (for example S001) Parameter transaction .

ABAP/4 overview Topics: Often used transactions What is ABAP/4 program? ABAP dictionary Function Module Message Transaction code Authorization in ABAP object .

Authorization in ABAP object ‡ Program authorization ‡ Transaction code ‡ Table maintenance/Data browser .

. This field contains the name of a program group that allows users to y execute programs y schedule jobs for background processing y maintain programs y maintain variants When creating a program.Program authorization group Authorization group is field of the authorization objects S_DEVELOP (program development and program execution) and S_PROGRAM (program maintenance). you can specify an authorization group as one of the program attributes. This allows you to group together programs for the purposes of authorization checking.

Transaction authorization group Authorization object in transaction code will be checked whenever the transaction is started. The following object will be checked S_TCODE(Authorization check for transaction start ) The authorization checks defined by the developer with transaction SE93 (transaction maintenance) or in the ABAP/4 source code continue to be performed. Field to be checked is TCD: Transaction code .

Possible values are: .Table maintenance/Data browser Authorizations for displaying or maintaining tables. enhanced table maintenance (SM30) or the Data Browser (SE16). change or delete (Maintain) table entries . (Using SM31 to display the authorization group table) Activity: Allowed operations.03: Display table entries only . The object only controls access using the standard table maintenance tool (SM31). including access in Customizing. Object S_TABU_DIS -Table Maintenance (via standard tools such as SM31) will be checked for the following fields: Authorization group for DD objects: Authorization for tables by authorization class according to table TDDAT.02: Create.

Content Introduction R/3 Basis system overview ABAP/4 overview Component. Program. Unexpected error message. Message/Transaction code.General ABAP command Transportation for ABAP objects Type of problem and how to investigate Program bug. etc. Common Statement / Command . Function Module . ABAP dictionary. Update terminate.Main event in ABAP program . ABAP runtime error. .

Common Statement / Command Topics: Event in ABAP/4 program .Dialog module . lists) ABAP statement and Keyword .Executable program (Selection screen.

Module xxxx Module yyyy PAI Module Module aaaa PBO Module. Module bbbb Module xxxx Module yyyy PAI Module PBO Module.Event in ABAP/4 program Event in Dialog Module PBO Module. Module aaaa Module Module xxxx bbbb Module yyyy PAI Module Module aaaa Module bbbb 100 Transaction code has been requested from R/3 user 200 300 Dialog screen chain PBO = Process Before Output PAI = Process After Input Module pool .

Question?? .

Common Statement / Command

Topics: Event in ABAP/4 program
- Dialog module - Executable program (Selection screen, lists)

ABAP statement and Keyword

ABAP statement and Keyword

Statement
The ABAP programming language consists of the following element types: STATEMENT, KEYWORD, COMMENT. An ABAP program consists of individual ABAP statements. Each statement begins with a keyword and ends with a period. There might be comment in the same line as a statement For example:
PROGRAM ZTEST.

WRITE µHello world¶.

In this case program ZTEST will generate the list consist of line µHello world¶.

ABAP statement and Keyword(con¶t)

Keywords
Declarative keywords : ‡ ‡
define data types or declare the data objects

Modularization keywords : define processing blocks in an ABAP program Event keyword :The respective processing blocks are processed as Define keyword: define processing blocks that are processed as
soon as a particular event occurs soon as they are called by an explicit statement in an ABAP program or in a screen flow logic

Control keywords: control the flow of an ABAP program according to certain
conditions

Calling keywords: call processing blocks (defined by modularization
keywords) in the same or other ABAP programs or branch completely to other ABAP programs

Expression and Operation keywords: Process the data

ABAP statement and Keyword(con¶t)

Declarative keywords
TYPES create user-defined elementary data types and structured data types Example TYPES: surname(20) TYPE C. DATA define local/global variable for structure/internal table/memory block address Example DATA: BEGIN OF address, OCCURS 0 address_number(10) TYPE C, street(30), country LIKE T001-LAND1, END OF address. TABLES create a data object called a table work area refer to ABAP dictionary(tables, structure,view) Example TABLES: KNA1, KNB1. CONSTANTS declare it as a fixed value variable Example CONSTANTS: name(10) VALUE µExxon Mobil¶ Internal table structure

ABAP statement and Keyword(con¶t) Modularization keywords Event define keywords INITIALIZATION AT SELECTION-SCREEN START-OF-SELECTION GET <table> END-OF-SELECTION TOP-OF-PAGE END-OF-PAGE AT LINE-SELECTION AT USER-COMMAND Before selection screen is displayed After input selection screen + selection screen is active After process selection screen when logical DB offer a line of database table After all selection has been done Process when new page is started Process when page is ended When user select line in the list When user press function key/enter command in command field .

...ENDMODULE After process selection screen .ABAP statement and Keyword(con¶t) Modularization keywords (con¶t) Process define key word for statement block FORM.ENDFUNCTION Define Function module MODULE.ENDFORM Define subroutine FUNCTION....

SIGN( x ) = 1 if x>0 SIGN( x ) = 0 if x=0 SIGN( x ) = -1 if x<0 Smallest integer value that is not less than x Largest integer value that is not greater than x Interger part of x Decimal part of x String length CEIL FLOOR TRUNC FRAC STRLEN .ABAP statement and Keyword(con¶t) Built in function Arithmetic & string function ABS SIGN Amount (absolute value) x von x Sign of x.

WRITE statements 5. SELECT statements 2. Subroutines: FORMS. Internal Tables 3. FUNCTION MODULE . SAP tables vs. LOOP-ENDLOOP 4. Comment in ABAP 6. Expressions and Operations in ABAP 7.ABAP statement and Keyword(con¶t) 1.

0: if one or more table entries were retrieved .ABAP statement and Keyword(con¶t) SELECT statement ‡ to read table entries (records) from a table (database) ‡ the return code is stored in system field SY-SUBRC .4: if no table entries were retrieved (table is empty/ no data match the criteria) .

. ORDER BY <f1> <f2> . WHERE <condition> .ABAP statement and Keyword(con¶t) SELECT statement  For selecting 1 or more records from a table: SELECT * FROM <dbtab> Additions . . . <fn> . . ORDER BY PRIMARY KEY . . . . .

. . . ( full key ) . .  For selecting a single record from a table: SELECT SINGLE * FROM <dtab> WHERE <condition>. . <hn>) FROM <dbtab> . . <fn> INTO (<h1> .ABAP statement and Keyword(con¶t) SELECT statement  For selecting individual columns from a table: SELECT <f1> .

<fn> INTO (<g1> <g2> . .  Aggregate expressions: SELECT AVG( <f1> ) COUNT( DISTINCT <f1> ) COUNT( * ) MAX( <f1> ) MIN( <f1> ) SUM( <f1> FROM <dbtab> . <gn>) FROM <dbtab> . . . .ABAP statement and Keyword(con¶t) SELECT statement  For excluding duplicates: SELECT DISTINCT <f1> <f2> . <gn>) . . . INTO (<g1> . . . . .

ABAP statement and Keyword(con¶t) SAP Table ‡ Two dimensional matrix describing relationship in database system ‡ Components: ‡ ‡ ‡ ‡ Table fields Foreign keys Technical Settings Indexes .

ABAP statement and Keyword(con¶t) Internal Table ‡ One way to process large quantities of data in ABAP ‡ Internal table is a dynamic sequential dataset in which all records have the same structure and a key ‡ The data is taken from a fixed structure. stored line by line in the memory .

END OF T_T001K.ABAP statement and Keyword(con¶t) Internal Table Declaration <No header line> TYPES: BEGIN OF T_T001K. DATA: IT_T001K TYPE T_T001K OCCURS 0. . BUKRS LIKE T001K-BUKRS. BWKEY LIKE T001K-BWKEY.

BUKRS LIKE T001K-BUKRS. ‡ WITH HEADER LINE .ABAP statement and Keyword(con¶t) Internal Table Declaration <With header line> DATA: BEGIN OF IT_T001K OCCURS 0. BWKEY LIKE T001K-BWKEY. END OF IT_T001K.

.ABAP statement and Keyword(con¶t) SAP --> Internal table Allows us to get contents of table and put it into internal table SELECT <field1> <field2>. <fieldn> FROM <table> INTO TABLE <internal table> WHERE <condition> .

ABAP statement and Keyword(con¶t) LOOP Command ‡ To perform looping operation in the flow logic ‡ Four kinds of loops in ABAP: ‡ Unconditional loops using the DO statement ‡ Conditional loops using the WHILE statement ‡ Loops through internal tables and extract datasets using the LOOP statement ‡ Loops through datasets from database tables using SELECT statement .

SY-INDEX Loop index .ABAP statement and Keyword(con¶t) DO Command DO <n> TIMES. statements ENDDO.

SUBTRACT 1 FROM COUNTER. statements ENDWHILE. .ABAP statement and Keyword(con¶t) WHILE Command WHILE <logical expression>. . . . ENDWHILE. SY-INDEX Loop index WHILE COUNTER > 0.

WRITE: / IT_T001K-BWKEY. ENDLOOP. .ABAP statement and Keyword(con¶t) LOOP Command Example LOOP AT IT_T001K.

ABAP statement and Keyword(con¶t) WRITE Command The basic ABAP statement for displaying data on the screen WRITE <f> <AT position(length)> <option> <AS CHECKBOX> <AS SYMBOL> <AS ICON> <AS LINE> .

ABAP statement and Keyword(con¶t) WRITE Command ‡ <OPTION> behind the WRITE statement is for formatting options ‡ E. RIGHT-JUSTIFIED ‡ The most commonly used options: ‡ CURRENCY w to treat the content of field <f> as a currency amount with w as a currency key ‡ DECIMALS d to determine number of decimals to be displayed ‡ UNIT u to format the value according to the unit specified in the field u.NO-ZERO. NO-SIGN. CENTERED.g. The content of field <f> is treated as a quantity.. . : . DD/MM/YY. No GROUPING. ‡ LEFT-JUSTIFIED.

WRITE: it_bseg-dmbtr CURRENCY it_bkpf-hwaer. WRITE: text-t01 LEFT-JUSTIFIED. .ABAP statement and Keyword(con¶t) WRITE Command Example WRITE: / µWrite¶.

ABAP statement and Keyword(con¶t) Comment ‡ Written between statements of the ABAP program to explain its purpose to a reader / for internal documentation ‡ Helps to understand and change the program ‡ Flagged by special character: ‡ Asterisk (*) entire line to be a comment ‡ Double quotation mark (³) part of a line to be a comment ‡ Ignored by the system .

³Sales Order Number . 20 it_vbak-vbeln.ABAP statement and Keyword(con¶t) Comment example * Write Sales Order number to the screen Write: µSales Order : µ.

ABAP statement and Keyword(con¶t) Expression & Operation ‡ ‡ ‡ ‡ ‡ Relational Operator String Comparison Logical Expression If/Case/Check Statement Exit/Continue Statement .

. ..ABAP statement and Keyword(con¶t) Relational Operator Display EQ = NE <> >< GT > GE >= => LT < LE <= =< Meaning Equal to Not equal to Greater than Greater than or equal to Smaller than Smaller than or equal to DATA: START TYPE D. IF SUM1 . .. BETWEEN f1 and f2 SUM2 TYPE P. SUM1 TYPE F. IF SUM1 GT SUM2 . . . BETWEEN 0 AND 100 Interval Initial value .. .. IF START IS INITIAL . IS INITIAL ..

ABAP statement and Keyword(con¶t) String Comparison <f1> CO <f2> contains only: f1 contains only characters from f2 ACCOUNT CO '0123456789' <f1> CA <f2> contains any: f1 contains at least one character from f2 contains string: f1 contains the string f2 'DE' contains pattern: f1 corresponds to the model f2 Model: * any string + any character # escape symbol '*B+D*' <f1> CS <f2> 'ABCDE' CS <f1> CP <f2> 'ABXDE' CP .

AND 2.ABAP statement and Keyword(con¶t) Logical Expression 1. OR 3. NOT COUNTER GE 0 COUNTER GT 0 AND FLAG IS INITIAL ( FLAG1 NE SPACE OR FLAG2 NE SPACE ) AND COUNTER BETWEEN 0 AND 100 COUNTER EQ 0 AND NOT ( FLAG1 EQ SPACE AND FLAG2 EQ SPACE ) .

IF Statement statements ENDIF. ENDIF. statements IF <logical expression>.ABAP statement and Keyword(con¶t) IF <logical expression>. statements ELSE. statements ELSE. statements ELSEIF <logical expression>. . statements ENDIF. statements ELSEIF <logical expression>. IF <logical expression>.

statements WHEN <value3>. WHEN <value1>. statements WHEN OTHERS. statements WHEN <value2>.ABAP statement and Keyword(con¶t) CASE statement ‡ Execute different statement blocks depending on the contents of particular data fields ‡ WHEN OTHERS: ‡ contents of <field> does not equal to any of the <value?> contents CASE <field>. statements ENDCASE. .

ABAP statement and Keyword(con¶t) CHECK statement 1 CHECK <logical expression>. CHECK within a loop structure. WHILE COUNTER GT 0. statements . 2 CHECK outside loop structures. statements ENDWHILE. ‡ Within Loop: to terminate loop pass conditionally statements CHECK FLAG NE SPACE. statements CHECK <condition>.

ABAP statement and Keyword(con¶t) ‡ Terminate loop entirely without any condition ‡ Terminate a subroutine without any condition EXIT. . 1 EXIT within a loop structure. DO . statements .. statements IF . EXIT. statements IF COUNTER GE 100.. EXIT outside loop structure. ENDIF. ENDIF... EXIT. statements 2 ENDDO.

‡ Terminate loop pass immediately without any condition statements IF SY-INDEX GE 10 AND SY-INDEX LE 20. . statements ENDDO. CONTINUE.ABAP statement and Keyword(con¶t) CONTINUE. DO 100 TIMES. ENDIF.

. . . . Subroutine SUB1 Subroutine Calculate_tax ABAP/4 function library Function module Calculate_tax . . . Call calculate_tax Function module ‡ Avoid redundancy ‡ Modularization: ‡ easy to read ‡ easy to call PROGRAM RSDEMO04. . . PROGRAM RSDEMO03. Subroutine Calculate_tax PROGRAM RSDEMO02. .ABAP statement and Keyword(con¶t) PROGRAM RSDEMO01. Call calculate_tax . Call calculate_tax . .

‡ Calling internally PERFORM <name> [<parameters>]. <statement block> ENDFORM. ‡ Calling external subroutine PERFORM <name>(program name) <parameters> [IF FOUND] .ABAP statement and Keyword(con¶t) ‡ Define FORM <name> [<parameters>].

. Parameters: p_path like rlgrap-filename..... endform... perform f_check_file_exists using p_path...ABAP statement and Keyword(con¶t) form f_check_file_exists using filename................ .......... ......... .

Content Introduction R/3 Basis system overview ABAP/4 overview Component. etc.Main event in ABAP program . Function Module . Message/Transaction code. ABAP dictionary. Program. Unexpected error message. Common Statement / Command . ABAP runtime error. . Update terminate.General ABAP command Transportation for ABAP objects Type of problem and how to investigate Program bug.

: Function D. DOMA.name for R/3 Repository objects and Customizing objects LIMU .enables transport of R/3 Repository object components Obj: Object type (for example. FORM.K. DTEL. PROG.ERR_IMP.OK_IMP and OK_GEN . there are several ABAP objects which are transportable Object In Transport request contain the following key PgmID: Program Id in request and task. normally there are 2 types for ABAP objects R3TR .Transportation of ABAP objects Type of ABAP object In Workbench organizer.M ObjStatus: LOCKED.) Object name: Name of the each object Funct..

. .Transportation of ABAP objects (con¶t) Version management serves different purposes and user groups: . who requires a complete history of changes.The developer can restore a previous version by reactivating it.The developer can keep track of his or her work ("What have I changed?") . .It provides the basis for the auditor.It enables customers to adjust data with the help of the system after upgrading to a new Release.The system administrator can monitor work ("Which objects were changed and how were they changed in a specific time interval?") .

under menu Environment . Under menu Utilities-->Version management Function module Transaction code SE37. Version management Workbench Organization Transaction code SE09. Go to specific object and under menu utilities.Transportation of ABAP objects (con¶t) ABAP object Version compare ABAP program Transaction code SE38. Under menu Utilities-->Version management Data Dictionary Transaction code SE11. Under menu Utilities-->Version management Object Browser Transaction code SE80.

you can 1. Compare the object in 2 versions 3.Transportation of ABAP objects (con¶t) ABAP object Version compare From Version management. Display Transport Request . Remote compare with another system 5. Retrieve the content of older version 4. Display the object in other version 2.

Unexpected error message.Main event in ABAP program . Message/Transaction code.General ABAP command Transportation for ABAP objects Type of problem and how to investigate Program bug. Function Module .Content Introduction R/3 Basis system overview ABAP/4 overview Component. etc. . Common Statement / Command . Update terminate. ABAP dictionary. ABAP runtime error. Program.

Using transaction code ST22 to analyze error. system exception. Unexpected message Update Terminate Cause: Update module can not be completed Program bug Cause: Written code is not correct . etc.Type of problem & How to investigate Type of problems ABAP Runtime Error Cause: Program error. database process error.

Analysis Error ID Date and time Double click to display detail .ABAP Runtime error .

Unexpected message How to deal with unexpected message? 1. Go to Message long text if available. ‡ Debugging ‡ Use ³Where used list´ function to find out the code where message is located (Not applicable for dynamic call) . Find the message location. the logic that drive the message appearance. Read through the section in the message help text. process where appropriate. Message help text component ‡ Diagnosis ‡ System response ‡ Procedure 3. 2.

Debugging Set Debugger ON In Debugging screen. 2.Unexpected message (con¶t) How to debug and locate the message in the program? 1. Set dynamic breakpoint on command ³Message´ Select debugging -> Continue (F8) When program reach MESSAGE command. Double click on the status bar(if the message appear only in status bar . see the related data/value from debugging screen. not popup) OR press F1 for popup message. . cursor will be stopped Check the above logic before get into the current command. Using ³Where used list´ Function in message workbench SE91/SE80 When message is displayed. Go to transaction code SE91/SE80 to find the location of the message call.

Analyzing the error Go to transaction code SM13 to analyze the update error. You will get the following information: Where the error occurred: Program name. function module. either Error message Or ABAP runtime error (short dump) might be created.Update terminate Update terminate: Message/SAP internal mail will be sent to the transaction owner. line number and error text. (Or Select Tools --> Administration --> Monitoring --> Update) Go to detail in update modules. (go to ABAP short dump Or Editor to locate the position) Why the error occurred: .

Find out what went wrong. 2. Use find function in ABAP editor . Use Call Hierarchy (SE48) 3. Locate the position in the ABAP program How to find the right place? 1. Debugging 2.Program bug Analyzing the error 1.

‡ Set Watch points. . ‡ Display the contents of an internal table. ‡ Continue processing after an interrupt. ‡ Set and delete static and dynamic breakpoints. ‡ Display field contents during runtime.Simple Debugging How to: ‡ Switch on the debugger. ‡ Change field contents for testing purposes. ‡ Stop a program at specific key words or events or when a fields contents change. ‡ Display and use the debugger¶s six different views. ‡ Change the contents of an internal table.

Press enter to start. /hs Start the Debugger in System mode.Object browser . SE38 Start of programs in the debugging of transaction code SE38 SM50/SM51 via debugging menu SE80 . for example. in order to debug the system program (program with type S) Appropriate menu options under system -> Utilities -> Debug ABAP Break-points Command.Simple Debugging Start debugging: /h Start the debugger in Normal mode.

Or BREAK <User name> Dynamic break-point In ABAP Editor SE38 --> Utilities --> Breakpoints --> Display/Set In Debugging mode Place the cursor on the statement Choosing break-point -> Set/Delete At ABAP command At Event/Subroutine At Function module System exception .Simple Debugging Set and delete static and dynamic breakpoints Static break-point Command BREAK-POINT.

module and current statement . sub routine. display event.Simple Debugging Stepping Single step (F5) Execute (F6) Return (F7) Continue (F8) Display mode Field : Display content of fields up to 8 fields Table: Display content of internal table Watchpoints: Manage watchpoint during debug mode Calls : Display Call stack up to current statement (in sequence) Overview: structure of program.

Simple Debugging Caution when debugging in Production system Since only a restricted number of dialog work processes can be switched to debugging mode. you should leave the debugger as soon as possible when you have finished working with it. Otherwise. the work process is not released for other users .

Question ?? .

Sign up to vote on this title
UsefulNot useful