You are on page 1of 53

ABAP FAQ

SAP QUESTIONAIRE 1. 2. 3. Name the reports, interfaces, transactions, sap script programs written? Explain the Functionality? What is the typical structure of an ABAP/4 program? Ans. = Declarative elements, Operational, control, events. What are field symbols and field groups? Have you used component idx of structure clause with fields groups? Ans.: place holder for existing fields similar to fields point to point Groups. : Common several fields under one Name. What should be the approach for writing a BDC program? Ans.: 1. Analysis the Data. 2. Generate SAP structure. 3. Develop transfer program 4. Create sequential file. 5. Create batch input program. 6. Process batch input data What is the alternative to batch input session? Ans. : Call transaction & call dialog A situation: An ABAP program creates a batch input session. We need to submit the program and the batch session in back ground. How to do it? (up to 3.1H) Ans.: Run the session by RSBDCSUB explicitly by providing batch input session name Go to batch input, Double click on session name. It gives a pop up screen for run mode enter it and run. What are the problems in processing batch input sessions? How is batch input process different from processing on line? Ans.: Sessions cannot be run in parallel and not fast. Name as many SAP Transactions as possible you are familiar with? Ans. : SE38 - ABAP editor , SE80 Object Browser , SE36 logical databases SE11 ABAP data dictionary & SE16 SE37 Function Module What are the different types of data dictionary objects? Ans : Tables Data Elements Domains - Structure Foreign Keys How many types of tables exist and What are they in data dictionary? Ans : Transparent Tables - Pooled Tables Cluster Tables What is the step by step process to create a table in data dictionary? Ans : Create Domain Create Data elements Create fields Create Tables Can a transparent table exist in data dictionary but not in the database physically? Ans : Yes. (Tables in database have different structures, different names and total no. of tables in oracle database is smaller than transparent tables) What are the domains and data elements? Ans : domain describes Technical Characteristics of a table fields e.g. value range Elements describe role played by a fields in technical contains e.g. Form of field text. Can you create a table with fields not referring to data elements? Ans : yes

4.

5. 6.

7.

8.

9. 10. 11. 12.

13.

14.

Page 1 of 53

15.

What is the advantage of structures? How do you use them in the ABAP programs? Ans: structure is used to define the construction of data produced when calculations are carried out within programs or when data is transferred between programs. Contain data at runtime only. What does an extract statement do in the ABAP program? Ans: Fills the fields groups with values. What is a collect statement? How is it different from append? Ans: Collect does not allow duplicate keys and append adds a line even if it exists already. What is open SQL v/s Native SQL? Ans : Native SQL used to include SQL stmt of RDBMS in ABAP/4 programs Open SQL - subset of standard SQL with enhancements that are specific to SAP. What does an EXEC SQL stmt do in ABAP? What is the disadvantage of using it? Ans: it allows us to execute a SQL stmt relevant to a particular database attached to SAP. It is not transparent. (disadvantage) What is the meaning of ABAP/4 editor integrated with ABAP/4 Data dictionary? Ans: the Graphical programming environment. We can write ABAP/4 code, control access to objects under development, create new or access predefined database information. What are the events in ABAP/4 language? Ans: Interactive reports - At line selection At user-command At PF-status Classical reports - Top of page end of page start of selection end of selection. What is an interactive report? What is the obvious different of such report compared with HTML type report? Ans : Features Screen oriented short basic lists compressed data in basic list Detailed information in secondary lists or windows. What is drill down report? Ans: A list which you create by selecting on characteristic value of a report and which contains detailed information about that value. How do you write a function module in SAP? Describe. Ans : using function < fname> function library : parameters , importing changing tables exporting . Exceptions. End function What are the exceptions in a function module? Ans: error situations that can occur within function modules EXCEPTION - return codes. What is a function group? Ans : A function group is the main program for the function modules it contains. Functions that use the same data are normally assigned to the same function group. How are the date and time fields values stored in SAP? Ans: As character fields of length 8 and 8 as NUMC. What is a Julian date format?

16. 17.

18.

19.

20.

21.

22.

23.

24.

25. 26.

27. 28.

ABAP FAQ
29. 30. Name a few data dictionary objects? Ans: Tables Views Structure Domains Data elements Match codes Lock objects type groups. What happens when a table is activated in DD? -A table definition is generated - Map to the database system -For each table, a table of the same name with the same fields and corresponding data type is created in database. Primary index is generated automatically What is a check table and what is a value table? - When we define a foreign key in a table (A). If this key refers to primary key of another table (B). Table B is check table - Fields referring to a domain may assume values contained in the corresponding fields of the value table. Field referring to the domain should have a foreign key What are match codes? Describe. - Tool that helps us to search data records in the system. What transactions do you use for data analysis? What is table maintenance generator? - used to maintain tables and providing authorization for particular objects 1. One step maintenance 2. Two step maintenance What are ranges? What are number ranges? - A range of numbers that can be laid down for assignment of document numbers. Internal External What are select options and what is the different from parameters? - Select options are used to select a range of values where as in Parameters only one value can be given - Select option generates a line on selection screen, the first part of which contains a text, followed by a range for input possibilities. How do you validate the selection criteria of a report? And how do you display initial values in a selection screen? - Validation - AT LINE SELECTION Screen event - Initial Values by default statement in select options / parameters What are selection texts? - Texts that appear on the selection screen for a particular field. Default fields name. What is CTS and What do you know about it? [ CTS is Correction and Transport Systems ] - Correction system manages the internal system components like objects like only original version of the object exists. It stores all changes made to the object. - Transport system allows to transports the object from on SAP system to another (Development system to Production system). It allows to over write or delete existing Page 3 of 53

31.

32. 33. 34.

35.

36.

37.

38. 39.

object in target system and import new objects to target systems. During development work we start by opening a task (correction) to which we can assign new and changed objects. Once changes have been made, transport new or changed objects to other SAP system by means of transport (Change) request.

40.

When a program is created and need to be transported to production does selection texts always go with it? If no how do you make sure? Can you change the CTS entries? How do you do it? What is client concept in SAP? What is the meaning of client independent? - Client - A client is self contain unit in an R/3 system with separate master records in common tables(MANDT). - Client independent records and tables can be accessed from any client. Are program clients dependent? - No Name a few system global variables you can use in ABAP program? - SY-TEXT SY-TVARD SY-TVAR1 SY-TVAR2 What are internal tables? How do you get number of lines in an internal table? How to use a specific numbers occur statement? - Data structure that exists only at program runtime. Internal tables are one of two structured data types in ABAP. They can contain any number of identically structured rows, with or without a header line. - Internal Tables are temporary tables which used to store values at run time no. of lines in Internal tables DESCRIBE TABLE ITAB LINES LIN. - Use a Specific nos. OCCURS statement. How do you take care of performance issues in your ABAP programs? - Runtime Analysis What are data sets? - Sequential files in ABAP. How to find the return code of a stmt in ABAP programs? - SY-SUBRC What are interface / Conversion programs in SAP? - BDC Have you used SAP supplied programs to load master data? - SAP supplied BDC programs RM06BBI0 (Purchase requisitions) - RMDATIND (Material master) RFBIKR00 (Vendor Masters) - RFBIDE00 (Customer Master) RVINVB00 (Sales Order) What are the Techniques involved in using SAP supplied programs? Do you prefer to write your own programs to load master data? Why? - Identify relevant fields - Maintain transfer structure ( Predefined first one is always session record) - Session record structure , Header Data, Item ( STYPE record type ) - Fields in session structure STYPE, GROUP , MANDT, USERNAME , NO DATA - Fields in header structure consists of transaction code also STYPE, BMM00,

41.

42. 43. 44.

45. 46. 47. 48. 49.

50.

ABAP FAQ
51. TCODE,MATNR and Fields in Item - ITEMS Maintain transfer file sample data set creation Transfer data by direct input.

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. What specific statements do you using when writing a drill down report? - GET CURSOR - AT LINE SELECTION - AT USER COMMAND - HIDE - SY-LISEL What are different Tools to report data in SAP? What all have you used? - ABAP QUERY What are the Advantage and disadvantages of ABAP query tool? - Advantages = no lengthy code - Disadv. = Interactive lists drill reports are not possible and conditional reporting not possible. What are the functional areas? User groups? And how does ABAP/4 query work in relation to these? - Functional areas = provide the user with a framework for defining a query quickly. Select a logical database from application system. User groups = used to set up appropriate environment for the user or authorization for using query. By creating fun. Areas and assigning them to user groups. System administrator determines the range of reports the individual application depts. Or end users can generate using ABAP query. Is a logical database a requirement / must to write an abap/4 query? - Logical database is not a must for ABAP/4 query. Have you created / maintained functional areas? - No. What are Change header / detail tables? Have you used them? - The change header contains both fields that define and describe the change and administrative data on the change master. The administrative data is updated by the system. What do you do when the system crashes in the middle of a BDC batch session? -Check no. of records already updated and delete them from input file and run BDC again. What do you do with errors in BDC batch session? Page 5 of 53

52.

53. 54.

55.

56. 57. 58.

59. 60.

-Analysis and correct input file format and entries in internal table BDCDATA. 61. How do you set up background jobs in SAP? What are the steps? What are events driven batch jobs? - Create a job using function module JOB-OPEN - Collect the job specifications. - Add a job step to the job with the function module JOB-SUBMIT. - Close the job and pass it to Background processing system for execution with the function module JOB-CLOSE - EVENT DRIVEN BATCH JOBS :- Types = System events triggered when activation of new operation mode takes place User events - Triggered from ABAP/4 or external program. - Triggering an event notifies the background processing that named condition has been reached. The Background system reacts by starting any jobs that were waiting for the event. Transaction codes related to background jobs creation and processing are :SM36(Job creation) SM37(Job selection and execution). Is It possible to run host command from SAP environment? How do you run? What kind of financial periods exist in SAP? What is the relevant Table for that? -NA. Does SAP handle multiple currencies? Multiple Languages? - Yes What is currency factoring technique? -NA. How do you document ABAP/4 programs? Do you use program documentation menu option? Ans -Headings under which documentation is created are TITLE, PURPOSE, INTEGRATION, PREREQUISITES, FEATURES, SELECTION, STANDARD VARIANTS, OUTPUT, ACTIVITIES, EXAMPLE. -Yes. What is sap script and layout set? Ans - SAPscript is the integrated text management system of the SAP R/3 System. SAPscript is tightly integrated into the SAP System. It is used for many different wordprocessing tasks all over the SAP System. - A layout set in SAPscript is used for page layout. The layout set contains various elements, which are used for layout control of the individual pages and also contain layout information for texts which are to be output on the individual pages. What are the ABAP/4 Commands that link to a layout set? - Call function OPEN-form. - Call function WRITE-from. - Call function CLOSE-from What is output determination? -

62. 63. 64. 65. 66.

67.

68.

69.

