Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Thursday, February 21, 2008

SAP Scripts - Interview Questions

1) How do you backup script layout sets?

2) What type of variables normally used in script to o/p data?

3) How do you use tabsets in layouts?

1) Use this Std program RSTXSCRP.

i) First Export to Presentation file(.doc).

ii) Whenever you need that Export into SAP.

2) Normally we call them as Program symbols. Those are defined in Driver program. We can use in Script as for exp. &itab-matnr& Other variables ---System symbols : ex &page& ---Std symbols : ---Text symbols :We define them in script editor itself. Ex : /: Define &mysymbol& = 'XX'

3) We can control the tab feed in a paragraph with tab positions. The tab stops us define in the paragraph format replace the tab spacing we defined in the header data of the form. However, this depends on the extent to which we have defined tab stops in the paragraph format. If there are fewer tabs in the paragraph formats than in the header data, the tab stops of the header data are used for the rest of the line.

Q: We get the total number of pages as expected by using 'SAPSCRIPT-FORMPAGES' in a duplex layout. In our case duplex case is always 'Terms & Conditions'. We do not want the number of pages as in duplex printing. What is the best possible solution?

A: On the Terms & Conditions page, Change the Page counter mode to 'HOLD' to keep the page counter from incrementing when you print the Term & Conditions.

Q: Can I Print a logo on an Invoice?


A: Save a Logo using Paintshop Pro or Corel Draw as Tiff file. Use RSTXLDMC to convert the logo to standard text in SapScript. When the program is executed, the path and file name have to be correctly specified.
Process could be like the following: Run RSTXLDMC Enter file name C:\MAIL\COMPLOGO.TIF Resolution for Tiff file Absolute X-position Absolute Y-position Absolute positioning Reserved height Shift to right UOM = CM Text title Line width for text = 132 Text name ZHEX-MACRO-COMPLOGO Text ID ST Text language = E Postscript scaling Width & Height according to PS scaling Number of Tiff gray levels (2,4,9) 2 Then Create a new window 'COMP' with attributes; Window COMP description Company Logo Window type CONST Left margin 7.00 CH window width 10.00 CH Upper margin LN window height 8.00 LN
Finally in the text element , mention /: INCLUDE 'ZHEX-MACRO-COMPLOGO' OBJECT TEXT ID ST LANGUAGE 'E'.
Please note that if object name is not indicated as 'ZHEX...', the logo may not be printed!
You will not be able to see the logo in a test print. The same will be printed in actual printout.
If you are using two logos in the same layout, the names of the logos should be unique. Say 'ZHEX-MACRO-LOGO1' and 'ZHEX-MACRO-LOGO2'. Else all the information will be overwritten.
If the logo is not EXACTLY TIFF 6.0, the same will not be printed.
See OSS notes 5995, 18045, 39031 for some inputs.

1) How do you backup script layout sets?

2) What type of variables normally used in script to o/p data?

3) How do you use tabsets in layouts?

1) Use this Std program RSTXSCRP.

i) First Export to Presentation file(.doc).

ii) Whenever you need that Export into SAP.

2) Normally we call them as Program symbols. Those are defined in Driver program. We can use in Script as for exp. &itab-matnr& Other variables ---System symbols : ex &page& ---Std symbols : ---Text symbols :We define them in script editor itself. Ex : /: Define &mysymbol& = 'XX'

3) We can control the tab feed in a paragraph with tab positions. The tab stops us define in the paragraph format replace the tab spacing we defined in the header data of the form. However, this depends on the extent to which we have defined tab stops in the paragraph format. If there are fewer tabs in the paragraph formats than in the header data, the tab stops of the header data are used for the rest of the line.

Q: We get the total number of pages as expected by using 'SAPSCRIPT-FORMPAGES' in a duplex layout. In our case duplex case is always 'Terms & Conditions'. We do not want the number of pages as in duplex printing. What is the best possible solution?

A: On the Terms & Conditions page, Change the Page counter mode to 'HOLD' to keep the page counter from incrementing when you print the Term & Conditions.

Q: Can I Print a logo on an Invoice?


A: Save a Logo using Paintshop Pro or Corel Draw as Tiff file. Use RSTXLDMC to convert the logo to standard text in SapScript. When the program is executed, the path and file name have to be correctly specified.
Process could be like the following: Run RSTXLDMC Enter file name C:\MAIL\COMPLOGO.TIF Resolution for Tiff file Absolute X-position Absolute Y-position Absolute positioning Reserved height Shift to right UOM = CM Text title Line width for text = 132 Text name ZHEX-MACRO-COMPLOGO Text ID ST Text language = E Postscript scaling Width & Height according to PS scaling Number of Tiff gray levels (2,4,9) 2 Then Create a new window 'COMP' with attributes; Window COMP description Company Logo Window type CONST Left margin 7.00 CH window width 10.00 CH Upper margin LN window height 8.00 LN
Finally in the text element , mention /: INCLUDE 'ZHEX-MACRO-COMPLOGO' OBJECT TEXT ID ST LANGUAGE 'E'.
Please note that if object name is not indicated as 'ZHEX...', the logo may not be printed!
You will not be able to see the logo in a test print. The same will be printed in actual printout.
If you are using two logos in the same layout, the names of the logos should be unique. Say 'ZHEX-MACRO-LOGO1' and 'ZHEX-MACRO-LOGO2'. Else all the information will be overwritten.
If the logo is not EXACTLY TIFF 6.0, the same will not be printed.
See OSS notes 5995, 18045, 39031 for some inputs.


ABAP Reports - Interview Questions

1. what is a report?
2. what are types of reports?
3. difference bet'n simple and interactive reports?
4. what are the events in interactive reports?
5. what is the first event that will be triggered in a report?
6. what is the use of Initialization event? give one example.
7. what is the use of start-of-selection event?
8. what is the difference betn end-of-page and end-of-selection?
9. if you write a write statement after end-of-selection, will that be triggered?
10. how to create a button in selection screen?
11. how to add a gui status in a selection screen?
12. what is at-line-selection event?
13. How many secondary lists can be created in an interactive report?
14. how to create a check box/option button in a list?
15. can you call a bdc program from a report? how?
16. can you call a transaction from a report? how?
17. what are ALV reports? how they are different from normal reports?
18. what are the main events that are used in an ALV report?
19. what is the use of SLIS type pool in alv reports?
20. difference betn top-of-page and top-of-page during at-line-selection?
21. in an interactive report, after going to 5th list, can you come back to 2nd list? how?

1. what is a report?
2. what are types of reports?
3. difference bet'n simple and interactive reports?
4. what are the events in interactive reports?
5. what is the first event that will be triggered in a report?
6. what is the use of Initialization event? give one example.
7. what is the use of start-of-selection event?
8. what is the difference betn end-of-page and end-of-selection?
9. if you write a write statement after end-of-selection, will that be triggered?
10. how to create a button in selection screen?
11. how to add a gui status in a selection screen?
12. what is at-line-selection event?
13. How many secondary lists can be created in an interactive report?
14. how to create a check box/option button in a list?
15. can you call a bdc program from a report? how?
16. can you call a transaction from a report? how?
17. what are ALV reports? how they are different from normal reports?
18. what are the main events that are used in an ALV report?
19. what is the use of SLIS type pool in alv reports?
20. difference betn top-of-page and top-of-page during at-line-selection?
21. in an interactive report, after going to 5th list, can you come back to 2nd list? how?

ABAP Data Dictionary

DATA DICTIONARY

  1. What is data Dictionary ?
  2. What is the difference between open sql & native sql ?
  3. Difference between Pooled, cluster & transparent tables?
  4. What is Primary key, foreign key ? what is primary index?
    secondary index?
  5. how many indexes can be created for a table?
  6. what is a value table?
  7. what are the components of a table?
  8. what is a domain?
  9. what is a data element?
  10. what is data class?
  11. can you create a table with out a data element?
  12. can you create a field with out a data element?
  13. What approach you prefer for creating a table?
  14. Give few names of cluster tables in sap?
  15. Give few names of pooled tables in sap?
  16. give few names of transparent tables?
  17. what is a buffer and how many types?
  18. what is table maintenance generator and how to create
    that? What is the transaction code?
  19. How to add new fields to a standard sap table ?
  20. How many types of table joins are there?
  21. difference between inner join & outer join?
  22. Difference between "select * from mara" and "select
    single * from mara"?
  23. what is a match code ? Lock objects ?
  24. what are views?
  25. what are logical tables/database?
  26. what is the difference bet'n table and a structure?

