Showing posts with label DDIC. Show all posts
Showing posts with label DDIC. Show all posts

Monday, April 25, 2022

Differences between single select &select up to 1 in SAP ABAP.

Differences between single select &select up to 1 rows:- 

 Select single

 Select up to 1 rows 

1. It always retrieves only one record 

at a time.

2. Here we must pass entire primary 

key combination in the where 

condition.

3. This is used to retrieve particular 

record.

Syntax:-

1. It always retrieves only one 

record.

2. Enough to pass a part of key 

combination in the where condition. 

It always picks the first record 

among the matched records.

3. This is used for validation.


Create Table step in SAP ABAP

Create Table step in SAP ABAP. 

Steps to create the Emp table by using Top-down approach data type. 

element:-

 Execute SE11.

 Select the radio button database table.

 Provide your table name (YSPRAO_730_Emp1).

 Click on create – enter.

 Provide any short meaningful description (Emp table by using Top-down 

approach).

 Provide delivery class (a).

 Select the maintenance allowed.

 Click on the fields tab.

 Provide the field name (Eid) & data element name which is not there 

(ZZSPRAO_730_Eid).]

 Double click on the data element – save before editing – yes – local object –

cerate the data element – yes.

 Provide a meaningful description.

 Provide domain name which is not created (ZSPRAO_730_Eid).

 Double click on domain – save before editing – yes – local object – yes. 

 Provide a short description, data type & length.

Eid ZZSPRAO_730_Eid.

  Save the domain.

 Check the domain.

 Activate the domain.

 Come back.

 Save the data element.

 Check the data element.

 Activate the data element.

 Come back.

 Repeat the same for all the fields

Steps to create Data element in SAP ABAP.

Steps to create Data element in SAP ABAP. 

 Execute SE11.

 Select the radio button data type.

 Provide your data element name (YYSPRAO_730_Eid).

 Click on create – enter.

 Provide any short meaningful description (id of the emp).

 Provide domain name which is already created – enter.

 Save the data element.

 Check the data element.

 Activate the data element.

 Repeat the same procedure for all the data elements

Steps to create Domain in SAP ABAP.

 Steps to create Domain in SAP ABAP. 

 Execute SE11.

 Select the radio button domain.

 Provide your domain name (YSPRAO_730_Eid).

 Click on create.

 Provide any short description (domain).

 Provide data type & length.

 Save the domain.

 Check the domain.

 Activate the domain.

 Repeat the same steps to all the domains

Tuesday, October 6, 2020

Differences Between Database View & Projection View in SAP ABAP.

 Database View & Projection View in SAP ABAP.



· Database view can built over many tables whereas projection view can be built over a single table only.

 Database view can be updated if the view is built over a single table whereas in projection view data can be updated.

 In case of database view, data updates can use open SQL or native SQL whereas in case of projection view, data updates must use open SQL.

 Database view can be buffered whereas Projection view cannot be buffered. 

Wednesday, September 30, 2020

Types of execution modes in SAP ABAP.

Types of execution modes in SAP ABAP.

What are the types of execution modes?

Ans:  There are 2 types of execution mode to execute a program or the transaction codes.

1. Foreground: It is used to execute the programs or the transaction codes directly by pressing  execute icon or F8 function key. It requires user interaction.

2. Background: This execution mode is used to execute the programs or the transaction codes   periodically such as Hourly, Daily, Weekly, Monthly etc in background. It doesn’t require any user interaction. The variants must be created before the programs are scheduled in back ground.

Ø  The T-code SM36 is used to define the background jobs &

Ø  The T-code SM37 is used to check the status of the background jobs.

The standard function modules JOB_OPEN -> To open back ground job

JOB_SUBMIT -> To submit job in back ground

JOB_CLOSE -> To close scheduled job.

Differences between Macro & subroutine in SAP ABAP.

 What are the differences between Macro & subroutine?

Differences between Macro & subroutine in SAP ABAP.

                             Macro

                            Subroutine

1. Definition & calling in the same program.

1. Definition & calling may/may not in the same

    Program.

2. Definition should be the 1st & calling should be

    The next.

2. Calling should be the 1st & Definition should

     Be the next.

3.  Macros can take up to 9 inputs.

3. Subroutines can take any no of inputs.

 4. Macros cannot be debugged.

4. Sub-routines can be debugged at run time.

Differences between Subroutines and Function Modules in SAP ABAP.

 What are the differences between Subroutines and Function Modules?



Differences between Subroutines and Function Modules.

                           Subroutines

                        Function modules 

1. These are local. We can access the 

     Subroutine within the server only.

1. These are global. We can access the

    function module with in server as well as

    Outside the server.

2. We can’t execute the subroutine independently

2. we can execute function module independently using the T-code SE37

 

3. Subroutines can’t handle the Exceptions.

3. Function module can handle the errors

    through Exceptions.

 

What are the Modularization techniques in SAP ABAP.

Details about Modularization techniques in SAP ABAP.


Modularization techniques in SAP ABAP.

Ans :- They are used to organize the ABAP code in the proper way , make the program more

            Understandable and make use of the code re-usable to avoid the duplicate data.

           To divide the business processing logic into reusable block of statements.

ü  Following are the different types of Modularization techniques

o   INCLUDES:  These programs are part of another main/include programs. Include programs can’t be executed independently whereas the same include program can be included in any no of executable programs. The ABAP statement INCLUDE is used to call or define the INCLUDE programs.

o   Subroutines: These are statements local modularization techniques. The sub-routines can be debugged at run time. Calling should be 1st & Definition should be next. The ABAP statement PERFORM is used to call the sub-routines & FORM…ENDFORM is used to define the sub-routines.

There are 2 types of sub-routines.

                                               I.        Internal Subroutine: These are defined & called in the same program.

                                              II.        External Subroutine: These are defined in one program & called in another program.

Actual Parameters: The parameters which can be called while calling the subroutines (with PERFORM statement).

Formal Parameters: The parameters which can be passed while defining the subroutine (with FORM statement).

Ø  The no of actual parameters should be similar to the no of formal parameters.

Ø  The sub-routines definitions should not be nested (form with in the form) but the sub-routine can be called within the sub-routine.

Ø  The statements between 2 sub-routines definitions cannot be accessed

=================================================== 

o   Macros: These are used for the complex write statements & for long calculations. Macros can take up to 9 place holders (&1…. &9). In macros Definition should be 1st & Calling should be next. The ABAP statement, DEFINE…END-DEFINTION is used to define a macro. The macro definitions cannot be debugged at run time. The standard table TRMAC pooled table is used to maintain macros.