ABAP FAQ
70. What are IDOCS (Intermediate Documents)? Ans -1. SAP standard format for electronic data interchange between systems. Different message types (for example, delivery notes or purchase orders) usually have specific formats, the SAP IDoc types. However, several related message types can be assigned to one IDoc type. For example, the IDoc type ORDERS01 transfers the "logical" message type ORDERS (purchase orders) and ORDRSP (purchase order confirmation). - 2. Features of an IDoc type, that is a business message with IDoc format (for example the confirmation XYZ). IDocs can be used in the following business scenarios: ALE: communication between logical systems. Logical systems can be R/3, R/2 or non-SAP system. ALE distribution models are based on message types that indicate the appropriate IDoc types. EDI: communication between an R/3 or R/2 system and a non-SAP system. What are Screen Painters? Menu Painter? GUI Status? etc - Screen Painters: - Arranging or creating elements of the screen. - Menu Painters: - Designing and creating menu bar. - GUI Status: - Interface between user and SAP program (PF STATUS). What is screen flow logic? What are the selections in it? Explain PAI and PBO? Ans - Screen flow logic contains the procedural part of a screen. The screen flow logic is like an ABAP program in that it serves as a container for processing blocks. There are four event blocks, each of which is introduced with the screen keyword PROCESS: PROCESS BEFORE OUTPUT. ... PROCESS AFTER INPUT. ... PROCESS ON HELP-REQUEST. ... PROCESS ON VALUE-REQUEST. ... - Selections are performed in PAI. PROCESS BEFORE OUTPUT (PBO) is automatically triggered after the PAI processing of the previous screen and before the current screen is displayed. You can program the PBO processing of the screen in this block. At the end of the PBO processing, the screen is displayed. PROCESS AFTER INPUT (PAI) is triggered when the user chooses a function on the screen. You can program the PAI processing of the screen in this block. At the end of the PAI processing, the system either calls the next screen or carries on processing at the point from which the screen was called. PROCESS ON HELP-REQUEST (POH) and PROCESS ON VALUE-REQUEST (POV) are triggered when the user requests field help (F1) or possible values help (F4) respectively. You can program the appropriate coding in the corresponding event blocks. At the end of processing, the system carries on processing the current screen.

71.

72.

73.

Overall how do you write transaction program in SAP? - Create the transaction using object browser (SE80) - Define the objects e.g. screen, Transactions. Modules PBO, PAI. Does SAP has a GUI screen painter? If yes What operating systems is it available on? What is the other type of screen painter called? Page 7 of 53

74.

75.

Yes On what OS is it available Window based. Other type of screen painter alpha numeric screen painter.

What are step loops? How do you program page down page up in step loop? - Step loops: Method of displaying a set of records. - Page down & Page up: decrement / increment base counter - Index = base + sy-step1 1 Is ABAP a GUI language? - Yes Normally how many and what files get created when a transaction program is written? What is top XXXXXXTOP program? - Main program with A Includes - I ) TOP INCLUDE GLOBAL DATA - II ) Include for PBO - III) Include for PAI - IV) include for Forms What are Include Programs? - Set of code which are included into the main program at runtime. Can you call a subroutine of one program from another program? - Yes What are user exits? What is involved in writing them? What precautions are needed? - User defined functionality included to predefined SAP standards. Point in an SAP program where a customer's own program can be called. In contrast to customer exits, user exits allow developers to access and modify program components and data objects in the standard system. On upgrade, each user exit must be checked to ensure that it conforms to the standard system. There are two types of user exit: User exits that use INCLUDEs. These are customer enhancements that are called directly in the program. User exits that use tables. These are used and managed using Customizing. - Should find the customer enhancements belonging to particular development class. What are RFCS? How do you write RFC on SAP side? Ans - weRemote Function Calls. RFC is an SAP interface protocol. Based on CPI-C, it considerably simplifies the programming of communication processes between systems. RFCs enable you to call and execute predefined functions in a remote system - or even in the same system. RFCs manage the communication process, parameter transfer and error handling. - Any ABAP program can call a remote function using the CALL FUNCTION...DESTINATION statement. The DESTINATION parameter tells the SAP System that the called function runs in a system other than the caller's. RFC communication with the remote system happens as part of the CALL FUNCTION statement. What are the general naming conventions of ABAP programs? - Start with Z or Y followed by Char or Nos.

76. 77.

78. 79. 80.

81.

82.

ABAP FAQ
83. 8 Letters long / 20 letters (4.0b onwards).

How do you find if a logical database exists for your program requirements? Ans - Get table command - Table name where used list logical database - Attribute How do you find the tables to report from when the user just tell you the transaction he uses? And all the underlying data is from SAP structure? - Go to transaction. F1 and go to technical information. How do you find the menu path for a given transaction in SAP? - Go to dynamic menu, Give the search term i.e. transaction name - SAP std menu ABAP/4 workbench Development / utilities. What are the Different Modules of SAP? - PP PM MM FI SD HR What is IMG in SAP? - Implementation guide containing all IMG, activities arranged by business application components. How do you get help in ABAP? - Place cursor on required field and press F1 or H keyword in command mode. What are different ABAP/4 Editors? What are the differences? - Command mode Editor (Not available in 4.6) - PC Mode with line numbering - PC Mode without Line numbering What are different elements in layout sets? - Paragraphs - Character String - Page - Windows - Page Windows - Header Data Can you use if then else, perform etc. statements in SAP Script? - YES. What type of variables normally used in sap script to output data? - & Tables name- fields &. How do you number pages in sap script layout outputs? - & page & - &next Page & What takes most time in SAP script programming? - Defining layout set up / sets. How do you use tab sets in layout sets?

84.

85.

86. 87.

88. 89.

90.

91. 92. 93.

94. 95.

Page 9 of 53

- Define paragraph with defined tabs. 96. How do you backup sap script layout sets? Can you download and upload? How? - SAP script backup :- In transaction SE71 goto Utilities -> Copy from client -> Give source form name, source client (000 default), Target form name. - Download :- SE71, type form name -> Display -> Utilities -> form info -> List -> Save to PC file. - Upload :- Create form with page, window, pagewindow with the help of downloaded PC file. Text elements for Page windows to be copied from PC file. What are presentation and application servers in SAP? -A presentation server is actually a program named Sapgui.exe. It is usually installed on a users 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. What are different data type in ABAP/4? -There are eight predefined types in ABAP with fixed length: Four character types: Character (C), Numeric character (N), Date (D), and Time (T). One hexadecimal type: Byte field (X). Three numeric types: Integer (I), Floating-point number (F) and Packed number (P). Memory Management 1. How to use the new two-part roll area? - Some data must be held in roll area and must be rolled into and out of work processes. Roll area must not drop below a minimum size. In two part roll area implementation, you can limit amount of data in roll area before extended memory is used remaining portion of roll area is used only if no further extended memory can be allocated to a user context. DICTIONARY 1. What is a dictionary? - Dictionary contains Meta data or information for the data in data management system. - It supports redundancy free data storage and data integrity. Primary Key field or combination of fields used to uniquely identify a row of the table Foreign Key - Combination of fields in a table acting as a primary key in another table. Difference between structure and a Table ? Ans - Using tables, data can be stored permanently in Database, and Structures contain no data. Define Structures ?

97.

98.

99.

2. 3. 4.

5.

ABAP FAQ
Ans - Structures are used for example in ABAP programs to define internal tables or to define the type of the interface parameters of function modules. 6. Table attributes Determine who is responsible for maintaining the table and which type of access is allowed for the table e.g.: Delivery class table maintained by sap or customer. Table maintenance allowed Table entries accessed using std table maintenance. Activation Type Whether table can be activated directly from ABAP/4 dictionary or whether the runtime object must first be generated by c program. Database Utility Interface between ABAP/4 Dictionary and the database. Data Elements Describe the role played by a field in technical context. Fields of same semantic meaning refer same data elements. Domain describe technical characteristics of a table field. It specifies the value range, which describes allowed values for a field. Index Copy of database table reduced to specific fields Function speed up scanning of table for data records satisfying a given search criteria. Foreign key Table Table which contains the foreign key. E.g. ZEMP table. Check Table Table which has foreign key of another table as its primary key e.g. DEPT. Cardinality N: M indicates how many dependent record or referenced records. View :- used to summarize data distributed among different tables type of views Types of Views 1 Database created in database (read only) 2 Projection - used to suppress the display of table fields (all operations possible) 3 Help views Display information in online help system 4 Maintenance views used to realize commercially relevant views on data customizing vies business oriented approach to looking at data Views that cannot be used to create new views - Structure views used to generate a structure from several logically connected tables - Entity views used to represent entity type of Data Modular on tables of ABAP/4 dictionary Maintain Status Determine if records can only be read or if it is also possible to change them. Match codes tool to help you search for data records in the system Match codes object describes the set of all possible search paths for the search term. Match codes Id describes a special search path for a search term. Match codes - fields from several tables - built on the basis of transparent tables, clusters and pools - restricted by stipulating selection conditions - use as entry aids Page 11 of 53

7. 8. 9. 10. 11. 12. 13. 14. 15.

16.

17. 18. 19. 20. 21.

Database index - fields from only table 22. 23. Lock Objects simultaneous access of records by two users synchronized by lock objects. 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 Time stamp whenever the table is activated, a time stamp is created and stored activation of table in ABAP/4 dictionary affects time stamp of all reports using it. When the program is called we can determine whether to execute it or regenerate it by comparing the time stamps Type of stamp CRSTAMP most recent activation of table - ABSTAMP comparison of reports - DYSTAMP comparison with screens. Runtime object of a table collects the information about the data elements, domain field definition in a form optimal for program access. It is created when the table is generated for first time. Mass activation program Activate large sets of objects Simultaneously. ADV 1 large no of tables are affected by the change of domains or data elements at a time, so reactivated only once. 2 related objects and its associated value table could be activated together else we should maintain sequence correctly. Activation Procedure Step 1 internal and external characteristics check (naming convention. Relation between check table and value table. Step 2 partially active objects are checked whether external characteristics are arranged in order Changing the structure deleting the table in database. Activate the revised table in the dictionary. Table in database is created. Data in table is lost. Changing the database catalog by ALTER TABLE. Data is preserved indexes recreated. Converting of tables original table is renamed and temporarily buffered, revised table is activated in ABAP/4 dictionary and created in database Data from temporary table is reconstructed. Conversion procedure - 1 Generating a program - 2 Renaming the database table Prefix of QCM is added to table name - 3 Activating revised version - 4 reloading data - 5 secondary index - we need at least 16 MB RAM for conversion 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

24.

25.

26.

27.

28.

29.

ABAP FAQ
30. 31. Cancel adjustment lock entry is simply deleted from table

Restart log progress of each step of conversion is noted in restart log, Adjust structures - A structured adjustment is activated by changing database catalog - U structured adjustment is activated by converting tables Type of versions - Versions in ABAP Dictionary active or partially active / revised - Temporary versions - Historical versions Type of status - New newly created , not activated - Activated activated version of object used by other components during runtime - Partially active not yet been fully activated - Revised version changed after activation, but not yet re-activated - Deactivated match code Id is not proposed for selection by F4 help function 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 Function provided - Display old versions - Retrieving historical or temporary versions - Comparing versions in same system - Comparing versions in different systems Buffering created locally on application server, changes in buffer are loaded in log table. Synchronization mechanism runs (1 2 min) log table is read and buffer contents changed by other servers are invalid. Synchronization of all buffers in application servers is by asynchronous procedure Tables that can be buffered transparent and pooled tables 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. - - generic area all records for which fields of generic key correspond - Single record buffering records actually being accessed are loaded to buffers, large

32.

33.

34.

35.

36.

37.

38. 39.

Page 13 of 53

records where few records are accessed. 40. 41. When to reset a buffer? A) If consistencies occurred between the buffer contents and the database. What is Database Utility? A) Interface between ABAP/4 dictionary and relational database in SAP system. It allows to create, delete and convert objects from ABAP/4 dictionary in the database. Processing types :Direct Changes carried out immediately. Background background job is scheduled. Enter mass processing - entries are generated with relevant function in system table TBATG. Repository Information System: - tool that makes data stored in ABAP/4 dictionary available. Find - search for objects from a specific object class that meets certain search criteria. Where-used list: -used to determine the use of an object in other objects. Layers for data and data descriptions: External layer plane at which user sees and interacts with the data ABAP/4 layer data formats used by ABAP/4 processor. Database layer data formats used in the database. Table spaces and extents: Table space - physical storage area in the database. Database determines in which table space the table is stored when it is created in the database. Size category describes the probable space requirement of the table in the database. Transport system: Allows you to transport changes made to a particular development object. Allows transporting objects from one SAP sys to another. Table pool: - used to combine several logical tables in ABAP/4 dictionary, created for each match code object. Table clusters: Combine several logical tables in ABAP/4 dictionary. Several logical rows from different cluster tables are brought together in a single physical record. Used to store control data, temporary data or texts e.g. documentation. Work bench organiser: - provides assistance for organizing development projects by allowing you to distribute project work for individual developers or teams among different change requests. Request: - Objects from the areas of customizing and ABAP/4 development workbench are managed and recorded in separate requests. Request overview: - When we start the workbench organizer, we are presented with a request overview that shows all change requests available and allows us to access several