ABAP Dialog Programming FAQ Technical Interview Questions

1) Why do I need to do dialog programming?
Ans: to have your own customized screens and processing

2) What does dialog programming consist of ?
Ans: Screens with their corresponding processing code, Menu , module pool program

3) Difference between the normal report / program and Module pool program?
Ans: Normal report can be run straight away by executing it and useually has a selection criteria – Attributes : 1 online program
Module pool program cannot be run straight away. It first needs to display a screen – attributes : M module pool program

4) What is PBO and PAI?
Ans: Process before output. Code that is executed prior to the display of a screen.
Process after input. Code that is executed after a button on the screen has been pressed.

5) How can I identify which button is pressed?
Ans: “ fcode” attributes of the button. Define the okcode value of the screen (type sy-ucomm)

6) What is the GUI interface to the program?
Ans: The menu bar where you define the ok-codes of the buttons and function keys for the screen. You typically code SAVE, BACK, CANC, EXIT and then more specific codes. CANC (leave to screen 0) allows you to get out of the current screen.

7) What does PAI and Pbo contain by default?
Ans: PBO - MODULE STATUS_0100 - Key / button definitions
PAI - * MODULE USER_COMMAND_0100 - How do you handle thecode behind the button that was pressed

8) If we do not have / give menu bar than what will menu bar have by default?
Ans: Not much -> system , help

9) How many PBO and PAI modules are allowed for a screen?
Ans: one PBO and one PAI

10) In the menu bar can you associate a function key to a button?
Ans: yes ABAP FAQ's on Reports / Scripts / BDC / Dialogs

ABAP LOGICAL DATABASE Technical Interview Questions

What are logical databases?
What are the advantages/disadvantages of logical databases? Ans :- A Logical Database is a hierarchical structure of tables. Use the GET statement to process Logical Databases. - LDB consists of logically related tables grouped together ­ used for reading and processing data.
- Advantages = 1. No need of programming for retrieval , meaning for data selection
- 2. Easy to use standard user interface, have check completeness of user input.
Disadvantages = 1. Fast in case of lesser no. of tables But if the table is in the lowest level of hierarchy, all upper level tables should be read so performance is slower.

Preparation of the data records by the L.D.B and reading of the data records in the actual report are accomplished with the command pair.
- Put and Get.

The three main elements of LDB are - Structure, Selections, Database Program.

What sort of tables one can use in designing the hierarchy of a LDB ?
- Tables which are having Foreign key relations.

The structure of Logical Databases relfects the ________________ dependencies of hierarchical tables in the SAP System.
- Foreign key

If you want to improve the response time ( time to access data ) Logical DataBases permits you to achieve this using ______________
- VIEWS.

What are the advantages of Logical DataBases ?
- It offers an easy-to-use selection screen.
You can modify the pre-generated selection screen to your needs. It offers check functions to check whether user input is complete, correct, and plausible.
It offers reasonable data selections.
It contains central authorization checks for database accesses.
Enhancements such as improved performance immediately apply to all report programs that use the logical database.
Report FORMATTING In order to suppress the leading zeros of a number field the keywords used are : NO-ZERO. The Command that allows for vertical alignment of fields one below the other. UNDER. In order to concatenate strings only for output purposes the command _________ can be used in conjunction with the 'Write' statement. NO-GAP. Data can be moved from one field to another using a 'Write:' Statement and stored in the desired format. TRUE. Write : Date_1 to Date_2 format DD/MM/YY. In order to have boldfaced text as output the command used is Write : INTENSIFIED. Background and foreground colors can be interchanged using the command Format inverse. Which datatype cannot be used to define parameters. Type F. For each new event, the system resets all formatting options to their default values. TRUE.

The processing block following END-OF-PAGE is processed only if you reserve lines for the footer in the LINE-COUNT option of the REPORT statement.
To execute a page break under the condition that less than a certain number of lines is left on a page is acheived by ________________________. RESERVE n lines. What is the limit for the length of a page if the page length is not specified in the report statement. 60,000 Lines. How can Symbols or R/3 icons be output on the screen? WRITE AS SYMBOL. WRITE AS ICON.

REPORTING - GENERAL What are reports? and how do you set up reports? A report program reads and analyzes data from one or more database tables without modifying the database. Usually, the result of such a report program is in the form of a list which is output to the screen or sent to a printer. What are the different types of programs?
I Include Program
M Module Pool
F Function Modules
S External Subroutines
1 Online program

Events in Reporting ? Explain ?
The following events occur at runtime of a typical report program which uses logical databases: Event keyword
Event

-- INITIALIZATION
Point before the selection screen
is displayed
When you start a program in which a selection screen is defined (either in the program itself or in the linked logical database program), the system normally processes this selection screen first. If you want to execute a processing block before the selection screen is processed, you can assign it to the event keyword INITIALIZATION.

AT SELECTION-SCREEN
Point after processing user input on the selection screen while the selection screen is still active
The event keyword AT SELECTION-SCREEN provides you with several possibilities to carry out processing blocks while the system is processing the selection screen.

START-OF-SELECTION
Point after processing the selection screen
The event START-OF-SELECTION gives you the possibility of creating a processing block after processing the selection screen and before accessing database tables using a logical database. You can use this processing block, for example, to set the values of internal fields or to write informational statements onto the output screen. At the START-OF-SELECTION event, also all statements are processed that are not attached to an event keyword except those that are written behind a FORM-ENDFORM block .

GET

Point at which the logical database offers a line of the database table
The most important event for report programs with an attached logical database is the moment at which the logical database program has read a line from a database table (see Accessing Data Using Logical Databases ). To start a processing block at this event, use the GET statement as follows:

Syntax

GET


[FIELDS ].


[FIELDS ]. After this statement, you can work with the current line of the database table

. The data is provided in the table work area


GET LATE

Point after processing all tables which are hierarchically subordinate to the database table


in the structure of the logical database.
To start a processing block at the moment after the system has processed all database tables of a logical database that are hierarchically inferior to a specific database table, use the event keyword GET as follows:

Syntax :

GET


LATE [FIELDS ]


In analogy to report programs that use only SELECT statements (see table in Comparison of Access Methods ), the processing block of a GET LATE

statement would appear directly before the ENDSELECT statement in the SELECT loop for the database table

.
END-OF-SELECTION

Point after processing all lines offered by the logical database.
To define a processing block after the system has read and processed all database tables of a logical database, use the keyword END-OF-SELECTION. The following events occur during the processing of the output list of a report program: Event keyword

Event

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

TOP-OF-PAGE
Point during list processing when a new page is started
END-OF-PAGE

Point during list processing when a page is ended
The following events occur during the display of the output list of a report program: Event keyword

Event


--AT LINE-SELECTION
Point at which the user selects a line


AT USER-COMMAND
Point at which the user presses a function key or enters a command in the
command field.


AT PF
Point at which the user presses the function key with the function code
PF


With the selection screen, ABAP/4 offers an interactive element also for report programs. You can define a selection screen without having to bother about all the details required in dialog programming. The selection screen is always processed directly after a report program is started. The user can enter field values and selection criteria on this screen. The main purpose of the selection screen is to enable the user to control the database selections of the report program. If a report program is started from another ABAP/4 program with the SUBMIT statement (see Calling Reports), the selection screen objects also serve as a data interface, With a selection screen defined in the report program, you can enable the user to ·
assign values to variables with the PARAMETERS statement
·
determine selection criteria with the SELECT-OPTIONS statement


How do you read selected lines of database table into an internal table in packages of predefined size?.


SELECT * FROM INTO TABLE PACKAGE SIZE .
where 'n' is variable.
Name the WILDCARD characters which are used for comparisions with character strings & numeric strings.
'%' and '_'.


How to specify a client for database table processing.

TABLES SPFLI.
SELECT * FROM SPFLI CLIENT SPECIFIED
WHERE MANDT BETWEEN '001' AND '003'.
...
ENDSELECT.