o   Function Modules:  These are global modularization objects. The function modules can be called any where in the same system & in another system also. The function modules are defined in function builder.

 ========================================================================

The T-code SE37 is used to work with the function modules & SE80 is used to work with the function group. The function modules should be assigned to a function group & Function group is the collection of function modules.

Ø  The standard table ‘TFDIR’ is used to find FMs since it contains the entire Function module in the system.

Ø  Normal Function Module: These are defined & called in the same system to reuse the central source code.

Ø  Remote Function Module: These are defined in one system & can be called another system.

Ø  Update Function Module: This is used for SAP LUW (Logic Unit of Work). These function modules are triggered in case of implicit or explicit COMMIT work is encountered. Commit Work is used to make changes in data base permanently.

o   Message class: This tool is used to maintain the Messages in the message pool.

They are used to give messages for instructing the users.

The standard T-Code SE91 is used to work with the message pool.

 Different types of messages are Error, Success, Warning, Information, Abort, Exit.

Syntax: MESSAGE ‘<MSG Text>’ type ‘E/I/W/S’.

==================================================== 

o   Text symbols & Constants: The ABAP Statement TEXT followed by the symbol number (XXX) can used to define or call the text symbol. Constants are used to avoid the hard coded text and improve the reuse them in the program.

The T-code SE63 is used to translate the different types of text elements.

Monday, September 21, 2020

Details about Internal Table in SAP ABAP.

Details about Internal Table in SAP ABAP.



Internal Table:

Ø Internal table is a temporary table created in RAM in Application Server

Ø It is created & filled with data during run time (execution time)

Ø Once execution is performed it is rolled out (or) discarded

 

Note:

Use Internal table for storing multiple records during run time

 

Difference between Database table & Internal table:

                   Database Table                                          Internal Table

1.     It is created in Database Server ------- 1. It is created in Application Server

2.     It holds data permanently                   ------- 2. It holds data temporarily

3.     It holds only specific type of data ----- 3. It holds data of different tables of at one place

 

Que: What is exact purpose of Internal table. Do you think should be created in ABAP

         programming?

Ans: In real time we are creating Internal table for storing different types of application data

         from different tables at one place

 

Every Internal table is having 2 parts

They are:

1.     Internal Table Body

2.     Header Line

 

1. Internal Table Body:

The name Internal table itself specifies body of Internal table & it holds multiple records

 

2. Header Line:

It is a default Work Area & holds single record

 

Note:

Header Line is system defined Work Area & Work Area is user defined Header Line

 

Syntax:

DATA:  BEGIN    OF   it_kna1   OCCURS   0,

              customer(20)    TYPE   C,

              name(20)          TYPE   C,

              city(20)            TYPE   C,

              END       OF    it_kna1.


 

Note:

1.     With above syntax an Internal table it_kna1 is crated in Application Server

2.     You can provide any name. But in real time Internal table should always begins with it_ (or) i_ followed by table name

3.     With BEGIN option Header Line is created & OCCURS option Body is created

4.     0, 1, 2, 3, …..9 is called Size Category

5.     Both Header Line & Body name is same (it_kna1)

 

Flow of Data in Internal Table:

1.     Database Table ----à Body---à Header Line--à Virtual Page ---à Presentation Server

2.     Database Table ---à Body---à Presentation Server

Sunday, September 13, 2020

Control Break Statements, explain about them in SAP ABAP.

What are the Control Break Statements, explain about them?



Control Break Statements, explain about them in SAP ABAP.

Ans :-

Control Break statements: - They are used to control the data flow of an internal table.

 The Control break statements start with AT and ends with ENDAT.

 These statements should be used within the LOOP statements only

 Following are the different types of Control break statements.

AT FIRST: - This event is triggered at the first record of an internal table. This is used to display the Header information.

AT NEW: - This event is triggered at the first record of each block. This is used to display the individual headings.

AT END OF: - This event is triggered at the last record of each block. This is used to display the total/sub totals in the internal table.

AT LAST: - This event is triggered at the last record of an internal table.

ON CHANGE OF: - It is a special control break statement which can be used outside of the loop statement also.

 It is almost similar to AT NEW statement but it doesn't consider the preceding fields.

 It can be used on the multiple fields using SET operators (AND, OR, BETWEEN).

Friday, September 11, 2020

Search Help in SAP ABAP.

What are the Search Help, types and explain about them?



Search Help

Ans: - It is used to provide all the possible entries to the input variable as search help.

1) Elementary Search help:

 - It is created using one base table.

2) Collective Search help:

 - It is the collection of Elementary Search help.

Search Help Exit: It is a Function module to filter possible entries of a search help.

It is used to modify the F4 values at run time.

Differences between Check table and Value table in SAP ABAP.

 What are the differences between Check table and Value table?



Check table VS Value table

1. It is maintained at the TABLE level.

1. It is maintained at the DOMAIN level.

--------------------------------------------------

2. It can be used to extract the data in the programs.

2. It can't be used to extract data since it is linked with the domain.

---------------------------------------------------

3. The Search Help is displayed from the Check table on the foreign key field of a foreign key table.

3. The Search Help is displayed on each field which is linked with the same domain of the Value table.

----------------------------------------------------

4. It forces the user to select any one of the check table field entries

4. It does not force the user since it has empty value by default.

Thursday, September 10, 2020

Some Keywords in SAP ABAP.

Some Keywords in SAP ABAP.



Some Keywords in SAP ABAP.

Ans: 

Append:

It is the keyword used to append record by record from work area to at last record of the

internal table. Syntax: APPEND <gs_dbtab> TO <gt_dbtab>.

Insert:

This statement is used to insert a new record at any position of an internal table.

Syntax : INSERT <gs_final> INDEX <n>? SY-TABIX.

Collect:

It also used like an APPEND statement. This statement is used to compare character/string

fields data & summarizes the numeric field data. It is used to display sub-totals .

Syntax : COLLECT <gs_source> INTO <gs_collect>.

Lines:

It is the keyword which returns no of records available in the internal table.

Occurs:

It is the keyword; it allocates 8KB of memory for the internal table by default. If the data in the

Internal table exceeds 8KB then it will bring one more 8KB of memory & so on up to 2GB.

Clear: 

It clears the contents of the work area & internal table with header line ITAB[ ] & variables

Refresh: 

It clears the contents of the internal table only.

Free: 

It clears the contents of internal table along with allocated memory.

Different types of internal tables and explain about them in SAP ABAP.

What are the different types of internal tables and explain about them?



Different types of internal tables and explain about them in SAP ABAP.

Ans :- Internal Tables: - They are the intermediate tables to hold the multiple records at run time.

 There are 3 types of internal tables.