42.

43.

44.

45.

46.

47. 48.

49.

50. 51.

ABAP FAQ
levels of detail, right down to the level of the object list itself. 52. 53. 54. 55. 56. 57. 58. Task: - Developments, correction and repairs recorded in tasks. Change request: - Tasks are transported using change requests. Development class: - Indicates which area the object belongs to. (Set of repository objects, which are mutually different.) Production system: - Development projects are carried out here. Transport log: - Enables you to immediately find out which objects were transported, by whom and why. Transport system: -Used for moving objects from SAP development system to production system or between different systems. System types: Development system (development work). Quality assurance system: - Development and customizing settings are tested here. Production system: - After successful testing, cust. Setting released here. Training or demo systems: - For presentation of completed developments. Relationship between system types. Special development Recipient System System Transports of Originals 59. 60. 61. 62. 63. Integration System Consolidation System Automatic Delivery

Transportable change requests

Special development system: - used for programming critical paths of development projects. Integration system: - developing applications and testing systems. Consolidated (production) system: - receives transports from integration system. It contains released versions. Recipient system: - receive transportable change requests as soon as they are imported successfully into consolidation system. Transport layer: - describes the transport route for distributing the developer class objects among various systems in the group. All development classes are distributed via same route belong to same transport layer. Correction system: - prevents parallel, uncoordinated changes to the same object, even if many copies of the objects exists, connected by SAP system. It saves all changes to repository and customizing objects in original system on a version database. It is activated each time the user edits Repository object.

64.

Page 15 of 53

65.

Request category: CUST client-specific customizing. SYST SAP Repository and customizing for all clients. Request Types: Transport request List of objects to be transported. Repair request List of changed objects, which are not original. Local change request List of local objects. Correction request List of all changed original objects. Object list List of all transport objects. Customizing request List of all changed client specific-customizing objects. Request source client: - Client in which requests and all assigned tasks are edited. Request target client: - Client where request is imported. Private object: - Exempt from the correction system. Local object: - Exempt from both correction and transport systems. Restrictions on transport system: Cannot overwrite, add to or delete original objects that are under repairs. Can transport to consolidation system only with transport type K. Can transport to recipient systems only from consolidation system to which recipient systems have subscribed. Protecting a Transport Request: - Lock the objects listed in requests so prevents users from correcting it. Task & Request Status: DOCUMENT still editing a task or request and have not protected or released yet (not locked). LOCKED shows that you have tried to lock a task or request, but not all objects are locked. LOCKED ALL objects in task or transport layer-locked successfully. RELEASED task or request released. OPEN released but not yet transported. Tables associated with CTS: TSYST list of available systems. DEVL ABAP/4 Development Workbench transport layers. TWSYS consolidation routes for change requests. TASYS recipient system. Memory

66.

67. 68. 69. 70. 71.

72. 73.

74.

1.

SAP memory (Global Memory): - is available to a user during the entire duration of a terminal session. Its contents are retained across transaction boundaries as well as external and internal sessions. External session: - when user logs on to R/3 system, the system creates a new terminal session called external session. E.g. System Create Session.

2.

ABAP FAQ
3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Internal session: - created by calling a transaction (with CALL TRANSACTION), a dialog module (with CALL DIALOG) or a report (with SUBMIT or RETURN). For external session: - internal sessions are allowed. Roll area: - Data areas of used programs are created in roll areas for each internal session. Posting data between internal sessions: - EXPORT TO MEMORY and IMPORT FROM MEMORY. Main program group: - Created when exporting an internal session. Additional program group: - If a function module belonging to a function group not so far loaded, additional program group is created. Main program: - First program of program group. Subroutine call: - When external subroutine is called, system loads the relevant program and adds it to the program group of calling program. Work areas: - Both table & common workareas with the same name are created once for each program group and then shared by all programs in the group. List system: - Consists of basic list and all details list belonging to basic list assigned to exactly one screen level. User interface: - Only program has its own user interface. Internal sessions interface is initially empty. Special user interface has to be activated using SET PF-STATUS statement. ABAP/4 memory: - Retained only during the lifetime of an external session. Data cluster: - Group of several data objects. Data objects: - Units of data, which a program processes at runtime.

14. 15. 16.

1.

What is ABAP? Ans :- Advanced Business Application Programming is a 4th generation programming language created by SAP for the interactive development of application programs. What is ABAP/4 Development workbench? Ans :- An SAP CASE tool to develop standard application software or your own application software that can process both tables and your own tables. Describe interactive reporting? Ans : Interactive reporting is a totally screen-orientated evaluation technique. >From a highly aggregated form the user can select detailed information for the required items using the menu and function keys. Such information could, for example, be: - subitems of totals items.

2.

3.

Page 17 of 53

4.

company shares. comparison values for user-defined comparison periods. standardizing and consolidation entries .

What are the functions in the editor command line? Press F1 or F4 Examples include: I(nsert)-Insert new lines at end of text FIND string -Multiple text search N(ext)string-On/Off text search R(eplace)string 1 string 2 -Replace String 1 by String 2 IC abc Insert Structure PP-Call Pretty Printer Etc What are chain statements? Ans :- A way to join together successive statements starting the same way Example: WRITE:/ 'xyz', X, COUNTER. Correct the syntax: data: wf_name(25) type C, wf_age(3) type C, Move myname to wf_name Answer: data: wf_name (25) type C. wf_ age (3) type n. move 'myname' to wf_name. What is program attributes type? Ans :- Executable program, INCLUDE program, Module pool, Function group, Subroutine pool, Interface pool, Class pool. What is the program application field used for? Ans :- This field is used to select the module in SAP to which the program belongs. What is the syntax of the WRITE statement? Ans :WRITE <format> <value><options> Format = 3D/p(l) /- line feed p-column position l-output length value=3D output value field or literal options-format options Example: Write: /5(3)'CAPPY'. output starting at position 5 3D CAP Where are text elements maintained? Ans :- ABAP/4 >>Development>>Text Elements>>(headers, columns titles etc.) SE38 >> Text Elements >> (headers, column, titles etc.) What functions do the ULINE and SKIP commands serve? Ans :- ULINE- ULINE statement creates a line feed first and then draws horizontal line. SKIP-generates a blank line. What are the data types within SAP? Ans :P-Packed number

5.

6.

7.

8. 9.

10.

11.

12.

ABAP FAQ
I-Integer F-Floating point number N-Numeric text C-Text D-Date T-Time X-Hexadecimal. 13. What purpose does LIKE serving? Ans :- To define variables that are similar to those you previously defined or those that exist in the Data Dictionary. What is the syntax of the COMPUTE statement? Ans :- COMPUTE X=3D A + B (COMPUTE is optional.) How is the PARAMETERS statement defined? What does it do? Ans :- PARAMETERS : PAR1 TYPE P, PAR2 DEFAULT 'X'. Allows a selection screen to appear for user-input when report is executed. How do the field-symbol and assign statements work with each other? Ans :- Field-symbol statement inherits technical attributes of data objects. - Assign statement assigns attributes of ITAB to FS. Name 3 ways to activate the debugger. Ans :- Via menu navigation. Set breakpoints in the program. Type '/h' in the command field when executing the program. Describe the functions of the debugger screen. Ans :- 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. - Table - Display the contents of internal tables. What is the basic format of the SELECT statement? Select * from <table-name> where <logical expression>

14. 15.

16.

17.

18.

19.

Page 19 of 53

EX:SELECT * from TABNA WHERE COUNTRY=3D 'USA' 20. 21. 22. How do you limit the data retrieved by a SELECT statement? Ans :- WHERE clause. Where and where do you use a goto command? Ans :- NEVER. Are the following logical expressions true or false? T a) value1 LT value3 T b) value3 > value1 T c) value2 between value1 and value 3 F d) value2 LE value1 T e) value3 <> value1 F f) value3 CS '+5' T g) value2 CA '0A9GB' **NOTE wildcards +,*, # only work with CP What is the output of the following: Given TABA: Country City A NewYorkNews A Johannesville A MartinMarietta A Rockville B Littleton B Sr.Charles Ans :- PROGRAM Program TABLES: TABA. SELECT ON CHANGE OF TABA-COUNTRY. WRITE: /TABA-COUNTRY, TABA_CITY. ENDON. ENDSELECT. Littleton. * FROM TABA.

23.

B 24.

What do CHECK, EXITS do in a program? - CHECK<logical expression> terminates the current loop or subroutine if logical expression is not fulfilled;Outside of a loop structure , subsequent statements in the current processing block are not executed (Syntax CHECK FLAG NE SPACE) - EXIT-terminates the current loop or subroutine; outside of a loop structure, subsequent statements in the current processing block are not executed. What is the difference between a field string and an internal table? Ans :- The declaration of an internal table includes an OCCURS parameter (the number of entries in the main storage roll area) field string-corresponds to one record internal table-corresponds to many records T or F: Move corresponding is an effective way to move fields with like names from a DB table record to an internal table header line? Ans :- T.

25.

26.

ABAP FAQ
27. 28. T or F: An append will add a record to a database table? Ans :- (F).You can only append to an internal table. What is the effect of an include structure statement? Ans :- Allows you to quickly declare field strings and /or internal tables that are similar in structure to R/3 Repository Tables defined in the Data Dictionary. T or F:The COLLECT statement will total up all P,I,F fields in database table Ans :- If non-numeric entries in the header line match those in the internal table, COLLECT will add all numeric entries in the internal table header line to table entries where match was found. When no match is found the contents of the header line is added to the end of the table as a new line. T or F: The SELECT statement allows the processing in internal table. Ans :- (F).Use the LOOP AT ENDLOOP instead. T or F: The LOOP at command allows you to use the where clause. Ans :- (T). If there is no table entry satisfying the 'where' logical expression ,the loop cannot be executed and the system field SY_SUBRC is set to a value not equal to zero .In any case the entire table is read. T or F: The read table command using the key clause is similar to the select single. Ans :- (T). Yes in that they both return only one entry from table But the READ is associated with an internal table and SELECT is associated with a database table. How does the READ with KEY statement work? Ans :- READ TABLE <tab> WITH KEY <'string' or FIELD-NAME> The search argument is compared character by character with the start of the 'tab' internal table lines and returns one entry that matches What field within the SY table contains the table index/ Ans :- The SY_TABIX system field holds the index value of the table line which has been placed in the header line of an internal table. T or F: An internal table can be deleted, modified, or inserted without the use of an index? Ans :- (T).Within a LOOP you can make changes to an internal table. The line affected is always the current line. If you dont use the LOOP command an index must be used to change and internal table. What does the CLEAR and REFRESH commands do? Ans :- CLEAR : Initializes the header line REFRESH : Deletes all table lines .Paging is released does not clear the header FREE : Deletes all table lines ,Memory is released does not clear the header **CLEAR and REFRESH are typically used together. Why would you use describe table command? Ans :- To gather information about an internal table (i.e. OCCURS value ,LINES existing table entries). What are the subroutines used for? Ans :- Subroutines are used in two different ways; 1) Subroutines and its call are in the same ABAP/4 program(internal call )