Activation ­ During activation, the runtime object of aggregate object or tables is created. The runtime object is buffered so that the application program can access it quickly. Runtime object has information about the following objects of table - domain ­ data elements ­ field definition ­ table definition

Lock Mechanism ­ prevents a new database operation being started an existing one has been correctly completed. When conversion is done, lock is created automatically and released only when conversion is successful. Clearing of locks ­ restart adjustment ­ attempt is made to continue conversion at the point of
termination
Cancel adjustment ­ lock entry is simply deleted from table

Version Management functions ­

- Canceling changes ­ reset revised version to active version
- Storing changes ­ active version will be temporarily stored in version
Switching changes ­ switch between active and revised versions

Version catalog ­ list of all existing versions of an object

- Revised version ­ produced when we edit an existing object
- Active version ­ produced when we activate an object
- Temporary version ­ produced when we copy the active version temporarily to the database with store version functions
- Historical versions ­ created when 1. Correction is created 2 correction is
released

Table Buffering : Possible buffering types

- full buffering ­ either, whole table or none of the table is located in the buffer (Tables up to 30 kb done in client dependent fully buffered tables)
- Generic buffering ­ generic areas of the table are fully buffered.
- Generic key ­ left justified section of primary key of a table.
Single record buffering ­ records actually being accessed are loaded to buffers, large records where few records are accessed.


Internal Tables ? Types ?

STANDARD table Key access to a standard table uses a linear search. This means that the time required for a search is in linear relation to the number of table entries. You should use index operations to access standard tables.

SORTED table Defines the table as one that is always saved correctly sorted. Key access to a sorted table uses a binary key. If the key is not unique, the system takes the entry with the lowest index. The runtime required for key access is logarithmically related to the number of table entries.

HASHED table Defines the table as one that is managed with an internal hash procedure You can only access a hashed table using the generic key operations or other generic operations ( SORT, LOOP, and so on). Explicit or implicit index operations (such as LOOP ... FROM oe INSERT itab within a LOOP) are not allowed.

INDEX table A table that can be accessed using an index. Index table is only used to specify the type of generic parameters in a FORM or FUNCTION. That means that you can't create a table of type INDEX. Standard tables and sorted tables are index tables.

Syntax : DATA itab TYPE table type of line type [WITH UNIQUE/NON-UNIQUE KEY ] [Iinitial size n] [WITH HEADER LINE]

What are DATA CLUSTERS ?

You can group any complex internal data objects of an ABAP/4 program together in data clusters and store them temporarily in ABAP/4 memory or for longer periods in databases. You can store data clusters in special databases of the ABAP/4 Dictionary. These databases are known as ABAP/4 cluster databases and have a predefined structure.Storing a data cluster is specific to ABAP/4. Although you can also access
cluster databases using SQL statements, only ABAP/4 statements are able to decode the structure of the stored data cluster.


Describe the functions of the debugger screen.

- Single step(F5) - Use this option to step through the program statement by statement. This allows you to branch into subroutines and function modules, and to execute these routines step by step as well. Once a subroutine or function module has been processed, control returns to the statement following the CALL FUNCTION or PERFORM statement.


- Execute(F6)- Use this option to process a program line by line. All of the statements on the current line are processed in a single step. If you are positioned on a line that calls a subroutine and you choose Execute, the Debugger processes the whole subroutine and then moves on to the line following the subroutine call. This allows you to jump through the statements within the subroutine.


- Return(F7) - The Debugger returns from a routine to the point at which control returns to the main program. Use this option to return from a subroutine, function module, or called program to the calling program.


- Continue(F8)- Use this option to process the program up to the next dynamic or static breakpoint or up to the cursor position. If there are no more breakpoints in the program and no cursor has been set, the system exits debugging mode and executes the rest of the program normally.


- Tables - Display the contents of internal tables.

Problem:How to run a program in background?

Solution :Execute the Report In the selection screen :After filling the screen fields press F9. A screen appears requesting U to print the Background Parameters *Enter the output device(Eg HPLJ /SAP2 etc) *In the spool options Uncheck Print immedietly,Uncheck delete after output,and new spool request. Press enter. Another screen appears with heading start time .U can press start immly ,then save Now the Background job is scheduled for the given program .
To View the status of background Job,The transaction code is SM37. Execute from the resulting screen . Job overview -->From the Job list select U'r program and select Spool from the application toolbar Output Controller :List of Spool Requests Select U'r Spool request and click Display icon from the overview screen . U will be displayed with the List. Caution :See to that the list with does not exceed 255 columns ,If it exceeds the extra columns will be truncated in Background



What are presentation and application servers in SAP?

A presentation server is actually a program named Sapgui.exe. It is usually installed on a user's workstation. Application server is a set of executables that collectively interpret the ABAP/4 programs and manage the input & output for them.

In an ABAP/4 program how do you access data that exists on a presentation server v/s on an application server?

For presentation server use UPLOAD or WS_UPLOAD function modules. For application server use OPEN DATASET, READ DATASET and CLOSE DATASET commands.


Describe the syntax and function of the AUTHORITY CHECK command?

Ans :- AUTHORITY ­ CHECK OBJECT

ID FIELD ID FIELD ... IF SY-SUBRC NE 0. The AUTHORITY-CHECK checks whether a user has the appropriate authorization to execute a particular activity.

ABAP DATA DICTIONARY Technical Interview Questions

Type of a table or structure
The table type determines how the logical table description defined in the ABAP/4 Dictionary is reproduced on the database. There are the following table types:
transparent table
structure
append structure

For internal purposes, such as storing control data or update texts, there are in addition the following table types:

pooled table
cluster table
generated view structure

Transparent table There is a physical table on the database for each transparent table. The names of the physical tables and the logical table definition in the ABAP/4 Dictionary correspond. All business data and application data are stored in transparent tables.

Structure No data records exist in the database for a structure. Structures are used for the interface definition between programs or between screens and programs.

Append structure An append structure defines a set of fields which belong to another table or structure but which are treated in the correction administration as its own object. Append structures are used to support modifications.

Pooled table Pooled tables can be used to store control data (e.g. screen sequences, program parameters or temporary data). Several pooled tables can be combined to form a table pool. The table pool corresponds to a physical table on the database in which all the records of the allocated pooled tables are stored.

Cluster table Cluster tables contain continuous text, for example, documentation. Several cluster tables can be combined to form a table cluster. Several logical lines of different tables are combined to form a physical record in this table type. This permits object-by-object storage or object-by-object access. In order to combine tables in clusters, at least parts of the keys must agree. Several cluster tables are stored in one corresponding table on the database.

Generated view structure In activation a structure is generated for a view. This structure serves as interface for the runtime environment. It does not generally appear in the ABAP/4 Dictionary.

What is a Data Class?

The Data class determines in which tablespace the table is stored when it is created in the database. What is a Size Category? The Size category describes the probable space requirement of the table in the database. How Many types of size categories and data classes are there? There are five size categories (0-4) and 11 data classes, only three of which are appropriate for application tables:
- APPL0 - Master data (data frequently accessed but rarely updated)
- APPL1 - Transaction data (data that is changed frequnetly)
- APPL2 - Organisational data (customizing data that is entered when system is
configured and then rarely changed)

What are control tables?

The values specified for the size category and data class are mapped to database-specific values via control tables.

What is the function of the transport system and workbench organiser?

The function of the transport system and the Workbench Organizer is to manage any changes made to objects of the ABAP/4 Development Workbench and to transport these changes between different SAP systems.

What is a table pool?
A table pool (or pool) is used to combine several logical tables in the ABAP/4 Dictionary. The definition of a pool consists of at least two key fields and a long argument field (VARDATA).

What are pooled tables?
These are logical tables which must be assigned to a table pool when they are defined. Pooled tables can be used to store control data (such as screen sequences or program parameters).

What is a table cluster?
A table cluster combines several logical tables in the ABAP/4 Dictionary. Several logical rows from different cluster tables are brought together in a single physical record. The records from the cluster tables assigned to a cluster are thus stored in a single common table in the database.

Which objects are independent transport objects?
Domains, Data elements, Tables, Technical settings for tables, Secondary indexes for transparent tables,
Structures, Views,
Matchcode objects, Matchcode IDs, Lock objects.