1. STANDARD Internal tables: - The standard Internal Tables are filled using the ABAP statement 'APPEND'/’INSERT’. It accepts the duplicate records. Searching of a record is Linear Search. It is the default index table. Standard internal table can be sorted explicitly.

Syntax: - DATA: <gt_dbtab> TYPE STANDARD TABLE OF <typ_dbtab/dbstr.....>.

2. SORTED Internal table: - The ABAP statement 'INSERT/APPEND' is used to fill Sorted Internal Table. It does not accept the Duplicate records. Searching of a record is Binary Search. Sorted internal table cannot be sorted explicitly. An

additional statement with UNIQUE/NON-UNIQ UE key must be used to declare Sorted Internal Tables.

Syntax :- DATA: <gt_dbtab> TYPE SORTED TABLE OF <dbtab/dbstr.....> WITH

UNIQUE/NON-UNIQUE KEY <k-f1> <k-f2>.

3. HASHED Internal tables: - They are Non Index tables. The Hashed Internal Tables holds huge amount of data than Standard & Sorted internal tables since they follow ‘Hashed Algorithm’. The ABAP statement ‘WITH UNIQUE KEY' must be used to declare Hashed Internal Tables.

It holds huge amount of data (2 GB) than standard & sorted internal tables.

Syntax:- DATA: <gt_dbtab> TYPE HASHED TABLE OF <dbtab/dbstr.....> WITH UNIQUE KEY <k-f1> <k-f2>.

Differences between Work Area and Field Symbol in SAP ABAP.

What are the differences between Work Area and Field Symbol?


Differences between Work Area and Field Symbol in SAP ABAP.

Work Area

Field Symbol

-----------

1. It is the data variable.

1. It is a Pointer.

--------------

2. The ABAP statement is DATA is used to declare

or define work areas.

2. The ABAP statement FIELD-SYMBOLS is used to declare Field symbols.

------------------

3. The ABAP statement INTO is used to process record by record through work area .

3. The ABAP statement ASSIGNING is used to assign the FIELD-SYMBOLS .

------------------

4. The ABAP statement MODIFY must be used to

modify the internal table .

4.No need to use MODIFY , Since it is a pointer .

---------------------

5. No need to specify within the Angular brackets (< >).

5. It Must be specify within the Angular brackets (< >) .

Monday, August 31, 2020

Event in ABAP report in SAP

ABAP Programming EVENTS in SAP.

https://sapabap100.blogspot.com/2020/08/event-in-abap-report-in-sap.html


Below are some of the events avalable within ABAP programming. 

1.LOAD-OF-PROGRAM
2.INITIALIZATION
3.AT SELECTION SCREEN OUTPUT

LOOP AT SCREEN.
  IF SCREEN-name = 'P_FIELd1'.
    SCREEN-INTENSIFIED = '1'.
    MODIFY SCREEN.
    CONTINUE.
  ENDIF.
ENDLOOP.

4.AT SELECTION-SCREEN.

5.AT SELECTION-SCREEN ON
<parameter1>
AT SELECTION-SCREEN ON Block <block1>
AT SELECTION-SCREEN ON HELP-REQUEST for <parameter1> (i.e. When press F1)
AT SELECTION-SCREEN ON VALUE-REQUEST for <parameter1> (i.e. When press F4)
AT SELECTION-SCREEN ON RADIOBUTTON for <parameter1> (i.e. When press F4)

AT SELECTION-SCREEN ON P_FIELD1.
AT SELECTION-SCREEN ON help-request for P_FIELD1.

6.TOP-OF-PAGE
7.TOP-OF-PAGE During LINE_SELECTION
8.END-OF-PAGE
ORT demo_rep NO STANDARD PAGE HEADING

                            LINE-COUNT 0(1). 

9.START-OF-SELECTION
10.END-OF-SELECTION
   

Thursday, July 23, 2020

Send Mail Excel attachment program in SAP ABAP

Send Mail Excel attachment program in SAP ABAP.




DATA: lt_mailrecipients  TYPE STANDARD TABLE OF somlrec90 WITH HEADER LINE,

      lt_mailtxt         TYPE STANDARD TABLE OF soli      WITH HEADER LINE,

      lt_attachment      TYPE STANDARD TABLE OF solisti1  WITH HEADER LINE,

      lt_mailsubject     TYPE sodocchgi1,

      lt_packing_list    TYPE STANDARD TABLE OF sopcklsti1 WITH HEADER LINE,

      gv_cnt             TYPE i.


Add Recipients


lt_mailrecipients-rec_type  = 'U'.

lt_mailrecipients-com_type  = 'INT'.

lt_mailrecipients-RECEIVER  = 'someone@erpdb.info'.

APPEND lt_mailrecipients .

CLEAR lt_mailrecipients .


Put in the Mail Contents


lt_mailtxt = 'Hi How are you'.      APPEND lt_mailtxt. CLEAR lt_mailtxt.

lt_mailtxt = 'Here is a test mail'. APPEND lt_mailtxt. CLEAR lt_mailtxt.

lt_mailtxt = 'Thanks'.              APPEND lt_mailtxt. CLEAR lt_mailtxt.


Create the attachment


  DATA: BEGIN OF lt_po_data_cons OCCURS 0,

         ebeln LIKE ekpo-ebeln,

         ebelp LIKE ekpo-ebelp,

        END OF lt_po_data_cons.


  SELECT ebeln ebelp INTO TABLE lt_po_data_cons

  UP TO 10 ROWS

  FROM ekpo. 


  CLASS cl_abap_char_utilities DEFINITION LOAD.

  CONCATENATE 'PO' 'PO Line'

              INTO lt_attachment SEPARATED BY

              cl_abap_char_utilities=&GT;horizontal_tab.

  APPEND lt_attachment. CLEAR lt_attachment.


  LOOP AT lt_po_data_cons.

  CONCATENATE lt_po_data_cons-ebeln lt_po_data_cons-ebelp

              INTO lt_attachment SEPARATED BY

              cl_abap_char_utilities=&GT;horizontal_tab.


  CONCATENATE cl_abap_char_utilities=&GT;newline lt_attachment

              INTO lt_attachment.


  APPEND lt_attachment. CLEAR lt_attachment.

 ENDLOOP.