29.

30. 31.

32.

33.

34.

35.

36.

37.

38.

Page 21 of 53

2) 39.

The subroutine is an external program.

When should you use an include versus a perform versus a function module? Ans :- All are modularization techniques but typically the INCLUDE is for data structures, the PERFORM is for ABAP/4 subroutines and function modules are for non-ABAP/4 subroutines. What is the difference between internal and external calls? Ans :- INTERNAL-within program. EXTERNAL-outside program. Explain pass by value, reference and changing value? Ans :- By Value:When the subroutine is called ,the formal parameters are copies of the actual parameters(with their own storage location) By Value and Result : the formal parameters have a separate storage location .At the end of subroutine the value of the formal parameter is passed to the storage location of the actual parameter Assigned By Reference: when called the formal parameters are not allocated separate storage locations. Instead the address of the actual parameter is passed. Changes to the values of the formal parameters therefore have a direct effect on the assigned main program fields. What is the syntax of perform, include and function modules? Perform: PERFORM <name> USING <a1> <a2> <a3> <a4> FORM <name > [TABLES <table name>] USING VALUE (<f1>) CHANGING VALUE (<f2>) Include: INCLUDE <name> Function modules: CALL FUNCTION function name EXPORTING IMPORTING How is data passed to a function module? Ans :- Using the EXPORTING clause. What are exceptions? Ans :- The EXCEPTIONS parameter is a section in the CALL FUNCTION statement where exceptional situations can be processed. How are they called and handled in the code? CALL FUNCTION function name EXPORTING IMPORTING EXCEPTIONS NOT_FOUND = 3D1 NOT_VALID = 3D2 OTHERS = 3D3 CASE SY-SUBRC WHEN 1 WHEN 2 How can internal tables be passed to forms and function modules? Ans :- Internal tables are passed by reference in function modules and forms.

40.

41.

42.

43. 44.

45.

46.

ABAP FAQ
(For PERFORM FORM statements use the TABLES parameter.)Valid for old version only. 47. What is global Vs local data? Ans :- Local data data relevant only within a subroutine Global data data relevant within the entire program. What is ABAP workbench? Ans :- Integrated graphical development environment of the R/3 System. The ABAP Workbench allows you to develop, maintain, and manage client/ server applications written in ABAP. You can use the tools of the ABAP Workbench to: Write ABAP code Design screens Create user interfaces Test applications for efficiency Check applications for errors Use predefined functions Access development objects Access database information What are three the three categories of DATA in the SAP Ans : Master Data changes relatively rarely Transaction Data kept for only a limited time in the system together with any associated index tables. System-specific Data data, texts, ABAP/4 programs and so on. What are the table types in SAP? Ans :- Three types : Transparent table :- In DDIC has one-to-one relationship with a table in the database. For each TT definition in the dictionary, there is one associated table in database with same no. of fields. Pooled table :- In R/3 has many-to-one relationship in the database. The table in database has a different name and fields than the tables in DDIC. Cluster table :- A cluster is similar to table pool. It holds tables within it. Table clusters contain fewer tables than table pools and unlike table pools, the primary key of each table within the table cluster begins with the same field or fields. Cluster table are combined into a single row in the table cluster based on primary key. What event is executed when START OF SELECTION event exits? Ans :- The statement END-OF-SELECTION is executed. This is different from STOP statement, which terminates report processing all together . How is the GET LATE command utilized? Ans : - It occurs when all subordinate segments have been processed and before the system requests the next table entry of the same table (hierarchy) How do you use the STOP command? Ans :- The STOP is specified within the processing block END-OF-SELECTION, report

48.

49.

50.

51.

52.

53.

Page 23 of 53

processing is terminated immediately and the list is displayed. 54. Explain the select-options statement. Ans :- It generates a line on the selection screen, the first part of which contains a text, followed by a range for the input possibilities. Parameter name specified in select options defines as Internal table with same name having structure(seltab) as follows :Sign,option,low,high. Syntex SELECT-OPTIONS <seltab> FOR <f>. What is the syntax to declare default values? Ans : - SELECT-OPTIONS Variable_name FOR table_ element DEFAULT range TO range Does SELECT statement perform an authorization check? Ans :- SELECT statement does not carry out any authorization checks. Why is it important to know this? Ans :- To remind the programmer that he/she should do this checks. What are the attributes associated with SAPSQL? Ans :- SAP-SQL has the following attributes: 1) SAP-SQL syntax corresponds to that of standard SQLs 2) SAP-SQL is a subset of standard SQL 3) SAP-SQL contains SAP short forms. The most important thing to remember about the SELECT SINGLE is? There are several things to remember: 1) It retrieves only one row 2) It does not need an ENDSELECT statement 3) THE FULL KEY OF THE TABLE MUST BE INCLUDED IN THE WHERE CLAUSE OF THE SELECT STATEMENT How do the BETWEEN, LIKE and IN comparisons work? Ans :- BETWEEN <f1> AND <f2> is inclusive LIKE <with % and _ masked literal> - string and character wild characters IN (<field1> , <field2> , . ,<field3>) Can Meta Characters be used in a where clause? Ans :- Meta characters are wild characters , i.e. %, and _ Yes they can be used in where clause How do the command RANGES work? Ans :- It is similar to the DATA statement for an internal table with the columns ,SIGN, OPTION LOW and HIGH (It replaces the need to define a data structure with above statement) Can you select a database record and place it directly into an internal table? Ans :- Yes, using the SELECT * from tablename INTO TABLE itab. Describe the syntax and function of the AUTHORITY CHECK command? Ans :- AUTHORITY CHECK OBJECT <object name> ID <name1> FIELD <f1> ID <name2> FIELD <f2> IF SY-SUBRC NE 0.

55.

56. 57. 58.

59.

60.

61.

62.

63. 64.

ABAP FAQ
The AUTHORITY-CHECK checks whether a user has the appropriate authorization to execute a particular activity. 65. How does the MESSAGE statement work? Ans :- Displays a message at the lower right-hand corner of the screen instead of a user note with WRITE. MESSAGE-ID <class> A message has a class, id and Qualifier What is Data cluster? Ans :- Grouping of complex internal data objects from an ABAP program.It is divided according to various points of view into work areas comprising data clusters. Explain the EXPORT and IMPORT commands? How can you pass more than one group of data by using IMPORT commands? Ans :EXPORT :To read data objects from an ABAP program into ABAP memory, use the following statement: Syntax EXPORT <f1> [FROM <g 1>] <f 2> [FROM <g 2>] ... TO MEMORY ID <key>. This statement stores the data objects specified in the list as a cluster in memory. If you do not use the option FROM <f i >, the data object <f i > is saved under its own name. If you use the FROM <g i > option, the data objet <g i > is saved under the name <f i >. The name <key> identifies the cluster in memory. It may be up to 32 characters long. The EXPORT statement always completely overwrites the contents of any existing data cluster with the same name <key>. IMPORT :To read data objects from ABAP memory into an ABAP program, use the following statement: Syntax IMPORT <f1> [TO <g 1>] <f 2> [TO <g 2>] ... FROM MEMORY ID <key>. This statement reads the data objects specified in the list from a cluster in memory. If you do not use the TO <g i > option, the data object <f i > in memory is assigned to the data object in the program with the same name. If you do use the option, the data object <f i > is read from memory into the field <g i >. The name <key> identifies the cluster in memory. It may be up to 32 characters long. You do not have to read all of the objects stored under a particular name <key>. You can restrict the number of objects by specifying their names. If the memory does not contain any objects under the name <key>, SY-SUBRC is set to 4. If, on the other hand, there is a data cluster in memory with the name <key>, SY-SUBRC is always 0, regardless of whether it contained the data object <f i >. If the cluster does not contain the data object <f i >, the target field remains unchanged. 68. What is an event? And how (in what order) do they get processed in SAP? Ans :- An action within the SAP system beginning with a key word that introduces a new processing block. Describe the activities of the TOP-OF-PAGE event.

66.

67.

69.

Page 25 of 53