What are the Data types of the external layer?
ACCP, CHAR, CLNT, CUKY,CURR, DATS, DEC, FLTP, INT1,INT2, INT4, LANG, LCHR,LRAW, NUMC, PREC, QUAN,RAW ,TIMS, UNIT, VARC.

What are the Data types of the ABAP/4 layer?

Possible ABAP/4 data types: C: Character. D: Date, format YYYYMMDD. F: Floating-point number in DOUBLE PRECISION (8 bytes). I: Integer. N: Numerical character string of arbitrary length. P: Amount or counter field (packed; implementation depends on hardware platform). S: Time stamp YYYYMMDDHHMMSS. T: Time of day HHMMSS. V: Character string of variable length, length is given in the first two bytes. X: Hexadecimal (binary) storage.

How can we set the tablespaces and extent sizes ?
You can specify the extent sizes and the tablespace (physical storage
area in the database) in which a transparent table is to be stored by setting the size category and data class.

What is a data dictionary ?
Data dictionary is a central source of data in a data management system. Its main function is to support the .It has details about

- What data is contained ?
- What are the attributes of the data ?
- What is the relationship existing between the various data elements ?

What functions does a data dictionary perform ?
In a data management system, the principal functions performed by the data dictionary are
- Management of data definitions
- Provision of information for evaluation
- Support for software development
- Support form documentation
- Ensuring that the data definitions are flexible and up-to-date.

A field containing currency amounts (data type CURR) must be assigned to a reference table and a reference field. Explain.

As a reference table, a system table containing all the valid currencies is assigned or any other table which contains a field with the currency key format. This field is called as reference field. The assignment of the field containing currency amounts to the reference field is made at runtime. The value in the reference field determines the currency of the amount.

What is the significance of Technical settings (specified while creating a table in the data dictionary) ?

By specifying technical settings we can control how database tables are created in the database. The technical settings allows us to - optimize storage space requiremnets
- table access behaviour
- buffering required
- changes to entries logged

What is the significance of Delivery Class ?
- The delivery class controls the degree to which the SAP or the customer is responsible for table maintenance
- whether SAP provides the table with or without contents.
- determines the table type. - determines how the table behaves when it is first installed, at upgrade, when it is transported, and when a client copy is performed.

What is the maximum number of structures that can be included in a table or structure
- Nine.

What are the two methods of modifying Sap standard tables ?
- Append Structures and
- Customizing Includes.


What is the difference between a Substructure and an Append Structure ?
- In case of a substructure, the reference originates in the table itself, in the forma of a statement .include... . - In case of an append structure, the table itself remains unchanged and the refrence originates in the append structure.
What are the two ways for restricting the value range for a domain ? - By specifying fixed values.
- By stipulating a value table.

What is a Match Code ?

Match Code is a tool to help us to search for data records in the system. Match codes are an efficient and user-friendly search aid where key of a record is unknown. What are the two levels in defining a Match Code ?
- Match Code object
- Match Code Id.

What is the maximum number of match code Id's that can be defined for one Match code object ?
- 36. A match code Id is a one character ID which can be a letter or a number.

Can we define our own Match Code ID's for SAP Matchcodes ?
Yes, the numbers 0 to 9 are reserved for us to create our own Match Code IDs for a SAP defined Matchcode object.

What is an Update type with reference to a Match code ID?
If the data in one of the base tables of a matchcode ID changes, the matchcode data has to be updated. The update type stipulates when the matchcode is to be updated and how it is to be done. The update type also specifies which method is to be used for Building matchcodes . You must specify the update type when you define a matchcode ID.

What are conversion routines ?
- Non standard conversions from display format to sap internal format and vice-versa are implemented with so called conversion routines.
Aggregated Objects Views, matchcodes, and lock objects are also called aggregate objects because they are formed from several related tables.

What is a View ?
- A view is a logical view on one or more tables. A view on one or more tables i.e, the data from a view is not actually physically stored instead being derived from one or more tables. A view can be used to summarize data which is distributed among several tables

How many types of Views are there ? - Database View (SE11)
Database views are implement an inner join, that is, only records of the primary table (selected via the join operation) for which the corresponding records of the secondary tables also exist are fetched. Inconsistencies between primary and secondary table could, therefore, lead to a reduced selection set. In database views, the join conditions can be formulated using equality relationships between any base fields. In the other types of view, they must be taken from existing foreign keys. That is, tables can only be collected in a maintenance or help view if they are linked to one another via foreign keys.

- Help View ( SE54)
Help views are used to output additional information when the online help system is called. When the F4 button is pressed for a screen field, a check is first made on whether a matchcode is defined for this field. If this is not the case, the help view is displayed in which the check table of the field is the primary table. Thus, for each table no more than one help view can be created, that is, a table can only be primary table in at most one help view.

- Projection View

Projection views are used to suppress or mask certain fields in a table (projection), thus minimizing the number of interfaces. This means that only the data that is actually required is exchanged when the database is accessed. A projection view can draw upon only one table. Selection conditions cannot be specified for projection views.

- Maintenance View ( SE54 )

Maintenance views enable a business-oriented approach to looking at data, while at the same time, making it possible to maintain the data involved. Data from several tables can be summarized in a maintenance view and maintained collectively via this view. That is, the data is entered via the view and then distributed to the underlying tables by the system.


What is Locking ?
- When two users simultaneously attempt to access the same data record, this is synchronised by a lock mechanism.
When dialog transactions are programmed, locks are set and released by calling certain function modules. These function modules are generated automatically from the definition of so-called lock objects in the ABAP/4 Dictionary. To synchronize the access to a table by setting and removing locks, a Lock object has to be defined in the ABAP/4 Dictionary. Activating the lock object automatically creates #function modules for setting and removing locks. These function modules must be included when programming interactive transactions.

Lock Mechanism : To set locks, a lock object must be defined in the ABAP/4 Dictionary. In this lock object, those tables in which data records are to be locked by calling a lock are determined. All tables included in a lock object must be connected to each other via foreign keys. The key fields of the tables in a lock object form the Lock arguments for the tables. The lock arguments are the basis for formulating the logical condition for identifying the records to be locked. When activating this lock object, two function modulesB with the names ENQUEUE_ and DEQUEUE_ are generated.

Example :
Problem :
You wish to prevent a user from being able to change the name of a course or the name of the professor with responsibility for the course at a time when another user is editing the course description (which contains this information).

Solution : The problem described above can be solved by defining a lock object E_UKURS. This is done by defining primary and secondary tables in the lock object. Table UKURS is check table of table UKRSB, so UKURS should be selected as primary table and UKRSB as secondary table of the lock object. The Lock argument in this case is the field combination FABNR, KRSNR, and SPRAS (i.e Primary Key Combination). The Lock mode Shared is to be selected here. This allows several users to access the data simultaneously in display mode. The lock mode in the generated function modules for setting (ENQUEUE_E_UKURS) and releasing (DEQUEUE_E_UKURS) locks is therefore set to shared as default, but can be overridden by calling the function modules. If the function module ENQUEUE_E_UKURS is called with FABNR = '1' and KRSNR = '3', the record for course 3 in faculty 1 is locked in table UKURS. Furthermore, all the course descriptions for this course are locked in table UKRSB since field SPRAS was not specified when the function module was called. In such cases, the lock is made generically for a field which is not defined. If the function module DEQUEUE_E_UKURS is now called with FABNR = '1', KRSNR = '3' and SPRAS = 'D', the German course description is unlocked. All other course descriptions remain locked.

What is database utility ?
-
Database utility is the interface between the ABAP/4 Dictionary and the underlying the SAP system.
The database utility is the interface between the ABAP/4 Dictionary and the relational database underlying the SAP system. You can call the database utility from the initial screen of the ABAP/4 Dictionary with Utilities ® Database utility. The database utility allows you to create, delete and convert objects from the ABAP/4 Dictionary in the database. MODULARIZATION What is Modularization and its benefits? If the program contains the same or similar blocks of statements or it is required to process the same function several times, we can avoid redundancy by using modularization techniques. By modularizing the ABAP/4 programs we make them easy to read and improve their structure. Modularized programs are also easier to maintain and to update.