Pack the mail contents and attachment

 lt_packing_list-transf_bin  = SPACE.

  lt_packing_list-head_start  = 1.

  lt_packing_list-head_num    = 0.

  lt_packing_list-body_start  = 1.

  lt_packing_list-body_num    = LINES( lt_mailtxt ).

  lt_packing_list-doc_type    = 'RAW'.

  APPEND lt_packing_list. CLEAR lt_packing_list.


  lt_packing_list-transf_bin  = 'X'.

  lt_packing_list-head_start  = 1.

  lt_packing_list-head_num    = 1.

  lt_packing_list-body_start  = 1.

  lt_packing_list-body_num    = LINES( lt_attachment ).

  lt_packing_list-doc_type    = 'XLS'. " You can give RAW incase if you want just a txt file.

  lt_packing_list-obj_name    = 'data.xls'.

  lt_packing_list-obj_descr   = 'data.xls'.

  lt_packing_list-doc_size    = lt_packing_list-body_num * 255.

  APPEND lt_packing_list. CLEAR lt_packing_list.


  lt_mailsubject-obj_name     = 'MAILATTCH'.

  lt_mailsubject-obj_langu    = sy-langu.

  lt_mailsubject-obj_descr    = 'You have got mail'.

  lt_mailsubject-sensitivty   = 'F'.

  gv_cnt = LINES( lt_attachment ).

  lt_mailsubject-doc_size     = ( gv_cnt - 1 ) * 255 + STRLEN(

  lt_attachment ).

Finally, send the mail out.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

    EXPORTING

      document_data              = lt_mailsubject

    TABLES

      packing_list               = lt_packing_list

      contents_bin               = lt_attachment

      contents_txt               = lt_mailtxt

      receivers                  = lt_mailrecipients

    EXCEPTIONS

      too_many_receivers         = 1

      document_not_sent          = 2

      document_type_not_exist    = 3

      operation_no_authorization = 4

      parameter_error            = 5

      x_error                    = 6

      enqueue_error              = 7

      OTHERS                     = 8.

  IF sy-subrc EQ 0.

    COMMIT WORK.

    SUBMIT rsconn01 WITH MODE = 'INT' AND RETURN.

  ENDIF.

Tuesday, February 26, 2019

Interview Questions & Answers report related in SAP ABAP.



Interview Questions & Answers report related in SAP ABAP.

INTERACTIVE REPORTING  

1.  What is interactive reporting?
It helps you to create easy-to-read lists.  You can display an overview list first that contains general information and provide the user with the possibility of choosing detailed information that you display on further lists.

2.  What are the uses of interactive reporting?
The user can actively control data retrieval and display during the session.  Instead of an extensive and detailed list, you create a basic list with condensed information from which the user can switch to detailed displays by positioning the cursor and entering commands.  The detailed information appears in secondary lists.

3.  What are the event key words in interactive reporting?
Event Keyword Event
AT LINE-SELECTION:--Moment at which the user selects a line by double clicking on it or by positioning the cursor on it and pressing F2.
AT USER-COMMAND:--Moment at which the user presses a function key.
                                                    TOP-OF-PAGE DURING:--Moment during list processing of a
                                                    LINE-SELECTION:--secondary list at which a new page starts.
    
4. What is secondary list?
It allows you to enhance the information presented in the basic list.  The user can, for example, select a line of the basic list for which he wants to see more detailed information.  You display these details on a secondary list.  Secondary lists may either overlay the basic list completely or you can display them in an extra window on the screen.  The secondary lists can themselves be interactive again. 

5.  How to select valid lines for secondary list?
To prevent the user from selecting invalid lines, ABAP/4 offers several possibilities.  At the end of the processing block END-OF-SELECTION, delete the contents of one or more fields you previously stored for valid lines using the HIDE statement.  At the event AT LINE-SELECTION, check whether the work area is initial or whether the HIDE statement stored field contents there.  After processing the secondary list, clear the work area again.  This prevents the user from trying to create further secondary lists from the secondary list displayed.

6.  How to create user interfaces for lists?
The R/3 system automatically, generates a graphical user interface (GUI) for your lists that offers the basic functions for list processing, such as saving or printing the list.  If you want to include additional functionality, such as pushbuttons, you must define your own interface status.  To create a new status, the Development Workbench offers the Menu Painter.  With the Menu Painter, you can create menus and application toolbars.  And you can assign Function Keys to certain functions.  At the beginning of the statement block of AT END-OF-SELECTION, active the status of the basic list using the statement: SET PF-STATUS ‘STATUS’. 

7.  What is interactive reporting?
A classical non-interactive report consists of one program that creates a single list.  Instead of one extensive and detailed list, with interactive reporting you create basic list from which the user can call detailed information by positioning the cursor and entering commands.  Interactive reporting thus reduces information retrieval to the data actually required. 

8. Can we call reports and transactions from interactive reporting lists?
Yes.  It also allows you to call transactions or other reports from lists.  These programs then use values displayed in the list as input values.  The user can, for example, call a transaction from within a list of change the database table whose data is displayed in the list.

9.  What are system fields for secondary lists?
SY-LSIND   Index of the list created during the current event (basic list = 0)
SY-LISTI     Index of the list level from which the event was triggered.
SY-LILLI    Absolute number of the line from which the event was triggered.
SY-LISEL   Contents of the line from which the event was triggered.
                         SY-CUROW   Position of the line in the window from which the event was triggered   (counting starts with 1)
                         SY-CUCOL   Position of the column in the window from which the event was triggered (counting starts with 2).
                         SY-CPAGE    Page number of the first displayed page of the list from which the event was triggered.
                         SY-STARO    Number of the first line of the first page displayed of the list from which the event was triggered (counting starts with 1).  Possibly, a page header occupies this line.
                         SY-STACO     Number of the first column displayed in the list from which the event was triggered (counting starts with 1).
SY-UCOMM    Function code that triggered the event.
SY-PFKEY       Status of the displayed list. 

10.  How to maintain lists?
To return from a high list level to the next-lower level (SY-LSIND), the user chooses Back on a secondary list.  The system then releases the currently displayed list and activates the list created one step earlier.  The system deletes the contents of the released list.  To explicitly specify the list level, into which you want to place output, set the SY-lsind field.  The system accepts only index values, which correspond to existing list levels.  It then deletes all existing list levels whose index is greater or equal to the index specify.  For example, if you set SY-LSIND to 0, the system deletes all secondary lists and overwrites the basic list with the current secondary list. 

11.  What are the page headers for secondary lists?
On secondary lists, the system does not display a standard page header and it does not trigger the event. TOP-OF-PAGE.  To create page headers for secondary list, you must enhance TOP-OF-PAGE: Syntax TOP-OF-PAGE DURING LINE-SELECTION.  The system triggers this event for each secondary list.  If you want to create different page headers for different list levels, you must program the processing block of this event accordingly, for example by using system fields such as SY-LSIND or SY-PFKEY in control statements (IF, CASE).