Ans :- If you want to improve layout of the report output, you can use the keywords TOPOF-PAGE and END-OF-PAGE, HEADING. 70. How many detail lists can exist on top of the originally generated list? How can you keep track of the number of lists? Ans :- Nine detail lists can exist in 3.1h and 19 in 4.6. The system field SY-LSIND contains the index of the list, which is currently being generated by the report. What is contained in the field SY-LISEL? How and when is it loaded? Ans :- You often want to select a line in the current list and have additional information displayed interactively for this line .For this purpose, you need to provide the appropriate data for the selected line. The selected line is automatically transported to SY-LISEL. Explain the HIDE command. Ans :- The HIDE statement is one of the fundamental statements for interactive reporting. You use the HIDE technique when creating a basic list. It defines the information that can be passed to subsequent detail lists. What is the syntax to call a specific status, titlebar? Ans :- Place the cursor on the status name with the statement SET PF-STATUS <status> and double click or press F2 (similar for SET TITLEBAR <code>. How does the system interpret pull down menus push buttons, PF-keys etc in the ABAP/4 code? Ans :- OK-code A GUI interface is associated with an ABAP/4 program. The different GUI interfaces are classified according to their status .You can assign menus to each status: function key menu for defining the function key - Pushbutton menu for defining the pushbutton sequence - Menu bar for defining the pull-own menus. What are the components of the status or menu? Ans :- Pushbuttons, menu lists, function keys and OK codes. What are the advantages of using AT USER-COMMAND (SY-UCOMM) Vs AT PFKEY? - A function can be assigned to another function key without program change required - If a function key can be used in different lists or list levels you assign specific function texts to the different status of this key - An event triggered by a command Vs a pf-key Explain the READ LINE and MODIFY LINE commands. Ans :READ LINE :- Use the statements READ LINE and READ CURRENT LINE to read data from the lines of existing list levels. These statements are closely connected to the HIDE technique. MODIFY LINE :- To modify the lines of a completed list from within the program, use the MODIFY LINE statement. 77. 78. What does a command window do? Ans :- Allows you to enter commands, such as transaction codes. Do you know the syntax of the SCROLL functions?

71.

72.

73.

74.

75. 76.

ABAP FAQ
Ans :- You can scroll in a detail list using the SCROLL statement. From within the program, you can scroll through lists vertically and horizontally. Scrolling from within the program makes sense, for example, if you want to scroll to certain pages as a reaction to user input. 79. Explain the GET CURSOR command? Ans :GET CURSOR FIELD <f> [OFFSET <off>] [LINE <lin>] [VALUE <val>] [LENGTH <len>]. This statement transfers the name of the screen element on which the cursor is positioned during a user action into the variable <f>. If the cursor is on a field, the system sets SYSUBRC to 0, otherwise to 4. What are the differences between calling a program, transaction with return and without return and how can each be accomplished? Ans : Program -SUBMIT <rep>|(<field>) [AND RETURN] [<options>]. If you use AND RETURN, the system stores the data of the calling executable program and returns to the calling after processing the called program. The system resumes executing the calling program at the statement following the call. If you omit the AND RETURN addition, all data and list levels of the calling program (the entire internal session) are deleted. After the called executable program has finished, control returns to the level from which you started the calling program. Transaction -CALL TRANSACTION <tcod> [AND SKIP FIRST SCREEN] [USING <itab>]. This statement saves the data of the calling program, and starts transaction <tcod>. At the end of the transaction, the system returns to the statement following the call in the calling report. -LEAVE TO TRANSACTION <tcod> [AND SKIP FIRST SCREEN]. This statement ends the calling program and starts transaction <tcod>. This deletes the call stack (internal sessions) of all previous programs. At the end of the transaction, the system returns to the area menu from which the original program in the call stack was started. 81. What are the differences between the parameter SET and GET? Ans :SET PARAMETER ID <pid> FIELD <f>. This statement saves the contents of field <f> under the ID <pid> in the SAP memory. The code <pid> can be up to 20 characters long. If there was already a value stored under <pid>, this statement overwrites it. If the ID <pid> does not exist, double-click <pid> in the ABAP Editor to create a new parameter object. GET PARAMETER ID <pid> FIELD <f>. This statement fills the value stored under the ID <pid> into the variable <f>. If the system does not find a value for <pid> in the SAP memory, it sets SY-SUBRC to 4, otherwise to 0. How can you exit out of a submitted program and return to the original program? Ans :- SUBMIT <rep>|(<field>) [AND RETURN] [<options>].

80.

82.

Page 27 of 53

83. 84.

How the spool Ans :- To list jobs during the scheduling process.

list

is

used?

Can data be transferred from one job step of background job to another? Ans :- You can use ABAP/4 global memory to pass on the contents of fields, records, and internal tables to subsequent steps, IMPORT/EXPORT statements. What are the function modules for generating jobs? Ans :- JOB_OPEN , JOB_CLOSE , JOB_SUBMIT. WHAT are the commands that allow you to process sequential file? And what is their syntax? Ans : READ DATASET (reading) and TRANSFER (writing) OPEN DTASET <dataset name> for <input output appending> in <binary text > mode at POSITION <position> MESSAGE <field> READ DATASET <dataset name > INTO <field> CLOSE DATASET <dataset name> DELETE DATASET <dataset name> TRANSFER <field> to <dataset name> What is the process for transferring data from legacy system to SAP? Ans :- FTP file transfer, Manufacturer specific field transfer NFS(network file system)/BDC. What is the difference between opening a dataset for input, output, appending? Ans : FOR OUTPUT Opens the file for writing if exists it is overwritten if not then it is created. FOR INPUT Opens an existing file for reading. FOR APPENDING Opens the file for writing at the end of the file .If it does not exist, it is created, if opened, you return to the end. What is binary mode? Ans :- The content of the data is not interpreted by the reading and writing operations. Data are entered or displayed directly. Does not interpret carriage returns. Explain the process to transfer a record to a dataset? Ans :- TRANSFER <field> to <dataset name>. Why batch input? Ans :- To input a large amount of information at off peak times. Can data be put directly into the database? Ans :- No, only after the data has been entered via transaction. Explain at high level, the batch input process? Ans :- Batch data is placed into queues called batch input sessions , then placed into the application programs for maintenance into the database. What are the function modules associated with batch input?

85. 86.

87.

88.

89.

90. 91. 92. 93.

94.

ABAP FAQ
Ans :- BDC_OPEN_GROUP , BDC_CLOSE_GROUP , BDC_INSERT 95. 96. What is the structure of the BDC table? Ans :- Program/Dynpro/start/field name/ field content. How do you find the transaction number, program number and field names? Ans : Transaction no.,program no. System -> status Field names - F1, Technical help Write out a coding example for filling a BDC Table. Ans :FORM <NAME> REFEESH <bdc table> CLEAR <bdc table> MOVE <program name > to <bdc table>-PROGRAM <number1> TO <bdc table>-DYNPRO X TO <bdc table>-DYNBEGIN APPEND <bdc table> CLEAR <bdc table> MOVE: <field1> TO <bdc table>-FNAM <field2> TO <bdc table>-FVAL APPEND <bdc table> What are the processing modes for Batch Input? Ans :- Process on screen(foreground) , Display errors only and process in the background What are the available OK Codes that can be utilized during batch input processing? Ans : /n terminates current batch input transaction and marks as incorrect. /bdel delete current batch input transaction from session. /bend terminate batch input processing and mark session as incorrect. /bda change display mode to process the session on screen instead of displaying only errors. /bde change display mode to display only errors instead of processing the session on the screen. What is the effect of the BDC_CURSOR field name in the BDC table? Ans :- You can set the cursor and enter as a corresponding field value the name of the field on which the cursor is to be positioned . Dialog Program 1. 2. 3. 4. Where is processing logic located in an on-line program? Ans :- ABAP/4 program (module pool) Describe the online processor. What is its function? Ans :- Controls the flow of online program. How are screen names defined? Do you create a screen first or define your program first? Ans :- Define the program first and then create a screen. What does PBO stands for? When is the PBO logic performed? Page 29 of 53

97.

98. 99.

100 .

Ans :- PROCESS BEFORE OUTPUT Processed before the screen is displayed. 5. 6. 7. 8. 9. What does PAI stands for? When is the PAI logic performed? Ans :- PROCESS AFTER INPUT Processed after the user has pressed ENTER. How is data passed from Ans :- Through the flow logic. the screen fields to the ABAP/4 program?

What does the TOP Include do for you as a programmer? What are the steps in creating screen? Where are the module statement declared? Where is the logic within each module? Ans :- Module statements are in the flow logic within each module is in the ABAP/4 module pool Program. What is the significance of the word OUTPUT in the declaration MODULE TEST_KNOWLEDGE OUTPUT ENDMODULE. Ans :- Then we know that it is part of the PBO, therefore is processed before the screen is presented.

10.

11.

Describe the fields on the screen ? Ans :- Attributes screen , Screen types ,follow up screens , cursor position etc. After you have entered the screen number, the screen branches to the screen attribute maintenance. Enter a short description , select the type NORMAL and specify the number of the followup screen. What are the three components of ON-LINE program? Ans :- Screen , ABAP/4 program and transaction code. What is gained by using the Dictionary Fields menu option when creating your screen? Ans :- The fields you have created inherits the same attributes as those in the Data Dictionary. Create a checkbox , frame, pushbuttons and radio buttons on a screen? Ans :- Just type a name and go to graphic element push button. How do you assign an OK_CODE for a push button? How it is used in your ABAP? Ans :- In the field list ,name the element and give it the value that it will represent when pushed You must make sure that you clear the field that represents the pushbutton after every check. What automatic checks does the screen perform? (should be four) Describe all four and how they are used? Ans :- The field format, required input, a foreign key table ,parameters. What are the two methods to declare input field as mandatory? If you set required field as program attribute, the user must enter a value in the field. Required fields appear on the screen containing a question mark (?).

12. 13.

14. 15.

16.

17.

ABAP FAQ
18. How does foreign key work? What you have to put in your screen to identify the foreign key? No? Then where is the foreign key identified? Ans :- You have defined a screen field by referring to a Data Dictionary, which has a check table. When the foreign key is checked the system compares the values of the fields to be checked with the contents of the key fields of the corresponding table. What are the two effects of the foreign key from a user standpoint? Ans :- Possible entries & a check against the key field contents. What is user defined validation checks in the flow logic? Ans :- FIELDSELECT FIELDVALUES or in the module pool FIELDMODULE. Does the value command in the flow logic go in the PAI or the PBO event? Ans :- PAI. If an error occurs in the module pool, which fields are available for entry and which are display only fields? Ans :- Only those fields defined with the FIELD statement before MODULE & relevant checks in a chain. When is the chain command used in the PBO event? Ans :- If you want to make more than one field ready for input after an error. What table stores the online messages? What is the message class and what is its significance? Ans :- Table T100. The message class is a specific class of messages for a group of transactions. What are the 5 different message types and how are they handled by the system? What is then difference between the Warning and Error messages? Ans : A : Abend Message displayed on the current screen and subsequent task terminated I : Information Message displayed on the current screen , but user can continue program by pressing ENTER E: Error Message displayed on the current screen. With FIELD statements , the fields concerned become ready again for input and user is required to make the entry /entries again W : Warning As E message , but correcting input is optional S: Success Message displayed on the follow-up screen as an I message. What does WITH statement add to a message? Ans :- In the place of the & or $ the fields or values are placed in the error message. What effect does the FIELD statement have within the flow logic? Ans :- The field statement resets the fields so those fields are ready for input again. Where are the messages displayed on the screen? Ans :- At the bottom.

19. 20. 21. 22.

23. 24.

25.

26. 27. 28.

Page 31 of 53

29. 30.

Is the SET PARAMETER statement to be issued in PBO or PAI module? Why? Ans :- PAI, the value must be input into the fields first before it can be placed in the buffer. Where does the GET PARAMETER statement get its values? Which field gets populated with the new value? Ans :- From the buffer. Where can the SET CURSOR command be executed? What is its effect? Ans :What are the matchcodes and how do they affect the screen field? Where are they specified in the online program? Ans :What is the effect of an ON CHAIN-REQUEST command in your flow logic? Ans :What commands are used to change database table entries? Ans :How can you check if the changes to the database were successful? Ans :What is the difference between the Long form and the short form of making database changes? Ans :What is the advantages using the SAP long form over the short form of database changes? Ans :Can where clause be used when updating database entries? Ans :Describe array operations and their advantages? Ans :What is logical unit of work? How is it defined? Ans :What function is performed by the commit work command? Ans :Why is it so important for a programmer to check the lock entries? Ans :- To find out if record is locked and also to maintain data integrity. How can you find a lock entry for a database table? Ans :- The function module ENQUEUE <lock object> checks whether a lock was triggered for the same object. Otherwise an exception FOREIGN_LOCK is carried out. If the object is not locked the function module sets the lock. What steps are necessary to set a lock on a record within a database table? Ans :Execute CALL FUNCTION statement CALL FUNCTION ENQUEUE <lock object> EXPORTING EXCEPTIONS

31. 32.

33. 34. 35. 36.

37. 38. 39. 40. 41. 42. 43.

44.

ABAP FAQ
CASE SY-SUBRC. . . ENDCASE. 45. How do you unlock the entry? Why is this necessary? Ans :Execute the CALL FUNCTION statement CALL FUNCTION DEQUEUE <lock object> EXPORTING It is important to unlock the entry so others can update it. What is the difference between CALL SCREEN # # # and SET SCREEN ### LEAVE SCREEN? Ans : SET SCRREN statement sets or overwrites the follow-up screen. LEAVE SCREEN executes the screen number currently in the follow-screen field CALL SCREEN interrupts the processing of the current screen to call a new screen or a chain of screens, processing of the current screen is resumed directly after the call. After a CALL SCREEN command where does the processing return after the screen has been executed? Ans :- It returns the processing to the calling screen. Which is the more similar to a call with return, the SET SCREEN or the CALL SCREEN? Ans :- The CALL SCREEN command. What function is performed by the SET SCREEN 0 command? Ans :- Returns to the original screen. What are the main differences between the repot status and screen status? Ans :Where must you place the SET PF-STATUS command in your online program? Ans :- Place it in the PBO module of the screen. Why is it good idea to clear OK_CODE field after deciding which action to take? Ans :- You need to clear the OK code to avoid sending a screen that already has a function code. How do you specify that a function is an exit type command? Ans :- By specifying function type E for the pushbuttons or menu options in the screen painter or menu painter. What is the purpose of the AT EXIT-COMMAND? Ans :- Usually there are many ways to leave a screen (back,exit,cancel) .This command will perform termination logic for all functions of type E. What are screen groups? Ans :- A group of screen fields such as radio buttons or checkboxes. What is the correct syntax for dynamically modifying a large number of screen fields? Ans :-

46.

47.

48. 49. 50. 51. 52.

53.

54.

55. 56.

Page 33 of 53

MODULE MODIFY _SCREEN_OUTPUT . . . LOOP AT SCREEN IF SCREEN GROUP = 3D GR1 SCREEN-INPUT=3D 1 ENDIF. IF SCREEN-NAME = 3D TAB-FIELD SCREEN-ACTIVE=3D 0. ENDIF. MODIFY SCREEN. ENDLOOP. 57. 58. What is the name of the internal table that stores the screen information? Ans :- SCREEN. What is the purpose of the MODIFY command when performing the dynamic screen modifications? Ans :- After you activate or deactivate the field attributes by assigning them 1 or 0, you save the modifications via MODIFY SCREEN command. Technical Questions from the BC team (Group 1) Set 1: 1. Direction for the use of view object within the program? Ans :View object A view object is a virtual table tailored to the needs of an application .This allows direct access to specific data.View object is used in within an ABAP/4 program the same way a table is used. If you have created a view object ZVIEW , you can display its contents using following example program REPORT ZEXAMPLE. TABLES: ZVIEW. SELECT * FROM ZVIEW. WRITE: / ZVIEW. ENDSELECT. Direction for the use of check box and radio buttons in screen painter? Ans :Creating Radio Button and Check Boxes on the screen 1) Go to the full screen editor. 2) Place an underscore at the point where you want to place the field. 3) Define the name of the field using <Field Attributes> 4) Place the cursor on the field and press <Graphic element> 5) Then press <Radio Buttons> or <Check boxes> depending on which graphic element you want 6) Then you group related check boxes and radio boxes. Difference between Radio Buttons and Check boxes. Ans : Radio buttons force one and only one entry to be active (Value X. Inactive has value '') for each group before control is passes back to the program. Check boxes allow for any combinations of entries on the screen.