How can we create callable modules of program code within one ABAP/4 Program?
A. By defining macros. B. By creating include programs in the library.

What are subroutines?
Subroutines are program modules which can be called from other ABAP/4 programs or within the same program.

What are the types of Subroutines?
A. Internal Subroutines: The source code of the internal subroutines will be in the
same ABAP/4 program as the calling procedure (internal call).
B. External Subroutines: The source code of the external subroutines will be in an
ABAP/4 program other than the calling procedure.

What are the different types of parameters?
Formal parameters: Parameters which are defined during the definition of subroutine with the FORM statement. Actual parameters: Parameters which are specified during the call of a subroutine with the PERFORM statement.

How can one distinguish between different kinds of parameters?
A. Input parameters are used to pass data to subroutines. B. Output parameters are used to pass data from subroutines.

What are the different methods of passing data?
A. Calling by reference: During a subroutine call, only the address of the actual
parameter is transferred to the formal parameters. The formal parameter has no memory of its own, and we work with the field of the calling program within the subroutine. If we change the formal parameter, the field contents in the calling program also change.
B. Calling by value: During a subroutine call, the formal parameters are created as
copies of the actual parameters. The formal parameters have memory of their own. Changes to the formal parameters have no effect on the actual parameters.
C. Calling by value and result: During a subroutine call, the formal parameters are
created as copies of the actual parameters. The formal parameters have their own memory space. Changes to the formal parameters are copied to the actual parameters at the end of the subroutine.
The method by which internal tables are passed is By Reference.

What is the difference between the function module and a normal ABAP/4 subroutine?

In contrast to normal subroutines function modules have uniquely defined interface. Sub routines do not return values.
Sub routines do not return exceptions. Sub routines cannot be tested independently. Declaring data as common parts is not possible for function modules. Function modules are stored in a central library. What is a function group? A function group is a collection of logically related modules that share global data with each other. All the modules in the group are included in the same main program. When an ABAP/4 program contains a CALL FUNCTION statement, the system loads the entire function group in with the program code at runtime. Every function module belongs to a function group.

What is the difference between internal tables and extract datasets?

A. The lines of an internal table always have the same structure. By using extract
datasets, you can handle groups of data with different structure and get statistical figures from the grouped data.
B. You have to define the structure of the internal table at the begining. You need
not define the structure of the extract dataset.
C. In contrast to internal tables, the system partly compresses extract datasets
when storing them. This reduces the storage space required.
D. Internal tables require special work area for interface whereas extract datasets
do not need a special work area for interface.

BASIS LAYER Interview Questions

What are the central interfaces of the R/3 system ?
- Presentation interface
Database interface
Operating system interface

Which interface controls what is shown on the p.c. ?
- Presentation interface

Which interface converts SQL requirements in the SAP development system to those of the database ?- Database interface

What is SAP dispatcher ?
- SAP dispatcher is the control agent which manages the resources for the R/3 applications.

What are the functions of dispatcher ?
- Equal distribution of transaction load to the work processes
Management of buffer areas in main memory Integration of the presentation levels
Organization of communication activies

What is a work process ?
- A work process is where individual dialog steps are actually processed and the work is done. Each work process handles one type of request.

Name various work processes of R/3 system ?
1) Dialog or Online ( processes only one request at a time )
2) Background ( started at a specified time ) 3) Update ( primary or secondary ) 4) Enque( lock mechanism ) 5) Spool ( generated online or during back ground processing For printing )

What are the types of Update requests ?
- An update request can be divided into one primary (V1) and several Secondary update components (V2). Time-critical operations are placed in V1 component and those whose timing are less critical are placed in V2 components. If a V1 update fails, V2 components will not be processed.

What are the roll and page areas ?
- Roll and page areas are SAP R/3 buffers used to store user contexts ( process requests ) . The SAP dispatcher assigns process requests to work processes as they are received. If the work process is unavailable the process requests are queued in the roll and page areas. Paging area holds data from the application programs. Roll area holds data from previous dialog steps and data that characterizes user.

What is a Spool request ?
- Spool requests are generated during dialog or background processing and placed in the spool database with information about the printer and print format. The actual data is placed in the Tem Se (Temporary Sequential objects).

What are the different database integrities ?
- Semantic integrity
- Relational integrity
- Primary key integrity
- Value set integrity
- Foreign key integrity and
- Operational integrity.

SAP Terminology

Master data is a collection of information about a person or an object, e.g. a cost object, vendor, or G/L account. For example, a vendor master record contains not only general information such as the vendor's name and address, but also specific information, such as payment terms and delivery instructions. Generally for end users, master data is reference data that you will look up and use, but not create or change.

Transactional data is data related to a single business event such as a purchase requisition or a request for payment. When you create a requisition, for example, SAP creates an electronic document for that particular transaction. SAP gives the transaction a document number and adds the document to the transaction data that is already in the system. Whenever you complete a transaction in SAP, that is, when you create, change, or print a document in SAP, this document number appears at the bottom of the screen.

Workflow A routing tool in SAP that forwards documents for review or approval. For example, a requisition that needs to be approved is sent to the appropriate approver's inbox.Workflow is also used to route journal vouchers, credit card charges, and other documents in SAP.

Cost Object: A Cost Object collects expenses and revenues for a particular purpose, such as a research project. In SAP there are three types of cost objects: Cost Center, Internal Order, and WBS (Work Breakdown Structure) Element (see below for definition).

Cost Center: General or operating Cost Objects are known in SAP as Cost Centers. Cost Centers are budgeted on the fiscal year.

Internal Order: A non-sponsored Cost Object (for example, funding from the MIT Provost) used to track costs over periods other than fiscal years. Internal Orders are often created to track gifts or endowments at MIT.

WBS Element: WBS Elements are funded by outside sponsors and are used to track costs of a particular research project over the entire span of its activity. They may also be created to track other sponsored activities, such as gifts.

G/L Account: G/L accounts are also called Cost Elements in SAP. They are a classification by expense or revenue type. In the CO (Controlling) module of SAP, the term Cost Element is used. In the FI (Financial) module, the term G/L Account is used. These terms are used interchangeably for reporting, requisitions, and journal vouchers.

Database tables and open SQL Add a single record to a database table insert into values Inserting all lines from an internal table into a database table: insert from table Delete all records Select * from zmellemtab. delete zmellemtab. endselect. Deleting records using records from an internal table delete employees from table itab.

ABAP FAQs

Q: Is there any standard SAP report which gives a count of the number of times a program is executed ?

A: Try transaction STAT

Q: When we create a customer the information is updated in structure RF02D and the some tables like KNA1 are updated. How can we find the tables for master data transactions?
A: Go to ABAP Workbench -> Overview -> application hierarchy - SAP -> follow the customizing based tree for your application. Double click on a lowest hierarchy level to get for the correct marked development class. Here you can find all the tables, views, logical databases etc. used for a system operation.

Q: How can we use CAD with SAP ?
A: Third party tools from Eigner + Partner provide interfaces to SAP. Another third party software - Fastlook Plus from Kamel Software enables you to view all of the Autocad formats.

Q: How can I access SAP through Internet?
A: SAP has its own Internet transaction Server (ITS) . Other products include Haht, WebObjects, NetDynamics etc. Each product has its' own architecture.
However to access the database, access paths SAP GUI or RFC Channel have to be used.

Q: How can we transport the standard text?
A: Refer note 3355 in OSS for a complete explanation. The SAPscript objects that should be transported must be written in a transport request.
The entries are as follows:
R3TR FORM NAME (NAME = Name of the layout set)
R3TR STYL NAME (NAME = Name of the style)
R3TR TEXT OBJECT,NAME,ID,L
(OBJECT = Text object, NAME = Text name, ID = Text ID, L = Text language)
If you want to transport a number of texts, you can use report RSTXTRAN to insert the individual text keys into a correction. The transport request must be entered and released via the transport system.

Q: How to find what transactions a particular user was running for a given period in the past (Eg: from 1st of a month )
A: You may use the transaction - STAT.

Q: We want protect/lock a field so that only selected people can change the value while others can only read. How to set the authorizations?
A: Create an authorization object for change mode. Loop at screen in the user exit and set input to 0. Check the user based on sy-uname and the authorization. Decide whether input should be 0 or 1.