12.  How to use messages in lists?
 ABAP/4  allows you to react to incorrect or doubtful user input by displaying messages that influence the program flow depending on how serious the error was.  Handling messages is mainly a topic of dialog programming.  You store and maintain messages in Table T100.  Messages are sorted by language, by a two-character ID, and by a three-digit number.  You can assign different message types to each message you output.  The influence of a message on the program flow depends on the message type.  In our program, use the MESSAGE statement to output messages statically or dynamically and to determine the message type.
Syntax:REPORT <rep> MESSAGE-ID <id>.

13. What are the types of messages?
A message can have five different types.  These message types have the following effects during list processing:
.A (=Abend):
.E (=Error) or W (=Warning):
.I (=Information):
.S (=Success): 

14. What are the user interfaces of interactive lists?
If you want the user to communicate with the system during list display, the list must be interactive.  You can define specific interactive possibilities in the status of the list’s user interface (GUI).  To define the statuses of interfaces in the R/3 system, use the Menu Painter tool.  In the Menu Painter, assign function codes to certain interactive functions.  After an user action occurs on the completed interface, the ABAP/4 processor checks the function code and, if valid, triggers the corresponding event. 

15. What are the drill-down features provided by ABAP/4 in interactive lists?
ABAP/4 provides some interactive events on lists such as AT LINE-SELECTION (double click) or AT USER-COMMAND (pressing a button). You can use these events to move through layers of information about individual items in a list. 

16. What is meant by stacked list?
A stacked list is nothing but secondary list and is displayed on a full-size screen unless you have specified its coordinates using the window command. 

17.  Is the basic list deleted when the new list is created?
No.  It is not deleted and you can return back to it using one of the standard navigation functions like clicking on the back button or the cancel button. 

18.  What is meant by hotspots?
A Hotspot is a list area where the mouse pointer appears as an upright hand symbol. When a user points to that area (and the hand cursor is active), a single click does the same thing as a double-click.  Hotspots are supported from R/3 release 3.0c. 

19.  What is the length of function code at user-command?
Each menu function, push button, or function key has an associated function code of length FOUR (for example, FREE), which is available in the system field SYUCOMM after the user action. 

20.  Can we create a gui status in a program from the object browser?
Yes.  You can create a GUI STATUS in a program using SET PF-STATUS. 

21.  In which system field does the name of current gui status is there?
The name of the current GUI STATUS is available in the system field SY-PFKEY. 

22.  Can we display a list in a pop-up screen other than full-size stacked list?
Yes, we can display a list in a pop-up screen using the command WINDOW with the additions starting at X1 Y1 and ending at X2 Y2 to set the upper-left and the lower-right corners where x1 y1 and x2 y2 are the coordinates. 

23.  What is meant by hide area?
The hide command temporarily stores the contents of the field at the current line in a system-controlled memory called the HIDE AREA.  At an interactive event, the contents of the field are restored from the HIDE AREA. 

24.  When the get cursor command used in interactive lists?
If the hidden information is not sufficient to uniquely identify the selected line, the command GET CURSOR is used.  The GET CURSOR command returns the name of the field at the cursor position in a field specified after the addition field, and the value of the selected field in a field specified after value. 

25.  How can you display frames (horizontal and vertical lines) in lists?
You can display tabular lists with horizontal and vertical lines (FRAMES) using the ULINE command and the system field SY-VLINE.  The corners arising at the intersection of horizontal and vertical lines are automatically drawn by the system.

26.  What are the events used for page headers and footers?
The events TOP-OF-PAGE and END-OF-PAGE are used for pager headers and footers. 

27.  How can you access the function code from menu painter?
From within the program, you can use the SY-UCOMM system field to access the function code.  You can define individual interfaces for your report and assign them in the report to any list level.  If you do not specify self-defined interfaces in the report but use at least one of the three interactive event keywords.  AT LINE-SELECTION, AT PF<nn>, OR AT USER-COMMAND in the program, the system automatically uses appropriate predefined standard interfaces.  These standard interfaces provide the same functions as the standard list described under the standard list. 

28.  How the at-user command serves mainly in lists?
The AT USER-COMMAND event serves mainly to handle own function codes.  In this case, you should create an individual interface with the Menu Painter and define such function codes. 

29.  How to pass data from list to report?
ABAP/4 provides three ways of passing data:
---Passing data automatically using system fields
---Using statements in the program to fetch data
---Passing list attributes 

30. How can you manipulate the presentation and attributes of interactive lists?
---Scrolling through Interactive Lists.
---Setting the Cursor from within the Program.
---Modifying List Lines. 

31. How to call other programs?
Report   Transaction
Call and return   SUBMIT AND RETURN  CALL TRANSACTION
Call without return   SUBMIT  LEAVE TO TRANSACTION
You can use these statements in any ABAP/4 program. 

32. What will exactly the hide statement do?
For displaying the details on secondary lists requires that you have previously stored the contents of the selected line from within the program.  To do this, ABAP/4 provides the HIDE statement.  This statement stores the current field contents for the current list line.  When calling a secondary list from a list line for which the HIDE fields are stored, the system fills the stored values back into the variables in the program.  In the program code, insert the HIDE statement directly after the WRITE statement for the current line.  Interactive lists provide the user with the so-called ‘INTERACTIVE REPORTING’ facility.  For background processing the only possible method of picking the relevant data is through ‘NON INTERACTIVE REPORT’ .  After starting a background job, there is no way of influencing the program.  But whereas for dialog sessions there are no such restrictions. 

33. How many lists can a program can produce?
Each program can produce up to 21 lists: one basic list and 20 secondary lists.  If the user creates a list on the next level (that is, SY-LSIND increases), the system stores the previous list and displays the new one.  Only one list is active, and that is always the most recently created list.
       FALSE.

1.  What is a transaction?
-   A transaction is dialog program that change data objects in a consistant way. 

2.  What are the requirements a dialog program must fulfill?
 A dialog program must fulfil the following requirements
-    A user friendly user interface.
-    Format and consistancey checks for the data entered by the user.
-    Easy correction of input errors.
-    Access to data by storing it in the data bases.

 3. What are the basic components of dialog program?
-    Screens (Dynpros)
-    Each dialog in an SAP system is controlled by dynpros.A dynpros consists of a screen
And its flow logic and controls exactly one dialog step.
-   ABAP/4 module Pool.
Each dynpro refers to exactly one ABAP/4 dialog program .Such a dialog program is also  called a module pool ,since it consists of interactive modules. 

4.What is PBO and PAI events?
PBO- Process Before Output-It determines the flow logic before displaying the screen.
PAI-Process After Input-It determines the flowlogic after the display of the screen and after receiving inputs from the User. 