2.

3.

ABAP FAQ
4. When table in data dictionary is created , the relationship between cardinality factor and table Cardinality? Ans :- The following values are allowed when inserting data: C - 1 To 1 (Optional) CN - 1 To M (Optional) N - 1 To M (Mandatory) I - 1 To 1 (Mandatory) Dependency factor: This defines the foreign key relationship when applying updates. When an internal table is created, the settings criteria for the value of occurs? Ans :- The objective of setting the value of an occurs for an internal table is a question of optimization. The following facts should be taken into account when making such decision. 1) The complete data area of a program is 64000 bytes. 2) The initial size declared is kept in roll area (quicker access to program) 3) Data entered that exceeds the initial size stores in the roll file (Slower access to program) You should also analyze the expected volume and access rates before making the decision. When entering values on table related with foreign key using on-line program (using insert), why checking on possible entries on foreign key is not carried out? Ans :Direction for the use of area menu? Ans :- Area menus are used purely for the pathing to transactions. They contain the same information As a transaction except for the part that is defined by the screen painter component. Details of the Area menu screen : Title : Workbench : Maintain area menu initial screen Transaction : SE43 Path : Tools ->CASE->Development->Maintain area menu Creating an area menu: 1) Enter the name of the new area menu. Since there are no SAP area menus starting with "Z, an appropriate naming convention would be for all user created area menus to start with "Z". 2)Hit <Create> 3)Enter: -Maintain Language (must be "E") -Short text (description of area menu) -Hit<Continue> 4) You should be now in the area menu editor. The fields that you can maintain are as follows: -Title : Text at the top of your area menu -Menu bar: Text for pulldown menu options & functions or sub menus. -Push button settings: - Number(s) of the corresponding function key(s) defined. -Function key settings: - Text and associated definitions for function keys.

5.

6.

7.

Page 35 of 53

8.

Description on roll area, Page area, work area, roll in? Ans : Roll area: Contains data that is automatically copied into the process ' private memory at the beginning of the dialog step (Rolled in). Page area: I believe that the page area is a section of memory, which is the size of 11/0 operation. Work area: Contains the graphical user interface elements for the display and entry of data. Roll in: When data is copied from the role file to the roll area. Technical Questions from the BC team (Group 1) Set 2:

1.

It is possible to delete data entered with ABA/4 program in table maintenance. However, deletion of data uploaded from SAM file in table maintenance is not possible. Definitions: I am not sure if I understand this question. Are you asking if it is possible to delete data from a SAP table using information stored on a Unix file or are you asking me if the contents of a SAP file can be deleted before a Unix file is loaded? I need more information to be able to answer this question.

2.

The difference between two SYNTAX. Insert table name & insert table name, commit work. The difference can be demonstrated by the examples below. Start of Program I. Database update statements Run-time error occurs here End of program 1= 20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= 3D=20. Start of program 2. Database update statements. Commit work statements =20 Run time error occurs here =20 End of program 2=20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= 20=20 Program I will not update the database & program 2 will. Structured Logic

1.

What is the difference between Structure & Internal table? Ans :- Structure exists in ABAP Dictionary and programs but contains no data. - Internal table exists only in program and can contain data only at runtime. Call transaction module, give syntax? Ans :CALL TRANSACTION <tcod> [AND SKIP FIRST SCREEN] [USING <itab>].

ABAP FAQ
This statement saves the data of the calling program, and starts transaction <tcod>. At the end of the transaction, the system returns to the statement following the call in the calling report. If the LEAVE statement occurs within the called transaction, the transaction ends and control returns to the program in which the call occurred. 6 Define "Check " statements, how it works? Ans :- To terminate a single loop pass conditionally, use the CHECK <condition> statement in the statement block of the loop. If the condition is not true, any remaining statements in the current statement block after the CHECK statement are ignored, and the next loop pass starts. <condition> can be any logical expression. What is the difference when use fields in Chain, End Chain and when use in Subroutine? Ans :Difference between Append and Collect statement? Ans :- Append statement always adds new line to ITAB from WA. Collect :- When the line is inserted, the system checks whether there is already a table entry that matches the key. If there is no corresponding entry already in the table, the COLLECT statement has the same effect as inserting the new line. 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. Explain Field Group(extract dataset)? Ans :An extract dataset consists of a sequence of records. These records may have different structures. All records with the same structure form a record type. You must define each record type of an extract dataset as a field group, using the FIELD-GROUPS statement. FIELD-GROUPS <fg>. This statement defines a field group <fg>. A field group combines several fields under one name. For clarity, you should declare your field groups at the end of the declaration part of your program. A field group does not reserve storage space for the fields, but contains pointers to existing fields. When filling the extract dataset with records, these pointers determine the contents of the stored records. Transaction for Menu painter? Ans :- SE41. Transaction for Screen painter? What is flow logic? Explain. Ans :- SE51. Flow-Logic :- Code that processes a particular screen in the R/3 System. Flow logic statements are syntactically similar to ABAP statements, but you cannot use flow logic keywords in ABAP. You define flow logic in the flow logic editor of the Screen Painter. Flow logic comprises two modules: PBO (Process Before Output) PAI (Process After Input) Transaction for MM creation?

8 9

13

15 16

17

Page 37 of 53

Ans :18 19 21 Transaction for Sales Order (S /D) - Create, Display & Change? Ans :Transaction for Delivery Challan S / D) - Create, Display & Change? Ans :If you want to run two programs , within one program how you run another program instead of opening another session? Ans :- SUBMIT program. Example of nested "Select " statement syntax? Ans :What is the difference between Move & assign statement? Ans :Move :- To assign the value of a data object <f1> to a variable <f2>, use the following statement: MOVE <f1> TO <f2>. or the equivalent statement <f2> = <f1>. The contents of <f1> remain unchanged. <f1> does not have to be a variable - it can also be a literal, a text symbol, or a constant. You must always specify decimal points with a period (.), regardless of the users personal settings. Multiple value assignments in the form <f4> = <f3> = <f2> = <f1>. Assign :- ASSIGN <f> TO <FS>. When you assign the data object, the system checks whether the technical attributes of the data object <f> correspond to any type specifications for the field symbol <FS>. The field symbol adopts any generic attributes of <f> that are not contained in its own type specification. Following the assignment, it points to <f> in memory. 28 Describe "New-Page" statement? Ans :- The standard page header consists of list and column headers. To influence the representation of these individual components of the standard page header, use NEWPAGE statement: What is BDC and How you use it? Ans :- Batched Data Communication. Batch input is an automatic procedure for the nononline data transfer of data into the system. BDC is used mainly to port data from legacy system to New system Using file access command like OPEN DATASET, READ DATASET. We populate the data into database tables. This can be run as a batch job using BDC. SAP strongly recommends that you use same screen flow to populate a table because that way referential integrity and additional checks are done properly.User dialog is simulated. What is Dataset and How you use it? Ans : - Dataset is data contained in a file in AS. To open operating system file you use OPEN DATASET function FOR OUTPUT or INPUT or Append Mode. What is a variant and Where do you use this?

23 27

2.

3.

4.

ABAP FAQ
Ans :- Variant contains parameters for a program. You can run a program either using variant or directly. If you run directly you have to enter all the parameters and if you use variants you do not need to enter parameters. You can have many variants for a program. 6. What is Field Symbol? Field Symbol are variables. Main advantage of the Field Symbol is you do not have to define field Type it can be of any type and any length depending on the field you assign at the runtime. Ex. FIELD_SYMBOLS <F> ASSIGN LFAI - NAMEI TO <F> What is Menu painter? And How do use it in your application? Ans :- Menu painter is tool to create Menus, Push Buttons assignments and from Screens. During run time you can assign any menu status to a screen. You assign a four-character function code for each function and you use OK-CODE to identify which function need to be run. You write code in PAI module for each function. What are the variables that start with SY-? Ans :- These are system variables like SY-DATUM System Date SY-SUBRC System Return Code 0- Success, 4 - failure These are the System Fields, you use this to generate a list SY-Title SY-pagct SY-Srows SY-scols These are used for interactive reporting SY-Curow SY-CUCOL 9. What is Logical database and Explain about GET and PUT modules? Ans :- Faster Way of executing for selecting records. Logical database is not a physical database. It is logical database structure of tables where you specify the relationship between a set of related tables. Every logical database has root table & child nodes. If you want to use GET table command in your program you need to declare that related structure as a logical database. Once you specify the structure you set SELECT-OPTIONS and then Database Program and modify the code for PUT Forms. This PUT forms are executed whenever you use GET function in the code. What is Screen Painter? And How do you write a script for command Button? Ans :- Screen Painter is a tool to create a screens which can have User Input fields, Command buttons, Frames, Radio Buttons, Combo boxes, and Check boxes. Key point here is you need to specify OK-CODE (you can give any name but normally you use OKCODE) For OK function and you declare same variable in Module Pool also. In PAI module using Case statements to determine which key was pressed. CASE OK-CODE WHEN DELE MODULE Delete _ Function. RHO Consulting Page 39 of 53

7.

8.

12.

3.