Q: How to lock an user defined transaction for some time during which no user can access the same?
A: Use transaction SM01. Scroll through the transactions and check against the transaction to be locked. And after the maintenance is over, go back to SM01 and uncheck the same to unlock.

B D C

Q: Our ABAP program is working properly in Foreground. Can I schedule it for background processing on the weekend?
A: SAP standard program RSBDCSUB helps you to schedule the job. Create a variant for RSBDCSUB with the BDC session name.

Q: How can we send a mail to the user intimating him that his report/BDC is completed in background?
A: You can use FUNCTION RS_SEND_MAIL_FOR_SPOOLLIST
If Unix is being used, you may send a report to any internet mail with the following:

REPORT ZSNDMAIL .

DATA: COMND(200) type c.

DATA: RESULT(200) type c occurs 100 with header line.

PARAMETERS: FILE(60) type c lower case default '/sapdata/sd_outbound/testmail.dat'.

PARAMETERS: SUBJECT(60) type c lower case.

PARAMETERS: EMAIL(60) type c lower case.

INITIALIZATION.

TRANSLATE EMAIL TO LOWER CASE.

START-OF-SELECTION.

TRANSLATE EMAIL TO LOWER CASE.

CONCATENATE 'cat' FILE '| elm -s "' subject '"' email into comnd seperated by space.

CALL 'SYSTEM' ID 'COMMAND' FIELD comnd 'TAB' FIELD UNIX_RESULTS-*SYS*.

Loop at Results.

write: /1 results.

endloop

end-of-selection.

SAPScript

Q: We get the total number of pages as expected by using 'SAPSCRIPT-FORMPAGES' in a duplex layout. In our case duplex case is always 'Terms & Conditions'. We do not want the number of pages as in duplex printing. What is the best possible solution?
A: On the Terms & Conditions page, Change the Page counter mode to 'HOLD' to keep the page counter from incrementing when you print the Term & Conditions.

Q: Can I Print a logo on an Invoice?
A: Save a Logo using Paintshop Pro or Corel Draw as Tiff file. Use RSTXLDMC to convert the logo to standard text in SapScript. When the program is executed, the path and file name have to be correctly specified.
Process could be like the following:
Run RSTXLDMC
Enter file name C:\MAIL\COMPLOGO.TIF
Resolution for Tiff file
Absolute X-position
Absolute Y-position
Absolute positioning
Reserved height
Shift to right
UOM = CM
Text title
Line width for text = 132
Text name ZHEX-MACRO-COMPLOGO
Text ID ST
Text language = E
Postscript scaling
Width & Height according to PS scaling
Number of Tiff gray levels (2,4,9) 2
Then Create a new window 'COMP' with attributes;
Window COMP description Company Logo
Window type CONST
Left margin 7.00 CH window width 10.00 CH
Upper margin LN window height 8.00 LN
Finally in the text element , mention
/: INCLUDE 'ZHEX-MACRO-COMPLOGO' OBJECT TEXT ID ST LANGUAGE 'E'.
Please note that if object name is not indicated as 'ZHEX...', the logo may not be printed!
You will not be able to see the logo in a test print. The same will be printed in actual printout.
If you are using two logos in the same layout, the names of the logos should be unique. Say 'ZHEX-MACRO-LOGO1' and 'ZHEX-MACRO-LOGO2'. Else all the information will be overwritten.
If the logo is not EXACTLY TIFF 6.0 , the same will not be printed.
See OSS notes 5995, 18045, 39031 for some inputs.

RFC

Q: We want to move a SAP table to an Access table using TABLE_EXPORT_TO_MSACCESS_RFC
Importing parameters are
DBNAME
DEST
FLG_APPEND
FLG_POPUP
LANGU
The table has three columns:
TABNAM
MANDT
SDATA
We have no Exporting parameters.
How shall we set the parameters?
A: Install the PS utilities, which are part of SAPGUI install CD. You may run report RIACCESS from SE38. Go to SALE -> Communication -> Define RFC Destination. Setup two RFC destinations PS_ACCESS_1 and PS_ACCESS_2 and will have to get them to point to wdpsastr.exe and wdpsatab.exe respectively. Then execute RIACCESS and choose PS_ACCESS_1 to generate access tables. Please note that Access only supports tables with up 255 fields.

Q: We want an RFC do the following transactions - MB1A, MB1C,>MB01 (goods receipt/issue).
A: Call the RFC INBOUND_IDOC_PROCESS with IDOC_CONTROL and IDOC_DATA. The structure in the field sdata in the IDOC_DATA are e1mbxyh and e1mbxyi.

Transports

Q: In a Dev instance, we want to transport a modification to a layout set from one client to another. What is the best way?
A: use transaction SE71. Choose Utilities->Copy from Client. Layout sets need not be transported between clients , via transport requests DEVKxxxxxx.

Q: We need to keep track of the transports that need to flow through to other systems (ie, DEV, TST, TRN, PRD etc). Is there a way do this?
A: SAPCRAFT enables you to control the CTS from DEV system. This keeps track of all transports at all stages and enables you to allocate Import, export and Authorization functions to specific user.

Tables

Q: We specify the logical database. And we want a field that is not present in any of the tables defaulted in logical database. How can we want to add this additional field from a different table?
A: . Presume you have a

logical database

table 1

table 2

table 3

Define the required field as additional field say fld of table 1, table 2 or table 3

and then in the code section define.

Perform get_f1d(zxxxxxxx) using f1d.

Form zxxxxxxx could be like;

Form get_f1d using f.

Select * from where 'conditions'

f = table4 - f1d.

Q: We need to download an internal table to the Presentation Server(local workstation). Whenever we run the program, the same file has to be saved as a separate file in sequential order. Ex: 0001.txt, 0002.txt etc. Where can we store the last file number?
A: SAP has a table TVARV for storing the variants.
A record may be created in TVARV for all the programs that require this kind of incremental records.
For Ex: the record could be 100Zmm10001 MM sequence rec where first part consists of client code and the program being run. Client code is required because TVARV does not has a field for client code. The second part is the description indicating the purpose what the record is created. This entire string may be posted in the Name field (char - 30).
The Type field ( char- 1) may be populated with P or S (Parameter or Selection)
Low field (char- 45) may be populated with '0001' when run first time and increment it by one in your program for downloading of the internal table.

Batch input / Direct input

Q: We are calling transaction VL01 in batch input to create deliveries using a program for delivery due list. How ever we are unable to create deliveries for transport stock orders. Why?
A: Batch-inputs can not be used to fill the "delivery due list" screen because it is not a dynpro. This is a standard SAP report. A SAP report (check with "System -> Status") may be called using SUBMIT sentence with the appropriate options . It is preferred to call a report than create a Batch-input program.

Q: What are some sample Direct input data transfer programs?
A: In MM for Material Master data - RMDATIND
FI - for Accounting Documents - RFBIBL00
PP - for Independent requirements - RM06IN00
CA - for Classification data - RCCLBI03

What is ABAP?

ABAP is a programming language for developing applications for the SAP R/3 system. The latest version, ABAP Objects, is object-oriented programming. SAP will run applications written using ABAP/4, the earlier ABAP version, as well as applications using ABAP Objects.

ABAP Technical Interview Questions