5. What is dynpro?What are its components ?
-    A dynpro (Dynamic Program) consists of a screen and its flow logic and controls exactly one dialog steps.
-    The different components of the dynpro are :
Flow Logic: calls of the ABAP/4 modules for a screen .
Screen layout: Positions of the text, fields, pushbuttons and so on for a screen
Screen Attributes: Number of the screen, number of the subsequent screen, and others
Fields attributes: Definition of the attributes of the individual fields on a screen. 
6. What is a ABAP/4 module pool?
                -Each dynpro refers to exactly one ABAP/4 dialog program.Such a dialog program is also called a module pool ,since it consists on interactive modules. 

7..Can we use WRITE statements in screen fields?if not how is data transferred from field data to screen fields?
-We cannot write field data to the screen using the WRITE statement.The system instead transfers data by comparing screen fields names with ABAP/4  variable names.If both names are the same,it transfers screen fields values to ABAP/4 programs fields and Vice Versa.This happens immediately after displaying the screen. 

8.Can we use flow logic control key words in ABAP/4 and vice-versa?
-   The flow control of a dynpro consists os a few statements that syntactically ressemble ABAP/4  statements .However ,we cannot use flow control keywords in ABAP/4 and vice-versa. 

9.What is GUI status? How to create /Edit GUI status?
-A GUI status is a subset of the interface elements used for a certain screen.The status comprises
those elements that are currently needed by the transaction .The GUI status for a transaction may be composed of the following elements:
-Title bar.
-Mneu bar.
-Application tool bar
-Push buttons. 
To create and edit GUI status and GUI title,we use the Menu Painter. 

10. How does the interection between  the Dynpro and the ABAP/4 Modules takes place?
-A transaction is a collection os screens and ABAP/4 routines, controlled and executed by a Dialog processor. The Dialog processor processes screen after the screen, thereby triggering the appropriate
ABAP/4 processing of each screen .For each screen,the system executes the flow logic that contains the corresponding ABAP/4 processing.The controls passes from screen flow logic to ABAP/4 code and back. 

11. How does the Dialog handle user requests?
-    When an action is performed ,the system triggers the PROCESS AFTER INPUT event.The data passed includes field screen data data entered by the user and a function code. A  functioncode is a technical name that has been allocated in a screen Painter or Menu Painter to a meny entry,a push button,the ENTER key or a function Key of a screen.An internal work field(ok-code)in the PAI module evaluates the function code,and the appropriate action is taken. 
12.  What is to be defined for a push button fields in the screen attributes?
-    A function code has to be defined in the screen attributes for the push buttons in a screen. 
13.  How are the function code handles in Flow Logic?
- When the User selects a function in a transaction ,the system copies the function code into a  specially   designated work field called OK_CODE.This field is Global in ABAP/4 Module Pool.The OK_CODE can then be evaluated in the corresponding PAI module. The function code is always passed in Exactly the same way , regardless of Whether it comes from a screen’s pushbutton,a menu option ,function key or other GUI element. 

14.What controls the screen flow?
-    The SET SCREEN and LEAVE SCREEN statements controls screen flow. 

14.  The Function code currently active is ascertained by what Variable?
-   The function code currently active in  a Program can be ascertained from the SY-UCOMM  Variable. 

15.  The function code currently  active is ascertained by what variable ?
-    By SY-UCOMM Variable. 

16.  What are the “field” and “chain” Statements?
-    The FIELD and CHAIN flow logic statements let you Program Your own checks.FIELD and CHAIN tell the system Which fields you are checking and Whether the System should Perform Checks in the flow logic or call an ABAP/4 Module.

17.  What is an “on input filed” statements?
-    ON INPUT
The ABAP/4 module is called only if a field contains the Value other than the initial Value.This initial Value is determined by the filed’s Dta Type: blanks for character Fields
,Zeroes for numerics. If the  user changes the Fields Value back t o its initial value,ON INPUT does not trigger a call.

18.  What is an “on request Field” statement?
-     ON REQUEST
  The ABAP/4 Module is called only if the user has entered the value in the field value since the last screen display .The Value counts as changed Even if the User simply types in the value that was already there .In general ,the ON REQUEST condition is triggered through any
Form of” MANUAL INPUT’. 

19.  What is an on”*-input filed” statement?
ON *-INPUT
-    The ABAP/4 module is called if the user has entered the “*” in the first  character of the field, and the field has the attribute  *-entry in the screen Painter.You can use this option in Exceptional cases where you want to check only fields with certain Kinds of Input. 

20.  What are conditional chain statement?
ON CHAIN-INPUT similar to ON INPUT.
The ABAP/4 module is called if any one of the fields in the chain contains a value other than its initial value(blank or nulls).
ON CHAIN-REQUEST
This condition functions just like ON REQUEST, but the ABAP/4 module is called if any one of the fields in the chain changes value.

21.  What is “at exit-command:?
The flowlogic Keyword at EXIT-COMMAND is a special addition to the MODULE statement in the Flow Logic .AT EXIT-COMMAND lets you call a module before the system executes the automatic fields checks.

22.  Which Function type has to be used for using “at exit-command” ?
-     To Use AT EXIT – COMMAND ,We must assign a function Type “E” to the relevant function in the MENU Painter OR Screen Painter . 

23.  What are the different message types available in the ABAP/4 ?
-          There are 5 types of message types available.
-          E: ERROR
-          W-WARNING
-          I –INFORMATION
-          A-ABNORMAL TERMINATION.
-          S-SUCCESS

24.  Of the two “ next screen “ attributes the attributes that has more priority is -------------------.
Dynamic. 

25.  Navigation to a subsequent screen can be specified statically/dynamically. (TRUE/FALSE).
     TRUE. 
26.  Dynamic screen sequence  for a  screen can be set using ------------- and ----------------- commands
     Set Screen, Call screen.

27. The commands through Which an ABAP/4 Module can “branch to “ or “call” the next screen are

   1.------------,2--------------,3---------------,4------------.

-    Set screen<scr no>,Call screen<scr no> ,Leave screen, Leave to screen <scr no>.
28. What is difference between SET SCREEN and CALL SCREEN ?
  
-          With SET SCREEN the current screen simply specifies the next screen in the chain , control branches to this next screen  as sonn as th e current screen has been processed .Return from next screen to current screen is not automatic .It does not interrupt  processing of the current screen.If we want to branch  to the next  screen without finishing  the current one ,use LEAVE SCREEN.