HIDE Statement, how it works? Ans :- Detail lists allow you to present more information than is contained in the basic list. The user can, for example, select a line of the basic list for which he or she wants to see more detailed information. You then display the extra information in a detail list. This method requires that you have previously stored the contents of the selected line within the program. To do this, you use the ABAP statement HIDE, which saves the field contents for the current line. When you start a detail list for a list line that has HIDE fields, the system places their values into the corresponding variables in the program. In the program code, insert the HIDE statement directly after the WRITE statement for the current line. HIDE: WA-CONNID, WA-CARRID. Define RANGES statements, why you use in ABAP/4 programming? Ans :- In addition to selection tables that you create using SELECT-OPTIONS, you can use the RANGES statement to create internal tables that have the structure of selection tables. You can use these tables with certain restrictions the same way you use actual selection tables. What kind of Transaction did you use? Where did you use? Why did you use? Ans :SE38 ABAP Editor SE16 Data dictionary What are the commands, which can be used only in screen, flow logic but not in ABAP? Ans :How do you change the text (description which normally appears as non-editable on the screen) of the Table field? Ans :-You can change the text for Data element. For data element you have three different description text (short, medium and long). You can use any one of the texts. What do you know about profiles? How can you give an authorization to particular user? Ans :- A Profile is made up authorization. There are two types ;of Profiles single and composite. How did you do pricing? (including menu flow ) about policy Table ----> (Customer/Material ) ------> Access Sequence (price Customer discount Material ) ------> Condition type ------> Pricing Procedure ----------> procedure determination SD config -----> Functions ------> Pricing -------> Control Data -----> Environment -----> Create tables. 1. Maintain condition tables of fields that can be used as Conditions to check for in pricing. There is a fixed list of fields that can be checked.

4.

6.

7. 8.

9.

10.

11. 12.

What did you do in payroll? Ans :What did you do in customizing Org. structure?

ABAP FAQ
Ans :- Set up Company group, company code, controlling area, business Area, credit control area, financial management area, plants, storage Organization, distribution channel, division , shipping Points, loading points, plant sections, person groups, person subgroups, and Payroll subunits and mapped them. 13. What did you do in Account Assignment in material management? And also about valuation class. Ans :What are number ranges? How did you assign? Ans :What did you do in Time Data? Ans :What are infotypes? How did you use it? Do you remember any info types you used? Ans :- In HR module tables are calles Infotypes which contains data for employees and applicants. Infotypes used :0002 = Personal data. 0006 = Address. What type of materials did you use? Ans :ROH Raw material HAWA Trading FERT Finished goods PROD Product Group WETT Competitive product What are the logical databases and tables did you use in MM and SD? Ans :EMM Purchasing documents for material EKKO (Purchase Document Header) EKPO (Purchase document item) EKET (Delivery Schedules) EKPB (Material provided item in purchasing document) EKKN (Account assignment) EKBE (History of purchasing document) MSM Material Master MARAV View tabelle fuer die logische DB MGM MARM Quantity unit MBEWV View f=FCr logische Datebanken MVKE Material Master : Sales Data MARCV View f=FCr logische Datebanken MSM PROPF Forecast parameters MARD Material master : storage location / batch segment MCHB Batch stocks MKOL Special Stocks from vendor MLGN Material data for storage number MLGT Material data for storage type VFV Invoices in sales & Distribution

14. 15. 16.

17.

18.

Page 41 of 53

VBRK Billing : Header Data VBUK Sales Document : Header Status and Administrative D VBPA Sales Document : Partner VBRP Billing : Item Data VBFA Sales Document Flow VBFAVG SD Document : Flow Records VBPAPO Item Partner in SD Document KONV Conditions (Procedure Data) 19. How do you create logical database? Menu Sequence also. Ans :CASE Development Work Bench Other Object EDIT Logical Databases OR CASE Development Program Maintenance ABAP Development Utilities Development / Test Logical Databases Hierarchy of Data Dictionary? Ans :- Tables -> Fields -> Data elements -> Domains. What is the difference between Data elements and Domain? Ans: - A domain (Generic data types) describes the technical attributes of a field, such as the data type or the number of positions in a field. The domain defines primarily a value range describing the valid data values for the fields referring To this domain. Data elements (Specific data types) A data element is an elementary type. It describes the type attributes (data type, field length and possibly the number of decimal places) and screen information (explanatory text or field help) about unstructured data objects (table fields and structure fields or variables). Table fields and structure fields with the same contents should refer to the same data element. This ensures that the attributes of these fields are always consistent. A data element can be referenced in ABAP programs with TYPE. This permits you to define variables that take on the type attributes of the data element in an ABAP program. How the tables in logical databases are related to each other? Ans :- LD are related to each other by FK relationship to form a hierarchy What are the different relations between two entities? One-One, One-Many and Many-Many It is also called as cardinality. CN 0,1,More C 0, 1 N 1 or More 1 1 What is 3-tier architecture? What does that middle layer do? PS ----- AS ----- DBS. - Application server is a set of executables that collectively interpret the ABAP/4 programs and manage the input & output for them. What did you do in shipping? About the process? Ans: - Shipping Conditions are defined in Customer Master. (Table KNA1 (General Data)) Transportation groups are defined in Material Master. (Table MARA (General

20. 21.

22. 23.

24.

25.

ABAP FAQ
Data)) All valid leg combos must be configured in the system. (A leg is the link between a starting and a finishing point). The shipping point is defined for each order item The route groups legs together. Shipping Delivery Order (create and save) Picking transfer orders (create & confirm) 26. 27. What are the different sections in Functions? Ans :- IMPORTING, EXPORTING and EXCEPTIONS. In your experience programming ABAP/4, What guidelines do you follow as best practices? Ans: - a) Store data in internal tables to reduce duplicate processing. b) Copy an existing process and changes it. c) Follow prescribed naming conventions for programs. d) Use an include statement (ZIU0001) from the main documentation block. e) For describing the content of the program, such as date, program author, purpose, list of parameters and specifies, list SAP tables used, and list external input/output, tables/files are used. What are some of the SAP ABAP/4 control statements that you used to write one of your more complicated programs. Ans :AT END OFEND AT AT NEWENDAT CALL CASE...WHENENDCASE CHECK DOENDDO EXIT FORMENDFORM IF...ELSE...ENDLOOP LEAVE LOOP...ENDLOOP MODULE...ENDMODULE ON CHANGE OF...ENDON PERFORMUSING SELECTENDSELECT STOP WHILEENDWHILE Have you ever done any transaction program/development using ABAP/4, screen painter, and menu painter? If so, describe the steps or technique used to develop transactions? Ans: - The following list outlines the general steps that should be followed when developing a new SAP R/3 transaction. I do not have to be performed specifically to this sequence, but these topics/steps should be performed. 1. Preliminary work: Design the transaction, specify the transaction code in the system and enter the transaction attributes. 2. Define global data in the data dictionary. Determine which domains, data elements, and tables you want to use. Page 43 of 53

28.

29.

3. Create an ABAP/4 module pool. Create a module pool for the transaction and assign a name and attributes according to the customer naming conventions. 4. Define screens (Screen Painter): Paint your screens, that defines the positions and texts of the fields on the screen and assign appropriate names. In doing this, you point the Data Dictionary fields you have defined in the Data Dictionary, Define the attributes of all screens. 5. Define menus, windows, and function keys (Menu Painter): Define the interface for your transaction with menus, pop-up windows and function keys for each individual screen. Assign function code to each function that the user can execute. 6. Define screen flow logic. 7. Program the individual modules: Write the detailed processing logic, program and modules called in the screen flow logic, pass the data between the module pool and SAP memory, process the function codes from the interface and process the reports. 8. Create and program on-line messages: Create on-line messages and document them (in the form of texts) Call the messages in the appropriate modules. Observe the rules for error dialog. 9. Test the transaction. Test the transaction with the on-line debugging facility. Transport transaction programs : Transport your completed transaction to the production system Instance. 30. Have you ever created a user-defined database in SAP/R3? If so how did you go about adding a user-defined database to the system? Ans :To add a user-defined database to the system, the following steps are required. 1) Define the structure in the data dictionary. A. Go to the Data dictionary Maintenance screen. Fill in the name of the database you are defining B. Define the database structure To do this, select the object class tables for editing. In the resulting screen, fill in the necessary information about the database. C. Provide the database fields. Go to the fields screen so those new fields can be entered into the system. You must atleast enter MANDT, RELID, SRTFD, SRTF2, CLUSTR and CLUSTD. When you have entered all the required fields save the record structure. D. Active the table. The table is now defined in the Data Dictionary and known to the system at large. Add the database to the system by going to the Database Create screen. There select processing method of in -line, so that the database has been created, you can now create database clusters with the EXPORT command or access the database records using SQL. Describe the basic framework of an ABAP/4 program? Ans :- The basic structure of an ABAP/4 program is as follows: REPORT report_name DATA : pagebreak (12) TYPE C, DATA : title (10) TYPE C, TABLES: ABC, DEF, XYZ. PARAMETERS: ABC-DSC. FIELD-GROUPS: FIELD-SYMBOLS

31.

ABAP FAQ
<name> <street> = 7F <city> INSERT INITIALISATION INCLUDE ASD0001 START-OF-SELECTION. Call to extract data from the database are performed here END-OF SELECTION. TOP-OF-PAGE END-OF-PAGE FORM Form_Name ENDFORM. 32. 33. What are the functional modules you have strong background? Ans :- FI, CO. What is the difference between a step-loop using internal table and a transparent table? Ans :-

Section A Please circle T(rue) or F(alse) for each of the following questions:1. 2. 3. 4. 5. 6. 7. Move Corresponding is an effective way to move fields with like names from a DB table record to an internal table header line. (T / F). T An append will add a record to a database table. (T / F). F The COLLECT statement will total up all P, I and F fields in a database table. (T / F). F The SELECT statement allows processing of an internal table. (T / F). F The Loop at command allows you to use the WHERE clause. (T / F). T An internal table can be deleted. Modified, or inserted without the use of index. (T / F).T The SELECT command performs its own authorization check. (T / F).F

8. 1 The WHERE clause in the SELECT SINGLE command is optional. (T / F).F 9. 1 When using the GET and SET PARAMETER ID command the memory id must be defined to the Data Dictionary?. F 10 The SET PARAMETER commands function is to create a storage location in memory and . 1 retrieve its contents?T Section B There is only (1) correct answer for each of the following questions. Please circle the letter, which you think corresponds to the correct answer. 1. 1 A LIKE statement is used to:

Page 45 of 53

a) Move similar fields between the header areas of internal tables. b) Set declared data fields to the same characteristics as a different data field. c) Assign a default value to a parameter. d) Pass parameters to a subroutine. Ans :- b. 2. 1 All are examples of SAP events except: a) Start of Selection. b) End of Selection. c) Top of Page. d) New Page. Ans :- d 3. 1 The best definition of the ABAP.4 workbench is: a) A method of finding fields within the data dictionary. b) A method of navigating between SAP objects and a method of establishing a hierarchy between related SAP objects. c) A screen that contains the attributes for screens, programs, transactions, etc. d) An easy way of creating objects in SAP. Ans :- b 4. 1 Which is correct for reading an entire table, DBTAB, into an internal table, ITAB, structure that was previously defined? a) SELECT * FROM DBTAB INTO ITAB. b) SELECT SINGLE * FROM DBTAB INTO TABLE ITAB. c) SELECT * FROM DBTAB INTO TABLE ITAB. d) READ DBTAB INTO TABLE ITAB. Ans :- c 5. 1 Which is an example of passing by reference? a) PERFORM CHECK_FIELDS USING F1 F2 F3. FORM CHECK_FIELDS USING VALUE F1 VALUE F2 VALUE F3. b) PERFORM CHECK_FIELDS USING F1 F2 F3. FORM CHECK_FIELDS USING VALUE F1 VALUE F2 F3. c) PERFORM CHECK_FIELDS USING F1 F2 CHANGING F3. FORM CHECK_FIELDS USING VALUE F1 VALUE F2 CHANGING F3. Ans :- c 6. 1 A MOVE-CORRESPONDING command: a) Moves all data from an internal table into a database table. b) Moves all like named fields from one field string to another. c) Adds all numeric fields in a totals column. d) Allows you to declare an internal table to have the same structure as database table. Ans :- b 7. 1 A ten byte long character field, WS-CUSTNUM, would be declared as: a) WS_CUSTNUM TYPE C. b) DATA WS_CUSTNUM LIKE SPLAN-TIDI. c) DATA WS_CUSTNUM (10) TYPE CHAR. d) DATA WS_CUSTNUM (10) TYPE C. Ans :- d 8. 2 Each record within a database table is specified by: a) A specific index number or SY-TABIX.