1. What is the typical structure of an ABAP program?
2. What are field symbols and field groups.? Have you used "component idx of structure" clause with field groups?
3. What should be the approach for writing a BDC program?
4. What is a batch input session?
5. What is the alternative to batch input session?
6. A situation: An ABAP program creates a batch input session. We need to submit the program and the batch session in background. How to do it?
7. What is the difference between a pool table and a transparent table and how they are stored at the database level?
8. What are the problems in processing batch input sessions? How is batch input process different from processing on line?
9. What do you define in the domain and data element?
10. What are the different types of data dictionary objects?
11. How many types of tables exist and what are they in data dictionary?
12. What is the step-by-step process to create a table in data dictionary?
13. Can a transparent table exist in data dictionary but not in the database physically?
14. What are the domains and data elements?
15. Can you create a table with fields not referring to data elements?
16. What is the advantage of structures? How do you use them in the ABAP programs?
17. What does an extract statement do in the ABAP program?
18. What is a collect statement? How is it different from append?
19. What is open sql vs native sql?
20. What does an EXEC SQL stmt do in ABAP? What is the disadvantage of using it?
21. What is the meaning of ABAP editor integrated with ABAP data dictionary?
22. What are the events in ABAP language?
23. What is an interactive report? What is the obvious diff of such report compared with classical type reports?
24. What is a drill down report?
25. How do you write a function module in SAP? Describe.
26. What are the exceptions in function module?
27. What is a function group?
28. How are the date abd time field values stored in SAP?
29. What are the fields in a BDC_Tab Table?
30. Name a few data dictionary objects?
31. What happens when a table is activated in DD?
32. What is a check table and what is a value table?
33. What are match codes? Describe?
34. What transactions do you use for data analysis?
35. What is table maintenance generator?
36. What are ranges? What are number ranges?
37. What are select options and what is the diff from parameters?
38. How do you validate the selection criteria of a report? And how do you display initial values in a selection screen?
39. What are selection texts?
40. What is CTS and what do you know about it?
41. When a program is created and need to be transported to prodn does selection texts always go with it? if not how do you make sure? Can you change the CTS entries? How do you do it?
42. What is the client concept in SAP? What is the meaning of client independent?
43. Are programs client dependent?
44. Name a few system global variables you can use in ABAP programs?
45. What are internal tables? How do you get the number of lines in an internal table? How to use a specific number occurs statement?
46. How do you take care of performance issues in your ABAP programs?
47. What are datasets?
48. How to find the return code of a stmt in ABAP programs?
49. What are interface/conversion programs in SAP?
50. Have you used SAP supplied programs to load master data?

2. Adapted from response by Maram Roja on Tuesday, June 15, 2004

1. What are the techniques involved in using SAP supplied programs? Do you prefer to write your own programs to load master data? Why?
2. What are logical databases? What are the advantages/disadvantages of logical databases?
3. What specific statements do you using when writing a drill down report?
4. What are different tools to report data in SAP? What all have you used?
5. What are the advantages and disadvantages of ABAP query tool?
6. What are the functional areas? User groups? How does ABAP query work in relation to these?
7. Is a logical database a requirement/must to write an ABAP query?
8. What is the structure of a BDC sessions.
9. What are Change header/detail tables? Have you used them?
10. What do you do when the system crashes in the middle of a BDC batch session?
11. What do you do with errors in BDC batch sessions?
12. How do you set up background jobs in SAP? What are the steps? What are the event driven batch jobs?
13. Is it possible to run host command from SAP environment? How do you run?
14. What kind of financial periods exist in SAP? What is the relevant table for that?
15. Does SAP handle multiple currencies? Multiple languages?
16. What is a currency factoring technique?
17. How do you document ABAP programs? Do you use program documentation menu option?
18. What is SAPscript and layout set?
19. What are the ABAP commands that link to a layout set?
20. What is output determination? ABAP Technical Interview Questions:

1. What is the typical structure of an ABAP program?
2. What are field symbols and field groups.? Have you used "component idx of structure" clause with field groups?
3. What should be the approach for writing a BDC program?
4. What is a batch input session?
5. What is the alternative to batch input session?
6. A situation: An ABAP program creates a batch input session. We need to submit the program and the batch session in background. How to do it?
7. What is the difference between a pool table and a transparent table and how they are stored at the database level?
8. What are the problems in processing batch input sessions? How is batch input process different from processing on line?
9. What do you define in the domain and data element?
10. What are the different types of data dictionary objects?
11. How many types of tables exist and what are they in data dictionary?
12. What is the step-by-step process to create a table in data dictionary?
13. Can a transparent table exist in data dictionary but not in the database physically?
14. What are the domains and data elements?
15. Can you create a table with fields not referring to data elements?
16. What is the advantage of structures? How do you use them in the ABAP programs?
17. What does an extract statement do in the ABAP program?
18. What is a collect statement? How is it different from append?
19. What is open sql vs native sql?
20. What does an EXEC SQL stmt do in ABAP? What is the disadvantage of using it?
21. What is the meaning of ABAP editor integrated with ABAP data dictionary?
22. What are the events in ABAP language?
23. What is an interactive report? What is the obvious diff of such report compared with classical type reports?
24. What is a drill down report?
25. How do you write a function module in SAP? Describe.
26. What are the exceptions in function module?
27. What is a function group?
28. How are the date abd time field values stored in SAP?
29. What are the fields in a BDC_Tab Table?
30. Name a few data dictionary objects?
31. What happens when a table is activated in DD?
32. What is a check table and what is a value table?
33. What are match codes? Describe?
34. What transactions do you use for data analysis?
35. What is table maintenance generator?
36. What are ranges? What are number ranges?
37. What are select options and what is the diff from parameters?
38. How do you validate the selection criteria of a report? And how do you display initial values in a selection screen?
39. What are selection texts?
40. What is CTS and what do you know about it?
41. When a program is created and need to be transported to prodn does selection texts always go with it? if not how do you make sure? Can you change the CTS entries? How do you do it?
42. What is the client concept in SAP? What is the meaning of client independent?
43. Are programs client dependent?
44. Name a few system global variables you can use in ABAP programs?
45. What are internal tables? How do you get the number of lines in an internal table? How to use a specific number occurs statement?
46. How do you take care of performance issues in your ABAP programs?
47. What are datasets?
48. How to find the return code of a stmt in ABAP programs?
49. What are interface/conversion programs in SAP?
50. Have you used SAP supplied programs to load master data?

Break Points in ABAP

You can now create (de)activable breakpoints in your programs. You can release these breakpoints in production and a customer will have the opportunity to activate and debug your code more easily.

The following is an activable break-point : BREAK-POINT ID dany.

The checkpoint group is defined by double clicking on the checkpoint group in the editor OR directly via transaction SAAB.

Below is the SAAB screen. In the breakpoints part of the screen, you can set it to "inactive" or "break". All breakpoint groups will be shipped inactive by default.

Assert :

An assertion is a condition which must be true during program execution. By using asserts in your program, you can find cause of error in shorter time. The reaction when violating an assertion depend on a customizing and could be :

  1. Start the debugger from this assert

  2. Do nothing, ignore the assert

  3. Log the assertion in a log

  4. Terminate the program with runtime error ASSERTION_FAILED

The assertions are defined in SAAB (exactly like the breakpoints, see screen above).Here is an example of a use for an assertion :

METHOD sort_by_name.
     
DATA: l_f1 TYPE i VALUE 2,
      l_f2 TYPE c LENGTH 10 VALUE 'test',
      l_t1 TYPE TABLE OF sflight.
     
   the_sorting_algorithm.
     
   ASSERT ID        dany
          SUBKEY    'danysub1'
          FIELDS    l_f1 l_f2 l_t1
          CONDITION itab->is_sorted_by_name( ) <> ' '.                
ENDMETHOD.

This will ensure that the table is sorted. Below is the result of the log for this assert

You can now create (de)activable breakpoints in your programs. You can release these breakpoints in production and a customer will have the opportunity to activate and debug your code more easily.

The following is an activable break-point : BREAK-POINT ID dany.

The checkpoint group is defined by double clicking on the checkpoint group in the editor OR directly via transaction SAAB.

Below is the SAAB screen. In the breakpoints part of the screen, you can set it to "inactive" or "break". All breakpoint groups will be shipped inactive by default.

Assert :

An assertion is a condition which must be true during program execution. By using asserts in your program, you can find cause of error in shorter time. The reaction when violating an assertion depend on a customizing and could be :

  1. Start the debugger from this assert

  2. Do nothing, ignore the assert

  3. Log the assertion in a log

  4. Terminate the program with runtime error ASSERTION_FAILED

The assertions are defined in SAAB (exactly like the breakpoints, see screen above).Here is an example of a use for an assertion :

METHOD sort_by_name.
     
DATA: l_f1 TYPE i VALUE 2,
      l_f2 TYPE c LENGTH 10 VALUE 'test',
      l_t1 TYPE TABLE OF sflight.
     
   the_sorting_algorithm.
     
   ASSERT ID        dany
          SUBKEY    'danysub1'
          FIELDS    l_f1 l_f2 l_t1
          CONDITION itab->is_sorted_by_name( ) <> ' '.                