-      With CALL SCREEN , the current (calling) chain is suspended , and a next screen (screen chain) is called .The called can then return to the suspended chain with the statement LEAVE SCREEN TO SCREEN 0 .Sometime we might want  to let an user call a pop up screen from the main application screen to let him enter secondary information.After they have completed their enteries, the users should be able to close the popup and return directly to the place where they left off in the main screen.Here comes CALL SCREEN into picture .This statement lets us insert such a sequence intp the current one.
 29. Can we specify the next screen number with a variable (*Yes/No)?
   
      -  Yes

30.    The field SY-DYNR refers to--------------

Number of the current screen.

31.    What is dialog Module?
-       A dialog Module is a callable sequence of screens that does not belong to a particular transaction.Dialog modules have their module pools , and can be called by any transaction.

32.    The Syntex used to call a screen as dialog box (pop up)is---------

 CALL SCREEN <screen number.>
STARTING AT <start column><start line>
ENDING AT <end column> <end line>

33.    What is “call mode”?
-          In the ABAP/4  WORLD each stackable sequence of screens is a “call mode”, This is IMP because of the way u return from the given  sequence .To terminate a call mode and return to a suspended chain set the “next screen” to 0 and leave to it:
      LEAVE TO SCREEN 0 or (SET SCREEN 0 and LEAVE SCREEN) .When u return to     the suspended chain execution resumes with the statement  directly following the original CALL SCREEN statement.The original sequence of screens in a transaction (that is , without having stacked any additional call modes),you returned from the transaction altogether.


34.    The max number of  calling modes stacked at one time is?
-          NINE

35.    What is LUW  or Data base Transaction ?

-          A “LUW”(logical unit of work) is the span of time during which any database updates must be performed in an “all or nothing” manner .Either they are all performed (committed),or they are all thrown  away (rolled back).In the ABAP/4 world , LUWs and
-          Transactions can have several meanings:

LUW (or “database LUW” or “database transaction”)

This is the set of updates terminated by a database commit. A LUW lasts, at most, from one screen change to the next (because the SAP system triggers database commits automatically at every screen change).

36.    What is SAP LUW or Update Transaction?
Update transaction (or “SAP LUW”)
This is a set of updates terminated by an ABAP/4 commit.  A SAP LUW may last much longer than a database LUW, since most update processing extends over multiple transaction screens.  The programmer terminates an update transaction by issuing a COMMIT WORK statement.

37.    What happens if only one of the commands SET SCREEN and LEAVE SCREEN is used without using the other?
If we use SET SCREEN without LEAVE SCREEN, the program finishes processing for the current screen before branching to <scr no>.  If we use LEAVE SCREEN without a SET SCREEN before it, the current screen process will be terminated and branch directly to the screen specified as the default next-screen in the screen attributes.

38.    What is the significance of the screen number ‘0’?
In “calling mode”, the special screen number 0 (LEAVE TO SCREEN 0) causes the system to jump back to the previous call level.  That is, if you have called a screen sequence with CALL SCREEN leaving to screen 0 terminates the sequence and returns to the calling screen.  If you have not called a screen sequence, LEAVE TO SCREEN 0 terminates the transaction.

39.    What does the ‘SUPPRESS DIALOG’ do?
Suppressing of entire screens is possible with this command.  This command allows us to perform screen processing “in the background”.  Suppresing screens is useful when we are branching to list-mode from a transaction dialog step.

40.    What is the significance of the memory table ‘SCREEN’?
At runtime, attributes for each screen field are stored in the memory table called ‘SCREEN’.  We need not declare this table in our program.  The system maintains the table for us internally and updates it with every screen change.

41.    What are the fields in the memory table ‘SCREEN’?
Name                     Length             Description

NAME                     30                     Name of the screen field
GROUP1                 3                      Field belongs to field group 1
GROUP2                 3                      Field belongs to field group 2
GROUP3                 3                      Field belongs to field group 3
GROUP4                 3                      Field belongs to field group4
ACTIVE                  1                      Field is visible and ready for input.
REQUIRED              1                      Field input is mandatory.
INPUT                    1                      Field is ready for input.
OUTPUT                 1                      Field is display only.
INTENSIFIED          1                      Field is highlighted
INVISIBLE              1                      Field is suppressed.
LENGTH                 1                      Field output length is reduced.
DISPLAY_3D          1                      Field is displayed with 3D frames.
VALUE_HELP         1                      Field is displayed with value help.

42.    Why grouping of fields is required? What is the max no of modification groups for each field?
If the same attribute need to be changed for several fields at the same time these fields can be grouped together.  We can specify up to four modification groups for each field.

43.    What are the attributes of a field that can be activated or deactivated during runtime?
Input, Output, Mandatory, Active, Highlighted, Invisible.

44.    What is a screen group? How it is useful?
Screen group is a field in the Screen Attributes of a screen.  Here we can define a string of up to four characters which is available at the screen runtime in the SY-DNGR field.  Rather than maintaining field selection separately for each screen of a program, we can combine logically associated screens together in a screen group.

45.    What is a Subscreen? How can we use a Subscreen?
A subscreen is an independent screen that is displayed in a n area of another (“main”) screen.  To use a subscreen we must call it in the flow logic (both PBO and PAI) of the main screen.  The CALL SUBSCREEN stratement tells the system to execute the PBO and PAI events for the subscreen as part of the PBO or PAI events of the main screen.  The flow logic of your main program should look as follows:
PROCESS BEFORE OUTPUT.
CALL SUBSCREEN <area> INCLUDING ‘<program>’ ’<screen>’.
PROCESS AFTER INPUT.
CALL SUBSCREEN <area>.
Area is the name of the subscreen area you defined in your main screen.  This name can have up to ten characters.  Program is the name of the program to which the subscreen belongs and screen is the subscreen’s number.

46.    What are the restrictions on Subscreens?
Subscreens have several restrictions.  They cannot:
·             Set their own GUI status
·             Have a named OK code
·             Call another screen
·             Contain an AT EXIT-COMMAND module
·             Support positioning of the cursor.

47.    How can we use / display table in a screen?
ABAP/4 offers two mechanisms for displaying and using table data in a screen.  These mechanisms are TABLE CONTROLS and STEP LOOPS.

48.    What are the differences between TABLE CONTROLS and STEP LOOPS?
TABLE CONTROLS are simply enhanced STEP LOOPS that display with the look and feel of a table widget in a desktop application.  But from a programming standpoint, TABLE CONTROLS and STEP LOOPS are almost exactly the same.  One major difference between STEP LOOPS and TABLE CONTROLS is in STEP LOOPS their table rows can span more than one time on the screen.  By contrast the rows in a TABLE CONTROLS  are always single lines, but can be very long.  (Table control rows are scrollable).  The structure of table control is different from step loops.  A step loop, as a screen object, is simply a series of field rows that appear as a repeating block.  A table control, as a screen object consists of: I) table fields (displayed in the screen ) ii) a control structure that governs the table display and what the user can do with it.