ABAP FAQ
b) A unique key structure which can be same for multiple records within the table. c) One field, Known as the key field, that is specified to each record. d) A unique key structure which consists of any number of fields and must be unique for each record within the database. Ans :- d 9. 2 To set an initial value in the parameter, CUSTNO, what word is required in the following statement to complete the syntax: PARAMETERS: CUSTNO(10) TYPE C____________0000111008=20 a) Value. b) Default. c) Initial. d) Like. Ans :- a 10 Which of the following does not have an END associated with it? . 2 a) LOOP. b) DO. c) GET. d) SELECT. Ansc :- c 11 Which is the best example of a foreign key? . 2 a) Data element. b) Domain. c) A VALUES statement within the PAI module of the flow logic. d) A check table. Ans :- d 12 . An on-line program consists of: a) Flow Logic, a screen, and an ABAP program module pool. b) A Screen, an ABAP program module pool, and a transaction. c) Flow logic, screen and a PAI event. Ans :- b

13 PBOs: . 2 a) Are events performed in the screen after the user has entered some data? b) Is a module pool for an on-line screen? c) Is an on-line event? d) Contains all logic for error messaging. 14 All of the following are examples of automatic screen field checks except for: . 2 a) Data formatting. b) Check tables. c) Values table. d) VALUES statement in the PAI of the flow logic. 15 A COMMIT WORK command: . 2 a) Reads in a logical database. b) Closes a logical unit of work and confirms the changes in the database. c) Cancels a logical unit of work and rolls back all changes made with the UPDATE. d) Is automatically performs at each UPDATE dbtab command line

Page 47 of 53

Ans :- b 16 . The following is an example of a call without return: a) CALL TRANSACTION VAO1. b) SUBMIT SAPMV45A. (c) CALL SCREEN 0.09.

Provide short answers for each of the following questions in the space provided:1. Why would you use the DESCRIBE table command? Ans :- To find out no. if entries in ITAB and to find the value of occurs.

2. 3 What are the 3 categories of DATA in the SAP system? 3. 3 What ABAP/4 command is used to process a logical database? Ans :- GET 4. 3 At what 2 points in the ABAP code can the STOP command branch to? Ans :- If you use the STOP statement within an event block, the system stops processing the block immediately. 1 5. 3 What is the difference between the templates % and _ during string comparison? 6. 3 Where is the processing logic located in an on-line program? Ans :- PBO,PAI. 7. 3 Describe the on-line processor. What is its function? 8. 9. 10 . 11 . 12 . How is data passed from the screen fields to the ABAP/4 program? Ans :- GET PARAMETER ID. What does the TOP Include do for you as a coder? What are the steps in creating a screen? Where are the module statements declared? Where is the logic within each module? What is the significance of the word OUTPUT in the declaration MODULE TEST_KNOWLEDGE OUTPUT ENDMODULE. Describe the fields on the screen attributes screen. Screen types, follow up screens, cursor position, etc. What is gained by using the Dictionary Fields menu option when creating your screen? How do you assign an OK_CODE for a push button? How is it used in your ABAP? What are the two effects of a foreign key from a user standpoint?

13 . 14 . 15 . 16

ABAP FAQ
Ans :- Foreign keys are used to check input on screens, and to define the relationships netween the tables in a view, matchcode object, or lock object. 17 . 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 . 29 . 30 . 31 . 32 . What are user defined validation checks in the flow logic? Does the VALUES command in the flow logic go in the PAI or the PBO event? If an error occurs in the module pool, which fields are available for entry and which are display only fields? Which table stores the one-line messages? What is the message class and what is its significance? Ans :What does the WITH statement add to a message? Ans :What effect does the FIELD statement have within the flow logic? Is the SET PARAMETER statement to be issued in the PBO or the PAI module? Why? Where does the GET PARAMETER statement get its values? Which field gets populated with the new value? Where can the SET CURSOR command be executed? What is its effect? What are matchcodes and how do they effect a screen field? Where are they specified in the on-line program? What is the effect of an ON CHAIN-REQUEST command in your flowlogic? What commands are used to change database table entries? Ans :- UPDATE. How can you check if the changes to the database were successful? Ans :- SY-SUBRC = 0. What is the difference between the long form and the short form of making database changes? What is the advantage of using the SAP long form over the short form of database changes? Can Where clause be used when updating database entries?

Page 49 of 53

Ans :- Yes. 33 . 34 . 35 . 36 . 37 . 38 . 39 . 40 . 41 . 42 . 43 . 44 . 45 . 46 . 47 . 48 . 49 . Describe array operations and their advantages? Why is it so important for a programmer to check the lock entries in the database? How can you find a lock entry for a database table?

What steps are necessary to set a lock on a record within a database table? How do you unlock the entry? Why is this necessary? What is the difference between SET SCREEN ### and SET SCREEN ###. LEAVE SCREEN.? After a CALL SCREEN ### command, where does the processing return after the screen has been executed? Which is more similar to a call with return, the SET SCREEN or the CALL SCREEN? What function is performed by the SET SCREEN 0 command? Where must you place the SET PF-STATUS. Command in your on-line program? Why it is a good idea to clear the ok_code after deciding which action to take? How do you specify that a function is an exit type command? What are screen groups? What is the correct syntax for dynamically modifying a large number of screen fields? What is the purpose of the MODIFY command when performing dynamic screen modifications? Various Event for a screen? Ans :- Clicking Push Button, Function Key, Menu Option. How do you run a report for a row in table? Ans :- Using Graphics Multiplexer. There is an option some thing similar to screen capture which captures data only. Using that data you can draw graphs (3D and 2D). This option is available all the time from Menu! -> Generate Graphics which captures the data then you

ABAP FAQ
need to drag and select the data you want to draw a graph on. Once you select you can click on Graphics, which launches graphics multiplexer. 50 . What are user Exits and transactions? Ans :- Generally, user exits are the forms defined within SAP standard code (usually starting with user exit). These predefined areas in the code allow programmers to insert custom defined code into the standard processing of a transaction (e.g. allow resorting of the batch sequence in VA01 batch processing). There are many specific examples if you are interested, but usually user exits are searched for when a specific use is being analysed. How do you import a UNIX program using BDC? What is variable selection with variants? Ans :- It is possible to fetch values for variants from table TVARV fields. In this case the value of TVARV field is set before running the program with the variant. This is variable selection since variant runs with different values. This is especially useful for batch mode runs. How do you run programs with variant? Ans :- Current screen will have Execute with variant and Overview of variants buttons if variants can be used. Choose to run with Execute with variant and run with a variant. What is SPA/GPA? When do you use it? Ans :- You can set and display default values in fields. You make the assignment using PID in field attributes and check SPA or GPA option. Other way of using this is using SET PARAMETER and GET PARAMETER commands. Ex:- SET PARAMETER FIELD EMPL-EMPID ID EMP GET PARAMETER ID EMP FIELD EMPL-EMPID How can you test Flow Logic? Ans :- You need to create a transaction for this screen first. If you go to Screen -> Test then it will show a radio button where you can either check with Screen Flow Logic or with Out Screen Flow Logic. What happens if you choose Hold Data option in screen attributes? Ans:- System automatically shows the data if the user returns to the screen. What happens if you enter 0 in NEXT Screen attribute? Ans :- It does not go to any other screen and it moves back one level. However you can control this in run-time using SET SCREEN command. Where do you use Pop-Up Windows? 1. Data Input (prompting the user to enter data). 2. Online Control (Define or restrict the online flow for the user). 3. Data backup (Do you want to save the data? Yes or No). 4. Confirmation messages and Include messages. How many menu titles can you have in a main menu? Why and How do you display a message?

51 . 52 .

53 . 54 .

55 .

56 . 57 . 58 .

59 . 60

Page 51 of 53

Ans :- Message is used to INFORM, WARN, EXIT with MSG, or CANCEL with MSG in a transaction. Message is displayed using:MESSAGE xnnn Where x is Type and nnn is the number of message. In addition Message class is set at Program name line, e.g., PROGRAM xyz MESSAGE-ID cc where cc is message class. 61 . 62 . 63 . 64 . 65 . 66 . 67 . What are various message types? Ans :- I-Info, W-Warning, E-Error, A-Abend, S-Success. How do you create Message class? Ans :- Tools Case Development Program maintenance Messages Enter name and go to next screen to enter messages. What has to be done to the packed fields before submitting to a BDC session? Did you use full graphical user interface in SAP R/3? What are the versions you have worked? Ans :- 3.1H, 4.5B, 4.6B. How do you find the string length of a variable? Ans :- INT = STRLEN( WORD1 ). What do you define in the domain and data element? Ans :- The domain gives a field its technical characteristics, such as data type and length. Data element contains a domain name, field labels etc.

True/False 68 SAP offers standard batch interface programs with dynamic record layout capability? . 69 SAP standard batch input programs structure descriptions are in the Data Dictionary? . 70 Data analysis should preceed data transfer?T . 71 All data conversion must take place prior to the data transfer?T . 72 The parameters MODE and UPDATE are optional? . 73 The BDC table has a different layout for the CALL TRANSACTION?F . 74 A file can be transferred from the presentation server?T . Study Questions & Answers for SAP Partner Academy 1. What is the purpose of SAP Dispatcher? Ans :- Manages the resources for the R/3 Applications. Distributes work to the work processes. Main Tasks: Equal distribution of transaction load to the work processes. Management of buffer areas in main memory. Integration of the presentation level.

ABAP FAQ
Organisation of communication activities. 2. There are five specialized work processes. What are they? And which task do they control? Ans :a) Online Processes one dialog step and then is available for next request. b) Enqueue A locking mechanism to prevent the applications from interfering with each other when accessing data. c) Update To trigger database changes. d) Background Used to plan the start of ABAP/4 programs. e) Spool Spool requests are generated online or during background processing and placed in a spool database with information about the printer a print format. What function does the message server perform? Ans :- Exchanges short internal messages (Ex. Triggering work processes). What enables communications between R2, R3, and external applications using the CPI-C protocol? A) SAP Gateway. How Internal table lines can be changed while looping on the same table? Ans :- To change a single line in an internal table, use the MODIFY statement. This modifies the current line of the LOOP statement. However, before using the MODIFY statement, you must first make the required changes to the current line in the work area <wa> of the internal table. Then, you can assign the contents of the work area <wa> to the current table line using: MODIFY <itab> FROM <wa>. loop at mtab. select single * from t001 where bukrs = mtab-bukrs. if sy-subrc ne 0. message a398 with 'Company Code not on Table T001'. else. move t001-waers to mtab-waers. modify mtab transporting waers. endif. Endloop. 6. How duplicate Internal table lines can be deleted? Ans :- DELETE ADJACENT DUPLICATE ENTRIES FROM <itab> [COMPARING <f1> <f 2> ... |ALL FIELDS]. Note :-You can use this statement to delete all duplicate entries from an internal table if the table is sorted by the specified compare criterion.

3. 4.

5.

Page 53 of 53