ENDMETHOD.

This will ensure that the table is sorted. Below is the result of the log for this assert

After sending the data(any type) from SENDER to RECEIVER can

YES we can send the data Either from receiver to sender and
vice versa. because
already we have partner profile in both systems and we
distributed

ABAP Keywords and their usage

What is a collect statement and how it is different from append ?
ANS:-
If an entry with the same key already exists, the COLLECT statement does not append a new line, but adds the contents of the numeric fields in the work area to the contents of the numeric fields in the existing entry.
Dependency Syntax: General Rules in SAP


Operators

Operators
Use in Dependencies

AND
Two statements that are both either true or not true are linked with AND.

Length = 300 and Width = 200

OR
Two statements of which at least one is either true or not true are linked with OR.

Color = ‘red’ or Basic_material = ‘wood’

NOT
You can negate one or more expressions by using NOT.

NOT (Color = ‘blue’)

NOT (Color = ‘red’ and Basic_material = ‘wood’)

IF
Conditions in actions and procedures start with IF.

Color = 'red' if Model = ‘A’



Special Features

Lists
In lists, the individual elements are always separated by commas.

COLOR = 'RED' IF MODEL = 'A',
COLOR = 'BLUE' IF MODEL = 'B',
COLOR = 'GREEN' IF MODEL = 'C',

Case sensitivity
In characteristic names, object variables, and operators, there is no distinction between upper case and lower case letters.


Concatenation

LC
All letters are converted to lower case.

Leather_saddle = LC('Alpha')

= 'a'

UC
All letters are converted to upper case.

Leather_saddle = U C('Alpha')

= 'A'

This function is important if the assigned characteristic does not allow lower case, but the assigned expression may contain lower-case letters.

||
The string is cut off at the maximum number of 30 characters.

Leather_saddle = Alpha || Beta

= 'AB'


List of Built-In Conditions

Expression
Implied Condition

SPECIFIED
Characteristic has a value:

SPECIFIED COLOR

See Built-In Condition SPECIFIED

IN
One of these values must be set:

COLOR IN (‘red’, ‘green’, ‘blue’)

See Built-In Condition IN

TYPE_OF
Only for certain objects:

TYPE_OF ($ROOT, (Material) (300) (NR = 'U91’))

See Built-In Condition TYPE_OF

PART_OF
The object is a component of a BOM

(only in constraints).

See Constraints: Entering Conditions

SUBPART_OF
The object is a component of an assembly that is part of the BOM of a configurable material

(only in constraints).







WRITE TO sap abap keyword syntax and description

Assigns strings.
Syntax
WRITE TO [].
Converts the contents of the data object to type C and assigns the resulting string to the
variable . You can use the same formatting options available in the WRITE statement.





WRITE sap abap keyword syntax and description

Creates list output.
Syntax
WRITE [AT [/][][()]] [AS CHECKBOX|SYMBOL|ICON|LINE]
[QUICKINFO ].
[]
The contents of the field are formatted according to their data type and displayed on the list.
The additions before the field allow you to specify a line break, the starting position, and the
length of the field. The additions after the field allow you to display checkboxes, symbols, icons,
and lines. The addition can contain various other formatting options. The QUICKINFO
addition allows you to assign a quickinfo to the field.





WINDOW sap abap keyword syntax and description

Displays a list as a modal dialog box.
Syntax
WINDOW STARTING AT [ENDING AT ].
Can only be used in list processing. The current detail list is displayed as a modal dialog box.
The top left-hand corner of the window is positioned at column and line . The bottom
right-hand corner is positioned at column and line (if specified).





WHILE sap abap keyword syntax and description

Introduces a loop.
Syntax
WHILE [VARY FROM NEXT ].
Introduces a statement block that is concluded with ENDWHILE. The statement block between
WHILE and ENDWHILE is repeated for as long as the expression is true, or until a
termination statement such as CHECK or EXIT occurs. The VARY addition allows you to process
fields that are a uniform distance apart within memory.





WHEN sap abap keyword syntax and description

Introduces a statement block in a CASE control structure
Syntax
WHEN [OR OR...] | OTHERS.
The statement block after a WHEN statement is executed if the contents of the field in the
CASE statement are the same as those of one of the fields
. Processing then resumes after the ENDCASE statement. The WHEN OTHERS statement
block is executed if the contents of do not correspond to any of the fields .





UPDATE sap abap keyword syntax and description

Modifies lines in database tables.
Syntax
UPDATE SET =
| = +
| = - [WHERE ].
Sets the value in to , increases it by , or decreases it by for all selected lines. The
WHERE addition determines the lines that are updated. If you omit the WHERE addition, all lines
are updated.
Syntax
UPDATE FROM .
UPDATE FROM TABLE .
Overwrites the line with the same primary key as with the contents of , or all lines with
the same primary key as a line in the internal table with the corresponding line of itab. The
work area or the lines of the table must have at least the same length and the same
alignment as the line structure of the database table.





UNPACK sap abap keyword syntax and description

Converts variables from type P to type C.
Syntax
UNPACK TO .
Unpacks the packed field and places it in the string with leading zeros. The opposite of
PACK.





ULINE sap abap keyword syntax and description

Places a horizontal line on the output list.
Syntax
ULINE [AT [/][][()]].
Without additions, generates a new line on the current list and fills it with a horizontal line. The
additions allow you to insert a line break and specify the starting position and length of the line.





TYPES for Aggregate Types sap abap keyword syntax and description

Defines aggregated types.
Syntax
TYPES: BEGIN OF ,
...
...,
...
END OF .
Combines the data types to form the structure . You can address the individual
components of a structure in a program using a hyphen between the structure name and the
component name as follows: -.
Syntax
TYPES TYPE|LIKE OF [WITH ].
Defines the local data type in the program as an internal table with the access type
, the line type , and the key





TYPES for Simple Field Types sap abap keyword syntax and description

Defines a simple field type.
Syntax
TYPES [()] [TYPE |LIKE ] [DECIMALS ].
Defines the internal data type in the program with length , reference to the ABAP
Dictionary type or a data object , and, where appropriate, with decimal
places.
Syntax
TYPES TYPE REF TO |.
Defines the internal data type in the program with reference to the class or the
interface .





TYPE-POOLS sap abap keyword syntax and description

Declares the types and constants of a type group to a program.
Syntax
TYPE-POOLS .
After this statement, you can use all of the data types and constants defined in the type group
in your program.





TYPE-POOL sap abap keyword syntax and description

Introduces a type group.
Syntax
TYPE-POOL .
The first statement in a type group. You do not have to enter this statement in the ABAP Editor -
instead, it is automatically inserted in the type group by the ABAP Dictionary. A type group is an
ABAP program containing type definitions and constant declarations that can then be used in
several different programs.





TRANSLATE sap abap keyword syntax and description

Converts characters in strings.
Syntax
TRANSLATE TO UPPER|LOWER CASE
|USING .
The characters of the string are converted into upper- or lowercase, or according to a
substitution rule specified in .





TRANSFER

Writes data to a file.
Syntax
TRANSFER TO [LENGTH ].
Writes the field to the file on the application server. The LENGTH addition specifies
the length of the data you want to transfer





TOP-OF-PAGE sap abap keyword syntax and description

Event keyword for defining an event block for a list event.
Syntax
TOP-OF-PAGE [DURING LINE-SELECTION].
Whenever a new page begins while a standard list is being created, the runtime environment
triggers the TOP-OF-PAGE event and the corresponding event block is executed. The addition
DURING LINE-SELECTION has the same function, but for detail lists.





TABLES

Declares an interface work area.
Syntax
TABLES .
Declares a structure with the same data type and name as a database table, a view, or a
structure from the ABAP Dictionary. Structures declared using TABLES in main programs and
subroutines use a common data area.





SUPPRESS DIALOG sap abap keyword syntax and description

Prevents the current screen from being displayed.
Syntax
SUPPRESS DIALOG.
Can only occur in a PBO dialog module. The screen is not displayed, but its flow logic is still
processed.





SUPPLY sap abap keyword syntax and description

Fills context instances with values.
Syntax
SUPPLY = ... = TO CONTEXT .
Fills the key fields of the context instance with the values .
SUPPRESS

Content

Recent Topics