49.    What are the dynapro keywords?
FIELD, MODULE, SELECT, VALUES and CHAIN are the dynapro keywords.

50.    Why do we need to code a LOOP statement in both the PBO and PAI events for each table in the screen?
We need to code a LOOP statement in both PBO and PAI events for each table in the screen.  This is because the LOOP statement causes the screen fields to be copied back and forth between the ABAP/4 program and the screen field.  For this reason, at least an empty LOOP….ENDLOOP must be there.

51.    The field SY-STEPL refers to the index of the screen table row that is currently being processed.  The system variable SY-stepl only has a meaning within the confines of LOOP….ENDLOOP processing.  Outside the loop, it has no valid value.

52.    How can we declare a table control in the ABAP/4 program?

Using the syntax controls <table control name> type tableview using screen <scr no>.

53.    Differentiate between static and dynamic step loops.
Step loops fall into two classes: Static and Dynamic.  Static step loops have a fixed size that cannot be changed at runtime.  Dynamic step loops are variable in size.  If the user re-sizes the window the system automatically increases or decreases the number of step loop blocks displayed.  In any given screen you can define any number of static step loops but only a single dynamic one.

54.    What are the two ways of producing a list within a transaction?
By submitting a separate report.
By using leave to list-processing.

55.    What is the use of the statement Leave to List-processing?
Leave to List-processing statement is used to produce a list from a module pool.  Leave to list processing statement allows to switch from dialog-mode to list-mode within a dialog program.

56.    When will the current screen processing terminates?
A current screen processing terminates when control reaches either a Leave-screen or the end of PAI.

57.    How is the command Suppress-Dialog useful?
Suppressing entire screens is possible using this command.  This command allows us to perform screen processing “in the background”.  The system carries out all PBO and PAI logic, but does not display the screen to the user.  Suppressing screens is useful when we are branching to list-mode from a transaction dialog step.

58.    What happens if we use Leave to list-processing without using Suppress-Dialog?
If we don’t use Suppress-Dialog to next screen will be displayed but as empty, when the user presses ENTER, the standard list output is displayed.

59.    How the transaction that are programmed by the user can be protected?
By implementing an authority check.

60.    What are the modes in which any update tasks work?
Synchronous and Asynchronous.

61.    What is the difference between Synchronous and Asynchronous updates?
A program asks the system to perform a certain task, and then either waits or doesn’t wait for the task to finish.  In synchronous processing, the program waits: control returns to the program only when the task has been completed.  In asynchronous processing, the program does not wait: the system returns control after merely logging the request for execution.

62.    SAP system configuration incluedes Dialog tasks and Update tasks.
63.    Dialog-task updates are Synchronous  updates.
64.    Update –task updates are Asynchronous updates.
65.    What is the difference between Commit-work and Rollback-Work tasks?
Commit-Work statement “performs” many functions relevant to synchronized execution of tasks.  Rollback-work statement “cancels: all reuests relevant to synchronized execution of tasks.

66.    What are the different database integrities?
·         Semantic Integrity.
·         Relational Integrity.
·         Primary Key Integrity.
·         Value Set Integrity.
·         Foreign Key integrity and
·         Operational integrity.

67.    All SAP Databases are Relational Databases.
68.    What is SAP locking?
It is a mechanism for defining and applying logical locks to database objects.

69.    What does a lock object involve?
The tables.
The lock argument.

70.    What are the different kinds of lock modes?
Shared lock
Exclusive lock.
Extended exclusive list.

71.    How can a lock object be called in the transaction?
By calling Enqueue<lock object> and Dequeue<lock object> in the transaction.

72.    What are the events by which we can program “help texts” and display “possible value lists”?
-PROCESS ON HELP-REQUEST (POH).
-PROCESS ON VALUE-REQUEST (POV).

73.    What is a matchcode?
A matchcode is an aid to finding records stored in the system whenever an object key is required in an input field but the user only knows other (non-key) information about the object.

74.    In what ways we can get the context sensitive F1 help on a field?
-          Data element documentation.
-          Data element additional text in screen painter.
-          Using the process on help request event.

75.    What is roll area?
A roll area contains the program’s runtime context.  In addition to the runtime stack and other structures, all local variables and any data known to the program are stored here.

76.    How does the system handle roll areas for external program components?
-          Transactions run in their own roll areas.
-          Reports run in their own roll areas.
-          Dialog modules run in their own roll areas
-          Function modules run in the roll area of their callers.

77.    Does the external program run in the same SAP LUW as the caller, or in a separate one?
-          Transactions run with a separate SAP LUW
-          Reports run with a separate SAP LUW.
-          Dialog modules run in the same SAP LUW as the caller
-          Function modules run in the same SAP LUW as the caller.
The only exceptions to the above rules are function modules called with IN UPDATE TASK (V2 function only) or IN BACKGROUND TASK (ALE applications).  These always run in their own (separate) update transactions.

78.    What are function modules?
Function modules are general-purpose library routines that are available system-wide.

79.    What are the types of parameters in the function modules?
In general, function module can have four types of parameters:
-          EXPORTING: for passing data to the called function.
-          IMPORTING: for receiving data returned from the function module.
-          TABLES: for passing internal tables only, by reference (that is, by address).
-          CHANGING: for passing parameters to and from the function.

80.    What is the difference between Leave Transaction and Call Transaction?
In contrast to LEAVE TO TRANSACTION, the CALL TRANSACTION  statement causes the system to start a new SAP LUW.  This second SAP LUW runs parallel to the SAP LUW  for the calling transaction.

81.    How can we pass selection and parameter data to a report?
There are three options for passing selection and parameter data to the report.
-          Using SUBMIT…WITH
-          Using a report variant.
-          Using a range table.

82.    How to send a report to the printer instead of displaying it on the screen?
We can send a report to the printer instead of diplaying it on the screen.  To do this, use the keywords TO SAP-SPOOL:
SUBMIT RSFLFIND…TO SAP-SPOOL DESTINATION ‘LT50’.

83.    How can we send data to external programs?
Using SPA/GPA parameters(SAP memory).
Using EXPORT/IMPORT data (ABAP/4 memory)

84.    What are SPA/GPA parameters (SAP memory)
SPA/GPA parameters are field values saved globally in memory.  There are two ways to use SPA/GPA parmeters:
By setting field attributes in the Screen Painter.
By using the SET PARAMETER or GET PARAMETER statements.