Interview Questions 123 PDF
July 29, 2022 | Author: Anonymous | Category: N/A
Short Description
Download Interview Questions 123 PDF...
Description
INTERNAL TABLES
1. What is Structure? Structure is a combination of different Fields, which is having same Data type or Different Data type fields. Structure is a skeletal view of a table, which is having the definition of columns and don’t have any contents. Structure is also called as ‘Work area’. Whenever we create a structure it will be allocate some physical memory. Every structure or work area can be holds only one record in run time of your program We have two type of structures available in SAP, there are : 1. Append structures, 2. Include structures. 2. What are the differences between Append and Include structures? APPEND structure is one where for a table we use append structure and within this we implement the required fields along with its properties.....These properties.....These are custom defined fields INCLUDE structure is one which is been appended to a table, but already the include structure has fields with its properties....These are SAP defined fields. 3. What is an Internal table?
Internal table is a combination combination of different fields. internal table is a dynamic sequential mem memory ory buffer, allocate some memory during the run time. If we want to hold multiple records we need to have an internal table, which is used to holds multiple records in runtime only. 4. What are the types of internal tables? Generally in SAP we have 3 types of Internal tables available, there are : a. Standard internal tables, b. Sorted Internal tables and c. Hashed internal tables. 5. What is the difference between standard, sorted and hashed table? *** Standard Internal table:
a. Standard internal tables are index tables and Purely works basing on the Index. b. The standard internal table ‘KEY’ is always NON-UNIQUE key. c. We can use APPEND , INSERT and COLLECT statements for Standard Internal tables. d. Supports Linear and Binary search for READ Standard Internal tables. e. We can use READ, MODIFY, and DELETE lines statements for Standard Internal tables by referring to the Index. Sorted Internal tables:
a. Sorted internal tables also index tables and Purely works basing on the Index as well as KEY. b. The Sorted internal tables KEY is either UNIQUE KEY or NON-UNIQUE KEY and must specify any one. c. We can use only INSERT statement and can’t use APPEND and COLLECT for Sorted internal tables. 1
d. Supports BINARY Search only for READ Sorted Internal tables. Hashed Internal tables:
a. b. c. d.
Hashed internal tables are NOT index tables and Purely works basing on the KEY. The Hashed internal tables KEY is always UNIQUE KEY. We can use only INSERT statement and can’t use APPEND and COLLECT for Hashed internal tables. Supports LINEAR search only, for READ Hashed internal tables.
6. Which methods use to pass the records from work area to internal table body? We are going to using three methods to pass the records from work area to an internal table, There are: a. APPEND Ex: APPEND st_tab TO it_tab. b. INSERT Ex: INSERT st_tab INTO it_tab index 2. c. COLLECT Ex: COLLECT st_tab INTO it_tab. (NOT USE IN SORTED TABLES). 7. What is the difference between Append, Collect and Insert? APPEND: This command inserts a new new record at the end of the table. INSERT : This command inserts a new record at the given index, COLLECT: This is used for for summation summation purpose. it will will add the numeric values of the new record to the existing record without changing the non numeric values..
8. What are the types of internal table key’s? Generally we have two types of internal table key’s are available: There are: 1. Implicit key’s (all character fields) By default, all the records that that you append to your internal table have a key. This key is the combination of all non-numeric fi fields. elds. This is the implicit key defined key’s UNIQUE / NON-UNIQUE) 2. Explicit key’s (user defined You can also define your own key for an internal table called as User-defined key’s. You would would add WITH KEY FIELD1 FIELD2 FIELD2 … etc. to your DATA statement. More specifically, you can make your user-defined key: a. UNIQUE: additional records records with the same key would not be permitted permitted b. NON-UNIQUE: additional records with the same key would be permitted. 9. How to declare an internal table size? We can use the command INITIAL SIZE 0 for declaration of internal table size. Internal table size means to assign the initial lines to storage memory.
INITIAL SIZE parameter: With , you specify an initial number of lines for the internal table.
Ex:
DATA: TT_TAB TYPE SORTED TABLE OF TY_TAB WITH UNIQUE KEY STD_NO INITIAL SIZE 0.
2
The maximum size of an internal table and that size is less than 8K, you can increase the system’s performance by specifying the maximum size in the INITIAL SIZE parameter. 10. What is the difference between READ TABLE and DESCRIBE TABLE in internal tables? *** READ TABLE is used to READ (search) single record From the internal table. EX: READ TABLE it_vbak WITH KEY vbeln = '12345'. READ TABLE it_vbak INTO wa_vbak INDEX sy-tabix. READ TABLE it_vbak INTO wa_vbak WITH KEY vbeln = '12345'. The above statements will read the record from the internal table it_vbak and places them in work area wa_vbak. DESCRIBE TABLE is used to Know the records of the internal table. EX: DESCRIBE TABLE IT_TAB LINES GV_LINES. WRITE:/ 'TOTAL RECORDS', RECORDS', GV_LINES. after executing we can find number of records in IT_TAB. 11. What are the various methods of READ TABLE command? *** READ TABLE command is used to search the record From an internal table. READ TABLE command works basing on two methods, there are:
a. Linear search (one by one record search) and b. Binary search. (By Half record search) 12. What is the difference between Linear search and Binary search? Linear search is nothing but processing sequentially one by one line searching. Ex: There are 9 numbers, we have to find 7 123456789 Linear search: we proceed 1 by 1: it takes 7 iterations Binary search: (total records divide by 2 parts) we take middle value( 5) compare with 7 now we are left with 6789 we compare (8) and (7) with 7 ... Thus process completed in 2 iterations 13. What are the prerequisites of Binary search? Binary search is one of the fastest way to find the record from the internal table. Whenever we use BINARY SEARCH, Must go to SORT the internal table in ASCENDING/DESCENDING ORDER, Then only we will get the exact results. Ex: SORT IT_TAB BY KUNNR LAND1 NAME1. READ TABLE IT_TAB WITH KEY KUNNR = ‘10001’ LAND1 = ‘IN’ NAME1 = 'JHON' BINARY SEARCH.
14. Various operations of Internal table as well as Database tables? 3
1. 2. 3. 4. 5. 6. 7.
APPEND INSERT COLLECT READ DESCRIBE MODIFY UPDATE
8. DELETE
: APPEND st_tab TO it_tab. : INSERT st_tab st_ta b INTO it_tab. : COLLECT st_tab FROM it_tab. : READ TABLE it_tab FROM st_tab WITH KEY name = ‘RAM’. : DESCRIBE TABLE it_tab LINES GV_LINES. : MODIFY TABLE zemp FROM st_tab TRANSPORTING AGE = ‘20’. : UPDATE zemp SET Emp_name = P_NAME Emp_age = P_AGE WHER Emp_id = P_ID. : DELETE FROM zemp WHERE emp_name = p_emp_name.
15. Which methods to use initialize a structure and internal tables? We have three methods for using Initialize the Structure and internal tables, there are: 1. CLEAR : The CLEAR statement with the help of initialize the Variable or Structures. 2. REFRESH: The REFRESH statement deletes deletes all it table lines. The table storage space space is not released. The header line remains unchanged. 3. FREE: The FREE statement releases the storage space required for a table. The header line remains unchanged.
16. What are the Aggregate Functions in SELECT Query? The aggregate functions MIN, MAX, AVG, SUM, and COUNT are a valuable tool for accumulating values across the entire table or a subset of the table rows based on the conditions in the WHERE clause. a. Notice there is no ENDSELECT because the aggregate SELECT statement does not return multiple records. 17. What is the difference between Key and Index? ***
Key: The purpose of KEY is used to maintain Uniqueness Uniqueness and avoid the duplicat duplicate e records from an Internal Internal tables. Index: INDEX does not helps to maintain Uniqueness and helps to improving the performance of Select Queries.
18. In what way INDEX is going to improve performance, Is it recommended? Yes. Index is nothing but a row number (Line number) of a table. Whenever we are going to write the Read statement or Loop statement basing on INDEX, the performance of your program is Improved . 19. Can I use modify statement inside the loop? *** Within the Loop, Modify statement is not recommended to use, Instead of using MODIFY statement, we are going to Use are recommended. 20. Without using modify statement how can we modify the table? 4
ALTER TABLE : IT_TAB from ST_TAB. Or use Field Symbols.
21. How do I know the number of records in a table? *** DESCRIBE TABLE – – it’s Related to an Internal Table, which is used to know how many records we have to storing in an Internal Table. DESCRIBE TABLE it_tab it_tab LINES GV_LINES . GV_LINES . SY-DBCNT – – it’s Related to Database Table. Which is used to know how many records we have to retrieve after select statement.
22. What are the differences between SY-TABIX and SY-INDEX? *** SY-TABIX Is an internal table records counter and SY-INDEX is Loop counter.
23. After Read statement what will be the SY-SUBRC value? If the Table Record is Found, means SY-SUBRC = 0. it returns the value 2. If the system cannot find an entry, SY-SUBRC is set to 4. 24. Can I write joins for Pooled and Clustered table? Clustered and pooled tables are different from transparent tables, and those are stored internally by the R/3 system. They cannot be converted to Open SQL and processed directly as the R/3 system imposes restrictions. Joins that include clustered or pooled tables are decomposed and processed using ABAP nested join logic. 25. What are the pre requisites for FOR ALL ENTRIES? (Or) How to improve the performance of For all entries? Prerequisite: whenever we are going to use FOR ALL ENTRIES statement for basing on an internal table, those
internal table are must have some records or NOT INITIAL and have some common fields with the table you want to fetch data into. 26. Have you done performance tuning? What are the things you are going to do in performance tuning? *** QL trace. Yes. ST05 is one of the transaction for check Performance of your program it’s called as SSQL Transaction SE30 is another way to check Run time Analysis. SLIN transaction for Extended program check. (Program > Check > Extended Program check).
To check Computer Aided Test Tool ( CATT) by using transaction SCAT.
27. What is Parallel cursors technique? The most common performance problem that occurs in ABAP programs is because of huge number of records in the internal tables. 5
if a program has huge nested internal tables the program has bad performance. The WHERE condition that is used in inner loops expend a significant amount of processing time. The idea is to avoid where conditions in the inner loops by maintaining the loop indexes (From) manually. 28. What is the logic behind parallel cursors technique? The WHERE condition that is used in inner loops expend a significant amount of processing time. The idea is to avoid where conditions in the inner loops by maintaining the loop indexes (From) manually.
29. What is the difference between FOR ALL ENTRIES and JOINS? Inner Join: Retrieves data from Data base tables based on the 'WITH KEY' fields which you have mentioned in
your 'SELECT' query. It also depends on the 'WHERE' 'WHERE' condition. In total the 'Inner 'Inner Join' is filtering the data at DATABASE LEVEL. For all entries: Here at first you are going to fetch data from Db1 into itab1 for specified conditi condition. on. then again
you will use one more select query to fetch the values from DB2 for the corresponding entries in internal table itab1. 30. What is the difference between Inner join and Left outer join?
An inner join of A and B gives the result of A intersect B, i.e. the inner part of a venn diagram intersection.
An outer join of A and B gives the results of A union B, i.e. the outer parts of a venn diagram union.
Examples Examples Suppose you have two Tables, with a single column each, and data as follows:
A 1 2 3 4
B 3 4 5 6
Note that (1,2) are unique to A, (3,4) are common, and (5,6) are unique to B. Inner join join An inner join using either either of the the equivalent equivalent queries queries gives the intersection of the two two tables, i.e. i.e. the two rows they have in common.
select select * * from a from a INNER INNER JOIN JOIN b b on a.a on a.a = b.b; select a.*,b.* a.*,b.* from a,b from a,b where a.a where a.a = b.b; select a | b --+---+-- 3 | 3 4 | 4
6
Left outer join join A left outer outer join will give give all rows in A, plus any common common rows rows in B.
select * * from a from a LEFT LEFT OUTER OUTER JOIN b JOIN b on on a.a a.a = b.b; select select select a.*,b.* a.*,b.* from a,b from a,b where a.a where a.a = b.b(+); a | b --+------+----- null 1 | null 2 | null null 3 3 | 4 | 4
31. What is the difference between Developer access key and Object access key? 1) Developer Access Key - To Create/Change any Custom Object you will required Developer access key . System asks Developer access key only once, whenever login Developer in first time for system recognize as Developer. 2) Object Access key - This key k ey will be available in service.sap.com. if you change or modifying the standard SAP Logic system will be asks Object access key. 32. What are the types of data we have in SAP & give some examples? ABAP The following graphic shows the different data types that are used in ABAP. Data types form a part of the ABAP Type Hierarchy. Hierarchy.
Data types can be divided into elementary, reference, and complex types.
7
DEBUGGING
33. What are the types of debuggers we have in SAP? In SAP we have two types of debuggers available, there are: 1. Classical Debugger (up to 4.7 v) 2. New Debugger
(from ECC 5.0 to 6.0 v)
34. What are the differences between Classical and New Debugger? *** The classic ABAP Debugger runs in the same roll area as the analyzed application. It is therefore displayed in the same window as the application. The new ABAP Debugger is executed in its own main mode (external mode), while the application to be analyzed (debug ) uses a second main mode (two-process architecture). The new Debugger is therefore displayed in its own window of the SAP GUI. 35. What are the types of Breakpoints in SAP? We have two types of Break-points are available in SAP, there are: 1. Static Break-points (outdated) 2. Dynamic Break-points
36. What is watch point? Watch points allow you the option of monitoring the content of individual variables. The Debugger stops as soon as the value o off the monitored variable changes. In addition, conditions can be specified. The Debugger also checks whether such a condition is fulfilled. In the Watch points area, you will see a list of all the watch points set so far. For each watch point you will see not only the current value but the value before the last changed. 37. What are the differences between Watchpoints and Breakpoints? A breakpoint is a signal at a particular point in the program that tells the ABAP runtime processor to interrupt processing and start the Debugger. The Debugger is activated when the program reaches this point. Max 30 breakpoints we can use. There is a special kind of breakpoint called a watchpoint. watchpoint. When you use watchpoints, the Debugger is not activated until the contents of a particular field change ie...Wat ie...Watchpoints chpoints allow you the option o off monitoring the content of individual variables.The Debugger Debugger stops as soon as the value of the monitored variable changes.You changes.You can use max of 5 watchpoints. Break Point means when you want to stop the control to the desired statement. statement. then you go for the break point .
Example: IF you have 10 lines of code and if you put a break point at line number 80. then if the control comes to the line number 80. then the debugger will stop automatically othewise it will flow further. 8
Watch point: when you want to see if any variable value is chagned to some other value and in that case you should go for the watch point.. Example: if you variable "FLAG" is value '0' initaily.. now if you want to see the when this flag gets changed to value '1'. Then in that case you should go for the watch point... 38. What is System Debugging? System Debugging If you set this option, the Debugger is also activated for system programs (programs with status S in their program attributes). When you save breakpoints, the System Debugging Debugging setting is also saved. Normal Debugging Normal debugging is the one we do it by the normal dynamic break points or by /H or by using static break points.
39. What are the debugger controls? *** We have four types of Execution Control Control Buttons in every every debugger tool. There are: Single Step: (F5) Executes the report line by line. This is useful if the user wants to see the program execute one line at a time. Execute: (F6) Processes all of the steps associated associated with one line of code. For example, example, one line of code
may be a call to a subroutine. Execute will process that line without showing all of the activities inside the subroutine. Return: (F7) Returns the user to where the calling program resumes control after a called routine. Continue: (F8) Processes all statements until a breakpoint or the end of the program is reached. If no breakpoints exist, the system will execute the report in its entirety without stopping. DATA DICTIONARY
40. What are the Data Dictionary Objects? *** 7 types of Data Dictionary objects we have in SAP, there are: 1. Database tables 2. 3. 4. 5. 6. 7.
Views Data types Type Groups Domain Search helps and Lock Objects.
41. What are the differences between Transparent , Pooled and Clustered tables? *** I. Transparent tables tables : : · Transparent tables allows secondary indexes. (SE11->Display (SE11->Display Table->Index Table->Indexes) es) · Transparent tables Can be be buffered. buffered. (SE11->Display (SE11->Display Table->technical Table->technical settings) settings) Regularly or heavily heavily updated updated tables should not be buffered. Ex: VBAK, VBAP, KNA1, MARA tables 9
II. Pooled Tables (match codes, look up tables) · Pooled tables Should be accessed via primary key . · Pooled tables Should be buffered (SE11->Display (SE11->Display Table->technical Table->technical settings) · Pooled tables does not have secondary indexes · Select * is Ok because all columns retrieved anyway Ex: M_MTVMA, M_MTVMB, M_MTVMC, M_MTVMD etc. III. Cluster Tables : · Cluster Tables Should be accessed via primary key - very fast retrieval otherwise very slow. . Cluster tables Cannot be buffered · Cluster Tables does not have secondary indexes · Select * is Ok because all columns retrieved anyway. Performing an operation on multiple rows is more efficient than single row operations. . Statistical SQL functions or Aggregative Statements (SUM, AVG, MIN, MAX, etc) not supported Ex: BSEC, BSED, BSEG etc. 42. What are the differences between Domain and Data element? *** Domains:: Domains Domain is the Central object, which is used to Describes the technical characteristics of an attribute like Data type, Input and Output length and Value range of that Field. Element: Data Element: Data element is used to describe the semantic definition of the table fields like Filed Description, Attributes, Domain declaration and Field label.
43. What is the difference between Data class and Delivery class? *** CLASS:: The Data class, which is used to Defines the physical area of the Database in which your table is DATA CLASS
logically stored. The most important Data classes are (other than the system data): APPL0 - Master data APPL1 - Transaction data APPL2 - Organizational and customizing data.
There are two more data classes available, USR and USR1. These are reserved for user developments. CLASS:: The Delivery class, which is used to Defines, What type of Data is going to be stored into your DELIVERY CLASS Database table. The delivery class is also used in the extended table maintenance.
There are the following development classes: ● A- Application table (master and transaction data). ● C- Customer table, data is only maintained by the customer. ● L- Table for storing temporary data. ● G- Customer table, SAP can insert new data records but cannot overwrite or delete existing ones. ● E- System table with its own namespace for customer entries.
10
● S- System table, data changes have the status of program changes. ● W- System table (for example table of the development environme environment) nt)
44. Can I create a Field without Domain? *** Yes, we can create a Field without create domain by using an option called ‘Pre-Defined type’ of the the Data element. Here we provide Data type and Field length. 45. Can I create a Filed without Data element? *** Yes, we can create a Field without Create Data element. Here we can referred a Data type along with Length. Ex: NAME TYPE CHAR20 . 46. In my database table I am going create a Field with Data element, in this Data element I have used to Predefined data type and Provide Data type and Length, and I am try to save this data element what message It can be displays? ar e getting ‘Maintain field Here we have provided only Pre-defined values, not given Field Label…so here we are label Information message’.
47. I have a table with some fields along with data, I have add Five fields in this table and try to save this table, what message am getting? What am do now? *** Here we have some fields along with data, we are going to try to add some new fields and try to save this table, we are getting an Error message with ‘Structure change at Field level, (convert table). In this situation we are going to Adjust the Database. Path: Utilities -> Database objects -> Database utilities. 48. What is the purpose of Technical settings? *** The purpose of Technical settings in Data Dictionary, which is used to define the Data class, Size category, Buffering permission and buffering type For a Database table.
The most important parameters are: ● Data class: class: The data The data class defines the physical area of the database (table space) in which the table must be created. ● Size category: category: The size The size category defines the size of the extents created for the table. When the table is created in the database, the system determines the required information about the memory area to be selected and the extent size from the technical settings. ● Buffering permission permission:: The buffering The buffering permission defines whether the table can be buffered. ● Buffering type type:: If the table can be buffered, you must define a buffering type (full, generic, single-record). The buffering The buffering type defines how many table records are loaded into the buffer when a table entry is accessed. Logging:: ● Logging 11
This parameter defines whether the system logs changes to the table entries. If logging logging is switched on, the system records each change to a table record in a log table. 49. What is the purpose of Table Maintenance Generator (TMG)? *** Table Maintenance Generator (TMG) is an User Interface tool, which is used to Maintain or Customize the Entries from the Database table. Ex: Create new entries, Change an existing entries and Delete an entry From the Database table. 50. Steps to create Table Maintenance generator? *** Go to SE11 --> enter your table name- -> click to change button- -> go to Utilities - -> select table maintenance generator. Provide Function group Provide Authorization group Provide Maintenance screen -> single singl e step or o r two step Provide Maintenance screen no. Then Create and Save. If you want to check the TMG by the transaction SM30 or SM31. 51. What are the Mandatory Parameters pass in the TMG? *** We have Must pass the Parameters in TMG are: 1. Function Group 2. Authorization group 3. Maintenance type and 4. Maintenance Screen no.
52. What is the difference between Single step maintenance and Two step maintenance? Single step: Only overview screen is created i.e. the Table Maintenance Program will have only one screen
where you can add, delete or edit records. Two step: Two screens namely the overview screen and Single screen are created. The user can see the key fields in the first screen and can further go on to edit further details.
53. How will you create a Transaction code for TMG? ***
Go to transaction SE93 for create Transaction code. Provide an USER Transac Transaction tion code. code. (ex: ZTEST_T_01) ZTEST_T_01) and click CREATE button. Provide Description and chose ‘transaction parameters’ radio button. Pass SM30 for ‘Transaction parameter’ parameter’ value and check ‘Skip initial screen’ screen’ check box. Chose GUI support options. ex: for widows check box. Pass the default default value tab fields: 1. VIEWNAME as your Table name and 2. UPDATE as X. or SHOW as X. 12
54. I have an database table along with two fields as CREATE DATE and CREATE PERSON, for those fields are having Gray out (Not Possible input) on selection screen..wheneve screen..wheneverr I create an entry then click save the database table records automatically automatical ly updated with CURRENT DATE and USER NAME? how it possible? Yes, it is Possible. We can achieve achieve this requiremen requirementt by using EVENTS. Go to Utilities -> Table maintenance generator Within TMG screen screen we have have an option called Events. (Environment -> Modifications Modifications -> Events) Events) and come to ‘Edit mode’…and chose your suitable Event. Ex: 05 (at the time of creating a new entry) Then Enter a Form name (SUB ROUTINE) ex: DEFAULT_ENTRY. F ORM - ENDFORM. Click Editor column button ( 3 rd column)…and write the Logic with in the FORM Ex: FORM default_entry. ZTAB-C_DATE = SY-DATUM. ZTAB-C_USER = SY-USER. ENDFORM. 55. What is meant by Buffering and how many types? *** Whenever we are going to use Select statement for Fetch the record from the Database table, If the table's is buffering enabled, the Fetched record was going to be saved into Buffer (RAM) on the application server. Later, if that same data was Fetch again, it’s going to Directly Fetched from the Buffer, Not going to the Database. We have 3 Types of Buffering options available, there are: 1. Single record buffered 2. Generic area buffered 3. Fully buffered.
56. Difference between Single, Generic and Fully Buffering? *** Single Buffered -
Fetch the one by one record from the Database table. Generic Buffered - Fetch the records Basing on the WHERE condition. Fully Buffered Fetch the ALL records from the Database table. 57. Which data tables will go for Buffer? We are going to use Buffer for only Master data tables, because Master data tables are Rarely updated and Regularly used. Buffer Does not recommended for regularly updated data tables like..Transaction data tables, these are regularly updated records, so buffer (RAM) loss newly updated records. 58. How do you SKIP buffering? *** 13
By using ‘BY PASS BUFFERING’ statement in SELECT query. It will be go for fetch the records from directly database tables and SKIP the BUFFER. 59. In Which SELECT Query the Buffering will be Ignored or Avoid? By using ‘BY PASS BUFFERING’ Statement .
Or If we are going to use any Aggregative Functions, they are not going to be considered Buffer. Ex: MAX, MIN, AVG, SUM and COUNT. 60. What are the differences between Maintenance view and Database view? Database view: Can be used instead of Inner Joins in ABAP program Cannot be update multiple tables at a time. Maintenance view: Cannot be used in ABAP Open SQL statements. Only through Table maintenance (SM30) we can update the Data.
Can be update multiple tables at a time. 61. Have you created lock objects and what is the purpose of lock objects? o bjects? *** Yes. Lock object is one of o f the Concept of Data Dictionary, which is used to avoid the Data in-consistency, at the time of Data is being insert/change into database. SAP Provide three types of Lock objects. : - Read Lock Lock (Shared Locked) Locked) - Write Lock Lock (Exclusive lock) lock) - Enhanced write lock lock (Exclusive lock without cumulating)
Technically: Lock object name always starts with ‘EZ’. Whenever we create a lock object, Automatically the System is going to create two function modules, there are: 1. ENQUEUE _. To Request the Lock for for Object. 2. DEQUEUE _. To Release the Lock for Object. Object.
62. What are the various types of lock modes? We have 4 types of Lock modes in Data Dictionar Dictionary, y, there are: S (Shared) for Read Lock E (Exclusive) for Write Lock X (eXclusive but not-cumulative) for Enhanced Write Lock O (Optimistic) 63. Have you created search help exit and what is the purpose? 14
Yes. Search help exits are used to restrict the standard search help returned values according to users’ requirement.
Example: Scenario: When User1 require require only Material type as Finished goods and User2 require only Material type as Raw material, for this scenario we can use search help exit. 64. What all the search help available in SAP? *** We have 2 types of search helps available in SAP: There are: 1. Elementary search help, 2. Collective Search Help FUNCTION MODULES
65. Where we can create Function Module? w ant create a Function modules first Go to Transaction SE37 for Create user defined Function modules…if we want we need to create a Function group and it’s always in active state. Function Groups are created by SE37 as well as
SE80. 66. Within a Function group how many Function Modules can be created? We can add Maximum 99 Function modules to a Function group. 67. Within a Function module can I write CALL SCREEN, CALL TRANSACTION statements? *** No. 68. What are the types of Function modules we have in SAP? *** In SAP we have three type of Function Modules available, There are: 1. Normal Function Modules 2. Remote Enabled Function Function modules (RFC) and 3. Update Function Modules.
69. What are the differences between Update Function module and Normal Function module? 70. What are the differences between Normal function module and RFC function module? *** 1) Normal function module only called within the server...but RFC can be called across the server. 2) We can access data from RFC function module from non sap also...but not possible for normal function modules. 3) We always use pass by value mode in RFC's but in Normal function module we can use pass by value or pass by reference. 4) Fast accessing using normal function modules...slow accessing using RFC's. 15
71. What are the differences between Synchronous update and Asynchronous update with examples? In Synchronous process: the data is updated into one by one record and the process is waiting for some Acknowledgement. In Asynchronous process: the whole data was updated in at a time, doesn’t waiting for any Acknowledgement, it’s means performance was automatically de-grades.
72. What is meant by LUW & how many types? - A “LUW” (Logical Unit of work ) is the span of time during which any database updates must be performed . Either they are all performed ( committed ) , or they are all thrown away ( rolled back ). We have 2 types of Logical Unit of Work (LUW) in SAP. There are: 1. Database LUW 2. SAP LUW 73. What are the differences between Database LUW & SAP LUW? *** DB LUW : When it is called it locks the rows , Update the rows & commit the rows issued by auto Commit. SAP LUW : Collection of Business reports is called SAPLUW and Issuing the Commit like UPDATE,INSERT,MODIFY statements are valid Commit work is given by Developer Side.
74. What is the purpose of Commit Work and Rollback Work? *** The statement COMMIT WORK can be completes the current current LUW process and opens a new one. And Storing all change requests in the current LUW and processing it. The statement ROLLBACK WORK can be close the current LUW process and opens a new one. all change requests of the current LUW.
And canceled
75. What is the bundling technique? Bundling is an ABAP programming technique which collects database changes and performs these together at the end of a transaction. 76. What are the differences between external sub routines and Includes? Include is a type of program. Subroutine is a part of program
External subroutine is perform statement is one program and form routine is in another program.
include is not executable program.
both are using reusability.. 16
includes are mainly using for data declaration and subroutines are using for passing values to form routine.
you can change the value by using subroutine but you can not change the value in include program.
77. What are the differences between Macros and Subroutines?
Macros can only be used in the program the are defined in and only after the definition.
Macros can take max 9 parameters. Macros are expanded at compilation / generation.
Subroutines (FORM) can be called from both the program there defined in and other programs . Subroutines can take any amount of parameters. Subroutines are 'expanded' at runtime.
78. What are the differences between Data type and Reference variable? You create the data type of a data reference variabl variable e using: TYPES: t_dref TYPE REF TO DATA.
You can create a data reference variable either by referring to the above data type or using: DATA : dref TYPE REF TO DATA.
Reference variables are handled in ABAP like other data objects with an elementary data type. This means that a reference variable can be defined as a component of a complex data object such as a structure or internal table as well as a single field.
REPORTS
79. What are the types of Reports we have in SAP? In SAP, we have 3 types of Reports categorized, there are: 1. Classical reports, 2. Interactive reports and 3. ALV reports. 80. What are the Events we have in classical Reports? Reports? *** Classical reports events: 1. INITIALIZATION, 2. AT SELECTION-SCRE SELECTION-SCREEN, EN, a. AT SELECTION-SCREEN ON field. b. AT SELECTION-SCREEN ON BLOCK, c. AT SELECTION-SCREEN ON RADIO-BUTTON,
17
d. AT SELECTION-SCREEN ON VALUE REQUEST FOR P_TEST, e. AT SELECTION-SCREEN ON HELP REQUEST FOR P_TEST, 3. START-OF-SELECTION, 4. END-OF-SELECTION, 5. TOP-OF-PAGE, 6. END-OF-PAGE.
81. What is the special Event we have in classical reports? *** We have a special event in classical reports called as ‘AT SELECTION-SCREEN OUTPUT’. OUTPUT’. INITIALIZATION’ N’ and ‘AT SELECTION-SCREEN SELECTION-SCREEN OUTPUT’ events, which 82. In classical reports we have to using ‘INITIALIZATIO one is going to triggered first? *** In this scenario, AT SELECTION-SCREEN OUTPUT event is going to be triggered in First, then triggered INITIALIZATION event. In classical reports events AT SELECTION-SCR SELECTION-SCREEN EEN is going to triggered in multiple. It’s called as a Special event. 83. What are the events we have in Interactive reports? ***
Events of Interactive reports: 1. AT LINE-SELECTION, 2. AT USER COMMAND, 3. TOP-OF-PAGE DURING LINE SELECTION, 4. AT PFn.
84. What are the Control level processing events or AT EVENTS? *** Control level processing events are also called as AT EVENTS or Loop processing events. We are going to use AT EVENTS within the Loop statement only. We have Four types of AT EVENTS available, there are: a. AT FIRST b. AT NEW c. AT END OF d. AT LAST
85. Types of ALV reports in SAP? Three types of ALV reports we have in SAP, there are: 1. Simple ALV report - normal ALV list 2. Blocked ALV report - this is used to display multiple lists continuousl continuouslyy 2. ALV Hierarchical Sequential Report - display in hierarchical hierarchical 86. What are the Events we have in ALV Reports? *** Totally We have 19 Events available in ALV reports, regularly we are going to use only some Important events for build ALV reports, there are: 1. PF_STATUS_SET 2. 3.
USER_COMMAND TOP_OF_PAGE
18
4.
END_OF_PAGE
5.
TOP_OF_LIST
6.
END_OF_LIST
7.
AFTER_LINE_OUTPUT
8.
BEFORE_LINE_OUTPUT BEFORE_LINE_OU TPUT etc.
If we want to use those Events, before we need to use a Function module like REUSE_ALV_EVENTS_GET and Collect events in an Internal table. 87. What are the Function Modules we have in ALV Reports? Normal & Grid ALV: REUSE_ALV_LIST_DISPLAY
Output a simple List (single line or several lines)
REUSE_ALV_GRID_DISPLAY
Output of a simple List (single-line)
Blocked ALV : REUSE_ALV_BLOCK_LIST_INIT
Initialization of Block List Output
REUSE_ALV_BLOCK_LIST_APPEND
Append Simple List in Block Mode
REUSE_ALV_BLOCK_LIST_DISPLAY
Display a block table
Hierarchical Sequential ALV : REUSE_ALV_HIERSEQ_LIST_DISPLAY
Hierarchical sequential list output
Blocked Hierarchical ALV : REUSE_ALV_BLOCK_LIST_INIT
Initialization of Block List Output
REUSE_ALV_BLOCK_LIST_HS_APPEND
Append Hierarchical List in Block Mode
REUSE_ALV_BLOCK_LIST_APPEND
Append Simple List in Block Mode
REUSE_ALV_BLOCK_LIST_DISPLAY
Display a block table
Useful ALV related Function modules : REUSE_ALV_EVENTS_GET
Returns table of possible events for a list type
REUSE_ALV_COMMENTARY_WRITE
List body comment block output
REUSE_ALV_VARIANT_F4
Display variant selection dialog box
REUSE_ALV_VARIANT_EXISTENCE
Checks whether a display variant exists
REUSE_ALV_POPUP_TO_SELECT
List in dialog box to choose one or more entries 19
88. In ALV Grid display output, am going to display 10 Fields. Here I’d like to Display 2 fields with Fixed and unable to drag? What I am do now? If we want to display those fields with fixed length and Unable to drag, we are going to make it those fields as ‘Key fields’ by using Field catalog. Here we are going to pass the ST_FCATST_FCAT-KEY KEY = ‘X’. 89. What are the differences between Parameters and Select-options? Another difference is that parameter acts as a variable whereas select option acts as an internal table with a predefined structure. Parameterss takes single value and we use ‘EQ’ ( = ) in where condition for that field. Parameter When you declare select-options a selection tables like Internal table with 4 fields like SIGN, OPTION, LOW and HIGH gets created to store the multiple values that are entered in the select -options. and we use IN in where condition for that select-options select-options field 90. What are the differences between Ranges and Select-options? Select-options are the normal select options that you define on Selection screen. Select-options While Ranges are similar to Select options in the way it creates a internal table of the same form as that of Selectoptions. The internal table that is created has the fields SIGN OPTION LOW HIGH. But the difference between Select-options and ranges are that we don't need to define the ranges in Selection screen. It is created by explicitly coding in the Program. 91. What is the difference between AT NEW and ON CHANGE OF? ***
AT NEW can be used only inside the Loop. ON CHANGE OF can be used only outside the Loop.
92. What are the prerequisites of AT NEW event? *** Before using Loop processing Events (AT NEW), First we need to SORT the internal table by basing on key fields. 93. How do you debug a Background job? *** Go to the transaction SM37 and select the background job (with job status ‘Active’) that you want to debug. Now select ‘Capture: active job’ from menu ‘Job’
This will open the selected active job (program) in the debugger. OR Also you can do the same from transaction SM50. 20
Select the work process where this job is running and then choose the menu path : Program/Mode ProgramDebugging. 94. What are the steps to create a Background job? *** Go to transaction SM36 for Define Background Job Step-1 > Give the ABAP program name for Job name field. Step-2 > click on Step Step RadioRadio-button…click on ABAP program button…and give your program name and variant name. (if you have any parameters or select-options select-options of your progra program) m) Step -3 > Then click start condition button --> click you starting condition conditi on mode buttons ex: Date / Time. Step-4 > Give the start date & time. Step-5 > if you give any periodic value, click on the Periodic Job checkbox click on the Period Values pushbutton & select ‘Hourly’ or 'Monthly' and Save. If you want to analyze the Background job status, we are going to use transaction SM37. Give your job name and Execute. Or t code JDBG. 95. What is the purpose of variants? Sometimes you may have a requirement to schedule a back ground jobs, based on the current month in the selection screen. Variants are client dependent and the variant values are stored in a cluster table names as VARI. 96. Variants are client Dependent or Independent? Variants are Client dependent and the variant values are stored in a Cluster table name as VARI. 97. In my program I’m writing logic, certain logic should be executed in background job & certain logic should be executed in foreground. How do we differentiate that logic? *** We can use Function modules JOB_OPEN JOB_SUBMIT JOB_CLOSE for execute certain logic in background.
98. What is SAP memory? *** The SAP Memory is a memory area to which all sessions of a SAP logon have common access. In ABAP programs, the SET PARAMETER and GET PARAMETER commands can be used to access the so-called SPA/GPA parameters stored in the SAP Memory SET and GET PARAMETERS are used for SEND data to SAP memory and RETRIVE the data from SAP memory. Ex for SET PARAMETER syntax: 21
SET PARAMTER ID ‘aun’ FIELD S_VBELN-LOW. S_VBELN-LOW.
Ex for GET PARAMETER Syntax: GET PARAMETER ID ‘aun’ FIELD S_VBELN-LOW. S_VBELN-LOW.
99. What is ABAP memory? *** The memory area of each main session has an area called ABAP Memory, which the programs in the internal session can access with EXPORT TO MEMORY and IMPORT FROM MEMORY EXPORT and IMPORT parameters are used for EXPORTING data into ABAP memory and IMPORTING data from ABAP memory. Ex for EXPORTING PARMETER syntax: EXPORT P1 TO MEMOR MEMORY Y ID ‘test’. [test – memory name].
Ex for IMPORTING PARAMETERS syntax: IMPORT P1 FROM MEMORY ID ‘test’ FREE MEMEORY ID ‘test’. ‘test’.
100. What are the differences between Perform and Perform on commit? The statement of PERFORM subroutine is triggered by condition or directly in your program. The statement of PERFORM ON COMMIT is registers the subroutine directly specified using subr in the same program. The subroutine is not executed immediately, but a flag is set for execution when one of the statements COMMIT WORK or statements or ROLLBACK WORK. 101. How to upload Excel file data into an internal table? *** Using a function module ALSM_EXCEL_TO_INTERNAL_TABLE for upload EXCEL file data into an Internal table. If we want to Download Internal table data into Excel file we can use Function module is GUI_DOWNLOAD .
SAP SCRIPTS
102. Why scripts are client dependent? *** Scripts are developed in SAP and it will be maintained into STXH table, which has MANDT field. So, we can say scripts are Client Dependent. 22
103. Scripts are Language dependent or Independent? *** SAP scripts are Language dependent, because of a script form is available in multiple languages. 104. What are the components of SAP scripts? *** Whenever we create a SAP script, we are going to create three components, there are: 1. Form by using SE71 transaction, transactio n, 2. Standard text by using SO10 transaction and 3. A Driver program by using SE38 transaction. 105. What are the sub-objects of SAP script Form? *** We have 7 types of Sub – objects in every SAP script Form, there are: 1. Header 2. Pages 3. Windows 4. Page windows 5. Paragraph formats 6. Character formats 7. Documentation.
106. What are the types of windows available in SAP scripts? *** We have 4 types of Windows available in SAP scripts, there are: 1. Main Window :
Each Form must have one window the type of MAIN. Such window is called as main window of the form. Print pages count is depending on the Main window data in run time. Don’t lose any data. Every page we have use max 99 MAIN window. (00-98). It controls the page break. 2. Variable Window: Variable window having fixed size and it’s display some fixed size of data only. It’s not support for Page break.
3. Constant Window :
Constant window always display at the runtime values only. 4. Graphic Window:
We are going to use Graphic window for upload and Display a Logo into SAP script form. 107. What is the Transaction for create Standard Text? We are going to create Standard Text for SAP scripts by using Transaction code is SO10. 23
108. How am going to assign Standard Text to a Request or Task? *** We are going to use a standard program RSTXTRAN for assign Standard text to a Request or to a Task. 109. What is SYMBOLS and types of SYMBOLS we have using in SAP scripts? The term SYMBOLS are nothing but Variable, which is used to Populate the System data as well as Program data in SAP Scripts. We have 4 types of SYMBOLS categorized in SAP Scripts, there are: a. System symbols
(&DATE& )
b. Program symbols (&ST_KNA1-KUNNR&) c. Standard symbols (TTDTG –table) d. Text symbols.
(User Defined text for a Field)
Note: The name of SYMBOLS is defined with Ampersand (&) symbol. Ex: &DATE& &DAY& &TIME& 110. How do you copy a Form from one client to another client? *** We can Copy the Form (SAP Script) using Transaction code SE71 Utilities -> Copy from Client Client (or (or Using standard program RSTXFCPY) Provide the: Source Form name, Source Client and Target Form name. In real time SAP not recommended to use this process because if you have some standard text, does not copy. So, We are going to use Transaction SCC1 for copy a Form from one client to another client. Also we are going to Copy the Form from one server to another we can use the standard program is RSTXSCRP. 111. How do you find request number for a form in SAP scripts? *** Go to transaction SE03 and click search for objects under request, then Enter ‘FORM’ and your Form name and execute it. Then we can find given Form request number. 112. How can I know the form is available in multiple languages? Generally we are going to know the Form available languages by using SE71 transaction and Given your Form name and click Display …Go to Utilities menu and select Versions, Versions, here we know the Form activate Languages.
113. How to Debug a SAP script form? *** We have two approaches for debug a Form: Enter your Form name and go to Utilities-->activate debugger … then Execute the print program … it will be go to debugging mode..
1. In SE71 screen,
24
2.We have an another approach to debug a Form by using Standard Program RSTXDBUG …and Execute this Program for activate Debugger…then Run the print program, it will go for d debugging ebugging mode. 114. How you are going to upload a Logo in SAP scripts? *** We are going to use a standard program RSTXLDMC for upload .TIFF format files into SAP scripts. If you want to call this .TIFF file Logo, you can write this command within your page window: 'ZHEX-MACRO-C_LOGO' OBJECT OBJECT TEXT TEXT ID ID ST ST LANGUAGE LANGUAGE 'E'. 'E'. /: INCLUDE 'ZHEX-MACRO-C_LOGO'
If you want to upload .BMP (BITMAP) format logo files into SAP, we are going to use the transaction SE78 (Logo repository). If you want to call this .BMP file Logo, you can write this command within your page window: GRAPHICS ID ID BMAP BMAP TYPE TYPE BCOL DPI BCOL DPI 150. 150. /: BITMAP 'C_LOGO' OBJECT 'C_LOGO' OBJECT GRAPHICS
115. What is the purpose of Control commands in SAP scripts? In SAP scripts the Control commands are helps to Format the final output of your Form. These Control commands are passed to the SAP script composer to process a Form. Ex: NEW-PAGE, NEW-WINDOW, ADDRESSENDADDRESS etc.
116. What is the purpose of ADDRESS ADDRESS – – ENDADDRESS ENDADDRESS? *** ADDRESS – ENDADDRESS is a Control command, which is used to populate the Address for country specific format in SAP scripts. 117. What is the purpose of PROTECT PROTECT – – ENDPROTECT ENDPROTECT? *** PROTECTS – ENDPROTECT is a Control command, which is used to prevent the Page-Break in SAP scripts. I have Script form with two pages and along with Data, If I want to Populate the data in only one page.. D on’t want to split the data into two pages..in this scenario we are going to use a Control command like PROTECT - ENDPROTECT . 118. I have two Pages, I would like to print two pages dat data a into one page only? What I am do? In this scenario we are going to use a Control command like PROTECT – ENDPROTECT for prevent Page-Breaks. 119. Without modifying driver program I have add some fields in a Form and how to populate values into that fields? We are going to add some fields by using a Control command like DEFINE in Form Level…and Populate the values for DEFINED fields, we are going to write the logic within the PERFORM – ENDPERFORM. 120. I want to provide a page break forcibly? What I am do? *** We can use a Control command NEW-PAGE for provide Page-Break Page-Break Manually, the next content will be go for print in Next page. 25
121. I want to Draw a Box on Form? What is the syntax? *** If we want to Draw a Box on Form, we are going to use the syntax is: /: BOX [XPOS] [YPOS] [WIDTH] [HEIGHT] [FRAME] [INTENSITY]
122. What is the purpose of Text elements in SAP scripts? Text Elements are the only way to transfer the data from report program to FORM using WRITE _FORM Function Module. 123. In SAP scripts how can I provide space between Word to Word? We are going to use TABS option in paragraph formats. 124. How do you handle Barcode in SAP scripts? *** If we want create a custom Barcode will go to transaction SE73. If we want to use this Barcode on your form...we are going to create an character format type click Barcode check box and use custom created Barcode name here. 125. In SAP scripts I want one page in Landscape format and another one is Portrait format? How can I achieve?* To implement this requirement I have used the print control commands "SPORT" -- To print in portrait format "SLAND" -- To print in landscape format. Syntax for page1 /: PRINT-CONTROL SPORT Syntax for page2 /: PRINT-CONTROL SLAND 126. In SAP scripts the Box height is automatically adjusted based on the number of records on a Internal table? How is it possible? In this scenario first we need to describe internal table records and collect into a Variable. Syntax: DESCRIBE TABLE IT_TAB LINES INTO GV_LINES. Then we can use this variable ( GV_LINES) for define Box height, then automatically adjust the table height basing on internal table records. ‘20’’ CH HEIGHT &GV_LINES& LN . Syntax: /: BOX XPOS ‘2’ CM YPOS ‘2’ CM WIDTH ‘20
127. Is it Possible to Debug a particular window only or not? Yes, it’s possible by using transaction SE71 and go to Utilities -> Activate debugger Then go to your driver program (SE38) and execute e xecute it, we can debug by pages or windows by using ‘/H’.
26
128. I have a requirement how to print Header data under the item data and as well as item data under the Header data? Is it possible, how can do this? Yes, we can achieve this. Within the driver program we can write the logic as First Loop the Header data table and within the Loop we can write another Loop of Item data table basing on header field value and collect the data into a final table …now we can use this final table for WRITE_FORM function module. 129. What are the types of Function modules we have in SAP scripts? OPEN_FORM START_FORM WRITE_FORM WRITE_FORM_LINES END_FORM
-
Opens the form output. Starts a new form. Calls a form element. Writes text lines into a form. Ends the current form.
CLOSE_FORM
-
Ends the form output.
130. What is the difference between OPEN_FORM & START_FORM? OPEN_FORM: it opens the form for printing (called only once) and should be closed with END_FORM. START_FORM: is used when u have multiple pages (forms) to be printed in one output.( can be called many times) 131. How can I convert script to a PDF form? *** If we want to convert sap script to a PDF form, we are going to write the logic within your driver program and we have use COLSE_FORM function module. Within this COLSE_FORM function module we have TABLES parameter and collect the data into an Internal table (OTF data). Then we can Convert OTF data to PDF by using SX_OBJECT_CONVERT_OTF_PDF function module. If we want to download a PDF file by using GUI_DOWNLOAD function module. If you want to Send the object using SO_DOCUMENT_SEND_API1 function module. 132. Basing on the form name how to I find Driver program? Go to SE71 enter your form name click Display…then Go to Form -> check - > Texts. you can appears a print program name. We have an another approach to find driver program of your form. Go to table TTXFP contents, enter your form name and Execute it. 133. a. b. c.
What are the Standard SAP script forms in SAP? RVORDER01 - Sales order confirmation RVINVOICE01 - Invoice MEDRUCK - Purchase order.
27
SMARTFORMS
134. What is the difference between between SAP scripts and Smartforms? *** 1. Scripts are client dependent, while Smart forms are client independent. 2. we can’t rum scripts without a print program, while in Smart forms we can run without print program. 3. In scripts we can’t print background logo, while in Smart forms we can print background logo. 4. In scripts we can use max 99 main windows per page , while in Smart forms we can use only 1 main window.(we have also create without main window) 5. scripts does not have any database connectivity, while Smart forms have direct database connectivity. 6. In scripts does not support color font, while Smart forms support color print . 7. Scripts does not Net-enable, while smart forms are net-enabled. 8. in scripts we can use Standard text (SO10) , in smart forms we can use standard text as well as Text modules. 9. Scripts support Labels and smart form does not support Labels. 135. What are the types of TEXT’s we have using in SMARTFORMS? We have 4 types of TEXT’s using in SMARTFORMS, there are:
a. Dynamic text (D) b. Text Element (E) c. Include Text (I) d. Text modules (M)
136. What is the difference between between Standard text (SO10) and Text modules (SMARTFORMS) ( SMARTFORMS)? a. b. c. d.
Standard text are client dependent, while Text modules are client independent. Standard text are Language dependent , while Text modules are language independent. Standard text are not transportable, while text modules are transportable. Standard text are stored in STXH, STXL tables, while text modules are stored in SSFSCREEN table.
137. How can I transport a SMARTFORM SMARTFORM from one language to another language? *** We are going to use transaction SE63, and go to Translation -> ABAP objects -> Other Long text Here expand Forms and Styles, then Double click on SSF for smart forms. Enter your Smart form name and enter your Source and target language. 138. How can I find request number for a SMARTFORM? *** Go to transaction SE03 and click search for objects in the request, then Enter ‘SSFO’ and your SMARTFORM name and execute it. Then we can find given Form request number. 139. How many types of windows available in SMARTFORMS? *** We have 4 types of windows available In SMARTFORMS, there are: 1. Main window, 2. Secondary window, 3. Copy window, 28
4. Final window.
140. What is the purpose of Copy window? *** o f a particular The copy window helps to differentiate some particular printouts. I’d like to print three copies of document and the first copy should mention as Customer copy, second one as Bank copy and the third one as College copy in this scenario we will go for use Copy window. 141. What is the purpose of Address Node in SMARTFORMS? *** We are going to use ADDRESS NODE in SMARTFORMS, to populate the Address for country specific format (according to the postal regulations of the sender country). 142. In SMARTFORMS I have a requirement Page 1 directly go to Page3? How can I do? In SMARTFORMS every page attributes we have an option called NEXT PAGE …within a page1 attributes we define the Next page as Page3. 143. What is the difference between Table and Template in SMARTFORMS? *** The template, which is used to hold static data because the number of rows and columns are fixed. The tables are used to hold dynamic data and increase the number of rows depending on the run time data. 144. I have a Template, it is putting in Loop, what’s happens here? If we can put a template within a Loop…the last one record may be displaying by data is over writes because of template having Fixed rows and columns and it holds static data only.
145. What is the difference between Table and Loop in SMARTFORMS? *** The basic difference between between Table and Loop is: within a table we cannot call anoth another er table and within a Loop we can call another Loop. 146. What is the purpose of Line type in SAMATFORMS? The Line type, which is used to defines the number of Cells and size of the cells of your Template line or Table line in SMARTFORMS. 147. What is the purpose of Alternative Node in SAMRFORMS? *** Alternative Node consist of two options: TRUE or FALSE. Which is used to print the content basing on the Alternative condition is TRUE or FALSE. If you want to print some content, basing on the condition is TRUE, we are going to write the logic under TRUE node. or If you want to print some content, basing on the condition is TRUE, we are going to write the logic under FALSE node. 148. In SAMRTFORMS how can I achieve PROTECT – ENDPROTECT? *** 29
The Control command PROTECT-ENDPROTECT does not supports in SMARTFORMS. We can achieve the prevent Page-break in SMARTFORMS by using The Folder option. (Folder Node) 149. What is the purpose of Folder Node in SMARTFORMS? *** With the help of FOLDER NODE, we can achieve the PROTECT-ENDPROTECT, which is used to populate the records in same page without any Page-break. 150. How can I debug a SMARTFORM? *** Execute (F8) your SMARTFORM - >Display FM -> FM attribute -> Double click on Program name -> Double click on user defined include program ->Put the break-point where we can debug. 151. What is the Purpose of SMARTFORM TRACE? *** SMARTFORM TRACE, which is used to trace WARNINGS and ERRORS of a SAMRTFORM as well as trace a SMARTFORM working levels. We are going to use transaction SFTRACE for trace a SMARTFORM. SMARTFORM TRACE helps to Debug a SMARTFORM in non-modifiable client.
152. What is the Transaction code for SAMRTFORM SAMRTFORM trace? We are going to use transaction SFTRACE for trace a SMARTFORM working levels. Switch on the TRACE and run the SMARTFORM and Switch off Trace and analyze. 153. How do we handle SAMRTFORM from a Driver program? *** First we are going to call the system generated SMARTFORM Function Module into your Driver program. Then we can change the Function module name and collect into a variable by using SSF_FUNCTION_MODULE_NAME function module. Then we can use the variable name instead of system generated Function Function Module. Then pass the required importing parameters and execute your Form directly from your driver program.
154. How to capture Long text in my form? If we want to capture long text into your form, we are going to use READ_TEXT Function module. Here we can pass ID, LANGUAGE, NAME and OBJECT parameters and collect the captured data into a table. 155. Have you created any Form? Yes, I have created a couple of forms like INVOICE FORMS, SALES ORDER FORMS, DELIVERY FORMS CREDIT FORMS etc. 156. Have you done changes to a standard form? Yes, I have done some changes of standard forms like Purchase order (MEDRUCK), Sales order confirmation (RVORDER01), Invoice (RVINVOICE01) and Delivery note etc. 30
157. What kind of Invoice form you work? I have worked on various Invoice forms like Proforma Invoice, Standard Invoice, Consignment Invoice and Third party Invoice. 158. SAP provides some standard forms, why are u created custom forms? As per client requirement, I’d like to add some more Fields, Descriptions and Company Terms and conditions as well as company Logo etc. SAP standard forms does not support for client requirement because of I have created some custom Forms.
159. How do you find Driver program for a SMARTFORM? *** If we know the SMARTFORM name …we can directly go to TNAPR table contents and enter your SAMRTFORM name in the SFORM filed and execute exe cute it…we can find the Dr Driver iver program for given SMARTFORM. 160. If I provide a Document number only, how you find the Form name and Driver program? *** In this situation first we need to know the output type of the Given document number.. with the help of NAST table contents, Enter your Document Number with in the Object key (OBJKY) filed and execute it…and we can see an output type (Message type ) for the given Document number. If you want to see the program associated to the particular output type, then go to transaction NACE --> Select the Application area (V1 - Sales) --> Click on Output type --> Select your output type and Double click on Processing routine --> Here you may find the Program name and Forms used in the given output type. 161. What are the steps to configure output types? Have you configure any output type? Yes.. I have done by using transaction NACE Or No 162. Have you converted SAP scripts to SMARTFORMS? ***
Yes, I have converted script forms into SMARTFORMS as well as I have created some custom SMARTFORMS as per some client standard requirement. Steps: Go to to SMARTFORMS transaction transactio n enter your Zform name forms Give your SAP script name and Language ok .
Utilities
Migration Import
SAP script
163. I know Driver program and FORM name, How can I find output type? *** Go to TNAPR table contents by using transaction SE11 and Enter your Print program name or SMARTFORM name and Execute it…here we find the Output type (Message type) for Given print program or SMARTFORMS. DIALOG PROGRAMMING (Module Pool Programming)
164. Can I run Dialog program in Background? *** 31
Module pool programs does not executed in Background mode, Because Module pool programs must have a Transaction code for execute in foreground also, does not execute without transacti transaction on code..these transaction codes cannot provide in background mode...this is the one reason. another one is Module pool programs having 'n' number of screens as we wellll as buttons...every screen must having manual interaction (click the push buttons or enter field values etc).. manual interaction not possible in Background mode....so mode....so we can't run the module pools in Background mode...
165. How can I debug a pop-up window? *** In this scenario I am going to create a new .TXT file in my presentation presentatio n system with maintain following Fields: [FUNCTION] COMMAND = /H TITLE = DEBUGGER TYPE = SYSTEMCOMMAND
Whenever we want to debug a Pop-up window, drag this .txt file on to pop-up window then click ok…it will be going to debug mode automatically. 166. What is the purpose of CHAIN CHAIN – – ENDCHAIN ENDCHAIN? *** If you want to Validate a group of fields on a Screen, in this situation we are going to put those fields in between CHAIN- ENDCHAIN in statement. 167. In DP or MP programming how you going to validate your screen fields? In Dialog programming or Module pool programming we can achieve the Screen Fields validations by using CHAIN – ENDCHAIN statement. We will put the screen fields in between CHAIN –ENDCHAIN statement. 168. What is the purpose of OK_CODE? OK_CODE is a variable which is used to collect the screen attributes related Function codes. Whenever click on Push buttons or some Action, the Action related function code will be captured into OK_CODE variable variable. . OK_CODE is type code). of system variable SY-UCOMM. Every button related action will be written basing on this OK_CODE value (Function 169. What is the purpose of MODULE AT EXIT-COMMAND? AT EXIT COMMAND is used to process BACK or EXIT Button event. Automatic field checks can be avoided by AT EXIT-COMMAND, Which works exactly the same way as cancel works on application tools bar. ***Process After Input. Module exit AT EXIT-COMMAND. ***In module pool program. Module exit. 32
Case OK_CODE. When 'Exit'. leave to screen 0. 170. What are the events in DP or Module pool programming? *** In Module Pool programming we have Four types of events available, there are: 1. Process Before Output (PBO) 2. Process After Input (PAI) 3. 4. Process Process on on Help ValueRequest Request(POH) (POV)
171. What are the default events in MP programming? *** We have two default events available in Module pool programming, there are: a. Process Before Output Output (PBO) and b. Process After Input (PAI) a. Process Before Output(PBO): Processing before the screen is displayed (PBO).
Examples Initializing screen fields, inserting default values, positioning the cursor, showing and hiding fields and changing field attributes dynamically. b. Process After Input(PAI): Processing after user input.
Examples Checking values where there is no automatic check, processing the cursor position, processing correct entries or triggering an error dialog. 172. Can I call POV and POH events before calling PAI event? *** In Module pool programming PROCESS ON VALUE-REQUEST (POV) and PROCESS ON HELP-REQUEST (POH) both PAI event, so not possible to use without PAI event… events are Sub-events of PAI
173. I have created custom field in the screen, for that field how can I provide value help or F4 help? If we provide F4 help (Value Help) for a field in module pool program, the logic will be going to write under the Process On Value- request (POV) event. Ex: I have a Field ROLL_NO on screen. Provide F4 help for this field, the Logic written in POV event. PROCESS ON VALUE – REQUEST.
FIELD roll_no MODULE f4_ help. Within this module –endmodule we can use F4_help function module. 33
174. What is the difference between CALL SCREEN and LEAVE SCREEN? *** CALL SCREEN : Calling a single screen is a special case of embedding a screen sequence. If you want to prevent the called screen from covering the current screen completely, you can use the CALL SCREEN statement with the STARTING AT and ENDING AT CALL SCREEN 1000. (or) CALL SCREEN 1000 STARTING AT 10 10 ENDING AT 20 20.
LEAVE LEAVE SCREEN SCREEN. : statement ends the current screen and calls the subsequent screen. LEAVE TO SCREEN 2000.
175. What is the difference between CALL SCREEN and SET SCREEN? *** Where we have write the CALL SCREEN statement, leaving the remaining code in current screen and will be process the called screen immediately. After finish the called screen process and come back to first screen and triggering remaining code. if we can use SET SCREEN processes the remaining statements of the current screen and then goes to the called screen. 176. What is the difference between between LEAVE SCREEN and SET SCREEN? if we have to use SET SCREEN, it’s processes the remaining statements of the current screen and then goes to called screen. SET SCREEN 200. (in 100 screen)
If we have to use LEAVE SCREEN statement, Leaves the current screen and processes the next screen. LEAVE SCREEN. (for leaves the current screen PAI and triggers sequence screen) LEAVE TO SCREEN 200. (Leaves 100 screen PAI and triggers 200 screen)
177. What is the difference between CALL SCREEN and LEAVE SCREEN and SET SCREEN? CALL SCREEN : Calling a single screen is a special case of embedding a screen sequence. CALL SCREEN 1000. (or) CALL SCREEN 1000 STARTING AT 10 10 ENDING AT 20 20. LEAVE SCREEN : statement ends the current screen and calls the subsequent screen. LEAVE SCREEN. LEAVE TO SCREEN 2000. SET SCREEN : statement processes the remaining statements of the current screen and then goes to the called screen. SET SCREEN 200. (in 100 screen)
34
178. What is the purpose of SET SCREEN? With SET SCREEN the current screen simply specifies the next screen in the chain , control branches to this next screen as soon as the current screen has been processed .Return from next screen to current screen is not automatic .It does not interrupt processing of the current screen. If we want to branch to the next screen without finishing the current one ,use LEAVE SCREEN. 179. What is the difference between between Normal screen and Sub-screen? *** 1. Normal Screen having OK_CODE, while Sub screens does not have OK_CODE. 2. Normal Screen having GUI status, while Sub screens does not have GUI status. 3. From Normal Screen calls another Screen, while from Sub screens does not call another Screen or Sub screen. 4. Normal Screens having MODULE EXIT-COMMAND, while Sub screens does not have MODULE EXITCOMMAND. The main difference between Normal screen and Sub –screens: Normal screen are Directly called by using CALL SCREEN statement and Sub-screens does not call Directly. If we want to call sub-screens into a screen must declare a SUB-SCREEN AREA. 180. Can I create Select-options on the screen in Dialog Programming? Programming? ***
Yes..it’s possible.
If you want to create Select-options Directly Directly not possible in Module pool program. a. Here first we need to Create a SUB SCREEN and Define SELECT-OPTIONS with in Top include of your Module pool program. b. Then we need to have a Screen and Define a SUB SCREEN AREA for calling User defined SUB SCREEN. c. Then we need to call this SUB SCREEN with in the SUB SCREEN area by define a logic at PAI and PBO events of a SCREEN. CALL SUB SCREEN INCLUDING SY-REPID ‘sub screen no’.
181. How do you handle Radio-Buttons in DP? ***
When you addYou radio buttons to a screen, the Screen Painter automatically a one-character one-cha racter screen field for the button. should declare a corresponding one-character variable forcreates the radio buttons in your ABAP module top-include. top-include. Ex: DATA: RADIO1, RADIO2, RADIO3.
We are going to define Radio-buttons with the help of Screen painter layout (SE51)..and whenever you defined Radio-buttons Radio-buttons must assign to a Radio Button group. Select all Radio-buttons and Go to Edit->Grouping->Radio button Group->Define. And Assign the Function code for All Radio-buttons as same. We are going to write the Logic of your Radiobuttons in PAI event of your screen by using Function codes. 35
182. How can I handle Check boxes in DP? *** When you add Check boxes to a screen, the Screen Painter automatically creates a one-character screen field for the Check box. You should declare a corresponding one-character variable for the Check boxes in your ABAP module top-include. top-include. Ex: DATA: CB1 TYPE C, CB2 TYPE C, CB3 TYPE C.
We are going to define Check boxes with the help of Screen painter layout (SE51).. We are going to write the Logic of your Check boxes in PAI event of your screen Basing on Check box Function code.
183. What are the controls we have available in DP? *** We have three types of controls available in Module pool programming, there are : 1. Table Control, 2. TAB STRIP Control and 3. Custom control. 184. How do I handle TAB-STRIPS in DP? What are the steps to create a TAB_STRIPS in DP? A TAB STRIP control is a screen object consisting of two or more pages. The TAB STRIP control is the set of all the tab pages. When you create a TAB STRIP control, you must: A. B. C. D. E.
Define the Tab area on a screen and the Tab titles. Assign a Sub-screen area to each tab title. Program the screen flow logic. Program the ABAP processing logic. You must then decide whether you want to page through the tabstrip control at the SAPgui or on the application applicati on server. In the first case, each tab page has its own sub-screen. In the second, there is a single sub-screen area that is shared by all tab pages. Syntax: CONTROLS: mytab TYPE TABSTRIP.
185. What is the syntax for calling SUB-SCREEN in DP? The syntax for calling Sub screens in Module pool program we are going to use : In PBO of main screen CALL SUB SCREEN INCLUDING SY-REPID ‘sub screen no’. CALL SUB SCREEN sub1 INCLUDING SY-REPID SY-REPID ‘0100’. ‘0100’. In PBO of main screen CALL SUB SCREEN . CALL SUB SCREEN: sub1. 186. What are the steps to create a Table control in DP? *** 1. Define a Table control on a screen area and must define the Table fields. 36
2. Whenever you define a table control on your screen you must going to Declare table control name and declare a structure and internal table along with using table control fields with in the top include. 3. Write the table control logic at Screen PBO and PAI events of your screen. 4. And Loop the internal table with control Table control name at PBO event of your screen. 187. What is the syntax for create a Table control? The syntax for create a table control is: CONTROLS: TYPE TABLEVIEW USING SCREEN . CONTROLS: TAB_C TYPE TABLEVIEW USING SCREEN '2000'.
188. In my screen I have some fields and two push buttons, if I click on one button the fields are gray-out (disable) and click on another button that fields are enable? How can I achieve? *** In this scenario I am going to write the logic at PBO event of Screen. Here I was handle handle the screen attributes basing on the Single character FLAG variable, it’s define in top-include. At PBO event we are going to Loop the SCREEN and assign the SCREEN-INPUT values basing on the FLAG value ‘X’. AT PAI event of your Screen, whenever you click a GRAYOUT button, the FLAG value assign as ‘X’. At PBO event we are going to write the logic basing on this FLAG = ‘X’. going oing to write the OPEN button logic at PBO P BO If click OPEN button, the FLAG value assign as ‘ ‘ (SPACE), we are g event basing on FLAG value is INITIAL.
(or) In this scenario we are going to write the logic at PBO event of your screen basing on the FLAG variable value. The logic is: IF FLAG IS INITIAL. LOOP AT SCREEN. 'NAME'. IF SCREEN-NAME = 'NAME'. SCREEN-INPUT = 0. MODIFY SCREEN.
“screen field name name isable “input d isable
ENDIF. ENDLOOP. ELSE. LOOP AT SCREEN. 'NAME'. IF SCREEN-NAME = 'NAME'. SCREEN-INPUT = 1. MODIFY SCREEN. ENDIF. ENDLOOP. ENDIF. ENDMODULE.
“input enable enable
189. Have you created any Custom screens? What is the business requirement? 37
Yes, I have created some custom screens for using Develop a Module pool programming as per client requirement. requireme nt. the business requirement is whenever enter a customer details the sales order data will be display in another screen by using table control.
BDC (Batch Data Conversion)
190. What are the types of BDC’s we have in SAP? *** Batch Data Conversion or Communication (BDC),which is used to collect the data from Legacy system (NonSAP) to SAP system. In SAP we have two types of BDC methods available, there are: 1. Direct Input method and 2. Batch Input method. In Batch input method Sub-classified into two methods: a. Session method and b. Call transaction method. 191. What is the Difference between between Synchronous and Asynchronous methods in BDC? *** The main difference between Synchronous and Asynchronous methods is : In Synchronous method: the Date processing is waiting for some Acknowledgemen Acknowledgementt of record Updation. In Asynchronous method: the Data processing does not waiting for any Acknowledgement of record Updation. 192. What are the Function modules we have using in BDC Session method? *** In BDC session method, we are going to using three Function modules, there are: 1. BDC_OPEN_GROUP - For Open Session 2. BDC_INSERT - For Insert data 3. BDC_CLOSE_GROUP - For Close Session 193. Difference between Session method and Call Transaction methods in BDC? **** BDC Session Method 1. In Session method the processing of records in Asynchronous. 2. Updating the records in Asynchronou Asynchronouss process.
3. 4. 5. 194.
BDC Call transaction Method 1. In Call transaction method the processing of records in Synchronous. 2. Updating the records in both Asynchronous and Synchronous process. 3. In Call transaction method ERROR log will be In Session method ERROR log will be generated handled by Users. by System If we want to process Huge volume of Data, 4. Call transaction method does not recommended prefer to go for Session method to process Huge Volume of Data. Session method does not supported to process 5. Call transaction method support to process for For multiple transactions. transactions. Multiple transactions. In which scenario we will go for Session method and go for Call transaction method in BDC? ***
If we want to processing huge volume of data, we prefer to go for Session method and not recommended Call transaction method, 38
If we want to processing Multiple transactions, we prefer to go for Call transaction method and Session method for supports only single transaction. 195. What is the syntax for Call Transaction method in BDC? ***
The syntax for Call transaction method is: CALL TRANSACTION '' BDC Internal table USING IT_BDC MODE 'A' “
'L' MESSAGES UPDATE INTO IT_MESS.
"Handling Error message and collect into a table
MODE: "A- display all screens, E - error screens only and N - No screens UPDATE: "L - local update, S - synchronous and A - Asynchronous update
196. What is the purpose of BDCDATA structure? *** The purpose of BDCDATA structure, which is used to Capture the Screen Handling (SHBD) Data into a BDC internal table. The BDC internal table type is BDCDATA structure. The structure of BDCDATA consist five fields: 1. PROGRAM BDC Program name 2. 3. 4. 5.
DYNPRO DYNBEGIN FNAM FVAL
--
BDC BDC Screen Screen Number start Field name Field value.
197. How do you handle the ERROR log in CALL TRANSACTION method? *** In BDC Call transaction method, we can handling ERROR Messages by using an internal table( IT_MESS). And the Internal table type is BDCMSGCOLL structure. Read the IT_MESS internal table with Error MSGID and MSGNR. If you not find this record, record, collec collectt the remaining Messages into a structure. Club the all messages into a structure, we are going to use Function module is FORMAT_MESSAGE. 198. How can I handle Table control in BDC? *** We can handle table control using line index , Line index indicates which line of Table control is to be use for BDC transaction, Ex - perform bdc_field using 'RC29K-AUSKZ(01)' indicates 1st line of table control is going to be used for transaction which is Line index of Table Control . and write a Loop within a Loop for capture BDC records. 199. What are the drawbacks having in BDC? 1. BDC does not support support enjoy Transactions Transactions (ME21N). 2. If you have change current screens and Updated versions , it’s not supports current BDC programs, must redevelop New BDC programs. 39
r esolutions between system to system, it’s not supports. 3. If you have any variations of screen resolutions If you avoid this always maintain Default screen size for screen handling.
200. Which BDC method does not support by LSMW? LSMW does not support call transaction method. The Reason is : In Call Transaction Transacti on method we can handle the error log with BDCMSGCOLL structure, it does not exist in LSMW.
201. What thedifference Differencebetween betweenConversion BDC and BAPI? *** What are is the and Interface? BDC 1. BDC is nothing but a Data Conversion method. 1. 2. BDC’s communicate the Data between Legacy to 2. SAP system. 3. BDC’s are Prefer to Use Communicate the 3. Master Data. ex: Material master, Customer Master, Vendor master. 4. Data Conversion is a one-time activity. 4.
BAPI BAPI is nothing but an Interface method. BAPI’s communicate the Data between SAP to SAP as well as Non-SAP systems. BAPI’s are Prefer to use Communicate the Transactional Data. Ex: Sales orders, Purchase orders etc.
interface is used to communicate data between two systems continuously. Interface: it is a program that performs communication with External system from SAP. There are two types of interfaces interfaces:: 1. Inbound Interface: External system sends the data to SAP 2. Outbound Interface: SAP sends the data to External system.
202. What are the Difference between BDC and LSMW? *** BDC 1. BDC is nothing but a Data Conversion method. 2. BDC is User Defined program not provided by SAP. 3. In BDC’s the Data was Converted into SAP Database.
LSMW 1. LSMW is a Data migration tool. 2. LSMW is R/3 Based Application tool provides by SAP. 3. In LSMW the Data was Imported/ Migrated into SAP Database.
4. In BDC’s we can Communicate the Data Via 3 methods, there are: a. Direct Input method, b. Session method, c. Call transaction method.
4. In LSMW we can migrate the Data via 4 methods, there are: a. Direct Input b. Batch Input c. BAPI’s d. IDOC’s w rite coding in Flexiblly. 5. In LSMW we can’t write
5. In BDC’s we can write Coding is Very flexible.
203. Have you done any BDC program? What is the business requirement? Yes, I have done BDC call transaction program for Updating Vendor master data (XK01) at the time of Implementation. 204. How to pass the screen capture size as DEFAULT in BDC Call transaction method? *** 40
In this scenario we are going to pass the value for CTU_PARAMS- DEFSIZE = ‘X’. 205. Can I run Call transaction program in Back ground? *** Yes, we can run the Call transaction program in Background. Within the Call transaction syntax we are going to pass MODE as ‘N’. (No screens screens disp display). lay). LSMW (Legacy System migration Workbench) 206. Can I put a Break-point in LSMW? if I put a break-point in which Step it will be triggered? *** Yes, We can Put a Break-Point in 5 th step (Maintain Field Mapping and Conversion Rules) of LSMW. And It will be triggered in 11 th step (Convert Data) of LSMW. 207. Can I write some code in LSMW? In which step can I write the logic and In which step it will be triggered? ** Yes, We can write some logic in 5th step (Maintain Field Mapping and Conversion Rules) of LSMW. And the Logic will be triggered in 11 th step (Convert Data) of LSMW. 208. Can I write the WRITE statement in LSMW? In which step WRITE statement will be Triggered and which step it will be Display? *** Yes, We can write the WRITE statement in 5 th step (Maintain Field Mapping and Conversion Rules) of LSMW. And the WRITE statement will be triggered in 11th step (Convert Data) of LSMW. And The WRITE statement will be Display in 12th step (Display Converted Data) of your LSMW. 209. What are the Steps we have in LSMW? *** The LSMW Processing Steps will be Depending on the Object type (1st step). If Object type is Standard batch/Direct input, we need to process 14 steps. If Object type is BAPI or IDOC, we need to processing 16 steps. 1. Maintain Object Attributes 2. Maintain Source Structures 3. Maintain Source Fields 4. Maintain Structure Relations 5. Maintain Field Mapping and Conversion Rules 6. Maintain Fixed Values, Translations, User-Defined Routines 7. Specify Files 8. Assign Files 9. Read Data 10. Display Read Data 11. Convert Data 12. Display Converted Data 13. Create Batch Input Session 14. Run Batch Input Session 210. What are the Events we have in LSMW? ***
41
We have six events available in LSMW, there are: BEGIN_OF_PROCESSING Before the beginning of data processing BEGIN_OF_TRANSACTION Before the beginning of transaction data processing BEGIN_OF_RECORD Before applying the conversion rules for a source structure END_OF_RECORD END_OF_TRANSACTION END_OF_PROCESSING
-
After applying the conversion rules for a source structure After finishing transaction processing After finishing data processing
I don’t want to process. I want to SKIP/ When I those 211.REMOVE processing 100and records, which I have 10 in records records collectinthem separately a file? which How can I achieve? ***
In this scenario if we want to SKIP the processing of records we can use SKIP_RECORD. In case they are errors that you can/ want to capture before proceeding proceeding to the session. you can capture it in the END_OF_RECORD event area for each record and move it to an internal table which can then be downloaded in the END_OF_PROCESSING event.
212. Can I handle table control in LSMW batch input record method? No, we cannot handle by using Batch input record method. We are going to handle table control in LSMW by using BAPI ’s or ALE/IDOC method. 213. How can I make changes to an existing LSMW? I(or) have created LSMW, client want to update two more fields for existing 10 records in LSMW, how can I update the existing LSMW? If you want to add some fields in Existing LSMW project, we are going to execute the 1st step and click Goto button from menu and select Recording overview. And place the cursor on existing Recording name and click process recording button . Here place the cursor on program name or screen name, where you want to add some fields and Goto EDIT->Add screen field (Extended) -> enter your filed name, Description and Default value-->save. 214. How can I transport LSMW from one system to another system? If you want to transport LSMW project From Development to Production system, You have to approach to ways, there are: 1. Change Request Run your LSMW :project -> Extras -> Generate change request. 2. Download the Project into a file: Run your LSMW project -> Extras -> Export project. 215. Have you created LSMW for which Application? What is the Business requirement? Yes , I have Created some LSMW projects directly in Production system for Migration some flat file data into SAP system as per my business requirement is Update the Vendor master Records and Customer master records.
RFC (Remote Function Call)
216. What is RFC?
42
RFC stands for Remote Function Call, which is used to Communicate between SAP to SAP systems, and Communicate Data between SAP to Non-SAP system also but the Non-SAP system should be R/3 compatible. RFC is nothing but a Function Module. 217. What are the types of RFC Function Modules we have in SAP? *** Generally in SAP we have 4 types of RFC Function Modules available, There are: 1. Synchronous RFC, 2. Asynchronous RFC, 3. Transaction RFC and 4. Que RFC Function Module.
218. What is the Transactional RFC (t-RFC)? (t-RFC)? *** Data can be transferred between two SAP systems reliably and safely using a transactional RFC (tRFC). The called function module is executed exactly once in the RFC server system. The remote system need not be available at the time when the RFC client program is executing a tRFC. Syntax: Call Function ‘ZRFC_FM’ ‘ZRFC_FM’ IN BACKGROUND TASK DESTINATION DESTINAT ION ‘SYST‘SYST-A’ and Destination system make it as ‘tRFC’. (SM59 -> Edit -> tRFC).
219. What is the difference between between Synchronous RFC and Asynchronous RFC? *** Synchronous RFC Function module are waiting for some Acknowledgement of Processing, while Asynchronous RFC Function modules does not waiting for any Acknowledgement of Processing. Synchronous RFC Function modules having Importing and Exporting parameters, while Asynchronous RFC Function modules does not having any Exporting parameters. Synchronous RFC are waiting for Acknowledgement, so it’s Using Performance issue, while Asynchronous RFC does not waiting for Acknowledgement, so it’s Recommended R ecommended to use. Note: if you want to make it as Asynchronous, Change the Destination as aRFC mode (SM59 Edit->aRFC), And After calling the RFC Function modules we are going to write the command as: Call Function ‘ZRFC_FM’ DESTINATION ‘SYST‘SYST-A’ STARTING NEW TASK T1 220. What is the Drawback For using Synchronous and Asynchronous RFC Function Modules? Whenever we using Synchronous and Asynchronous RFC Function modules for Communicate between two systems, here we have some drawbacks. If we want communicate two systems by using RFC Destination like Synchronous or Asynchronous, In this scenario, if the Destination system is not available or may be shutdown, the program will be go for dump. Note: SAP always Recommended to use tRFC.
43
221. What is the difference between BAPI’s and RFC? In which scenario we will go for BAPI’s and which scenario we will go for RFC’s? BAPI stands for Business Application Programming Interface. It is a library of functions that are released to the public as an interface into an existing SAP system from an external system. A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Business Object Repository(BOR). RFC stands for Remote Function Call. Which is used to Communicate with SAP to SAP systems and it does not communicate with SAP to Non-SAP systems. If we want to communicate data between SAP to Non-SAP system, the non-SAP system must should be R/3 compatible. BAPIs are always developed by defining scenarios which are used to map and implement system-wide business processes. You can use the RFC interface for communication between SAP systems and between SAP systems and external systems. SAP offers several interfaces that are based on RFC, such as Application Link Enabling (ALE), Business Application Programming Interfaces (BAPIs), and RFC function modules. 222. What are the difference between Normal Function modules and RFC Function Modules? 1) Normal function module only called within the server...but RFC can be called across the server. 2) We can access data from RFC function module from non sap also...but not possible for normal function modules. 3) We always use pass by value mode in RFC's but in Normal function module we can use pass by value or pass by reference. 4) Fast accessing using normal function modules...slow modules...slow accessing using RFC's. 223. In RFC Function Modules some Commands does not allowed or not use? What are they? *** In RFC Function module does not support SUBMIT, CALL SCREEN, CALL TRANSACTION and COMMIT WORK statement.
224. What is the purpose of DESTINATION ‘BACK’ in RFC Function modules? *** You can use the destination BACK if the current program was already called by RFC. Then, BACK refers back to the calling program: CALL FUNCTION
‘ZRFC_FM’ DESTINATION 'BACK' ...
If the program is not called from a "remote" source, the exception COMMUNICATION_FAILURE is triggered. If in my program does not matching some condition or occurring some error, it will be go for back by using Destination ‘BACK’. 225. What is the purpose of DESTINATION ‘NONE’? *** 44
The Destination NONE refers to the calling system. Function modules called with CALL FUNCTION
‘ZRFC_FM’ DESTINATION 'NONE' ...
are executed in the system of the calling program, but in their own program context. If in runtime of my program does not find any Destination, in this scenario the program will be go for Dump. We can avoid this Dumb by Using U sing Destination as ‘NONE’. 226. Have you created any custom RFC Function Module? What is the business Requirement? Yes, I have Created RFC function module for Communicating BI system and CRM system for updating the data into ECC system using RFC Function module. 227. I have ECC system(Source) and CRM system, in which system I have created RFC function modules and where should I call FM’s? In this scenario we are going to create RFC Function module in ECC system…and we are going to Use this RFC Function module from CRM system. 228. I have two SAP system’s A & B, I want to get the data from System A into System B, in which system I am going to create RFC Function module, in which system I am going to call RFC function module? In this scenario we are going to create a RFC function module in Source system like System A. Use this RFC Function module in Target system Like System B for Collect the data from System A . Pre-requisite: If you want to call the RFC function module in System B, we need to create an RFC destination in System B (SM59).
BAPI (Business Application Programming Interface)
229. What is BAPI? BAPI stands for Business Application Programming Interface, which is used to Communicate data between SAP to SAP as well as SAP to Non-SAP Systems. BAPI’s are nothing but API methods, these methods are used to create Interfaces. BAPI’s are always process oriented.
230. What is the difference between between BAPI RFC Function module and Normal RFC Function module? *** 45
BAPI’s are RFC enabled e nabled Function modules which is converted into API method, which is used to create Interfaces. And RFC Function module are always Normal (Not be converted into API method). BAPI’s are going to available under BOR(Busin B OR(Business object repository), while RFC are available under R/3 repository. BAPI’s are Process oriented method and RFC’s are Non-Process oriented methods.
BAPI there is no direct system call, while RFC are direct system call. BAPI Function module are going to use Update the data into database, we can also use the BAPI Function modules in the Conversion programs (BDC). Instead of using BDC’s we can use BAPI function module for Upload the data into database. It’s not possible for Normal RFC’s.
231. Have you created any Custom BAPI’s? What is the Business Requirement? Yes, I have created some custom BAPI’s for whenever I create a Purchase order and automatically update the purchase order in other systems.
232. What are the steps to create Custom BAPI’s? 1. Whenever we create a custom BAPI, First we need to create an RFC Function module by using Transaction SE37 and must define the type of Function Module as Remote enable (RFC). 2. RFC Function modules are available in R/3 Repository and BAPI’s are available in Business object repository (BOR). 3. If you want to create any custom BAPI’s , we need to create a Business object by using transaction SWO1, Create a Business object and provide Object type, Name, Description and Program name of your BAPI. 4. If you want to add any RFC function module for your custom BAPI’s, the RFC Function module is must converted into API method. (Application Programming Interface) by Utilities -> API methods -> Add method. 5. Next step is Implement the methods and Release the Business object as well as methods. Now you can ready to use BAPI. You can see your BAPI in Business object repository by using transaction transactio n BAPI. 233. Have you used BAPI’s for Interfacing SAP system to Non-SAP system (.net, Java etc)?
234. Have you worked any BAPI FM’s? have you upload data into database using BAPI’s? Yes, I have worked on various BAPI Function Modules like BAPI_MATERIAL_SAVEDATA for upload the Material master master data and also add some some custom fields fields as per client requirement requirement by using BAPI BAPI extension extension structure (BAPI_TE_MARA and BAPI_TE_MARAX) and update it. And also Worked on BAPI_PO_CREATE – For create Purchase order And also worked on BAPI_SALESORDER_CREATE - For create Sales orders as per client requirement. 235. Have you done BAPI Extension, what are the Steps ? for which Function Module you have used? 46
Yes, I have done BAPI Extension for add some Custom fields in Standard MARA table as per client requirement. I have used BAPI_TE_MARA and BAPI_TE_MARAX standard structure for Appending some custom fields into standard MARA table. In this scenario I have used BAPI_METERIAL_SAVEDATA Function module for updating the Extension fields with the help of EXTENSIONIN and EXTENSIONINX tables. I have also worked BAPI Extension for VABK and EKKO tables by using BAPE_VBAK, BAPE_VBAKX as well as BAPI_TE_MEPOHEADER, BAPI_TE_MEPOHEADERX standard structures. 236. What is the Purpose of BAPI_TRANSACTION_COMMIT? *** Whenever we use BAPI Function modules for updating the Data into database we must write a COMMIT WORK statement. SAP does not recommends directly use COMMIT WORK statement,. Instead of COMMIT WORK, SAP recommended to use BAPI_TRANSACTION_COMMIT Function module. If you can use COMMIT WORK statement is works Internal system only , whenever use BAPI_TRANSACTION_COMMIT it’s works and interfacing from external system. 237. How we are going to handle errors in BAPI’s? *** Within the BAPI function modules we are going to define a RETURN (export) parameter for Handling errors in BAPI’s. The RETURN parameter may be based on the following reference structures: BAPIRET2 You must use this reference structure when developing new BAPIS. BAPIRET1, BAPIRETURN. (or) Using a function Module BAPI_MESSAGE_GETDETAIL for Handle the Error Messages in BAPI.. ENHANCEMENTS
238. What are the Enhancement techniques we have in SAP? *** The meaning of Enhancements is ADD-ON new feature to the existing software and We have various Enhancement techniques available in SAP, there are: 1. USER EXITS EXITS (first enhancement enhancement technique in SAP) 2. FORM ROUTINES 3. CUSTOMER EXITS: a. Function Exits, b. Screen Exits, c. Menu Exits and d. Includes. 4. BADI's (Business AddAdd-in’s) in’s) 5. BTE's (Business Transaction Events) Events) 6. ENHANCEMENT FRAMEWORK: a. Function Function module Enhancement b.Class Class Enhancement c. Source code Enhance : 1. Implicit enhancement enhancement option, 2. Explicit enhancement enhancement option d.Kernal Kernal BADI'S
47
7. FI Validation & Conversion.
239. What is the difference between Enhancements and Modifications? *** The meaning of Enhancements is ADD-ON new feature to the existing software. ENHANCEMENTS MODIFICATIONS 1. Enhancements are provided by SAP. 1. Modifications Modificatio ns does not provided by SAP. 2.In Enhancements, system does not ask any object 2. In Modifications, system asks object access key. access key. 3.In Enhancements , SAP provides some options for Enhance to the standard logic.
3. In Modification, SAP does not provide any options and Directly go to the program and ADD or change the Standard logic. 3. Modifications does not support future up gradation of SAP software. 4. In Modifications we can’t identify Impact of changes and only identify proper changes.
3.Enhancement options are provided by SAP and 3.Enhancement supports future up gradation of SAP software. 4.In Enhancements we can easily identify the Impact of changes.
240. What are the difference between User Exits and Customer Exits? USER EXITS CUSTOMER EXITS 1. User exits are very old concept and First 1. Customer exits are Pure enhancement Enhancement technique provided by SAP. techniques also provided by SAP. 2. User exits are nothing but a Subroutines and we 2. Customer Exits having Function module can write the logic within the FORM- ENDFORM 3. User exits are not upgraded. 4. User exits are created with SAP namespace only.
Interface we have to implement it. 3. Customer exits will be upgrade. 4. Customer Exits are created by Custom namespace 5. Customer exits does not require Object Access key.
5. User exits require Object Access key to make changes of Standard logic.
241. How do you find User exits? What are the various techniques? *** We are going to Find the User exits by using SPRO transaction code and Click Display SAP IMG Reference. Sales & Distribution ----> System modifications ----> User Exits ----> User Exits for Sales ---->Sales Doc. Processing. One more approach to Find User exit for Given transaction Ex: VA01 ----> System--- -> Status ---->double click on Program name ----->cho ----->chose se your related include -----> find related User exit. (Or) By using some custom defined User exit finding prog programs rams helps to find User exits for Given transactions. 242. What are the various techniques to find Customer exits? **** If you want to find any Customer exit, first we need to know the transaction related Package Name. Step -1 : Find the Package Name of Given transaction:
Ex: Go to transaction VA01 and click System -> Status -> Double click on Program name -> go to Attributes -> Here we know the package (VA). (OR) 48
Go to SE93 transaction -> Enter your transaction code ex: VA01 and click Display, and we know the Package. (VA). Step-2 : Find the customer c ustomer exits:
Go to transaction CMOD and Click Utilities -> SAP Enhancements -> Enter Package name (VA) -> F8 , here we find the Customer exits for related transaction. (Or) Go to transaction SMOD and click Go to -> Find -> Enter package name (VA) -> F8. (Or) We have an another approach to find User exits by using transaction SE84 and Expand Enhancements -> Customer exits -> Double click on Enhancements -> Enter package name (VA) -> Execute it. 243. Have you done Enhancement? Enhancement? What is your Business requirement? (Or) Have you worked on any User exit? What is your Business requirement? requirement? *** Yes, I have worked on a Sales related User exit (Subroutine) Name is: USEREXIT_SAVE_DOCUMENT_PREPARE and the Include name is MV45AFZZ. My Business requirement is Avoid the Sales order creation (VA01),IF the Sales order value is below certain Price and as per client required conditions. 244. Have you worked on any Customer exit? What is your Business requirement? *** Yes, I have worked on Various Customer exits Like Function module Exits, Menu Exits and Screen exits as per my client requirement. I have worked on a Function module exit and My Business requirement is avoid the Customer creation (XD01) if Company code level Payment terms value (KNB1-ZTERM) is not matching with Sales area level Payment terms value (KNVV-ZTERM). (KNVV-ZTERM). In this scenario I have worked on a SAPMF02D Customer exit and the Function module exit name is EXIT_SAPMF02D_001. Also I have done a Menu exit and my business requirement is add some Menu options within the standard MENUBAR as well as add some Custom transaction in to standard AREAMENU (S000). 245. Have you worked on any Screen exit? What is your Business requirement? requirement? *** Yes, I have worked on various Screen exits as per client requirement. In my business requirement: I have enhanced some Custom fields on to the standard Purchase order Header Screen (ME21) by using Screen exit enhancement technique. As per client requirement I have added two more fields like VENDOR TAX CODE and VENDOR CUST CODE on Standard screen by using Custom Sub screen. and Enhanced the same custom field into standard table by using Includes and Using the Function module exits for Import and Exporting the data between Screen to table as well as Table to Screen.
246. Difference between Customer Exit and BADI’s? *** CUSTOMER EXITS 1. Customer exits are Old and Pure enhancement 49
BADI’s 1. BADI is an Interface. Interface.
2. 3.
4. 5.
technique. Customer exits are available only in SAP level and Customer Level. Customer exit doesn’t support multiple implementations. implementa tions. Implement Implement in only one project We can’t possible to create Custom Customer exits. In Customer exits we can Implement the Logic
2. BADI’s are available in Customer level , Company code level and Partner level. 3. BADI’s Supports multiple implementations
4. We can possible to create an Custom BADI’s. 5. In BADI’s we can Implement the Logic within the Class.
within the Function modules exit. 247. What is BADI? Explain me in one word? *** BADI is an Interface. Interface. 248. Difference between Classical BADI’s and New BADI’s? ***
CLASSICAL BADI: A factory method is used to call a classic BADI object. In addition, a reference variable of the type of BADI interface of the type of BADI interface of the type of BADI interface. The filter values are stored in a structure and passed when the BADI methods are called. A classic BADI can be called only once, and the call positions are registered centrally. NEW BADI: The GET BADI statement is used to create a new BADI object. In addition, a reference variable of the type of BADI class is used to refer to the BADI object. The comparison values for the filters are used to search for implementations that are passed when the BADI object is created with the GET BADI statement. Multiple calls are possible, and the call positions are not registered centrally.
249. What are the various techniques tec hniques to find BADI’s? *** We have various approaches to find BADI’s (Business Add-Ins). If you want to find the any BADI’s , First we need to know the transaction related Package.
Step -1 : Find the Package Name of Given transaction: We are going to find the BADI’s for the Given transaction, first we need to know the Package name.
Ex: Go to transaction VA01 and click System -> Status -> Double click on Program name -> Go to Attributes -> Here we can find the package (VA). Step-2 : Find the BADI’s basing on Package name: Approach – 1: Approach – 1: Find BADI’s by using transaction SE84 SE84 and Expand Enh Enhancements ancements -> Business Add-Ins -> Double click on Definitions -> Enter package name (VA) -> Execute it. Approach – Approach – 2: 2: Go to transaction SE18 -> Environment -> Application hierarchy -> SAP Approach – Approach – 3: 3: Go to transaction SE24 -> Using Using a standard Class name CL_EXITHANDLER.
50
Double click on GET_INSTANCE Method and put the Break-point at get_class_name_by_interfaces for find Exact BADI’s in real time. Approach – 4: Approach – 4: Using SQL trace (ST05) Select the Table Buffer trace check box -> Activate trace -> Run the transaction -> Come back and De-activate trace -> Display trace -> given the objects as V_EXT_ACT and V_EXT_IMP -> F8. BADI ’s , in this program we have to Approach – 5: Approach – 5: Using Some Custom developed programs helps to find the BADI’s using some views like V_EXT_ACT ( View for BADI Definitions) and V_EXT_IMP (View for BADI
Implementations). 250. What is the purpose of Filter dependent BADI? *** Within a BADI definition we have Multiple Active Implementations but we need to triggered only some active implementations basing on the conditions or Values, in this scenario with the help of Filter Dependent option in the BADI Definition part (here always check multiple use check box). Whenever we using Filter-Dependent option must define an Importing parameter FLT_VAL within the method definition. 251. What is the purpose of Fall back class in BADI’s? *** Fallback call an option which is available only in Enhancement spot not available in Classical BADI’s.
If a BADI definition does not having any BADI Implementations the program will be go for dump, in this situation we are going to create a Fallback class and Use it for avoid this Dump. 252. In BADI having multiple implement check box? If I uncheck it what is going to happen? *** One BADI definition having multiple Implementations, Implementatio ns, if Multiple use check box is unchecked we have multiple Implementations and triggered only one Active implementation. 253. What is the purpose of CALL BADI and GET BADI? *** The Statement GET BADI is using for Create a object in your program and CALL BADI statemen statementt is used for Calling the methods into your program. 254. What are steps to create a custom BADI? BADI is an Interface. In SAP we have two types of BADI’s available there are: 1. Classical BADI’s and 2. New BADI (Enhancement Spot). Every BADI’s having Two parts, there are: a. BADI Definition part , b. BADI Implementation.
Whenever we want to create a BADI Definition by using the transaction SE18, and BADI Implementation by using the transaction SE19. Step-1: If you want to create a classical BADI definition Goto transaction SE18 -> Utilities -> Create classical BADI. Whenever we create a BADI Definition, system will be Generate an Interface automatically (ZIF_EX_). 51
Step-2: Double click on the Interface and Define the Methods and Provide Import and Export parameters for this Method. In this Interface we are going to define Multiple methods. And save it. Step-3: Goto transaction SE19 for BAPI Implementation Implementations. s. Here enter Classical BADI name and click Create Implementation button. Enter your Implementation name. whenever we create BADI implementation system will be generate a CLASS name automatically (ZCL_IM_). Each BADI definition is going to create Multiple implementations. Step-4: Double click on the Interface name and Double click on Method name, with in the Method – Endmethod we can Implement the logic. 255. Whenever create a BADI implementation, Which one is created automatically? Whenever we create a BADI Implementation System automatically create Global CLASS. Class helps to implement the methods of a BADI. The CLASS name always starts with ‘ZCL_IM_’. 256. Have you worked on any BADI’s? What is your Business requirement?*** Yes , I have worked on a Delivery related (VL10G) BADI. BADI Name is : LE_SHP_DELIVERY_PROC (classical BADI migrated to New BADI). Methods are : DELIVERY_FINAL_CHECK and SAVE_DOCUMENT_PREPARE (implement those methods as per my business requirement). My business requirement is collect the Sales Orders data having with Same Ship-to-party, same shipping point, same delivery date, same route and same customer group, those matching orders are going to club and create a single delivery. It’s helps to Customer save the Shipping cost and Picking, Packing cost (or) My another business requirement is validate the material details at the time of create Material (MM01).
BADI Name is : BADI_MATERIAL_CHECK (Classical BADI) Methods are: CHECK_DATA.
257. I have 10 active implementations, which order is going to triggered? Can I Set these implementations orderly? *** Yes. In this scenario we have to use FILTER-DEPENDENT optio option n IN BADI Definition part. Which is used to help the triggering the BADI Implementations by orderly or Depending on Filtering value. Whenever we have using Filter-Dependent Option , must define an Importing parameter FLT_VAL within the every method definition. 258. What is the T code for BTE’s? We are going to use the transaction FIBF for create BTE’s. 259. What are the various types of BTE’s in SAP? In SAP we have two types of BTE’s (Business Transaction Events) available, there are:
52
1. Publish / Subscribe BTE’s and 2. Processes BTE’s. 260. What are the steps to implement in BTE? We are going to using transaction FIBF for create BTE’s. in SAP we have two types of BTE’s available, there are: 1. Publish / Subscribe BTE’s and 2. Processes BTE’s. B TE’s. Steps to create BTE’s:
1. 2. 3. 4. 5. 6. 7.
Go to transaction FIBF and go to Utilities -> Chose any one Info system (P/S) or Info system (Processes). Execute it we can see the all P/S related or Processes related BTE’s. Chose your related BTE’s and Click Sample Function Function module. Copy the Sample Function module into your custom function function module (Z function module). In this Custom Function module we have write your own implementation. Chose your process event number and click Goto -> Modules-> Process (SAP). Click New entry and enter your process event number and Enter Country code as IN and add your Custom Function module and Save it.
261. Different between BADI’s and BTE’s? 1. The concept of the BADI is similar to Business Transaction Events (Open FI). BTE’s was developed specific to Financial Accounting module. But were as BADI’s was developed in generalised to all modules. 2. BTE’s can only be used to make the program enhancements. You cannot enhance user interface with Open FI, but you can with Business Add-ins. 3. Open FI assumes that enhancement can only take place on three levels i.e. SAP- partners – customers, but in case of BAdi’s you can create and implement enhancements in as many software layers as you like. 4. Function modules are used for program enhancements in Open FI. With BAdi’s, ABAP Objects is used to enhance programs. 262. What are the various Enhancement techniques we have in Enhancement Framework ? *** SAP provides Four types of enhancement enhancemen t techniques we have in Enhancement Framework, there are : 1. 2. 3. 4. 263.
Function module enhancement. Class Enhancement, Source code enhancement and Kernal BADI’s. BADI’s. What is an Enhancement Option? Option?
Within the standard Function module or Class We can add some source code with the help of Enhancemen Enhancementt option. In SAP provides we have two types of enhancement options. There are: 1. Implicit Enhancement option and, 2. Explicit Enhancement option. 264. Different between Implicit Enhancement Point (IEP) and Explicit Enhancement Point (EEP)? *** Implicit Enhancement points are available in source code at After Function – Before EndFunction, After Form – Before EndForm, After Method – Before EndMethod and Before End-of-Structure. 53
Implicit Enhancement points refers to a Double coated lines. In Explicit enhancement we have two different types of enhancements - Enhancement point and Enhancement section. 265. What is an Enhancement-spot? Enhancement-spot? Where I can use this? Within the standard logic SAP provided some Enhancement-Spots, which is used to add some code or Logic. Enhancement spot is nothing but a Explicit enhancement option and also known as External BADI’s. An Explicit enhancement-point enhancement -point is available under An Enhancemen Enhancement-Spot t-Spot or Multiple Enhancement-Spot’s. each Enhancement –Point are linked with an Enhancement Enhancement-Spot. -Spot. 266. Difference between Enhancement Point and Enhancement Session? Enhancement Point and Enhancement Sessions both are known as Explicit enhancement options. The main difference between Enhancement Point and Enhancement Session is enhancement point having multiple implementations, while Enhancement session having only one active implementation. Enhancement points implemented logic executed with the standard logic, while Enhancement session implemented logic is overwrite the standard logic and executes only implemented logic. Enhancement –Point and Enhancement session both are linked with an Enhancement-Spot. Enhancement-Spot. (Or) Enhancement point - SAP has some standard functionality defined for a report , but it may be required that you'll need to add your own code. In this case the code that you'll add will be executed along with the standard code. Enhancement section - SAP has its standard functionality defines but it may not suit your requirement, in that case you may need to add your code and you'll need that code to be executed only. By this method the existing code is automaticallyy commented and a copy of the same code is available to edit. automaticall After executing the report only your code will be executed and the standard code will be bypassed. 267. What are the steps to Implement Implicit Enhancement P Point oint (IEP) and Explicit Enhancement Point (EEP)? Implicit Enhancement Point (IEP) and Explicit Enhancement Point (EEP) both are the parts of Source code enhancement techniques. Steps to Implement Implicit Enhancement Point (IEP): 1. Find your Function module and Goto Function module -> Enhance source code option. 2. Click Edit -> Enhancement operations -> Show implicit enhancement Option. 3. Right click the Double coated lines and Select enhancement Implementation -> create. 4. Create Enhancement Implementation Name and Composite Enhancement Implementation
268. Pre requisites for create and use Implicit Enhancement Point? 269. I have a requirement for implicit enhancement point? How can I add some code in middle line or certain number of line? How can I achieve? *** In this scenario we are going to Copy the code into Implicit enhancement point and add some code at certain line and put the command EXIT at End of the code. 54
270. Have you worked on any Implicit Enhancement point (IEP)? What is your Business requirement? Yes, I have worked on Implicit Enhancement point of Source code enhancement technique. My business requirementt is Restrict users (sales persons) to view or change requiremen c hange Sales order data and Enable to change created person only - Using Enhancement framework: IEP (include MV45AFZB).
271. Have you worked on any Explicit Enhancement point (EEP)? What is your Business requirement? 272. In any of the Enhancement technique we are not supported to use some commands? *** COMMIT WORK and ROLLBACK statement is not supported to use any Enhancement technique because of ends with Logical Unit of Work (LUW). OOABAP( Object Oriented ABAP)
273. What are the various Oops Concepts we have supported in OOABAP? Six types of Oops Concepts we have supports in OOABAP, there are: 1. Encapsulation, 2. Inheritance, 3. Abstract, 4. Polymorphism, 5. Events and 6. Persistence.
274. What are the Components we have in OOABAP? Two Components we have in Object oriented ABAP, there are: 1. Classes (ZCL_) and 2. Interfaces (ZIF_). 275. What is Class? A Class is an Instance of an Object or Real world world entity. Within a class we have various components components like Attributes, Methods and Events. Basing on this class we can create multiple Objects. We have two types of Classes available, there are : 1. Global class (SE24) and 2. Local class (SE38). Every class consist of two parts: 1. Class Definition and 2. Class Implementation. 276. What is the difference between between Class and an Interface? The Main difference between a CLASS and an INTERFACE is: Class has both definition and an implementation, whereas Interface only has a definition. Interfaces are actually implemented via a Class. 277. What is an Object? Objects are instances of classes. If we want tto o call a method of a Class, we need to have an Object. 278. What are the various Classes we have in Object Oriented ABAP? In object oriented ABAP we have four types of classes available, there are: 1. Normal Class (Usual ABAP class) 2. Exception class, 55
3. Persistence class and 4. Test class (ABAP Unit). 279. What is the purpose of FINAL? If A Class cannot be Inherited by a Sub-Class we can use the Command FINAL. Ex:
CLASS LCL1 DEFINITION FINAL. ENDCLASS. 280. What is Encapsulation? Good Data security is nothing but an Encapsulation, we can achieve the encapsulation with the help of Visibility section. There are three levels of visibility section we have in OO ABAP.
Public section Protected section Private section
281. What is Inheritance? Inheritance? The Inheritance with the help of assign the Parent class properties to the Child class. Or a Class Properties are inherited to a Sub-Class. If we want to derived to a Sub-class from a Parent Class, the Parent class should not be FINAL class. In object oriented ABAP only support SINGLE Level inheritance, does not support Multiple Level Inheritance. Whenever we Inherited a Sub-class, the Sub-class Getting all properties of a parent class except Private attributes. FROM LCL1. Syntax: CLASS LCL2 DEFINTION INHERITING FROM ENDCLASS. Note: With the Help of Interfaces, we can achieve Multiple Level Inheritance in Object oriented ABAP. 282. How can I achieve multiple inheritance in OOABAP? With the Help of Interfaces, we can achieve Multiple Level Inheritance in Object oriented ABAP. 283. What is Polymorphism? Polymorphism? The purpose of Polymorphism is for RE-USABILITY. We can achieve the polymorphism with the help of INTERFACES. Interfaces we can define some methods and Do not have any Implementations. One Interface can be called in Multiple Classes, Every class we can write own method Implementation, Implementatio n, this is helps to Method reusability with the help of Interfaces it’s called as Polymorphism. It’s going to supports multiple inheritance and Abstract class can’t be support multiple Inheritance. 284. What are the areas of VISIBILITY? All class components must belong to under the Visibility section. In Object oriented ABAP we have three types of Areas of Visibility options: a. PUBLIC SECTION, b. PRIVATE SECTION and, 56
c. PROTECTED SECTION. 285. Difference between PUBLIC SECTION , PROTECTED SECTION and P PRIVATE RIVATE SECTION ? Public Section: All of the class components (Attributes, (Attributes, methods and Events) are declared Under the Public section, those components are available within the class as well as outside the class also. Protected Section:
All of the class components are declared Under the Protected section, those components are available within the class as well as Sub- classes only. Private Section: All of the class components are declared Under the Private section, those components are available within the class only, Not available in Outside the class. 286. Difference between INSTANCE method and STATIC method? Instance methods can be RE-DEFINE, while Static methods cannot be RE-DEFINE. If we want to declare an instance method by using the METHODS statement, while declare a Static method by using the CLASS-METHODS statement. Instance components exist separately in each instance (object) of the class and are referred using instance component selector using '->' Static components components only exist once per class and are valid v alid for all instances of the class. They are declared with the CLASS- keywords Static components can be used without even creating an instance of the class and are referred to using static component selector ‘ =>’ . If you want to call instance methods we must create an Object, while in static methods we can call the methods without create an Object. 287. What is a CONSTRUCTOR method?
CONSTRUCTOR method is nothing but a default method, the purpose of the CONSTRUCTOR is initialize
the Class attributes. If we want to avoid the repetition of method logic or code, we are going to use a special method called as ‘CONSTRUCTOR’. Whenever we are using the CONSTRUCTOR method, it will be triggered initially. Constructor method is having only Importing parameters does not have any Exporting and Changing or Returning parameters.
We have two types of Constructor methods available in OOBAP, there are : a. Instance Constructor and, (CONSTRUCTOR) b. Static Constructor. (CLASS_CONSTRUCTOR) 288. Difference between INSTANCE CONSTRUCTOR and STATIC CONSTRUCTOR? a. Instance Constructor method is having only Importing parameters does not have any Exporting and Changing or Returning parameters. b. While Static Constructor method does not having any Parameters and Exceptions. Exceptions. 57
c. Instance Constructor is Called multiple times and triggers multiple times in a program, while Static Constructor is triggered only once in a program. d. If we have using both Instance and Static methods, First will be triggers Static method then go to Instance method. e. Instance methods can be RE-DEFINE, while Static methods cannot be RE-DEFINE. Note: Instance Constructor triggers only we have to create an object within a program, while static constructor triggers without create Object within a program. If we using any static attributes within the program, the static constructor method is triggers automatically. 289. What is Exception class? If we want to handle the Exceptions in dynamically for that we need to have an Exception class, these exception class always linked to a Message class. Whenever we create an exception class the class name should be starts with ZCX_. These Exception class is always going to be derived from a Super class (System generates automatically). TEXT tab is available only in Exception class, Does not have in Normal class. Within a program we can handle Exceptions dynamically with the help of TRY – CATCH Block. 290. What are the steps to create Exception class? 1. We are going to create an Exception class by using transaction SE24 class builder. 2. Enter your exception class name, the Exception class name always start with ‘ZCX_’ and create it. 3. This Exception class always going to derived from a Super class and enter the description. 4. Chose the class type as Exception and check with message class check box, this exception class always linked with a Message class and Save it. 5. And go to properties and Linked to your message class. 6. If we want to Use this Exception class in Normal class, remove the exceptions first then use the Exception class name instead of Exceptions place and Check it Exception class check box. 291. Have you created any Exception class? Yes, I have created an Exception class for Handling Exceptions dynamically with using Message Texts. 292. What is meant by method overloading? Is it possible in OOABAP? Within a Inherited method we are going to over-write the Parent class method is known as method overloading. Here we are only over-write the method method logic, does not change or modify Method Interfaces like Importing, Exporting and Changing parameters. Generally In Object oriented ABAP does not Supports Method Overloading, Only supports Method REDEFINITION. Syntax: METHOD get_data REDEFINITION. 293. What is the purpose of method RE-DEFINITION?
If we want to change or Re-Write the Parent class methods within Child class, we are going to use method RE-DEFINITION.
Whenever we use method RE-DEFINE, we can write the new method implementation as well as we can call Parent class method by using SUPER. Instance methods can be RE-DEFINE, while Static methods cannot be RE-DEFINE.
58
ME or SUPER used for only Instance methods, not used for static methods.
294. What is the purpose of ME? We are going to CALL or Access within the Class components (Attributes or Methods),we can achieve with the help of ‘ME->’ . ME-> can be used to access for Instance attributes only, Not for static attributes. Ex: To access an attribute attribute (attr) of your class: ME->attr. CALL METHOD ME->meth. To call a method (meth) of your class: class:
295. What is difference between Interface and Abstract class? 1. Interface having only method definitions and Does not have any method implementation, while Abstract class having method definition and In-complete Implementation. 2. Interface does not have any Visibility section, while Abstract class having Visibility sections. 3. Interfaces having Instance and static methods, while Abstract class methods are always instance. 4. Interfaces are helps to Polymorphism and we can achieve multiple inheritance, while Abstract class does not support multiple inheritance. 296. Can I create an Instants or Objects in Abstract class? In abstract class we cannot create an Instance or an Objects, because of ABSTRACT class is an IN COMPLETE class. 297. What is ABSTRACT method? Static method cannot be a ABSTRACT method. If you want define an ABSTRACT methods the class must be change an ABSTRACT class. Whenever we define an ABSTRACT methods, the existing method implementation implementa tion will be deleted or Not possible to Implement within this class. 298. What is ABSTRACT class? Abstract class is an in completed class. Abstract class we have some methods without any Implementations or Empty method Implementations.
The help of ABSTRACT we can achieve RE-USABILITY. ABSTACT class should not be a FINAL class always make it ABSTRACT. For ABSTRACT class we can’t create any Instance or Object. 299. What is the purpose of SUPER?
If we want to call a method from Parent class we are going to use the command SUPER. Note: ME or SUPER we can use for Only Instance methods. 300. In a class I have some Private attributes, attributes, how can I access Private attributes of one class in another class? In this scenario we can use FRIEND class, if we want to access Private attributes of one class and Make the another class as Friend class. 301. What is Narrow casting and Widening casting?
59
If we want to access Child class methods from Parent class Object which is possible to with the help of Narrow casting. Syntax for Narrow casting : OBJ1 = OBJ2. “ADDING method is belongs OBJ2 CALL METBOD OBJ1->( OBJ1->( ‘ADDING’ ).
Widening cast is quit opposite of narrow casting , with the help of access the parent class attribute or methods from Child class object. Syntax for Narrow casting : OBJ2 ?= OBJ1. “GET_DATA method is belongs OBJ1 CALL METBOD OBJ2->( OBJ2->( ‘GET_DATA’ ).
302. How can I import Local class to Global class? If we want to Import a Local class into a Global class, we are going to transaction SE24 And click Object type -> Import -> Local Class in program. Enter your Local class program name - > Enter and Provide Global class name with ‘ZCL_’ and Import. 303. What is the purpose of Functional methods? The purpose of Functional method is used to Expecting some value or Returning some value from a Function. The Functional methods only having IMPORTING and RETURNING parameters, does not have any EXPORTING and CHANGING parameters. Within a Functional Methods the RETURNING parameters nothing but a RECEIVING parameters. DATA: A1 TYPE I. A1 = OBJ1->ADDING ( I1 = 20 I2 = 30 ). WRITE:/ A1. (Result is 50). “within a Adding method logic METHOD adding. R1 = I1 + I2. ENDMETHOD. 304. What is the purpose of ALIAS name? An alias name belongs to the components of the class and the interface. It shares the namespace with the other components and is inherited by subclasses. In classes, an alias name can be declared in every every visibility visibility section. section. 305. What is the purpose of SINGLETON class or Singleton pattern? Per class we can create multiple instances or objects. If we want create once instance per a class we are going to create class as SINGLETON. A singleton class is a class that cannot be instantiated more than once (in a single program that is). Of course you can do the same in other programs without facing any problems. You can do this by setting the flag final and create the class as private. Now the class can only be instantiate instantiated d in one of its own methods. 306. What are the steps to create Singleton class?
60
5. Go to SE24 for create a class properly and give the class properties : Instantiation as Private and Description (ZTEST_SINGLETON). 6. Come to create attribute tab and Create a static Public attribute (Get_ref_obj) basing on the TYPE Ref to Class name (ZTEST_SINGLETON). 7. Define a static public methods ex: GET_INSTANCE , in this method we have create a returning parameter. (Ex: REF_OBJ type ref to ZTEST_SINGLETON). 307. Have you created any Custom class? What is the Business requirement? requirement? Yes , I have create some Custom classes for using OOALV Reports. 308. What is the persistence persistence class? a. In the Persistence class going to generate permanent objects. Using this persistence objects we can update the data into database. b. Whenever we create a persistence class the class is always going to be Protected, the persistence class name starts with ‘ZCL_ ‘ or ‘YCL_’. c. Persistence class can be created only Globally (SE24), we cannot possible to create In Locally. d. Whenever we create a Persistence class the system is going to create Two classes automatically. There are: 1. Base Agent class, and 2. Agent class or Actor class. e. This Base Agent class name should be always starts with ‘ZCB_’ and Agent class name should be always starts with ‘ZCA_’. f. The Base Agent class should be always ABSTRACT class and going to friend class with persistence class. g. From this Base Agent class derived Agent class as Sub-class, Sub-class , the Agent class should be SINGLETON class. In this class we don’t have a Instance and Static Constructor.
309. Have you created any persistence class? Yes , I have created a custom Persistence class for Update the data into a database table. I have used following methods: GET_DATA we have to use for Get the data from database. CREATE_PERSISTENT we have to use for update the records into database. DELETE_PERSISTENT we have to use DELETE the records into database. 310. Steps to create a persistence class? Step-1: Go to transaction SE24 and Enter the class name and create it, class name always starts with ‘ZCL_’. c lass type as ‘Persistent class’ , whenever we chose persistent Step-2: Enter the Description and chose the class Instantiation become as “protected class’ and SAVE it. Step-3: click on Attributes tab and click Go to -> Persistence Representation and Provide your database table name click Enter. Step-4: Assign the table fields into Class. Attributes will be created automatical automatically ly and SAVE it. Whenever we create a Persistence class the system is going to create Two classes one is BASE AGENT CLASS (ZCB_) another one is ACTOR or AGENT CLASS (ZCA_). 311. What is the difference between between Normal class and Exception class? a. Every Exception class linked with a message class, while Normal class does not linked with message class. b. In Exception class we have TEXT tab for Exception ID Linked with Message Text, while Normal class does not have TEXT tab. 61
c. Within the Normal class we can use Exception cla ss, while within the Exception class we Can’t use Normal class. 312. How you going to create Transaction code for a method? If we want to create Transaction code for a method first we can write some logic by using the CL_OS_SYSTEM and call GET_TRANSACTION_MANAGER method and Collect the result into an Object ex: TRANS_M, the type of object ref to IF_OS_TRANSACTION_MANAGER . And Use this Object TRANS_M we are going to call another method ex: CREATE_TRANSACTION And collect the result into an another object ex: TRANS type of object is ref to an Interface Like IF_OS_TRANSACTION. Now we can call both START and END methods from the interface IF_OS_TRANSACTION. And write the method logic between START and END methods (or) write the method logic in another method and call those methods into this transaction method. Now we are going to create a transaction code for this method by using transaction SE93 and Enter your transaction code and Description, and chose the start object o bject as ‘Method of class (OO transaction)’ radio-button and Click continue. Next provide Class name, Method name, Update mode and check GUI support for windows and Save it.
SD -FLOW 313. What SD – Flow? Explain me along with Tables and transaction codes?
The processing of Sales Document flow is: Inquiry---- ----> Quotation--------> Sales order---- ----> Delivery---- ----> Invoice. 1. Inquiry : For Inquiry we are going to use transaction VA11 for Create Inquiry, VA12 for Change Inquiry, VA13 for Display Inquiry and the Inquiry related data is going to be stored into VBAK and VBAP tables. 2. Quotation: For Quotation we are going to use transaction VA21 for create Quotation, VA22 for Change Quotation, VA23 for Display Quotation and the Quotation related data is going to be stored into VBAK and VBAP tables. 3. Sales order: For Sales order we are going to use transaction VA01 for create Sales order, VA02 for Change Sales order, VA03 for Display Sales order and the Sales order related data is going to be stored into VBAK , VBAP, VBUP, VBEP and VBPA tables. 4. Delivery: For Delivery we are going to use transaction VL01 for create Delivery, VL02 for Change Delivery, VL03 for Display Delivery 62
and the Delivery related data is going to be stored into LIKP and LIPS tables. 5. Invoice: For Invoice we are going to use transaction VF01 for create Invoice, VF02 for Change Invoice, VF03 for Display Invoice and the Invoice related data is going to be stored into VBRK and VBRP tables. 314. I have a sales order, for that sales order I want to know that sales order created or Not / invoice created or Not? In which table I am going to check for Delivery or Invoice status? We are going to table VBFA (Sales Document Flow) for check Delivery or Invoice status of a Document. 315. What is the table for Sales Document Flow in SAP? The Sales Document flow data is going to be stored into VBFA table. Or The table of Sales Document Flow is VBFA. 316. What are the tables for Material Document ? MKPF is for Material Document header table and MSEG is for Material Document item table
317. What are tables for A/c Document? BKPF is for A/c Document header table and BSEG is for A/c Document item table.
318. What type of table is BSEG table? BSEG is for A/c Document item table it is a CLUSTER TABLE. It’s going to be stored into BSAD - Accounting: Secondary Index for Customers (Cleared Items). BSID - Accounting: Secondary Index for Customers (Open Items). BSAK - Accounting: Secondary Index for Vendors (Cleared Items). BSIK - Accounting: Secondary Index for Vendors Vendors (Open Items). BSAS - Accounting: Secondary Index for G/L Accounts (Cleared Items) BSIS - Accounting: Secondary Index for G/L Accounts. (Open Items). ****Above all tables Information can be maintain in BSEG cluster table.
319. What is the transaction code for create Customer in SAP? We are going to maintain a Customer by using transaction XD01 for Create Customer, and XD02 for Change Customer, and XD03 for Display Customer. Whenever we create a Customer, the Customer Information is going to be stored into : KNA1 - General Data in Customer Master table , 63
Sale
KNVV - Customer Master Sales Data table table and KNB1 - Customer Master (Company Code) tables. tables.
320. Where we can create Materials in SAP? We are going to maintain Materials by using transaction MM01 for Create Material, and MM02 for Change Material, and MM03 for Display Material. Whenever we create a Material, the Material Information is going to be stored into : MARA - General Material Data table , MARC - Plant Data for Material table and MARD - Storage Location Data for Material tables. tables. MVKE - Storage Location Data for Material tables.
321. What is the transaction code for crate Vendor in SAP? We are going to maintain Vendors by using transaction XK01 for Create Vendor, and XK02 for Change Vendor, and XK03 for Display Vendor. Whenever we create a Vendor, the Vendor Information is going to be stored into : LFA1 - Vendor Master (General Section) table , LFM1 - Vendor master record purchasing organization data and LFB1 - Vendor Master (Company Code) tables.
322. In a Business Hierarchy structure structure which one is going to create first? In Business Hierarchy structure, First we are going to create a COMPANY CODE by using transaction SPRO. The Company code information information is going to be stored into a table T001 and Field name is BUKRS. 323. Which table is going to store Plant Information? The Plant Information is going to be stored into a table is T001W and Field name is WERKS. 324. What is the table for Storage Location? The Storage Location Information is going to be stored into a table is T001L and Field name is LGORT. 325. Which table is going to store Sales organization information? The Sales organization Information is going to be stored into a table is TVKO and Field name is VKORG. 326. Which table is going to store Sales area information? The Sales area Information is going to be stored into a table is TVTA. 327. What is transaction code for Create Shipment? We are going to maintain Shipment by using transaction VT01 for Create Shipment, 64
and VT02 for Change Shipment, and VT03 for Display Shipment. Whenever we create a Shipment, the Shipment Information is going to be stored into : VTTK - Shipment Header table , VTTP - Shipment Item . 328. Where we can create Inbound Delivery in SAP? We are going to maintain Inbound Delivery by using transaction VL31 for Create Inbound Delivery, and VL32 for Change Inbound Delivery, and VL33 for Display Inbound Delivery. Whenever we create a Shipment, the Shipment Information Information is going to be stored into : LIKP - SD Document: Document: Delivery Header Data. (LIKP-VBELN). 329. What is a Transfer order? Whenever we Pick-up some Goods from Warehouse, Here warehouse management will be Generate a Transfer order and It’s not generate any Invoice or Bill. Whenever Generate a transfer order, the transfer order information is going to be stored into : transfer order order header table and , LTAK - WM transfer LTAP - Transfer order item tables.
330. What are the different ways to create Outbound Delivery for your Sales order? – Change Sales We are going to create an Outbound Delivery for a Given Sales order by using transaction VA02 – order. (Or) also we can use transactions VL01 or VL10G for create Outbound Delivery of given Sales order.
331. What is the transaction code for Billing Due List or Invoice Due List? We are going to use transaction VF04 for Maintain Billing Due List. 332. What is the transaction code for create A/c Document in SAP? We are going to maintain A/c Document by using transaction FB01 for Create A/c Document, and FB02 for Change A/c Document, and FB03 for Display A/c Document. Whenever we create a A/c Document, the A/c Document Information is going to be stored into : BKPF - A/c Document header table and BSEG - A/c Document item table.
MM-FLOW 333. What is the MM – Flow? Explain me along with Tables and transaction codes?
The processing of Material Management Flow is: Purchase Requisition ---- ----> Request for Quotation--------> Price comparison ---- ----> Purchase order ---- ----> Goods Receipt --------> Inbound Invoice Verification.
65
1. Purchase Requisition: For Purchase Requisition we are going to use transaction ME51 for Create Purchase Requisition, ME52 for Change Purchase Requisition, ME53 for Display Purchase Requisition and the Purchase Requisition related data is going to be stored into EBAN tables. 2. Request for Quotation: For Request For Quotation we are going to use transaction ME41 for create Request For Quotation, ME42 for Change Request For Quotation, ME43 for Display Request For Quotation and the Request For Quotation related data is going to be stored into EKKO, EKPO and EKET tables. 3. Price comparison: For Price comparison we are going to use transaction ME49 for Price comparison, 4. Purchase order: For Purchase order we are going to use transaction ME21 for create Purchase order, ME22 for Change Purchase order, ME23 for Display Purchase order and the Purchase order related data is going to be stored into EKKO, EKPO, EKET, EKES and EKBE tables. 5. Goods Receipt: For Goods Receipt we are going to use transaction MIGO for create Goods Receipt, 6. Inbound Invoice Verification: For Inbound Invoice Verification we are going to use transaction MIRO for create Goods Receipt, and the Inbound Invoice Verification related data is going to be stored into RBKP table.
334. What is the table for Purchase order (PO) Confirmation? Purchase order Confirmation Information is going to be stored in EKES table. 335. What is Production Order? 336. What is the transaction code for crate Production order? For maintain Production order, we are going to use transaction CO01 for create Production order, CO02 for Change Production order, CO03 for Display Production order. 337. What is the table for store Production order information? The Production order related Information Information is going to be stored into AFKO, AUFK and AFPO tables. 338. What is BOM (Bill of o f Materials)? (sales side) A bill of material (BOM) describes the different components that together create a product. A BOM for a bicycle, for example, consists of all the parts that make up the bicycle: the frame, the saddle, wheels, and so on.
66
BOM means bill of materials: suppose if you purchase a computer it contains CPU and monitor and mouse and some devices all they contain individual prices but altogether shown in computer in order to configure this BOM is helpful in SAP. 339. What is the purpose of BOM? The purpose of this activity is to create Bill Of Material (BOMs) for the configurable material which is known as ‘super BOM’. Super BOM comprise all the variant as well as non-variant parts required for producing configurable material. 340. Where we can create BOM in SAP? We are going to create BOM (Bill of Material) by using transaction CS01. 341. What are the tables for store BOM information? Whenever we create BOM, the BOM information is going to be stored into : STKO – – BOM Header table, STOP – – BOM Item table . 342. What is BOL ( Bill of Lading) (material side)? A Bill of Lading is a document issued by a consignor (or shipper, such as an an order order fulfillment center) center) and and signed by a carrier at the time of pick up, acknowledging acknowledging that specified products have been received on board as cargo for delivery to a named consignee, or destination. It serves as a contract between the shipper and/ or owners of the goods and the carrier for a number of purposes:
ALE – ALE – IDOC’s IDOC’s (Application (Application Link Enabling)
343. Have you done any ALE configuration? What the steps to creating ALE configurat configuration? ion? 1. Logical system configuration. (SALE)
(Both sides)
2. Assign Logical system to clients . (SALE)
(Both sides)
3. Creating the RFC Destination. (SM59)
(Both sides)
4. Configuring Distribution Model.
(BD64)
5. Configuring and checking the Ports . (WE21) 6. Configuring and checking the Partner profile. (WE20) 7. Configuring the Message type.
(NACE) 67
344. What is a Logical system? In SAP terms, the Logical system is nothing but a Client. A logical system is an application system in which, the applications work together on a common data basis. 345. What is the transaction code for create Distribution Models? We are going to create Distribution models by using transaction BD64. 346. What is a Message type? *** A message type defines, what kind of Data is going to be transferred between two Logical systems or Partners. Ex: MATMAS
-
Material master
DEBMAS
-
Customer master
CREMAS
-
Vendor master
ORDERS
-
Sales orders
ORDRSP
-
Purchase order confirmation
INVOIC
-
Invoice (Billing Document).
We are going to define or add a message type within Distribution model configuration step (BD64). An IDOC type can be associated with many message types Also a message type can be associated with different IDOC types. Transaction WE81. 347. What is the difference between Message type and Basic type (IDOC type)? *** A message type defines, what kind of Data is going to be transferred between two Logical systems or Partners. Ex: MATMAS (Material master), DEBMAS (Customer master), CREMAS (Vendor master), ORDERS (Sales orders) and ORDRSP (Purchase order confirmation). And Basic type is nothing but an IDOC type, which is used to defines , which Data Format is going to be transferred transferre d between two Logical systems. Ex: MATMAS05 ( Data format for material master), CREMAS05 (Data format for Vendor master).
348. What is Message control? In which scenario we are going to use Message control? *** Whenever we are going to communicate the Transaction Data between two Logical systems, must we need to create a Message control. No need to create message control for communicate the Master data between two Logical systems.
349. What is the purpose of message control in ALE-IDOC’s? Message type: A message type represents the application message exchanged between R/3 systems and R/3 and an external system. A message type characterizes the data sent across systems and relates to the structure of 68
the data called an IDOC type (see below). For example, MATMAS is a message type for Material Master, and INVOIC is a message type for an Invoice (Billing Document). ALE supports over 200 message types in R/3 and about 200 application areas. Distribution istribution Models? 350. In which scenario I don’t require to create a D Whenever we using Function Module ‘MASTER_IDOC_DISTRIBUTE’ Directly, we don’t required to create Distribution Distributi on Models.
351. If I use a Function module ‘MASTER_IDOC_DISTRIBUTE‘, can I going to crate Distribution Models? No need to create Distribution Models. 352. What is the purpose of the MASTER_IDOC_DISTRIBUTE? Which is used to collect the Data from IDOC. 353. What is transaction code for create Filter Group? We are going to create Filters group within Distribution model configuration, Transaction code is BD64. 354. What is the transaction code for create Partner profile? We are going to Generate Partner profiles by using transaction BD64 ( Environment ----> Generate Partner profile ) or BD82. Also We can Create or View the Custom Partner profiles by using transaction WE20. 355. What is the transaction code for create Ports? We are going to create the Port or change the Ports by using transaction WE21. 356. What is a Port? Types of Ports we have in SAP? Port is a temporary memory, which is used to to holds the Data in temporary purpose and transfer the data to an External system. We have 6 types of Ports available in SAP, there are: SAP) 1. Transactional RFC port, (SAP 2. File port, (SAP Non SAP or EDI) 3. CPI-C port, (Common Protocol Interface) 4. ABAP- PI port, (ABAP Programming Interface) 5. XML File port and, (Net enable) 6. XML HTTP port. Note: t-RFC port definition having only RFC Destination. 357. When we are going to use File Port? We are going to use File ports for Communicate Data between Non-SAP system to SAP system. 69
358. What is an IDOC? IDOC stands for Intermediate Document. IDOC is a container, which is used to carrying the Data between two Logical systems. IDOC is nothing but a combination of Different Segments and IDOC type / Basic type is a Template 359. What are the 3 types of Records consist of IDOC? We have three types of Records available in IDOC’s and we can see the Records in IDOC status transaction
WE02 or WE05, there are: a. Control Record - which is going to have the Sender, Receiver, Port, Message type and Partner information, and all the data is going to be Store into EDIDC table. b. Data Record EDID4 table.
- which is having All Segment related data, and the Data is going to be Store into
c. Status Record -which is having all IDOC status messages, and the all the Data is going to be Store into EDIDS table.
360. What is a segment? Segment is nothing but a Structure and Combination of different fields. We are going to create Custom segment by using transaction WE31 and Segment name always starts with Z or Y. the maximum length of segment name is 8 Characters. A Message type (MATMAS) consist of multiple Segments. BD53 is the transaction for reduce segments of a message type .
361. What is the different between Segment type and Segment Definition? Segment type is Version Independent, while Segment Definition is Version Dependent. Every segment consists of a segment Definition, while every segment definition consists of multiple Definition versions. 362. What about Process codes? What are types of Process codes we have in SAP? Process codes is a part of Partner profile configuration. Process codes are always linked to a Function module, which is used to collect the Data from IDOC and upload the data into Database. In SAP we have two types of Process codes are available, there are: 70
1. Inbound Inbound Process codes, (WE42 - Create, View the Inbound Process codes) 2. Outbound Outbound Process codes. (WE41 - Create, View the Outbound Process codes). 363. Where we can create Conversion Rules? Steps to create Conversion Rules? We have three transactions available for configure conversion rule in SAP, there are: BD62 – – create conversion rules, BD55 – – Assign Conversion rules, BD79 – – Conversion Adjustments.
364. How can you send the Material master details between two logical systems, after configuration ALE? After ALE Configuration, we are going to send the Material master details between two logical systems by using transaction BD10. 365. Where we can check IDOC status? We are going to check IDOC status by using transaction WE02 or WE05. Here we can check Inbound and outbound Direction IDOC status.
366. How can you change IDOC status message no 03 (Data passed to port)to 12 in Forcibly? In this scenario, am going to run a standard program, the name is RBDMOIND for change IDOC message status Forcibly. 367. Transaction code for Re-processing the failed IDOC? We are going to use transaction BD87 for Re-processing the failed IDOC’s. 368. Difference between Change Documents (change tasks) and Chang pointers ? In System level, whenever we have to change a record values (Field values),these Field value changes is known as ‘Change Documents’. These changed document details are stored into CDHDR (Change document header table) and CDPOS (Change document Item table). In IDOC level we are going to use ‘Change pointers’ instead of using ‘Change Document’, Change pointers are helps to fill the change documents Data into IDOC. The change pointers data is going to be captured into BDCP and BDCPS tables.
369. What are the steps to create change pointers? Step-1: Go to transaction BD61 and activate change pointers. Step-2: Go to transaction BD50 and activate change pointers for your Message type (MATMAS). Step-3: Go to transaction BD52 and Create new fields (if you want) Step-4: Go to transaction BD21 and Give your Message type and Execute it. 71
370. What are the tables for store Change pointer data? Change pointers data is going to be stored into BDCP (Change pointer) and BDCPS (Change pointer: Status) tables.
371. If IDOC is successfully released? What status message will getting? When IDOC is Successfully released, release d, we will getting IDOC status message no 53. Note: We can seen all status messages by using transaction WE47. 372. Which scenario we will getting IDOC status message no 56? When IDOC with errors added, we will getting IDOC status message no 56. 373. Which scenario we will getting IDOC status message no 60? When Error during syntax check of IDOC (inbound), we will getting IDOC message no 60. 374. Which scenario we will getting IDOC status message as 63? When Error passing IDOC to application, we will getting IDOC message no 63. 375. Which scenario we will getting IDOC status message as 69? When IDOC was edited, we will getting IDOC message no 69. 376. Have you created any custom IDOC? What are the steps to create custom IDOC? 1. WE31: Creation of segments (ZFBS1_HDR, ZFBS1_DET). 2. WE30: Creation of IDOC type (ZFBS1_IDOC_TY). 3. WE81: Create message type (ZMGFGS1). 4. WE82: Assign message type (ZMGFGS1) to IDOC type (ZFBS1_IDOC_TY). 5. SE80: Creation of function group (ZFG_IDOC). 6. SE37: Creation of 'Z' function module (ZFM_ACCRUAL_POST). 7. WE57: Assign IDOC (ZFBS1_IDOC_TY) to function module (ZFM_ACCRUAL_POST). 8. BD51: Create an entry for function module (ZFM_ACCRUAL_POST). 9. WE42: Create inbound process code (ZFBS1POST). 10. BD54: Create logical system (CIDCLNT200). 11. SM59: Create RFC destination. 12. WE20: Create partner profile. 13. WE19: Test tool for IDOC. 72
377. Have you create any outbound IDOC? What are the steps to create custom outbound IDOC? 378. How your going to test an Inbound IDOC? For IDOC Testing: WE19 Test tool WE12 IDoc test: Inb. Proc of Outb. File WE16 IDoc test: Inbound File WE17 IDoc test: Inbound status report If you want to Reprocess IDOCS BD87 Process inbound IDocs BD88 Process outbound IDocs Or You can test the IDOC using IDOC test tool. just follow the steps above. 1. Go to transaction WE19. 2. Enter the IDOC number you want to test. 3. Go to menu IDOC->test inbound IDOC->standard inbound 4. one popup screen come get the "FUCTION NAME" to test the IDOC. 5. Click on "INBOUND FUNCTION MODULE" button. 6. Enter function module name. 7. Click on CALL IN DEBUGGING MODE check box and choose foreground mode. and choose yes choice to run it. 379. Have you done IDOC extension? What are the steps to create IDOC Extension? 1) Go to transaction WE31 Here will create the segments for extend our IDOCS. Example: 'ZDUMMY' -> Write a short description and field name. -> Data element = CHAR1 (will create a new field in the IDOC with 1 character extension) -> Save (developer permissions permissions needed) 2) Go to transaction WE30. -> At development object select 'extension' -> Write a name for object name (8 char extension). For MATMAS IDOC extension i create ZMATEX01. Click on 'create' button. -> Now we will select the IDOC link. Select 'create new', and link to a basic type (MATMAS05 in our example). Don't forget to write a description (will be usefull in the future for identificat identificate e correspondances). -> Select IDOC substructure where wich will be extended. Click on header and 'create segment' (you can paste from clipboard with 'insert' button). -> Select ZDUMMY segment created before. -> Save and fill package and transport order for this modification. 73
-> Release segment from toolbar (Utilities) /nWE82 Add Message Type (MATMAS), Basic Type (MATMAS05), Extension (ZMATEX01) and Release. 380. How do I debug an outbound IDOC? Go to WE41 to get process code for your message type . Then double click it and it will show the function module attached to it . Put break point in it and then debug.... 381. What are the steps for processing an outbound IDOC for transactional data? 1.Application document is created. 2. IDOC is generated 3.Idoc is transferred from SAP to Operating system layer 4.Idoc is converted into EDI standards 5.Edi document is transmitted to the business partner 6.The Edi Subsystem report status to SAP. 382. Have you worked on IDOC civilization? civilization? No. 383. Steps for processing an outbound IDOC? 1. Application document is created. 2. IDOC is generated 3.Idoc is transferred from SAP to Operating system layer 4.Idoc is converted into EDI standards 5.Edi document is transmitted to the business partner 6.The Edi Subsystem report status to SAP 384. Steps for processing an Inbound IDOC? 1.EDI transmission received 2.EDI document is converted into an IDOC 3.IDOC is transferred to the SAP layer 4.The application document is created 5.The application document can be viewed. 385. For which IDOC will you worked on? 386. I have huge volume of d ata, which one I prefer ‘File operation’ or ‘IDOC’? For why? General Questions
1. Various types of requests we have in SAP? We have 4 types of Requests available in SAP, there are: 74
1. 2. 3. 4.
Customizing request, Workbench request, Transport of copies and Relocations.
2. What is Workbench request? All ABAP related or Program related changes are going to saved into Workbench request. 3. What is Customizing request? All Functional related changes are going to saved into Workbench request. 4. What is the Difference between Workbench and Customizing request? The Transport Organizer maintains Change Requests. These requests record the changes made to the repository and customizing objects. Based on that objects changed they are 1)Workbench 1)Workben ch Request and 2) Customizing Request.
Workbench Requests are those that involve changes to cross-client Customizing Customizing and Repository Objects. The objects are independent of the client. Hence the requests are used for transferring and transporting changed Repository objects and changed system settings from cross-client tables. Customizing Requests involve changes recorded to client-specific Customizing objects .These client specific requests are used for copying and transporting changed system settings from client-specific tables. 5. What is the Difference between Transport of copies and Relocations request? 1. Transports of copies You can use this request type to transport objects to a specified SAP System. The objects are transported with the version they have in the current SAP System. The original location of the objects remains unchanged. There is no delivery to another SAP System. 2. Relocations without package change You can use this request type if you want to develop objects in another SAP System on a temporary basis. For example, you may want to make special developments in a separate SAP System so as not to interfere with the development process. A relocation without package change basically offers the same functions as a transport of copies. This request type allows you to move the original location of objects to the target system. 3. Relocations with package change You can use this request type when you want to change the development system of individual objects on a permanent basis. 6. How do you find a request number of my program or any object? 75
We are going to use transaction SE03 for Find Request number of an Object. 7. How to move a Program From one Package ( or $TMP) to another package? There is a standard program available in SAP, that is “ RSWBO052 ”.
8. How to Transport a request number from Development to Quality? Using transport organizer (SE09 or SE10) for Release a Request from Development to Quality systems. (Or) We are going to use transaction STMS (Transport Management System) for release request directly. 9. Types of status’s of Request number ? In SAP we have two types of status’s of Request number:
There are : 1. Modifiable status , and 2. Released
status 10. What is task number? In every object number having multiple task numbers, if you want to transport it first release task numbers then release object number from development to quality systems. 11. What is version management? Every program generates a version. In this program in every changes to be generates a new version. To display every version of change program code and compare old version program from new version program change. It’s version management helps to save temporary version of code. 12. How to assign Tasks from one object to another object? Go to SE09 -> Check your request type and click Display -> Place the Cursor on your task -> Go to Utility -> Reorganize -> Reassign task and enter your target Request number -> Ok. 13. How do I know assign the Field-Symbol Field-Symbol field value? value? We are using the command: IF IS ASSIGN ASSIGN or NOT NOT ASSIGN. ASSIGN. ENDIF.
14. How do I know Field value? Assign or Not? INITIAL or NOT INITIAL. INITIAL. We are using the command: IF GV_NAME IS INITIAL ENDIF.
15. How do I know Subroutine Form available or Not? FOUND or NOT FOUND. FOUND. We are using the command: IF GET_DATA IS FOUND
76
76
ENDIF.
16. When you create an object, how do I know object is created (assign)or Not? BOUND or NOT BOUND. BOUND. We are using the command: IF OBJ1 IS BOUND ENDIF.
17. In Function Module or Sub-routine, how do I know Value passed or Not? SUPPLIED or NOT SUPPLIED. SUPPLIED. We are using the command: IF I_VBELN IS SUPPLIED ENDIF. Note: these SUPPLIED not used for Remote Function modules and Update function modules.
18. What is the purpose of EXIT command? EXIT command is used to Block or STOP the processing block. Ex: we are using EXIT command within Loop – Endloop, within Sub-routine, within Function module and within a Program. 19. When I use EXIT command within the SATRT-OF-SELECTION event in my processing block, what happen? Come out from the program. 20. How do I handle SY-SUBRC in Function module? We are going to handle Function module SY-SUBRC value through EXCEPTIONS. 21. In Sub-Routines or In Function modules, why TABLES statement not recommended? TABLES parameter is outdated, because of TABLES parameters are always Pass by Reference. In OO-ABAP is not supported TABLES parameter because of TABLE having with header line. 22. Different between Call transaction and Leave transaction? in case of call transaction, both calling and called screen will be active. if u come back to the calling screen back, it will be available. in case of leave to transaction, calling screen will be quited and called screen will be active. If u want to come back to the main screen, you cant. CALL TRANSACTION statement.
Ex: CALL TRANSACTION . 23. Different between SUBMIT and SUBMIT AND RETURN? In ABAP, you can link programs together by using SUBMIT statement .
77
a. A report program can “call” another report program or an online program. b. An online program can “call” another online program or a report program. For example: Whenever we use SUBMIT command for only call or Link a report program to another program. Whenever we use SUBMIT AND RETURN command, execute the called program and come back to Source program. Difference: The SUBMIT statement accesses an executable program. The executable program is executed as described under Calling Executable Reports. if we use return statement it will come back to the executable program once again. The syntax is : SUBMIT AND RETURN [options]. Ex: SUBMIT ZTEST_PROG_2
(for call external program)
AND RETURN
(execute and return)
WITH P2 = P P1 1
(assign parameter value)
Or WITH S_VBELN_2 IN S_VBELN_1 (assign select-options value) VIA SELECTION-SCREEN.
(display called program selection screen).
24. What is transaction for create transaction code? SE93 Transaction for Create transaction code.
25. What is transaction for SQL trace? ST05 Transaction for Create transaction code.
26. What is the purpose of File Transaction? File transaction is used to create a Logical File Path. 27. How to upload an Excel File data into an Internal table? We are going to use ALSM_EXCEL_TO_INTERNAL_TABLE Function module for upload the Excel file data into an Internal table. 28. How to Download an Internal table data into an Excel File? We are going to use GUI_DOWNLOAD Function module for Download an Internal table data into an Excel File. 29. What is the syntax for use Application server file data into an Internal table? We are going to use OPEN DATA SET, READ DATA SET and CLOSE DATA SET statements for brows the Application server File data into an Internal table. The Syntax is:
78
OPEN DATA SET P_FILE FOR OUTPUT IN TEXT MODE ENCODING DEFAULT TRANSFER ST_TAB TO P_FILE. CLOSE DATA SET P_FILE.
(OR) OPEN DATA SET P_FILE FOR INPUT IN TEXT MODE ENCODING DEFAULT READ DATA SET P_FILE. CLOSE DATA SET P_FILE.
30. What are the Memory types in SAP? In SAP we have two type of memories available , there are : 1. SAP Memory 2. ABAP Memory The “SET/GET” statements use SAP memory and “EXPORT/IMPORT” statements use ABAP memory; 31. How to use SET and GET PARAMETER statement? SET and GET PARAMETERS are used for SEND data to SAP memory and RETRIVE the data from SAP memory. Ex for SET PARAMETER syntax: SET PARAMTER ID ‘aun’ FIELD S_VBELN-LOW. S_VBELN-LOW.
Ex for GET PARAMETER Syntax: GET PARAMETER ID ‘aun’ FIELD S_VBELN-LOW. S_VBELN-LOW.
32. How to use IMPORT and EXPORT statements? EXPORT and IMPORT parameters are used for EXPORTING data into ABAP memory and IMPORTING data from ABAP memory. Ex for EXPORTING PARMETER syntax: EXPORT P1 TO MEMOR MEMORY Y ID ‘test’. [test – memory name].
Ex for IMPORTING PARAMETERS syntax: IMPORT P1 FROM MEMORY ID ‘test’ FREE MEMEORY ID ‘test’. ‘test’.
33. How to Analyze and Test methods of ABAP code? When coding of a program is complete, it is useful to analyze it’s performance, and test it.
79
The Program Extended Syntax Check, Runtime Analysis and SQL Trace are SAP provided analysis tools, that review the performance of the code in greater depth. It is not likely every piece of code will require the use of all of these tools. Testing of code in a IBM project environment requires execution of a Unit Test Plan. SAP has provided the CATT (Computer Aided Test Tool) for testing purposes. 34. How you perform Extended syntax check? The Program Extended Syntax check is the simplest and least CPU-intensive analysis tool. It can be found from ABAP Editor by following the menu path: a. Program-> Check->Extended prog. b. Check from the Repository Browser by following the menu path: Development Object-> Check ->Extended program check c. OR run transaction SLIN. 35. How you perform Runtime analysis? The Runtime Analysis Tool lets you analyze the performance of any transaction or program created in the ABAP Workbench in more detail. The inefficient coding that is detected can result from: a. Overuse/un Overuse/unnecessary necessary calling of subroutines or function modules b. CPU-intensive programming functions c. User programmed functions that could be replaced by existing ABAP statements inefficient/unnecessary inefficient/u nnecessary database accesses
Use transaction ‘SE30’ for ABAP runtime analysis and transaction ‘ ST05’ for performance analysis.
36. How you perform SQL trace?
You can use the SQL Trace tool to examine the database interfaces of reports and transactions in two different ways: The trace can be turned on to monitor all activity one particular user has with the data base. It can be used to explain one request This will bring you to transaction ST05.
37. What is the CATT? How to perform it? The Computer Aided Test Tool (CATT) is fully integrated into the ABAP/4 Development Workbench. It allows you to assemble and automate business processes in test procedures. These CATT is performed by the Transaction Transaction SCAT.
80
USER MESSAGES
38. What is the USER MESSAGE? User messages are an excellent method of communicating with the user in an interactive program. This applies to selection screens as well as full-fledged interact interactive ive reports and online (module pool) programs (covered in later sections). Normally, messages are displayed on the message line at the bottom of the screen. The only exceptions are abend messages which terminate the program and information messages which are displayed in a dialog box. 39. What is the system table for stored User Messages? User messages are stored in the system table T100. They are classified by language, a 20 character message class (used to group messages by application area), and a three-character message number. 40. What is the Message class? How to create it? Message class is a container of the Multiple messages with message numbers. These Message class was creates by transaction SE91. Each Message class having Max. 1000 messages. The message numbers Range between 000-999. 41. How many types of Messages available in SAP? In SAP we have Six types of Messages are categorized , there are: 1. 2. 3. 4. 5.
A - ABEND (outdated) I - INFORMATION E - ERROR S - STATUS W - WARNING
6. X
- RUNTIME ERROR
Generally in real time we have using only I, E, S, W messages.
81
ERP-SAP OVERVIEW
1. What is MRP? Materials Requirement Planning (MRP-I) began as a technique for developing enterprise-wide business solutions by providing automated tools for forecasting demands and planning according to the forecast .
2. What is ERP? ERP is not just a software…but a complete business solution integrated across the entire value chain which creates an information infrastructure for efficient planning and effective execution. execution.
ERP is directly proportional to Quality of output, Quality of output is directly proportional to the shape of the Organization, Shape of the Organization is directly proportional to the Earning of the company. 3. Different types of ERP’s? SAP, BAAN, JD Edwards, Oracle Financials, Siebel, PeopleSoft. Among all the ERP’s most of the companies are Implemented or Trying to implement SAP because of Number of advantages than other ERP packages.
Some major ERP vendors are : SAP R/3, Oracle and BAAN. 4. What is SAP? SAP is a name of the German company founded in 1972 with Five Former IBM Employees, under the German Applications and Products in Data Processing . SAP is the Leading ERP software package. name Systems , Applications
5. When was SAP AG founded? SAP AG is a German company founded in 1972 with Five former IBM Employees. Their vision: to develop standard application software for real-time business processing. Market Leader in Industrial Enterprise Application (IEA) About 56% market share in the ERP market, Serving more than 2,38,000 customers in 188 countries, SAP is the world's largest busines businesss software company and the world's third-largest independent software provider overall. Today, SAP employs more than 65,500 people in more than 130 countries. 6. What are the 3 layers of the SAP R/3 ? "R" stands for real-time data processing.
82
SAP R/3 R/3 is known as SAP SAP 3 Tier Architecture. These SAP R/3 architecture having three Layers there are a. The Database Layer, b. The Application Server, and c. The Presentation System
7. What is the Database Layer? Those SAP R/3 software components that specialized in the Management, Storage and Retrieval the data from Database layer. 8. What is the Application Layer? Those SAP R/3 Software components that specialized in Processing Business Applications and from the Application layer. These application applicatio n Server is connecting with various Presentation systems as well as a Database, Application server basically containing three parts: a. Dispatcher, b. Work processer, c. Roll area. 9. What is the Presentation Layer? Those SAP R/3 software components that specialized in Interacting with End-users from the Presentation layer.
10. What is Dispatcher? Dispatcher is one of the part of the Application layer, the purpose of the Dispatcher is receiving the request from the presentation systems and Assign the request to the related work processes, it’s Dispatcher works on First in First out basis. 11. What is Work Processes?
83
We have 7 types of Work Processes available in Application layer of SAP R/3 architecture, architecture, , there are: 1. Dialogue work processes 2. Update work processes 3. Enqueue work processes 4. Background work processes 5. Spool work processes 6. Gateway work processes 7. Message work processes.
12. What is Roll Area? Roll area is a one of the part of Application layer in SAP R/3 architecture, the these se Roll area is allocates some memory need to have a system like RAM. 13. What is the NetWeaver? NetWeaverr is a vision of total integration of People, Information, Business Process and Applications. NetWeave Applications. 14. What result can be expected from ERP software? Reduced working capital requirements Improved customer service Improved direct labor productivity Reduced purchase costs Reduced obsolescence Reduced overtime Having the figures to make decisions Having accountability throughout the organization organization Improved quality of life
15. What is the SAP R/3 Overview? SAP earlier divided into two major modules there are: 1. Technical modules and 2. Functional modules. 16. What are the Technical modules in SAP R/3? SAP R/3 is divided into two technical modules, there are : 1. BASIS (Business Application Systems Integrated Solutions) 2. ABAP (Advanced Business Application Programming language). 17. What are the Functional modules in SAP R/3? SAP was earlier divided into different Functional modules like Materials Management (MM), Sales & Distribution (SD), FI (Financial Accounting), CO (Controlling), HR (Human Resources), PP (Product Planning), PM (Plant Maintenance), PS (Project Systems) etc.
84
18. What is Integration in SAP? All business processes throughout the supply chain are INTEGRATED & executed on a common system sharing all information
19. What is Customization? The adaptation of application software to customer-specific needs is accomplished in two ways : 1. Coding: Programming customer-specific code that replaces or complements components of the application 2. Configuration: Rendering the application appropriate appropriate to a specific customer by specifying data on which the application operates. 20. What is ABAP Programming?
All SAP R/3 applications are written in the ABAP programming language, and run within the application layer of the R/3 System.
ABAP programs communicate with the database management system of the central relational database (RDBMS), and with the graphical user interface (SAPGUI) at presentation level.
85
21. Why do we need ABAP Development? We need ABAP Development Applications or Objects will helpful for End-users for Easily access data from Database and Reduce risk or effort of End-users. These Applications was developed by ABAP Developers for the Client or customer requirements. 22. What is SAP – Landscape model? In SAP – Landscape model we have to Implement some Business Applications in 3 stages: 1. Development 2. Quality and 3. Production
Some times SAP – Landscape model completes in 4 stages: 1. 2. 3. 4.
Development Quality Pre-production and Production.
23. What are the types of SAP Projects? Generally in SAP SAP we have 4 types of Projects: 1. 2. 3. 4.
Implementation project, Support project, Upgrade project, Roll-out project.
24. Which methodology we use in SAP Implementation stage? In SAP Implementation stage, First we are going to customize the SAP Software for our Business requirements. Generally in SAP Implementation stage we are going to use a Methodology called as ASAP methodology. ASAP stands for Accelerated SAP Methodology.
86
25. What are the Stages we have in ASAP methodology? In Accelerated methodology we have 7 steps For SAP Implementation process. There are: 1. Blueprint preparation 2. Analysis 3. Build stage or Development Development 4. Integration testing 5. Regression testing 6. Go-Live or Deploy 7. Post production support
26. What is the Blueprint preparation? Developing some Documents at the stage of Implementation of a project, this is the first stage of ASAP methodology , Preparing some Documents in this stage: those are 1. Coding standards Document, 2. Naming standards Documents Documents and 3. Landscape model Documents.
Preparing some Development Request (DR’s) in Blueprint preparation. It’s Blueprint preparation process completes within a 2-3 months time.
Each Development request (DR’s) having Some Request Code or Task Number .
27. What is the Analysis test stage? Analysis test is one of the ASAP methodology Stage in SAP implementation implementatio n project. In this Analysis test stage Functional team prepared some Functional Specs (FS’s) and Functional Functional Documents Documents (FD’s) and Technical team Developed some Technical specs (TS’s) and Technical Documents (TD’s) basing on FS’s and FD’s.
Every project runs with Onsite or Offshore projects. 28. What is the Build stage or Development stage? Build stage or Development is one of most important part of Implementation project, here enter ABAP Developer into a project and Analyzing the Functional specs and Developing the code basing on Business requirement. 29. What are the Roles and Respons ibilities of ABAPer’s? Every ABAP developer having some Roles and Responsibilities, there are : 1. Analyze the Functional Spec, 2. Develop a Technical Spec,
87
3. Code Development , 4. Review the code, 5. Testing the code (Unit testing) 6. Prepare UTP (Unit Test Plan) Document and Release .
30. What is integration testing? Once completed a Development program or request cab be Released from Development system to Quality systems. testing’. The testing team testing the Development request is known as ‘Integration testing’
This integration testing if we have Find some issues, Those issues are divided into 2 types, there are: 1. Defects, and 2. CR’s (Change requests).
31. What is the difference between Defect and CR’s? Programmatically ly errors is In integration testing we have find some issues basing on the Code Defects or Programmatical known as ‘DEFECTS’.
And if we need to any additional changes or add some functionality of your program those are called as ‘CHANGE REQUEST’s ‘ (CR’s). 32. What is Regression test? any CR’s CR’s Regression testing is also known as User Acceptance Test (UAT). Here accept your development or iiff any found Send back for Development. 33. What is Go-Live or Diploy? Go-Live stage of implementatio implementation n we have 2 steps: 1. Cut over activities (Stop all work activity) 2. Dress rehearsal 34. What is Roll out projects? Already once successfully implemented SAP Projects are Copied or Reuse for same Enterprise is known as Rollout projects.
35. What is Upgrade project? Already successfully implemented SAP project is converting from SAP old version to SAP new version is known as Upgrade projects, these are using some new patches. 36. Why do you usually choose to Implement SAP? There are number of technical reasons and number of companies are planning to implement SAP. Its highly configura ble , highly secure data handling, Minimum data redundancy & Maximum data consistency configurable capitalize on economic of sale like purchasing, tight integration – cross function.
and you can
88
SAP CLIENT OVERVIEW
37. What is client in SAP R/3? A client is a logical portion of an SAP R/3 physical database. From a business standpoint, a client can be interpreted as a logical group of companies. Ex: 800, 810, 900 etc. All customizing (configuration) and development (ABAP) work in SAP R/3 is performed in a client. However, the data from both customizing customizing and development work may be stored within an individual client client (client dependent data) or among all clients (client independent data) in the system.
38. What is the difference between Client-Dependent and Client-Independent? The data in each client may be separate separate from that of the other clien clients. ts. There are basically two types of data in an SAP R/3 System. Client-dependent Client-depe ndent and client-independent data. Client-dependent Client-depe ndent data is defined as data specific to an individual client. Ex: Some examples of client-dependent data include number ranges, ABAP variants, and user masters as well well as the data that is created or updat updated ed through SAP SAP R/3 transactions transactions (transaction (transaction data). Client-independent Client-inde pendent data can be defined defined as data contained across across all clients in in the system. Ex: Examples of client-independent client-inde pendent data include data dictionary objects (tables, views), ABAP source code, screens, and menus. All data resides in tables. To determine if a particular particula r table is client-dependent client-depe ndent or client-independent, the table structure needs to be reviewed. The table structure can be viewed by the data dictionary (SE11). If MANDT (client in German) is the first key field of the table, then the table is client-dependent; otherwise, the table is clientindependent. For example, the TSTC table is client-independent; however, the USR01 table is client-dependent. three clients 000, 001, and 066. Let’s review As shown in the above diagram, every SAP R/3 system contains the three these clients and examine what they contain.
39. What are the default clients or standard clients in SAP? During a standard install of the SAP R/3 system, clients 000, 001, and 066 are set-up and provided. These clients provide different features and must not be deleted.
89
Client 000 performs performs special functions. In particular, it is given extended functio functionality nality during upgrades. Client 001 is basically a copy of 000 and can be used as a basis for a new customizing client. Client 066 is a special client which is provided for operational operationa l system monitoring. It is used by SAP R/3’s Early Watch Service to provide performance recommendations. Note: In SAP the Value range of clients are 000-999.
40. What is IDES? IDES stands for International Demonstration Education System. IDES is a sample application, which is provided by SAP for faster learning and Implementation. Ex: 800, 810, 811….etc.
SAP NAVIGATION
41. What are the standard options options of menu bar in every screen of SAP? In Menu bar that are always available from every screen in the R/3 System: System: This menu contains functions that affect the system as a whole, such as the Create Session, End Session, User Profile, or Log Off options. Help: The Help menu contains contains functions for accessin accessing g various forms of online support.
42. On Standard tool bar Which icons are always available in every screen of SAP R/3 system? In SAP R/3 system Standard toolbar we have always available Icons are Help icon and Layout menu icon. 43. How many helps we have in SAP? We have 2 types of help options in SAP, there are: 1. F1 help help or Document help and, 2. F4 help or Value help. 44. What is Search Help? A Search Help is a search tool to help you find data in the SAP R/3 system. Sometimes it may be easier to use a Search Help for search purposes. Place your cursor in the desired field and enter the desired search parameter parameter.. For this example, you want to find all the personnel numbers in the system with a last name beginning with S.
90
1. Click on the
icon at the end of the Personnel number field and then enter S* in the last name field
and the names will be retrieved once the
icon is clicked.
2. You can also activate the Search Helps by placing the cursor in the field and hitting the F4 key. 45. How many sessions can you open at a time? You can create a session at any time and from any screen in the system; you will not lose any data in sessions sessio ns that are already open. You can create up to 6 sessions. 1. Choose System Create Session from the menu bar. 46. What are the Screen elements in SAP R/3 system? In SAP we have four types of toolbars, there are: 1. 2. 3. 4.
Menu bar (Max 8 options include 2 fixed options: options: system, help) help).. Standard toolbar toolbar (having FFixed ixed options) Title bar Application toolbar toolbar (having Max 35 options)
5. Status bar
47. How to access Development screens from SAP Easy access screen? We access SAP Development screens by using Transaction codes either SAP menu path. 48. What is the Maximum length of ABAP Program name? Any ABAP Program name starts with Z or Y, and the maximum length of Program name is 40 characters only. Not taken any Space of your program name. 49. What is ABAP Language? ABAP is a programming language created and used by SAP for the Development of Application programs including:
91
Reports
Module Pool Programming
Interfaces
Data conversions
User Exits & BADI
ABAP is a 4th generation language in SAP because it’s called as ABAP/4. All of SAP R/3s applications and even parts of its basis system were developed in ABAP. ABAP is an event-driven programming language. User actions and system events ccontrol ontrol the execution of an application. 50. What is ABAP workbench? The ABAP Workbench is used by SAP for the development of standard and custom application application software. The ABAP Workbench is also used to create dictionary objects.
51. What is the Report? types of reports? Report program produce a list output and can be divided into Conventional (Classical) reports and Interactive reports. 52. What is the basic difference between conventional report and interactive report? Conventional Convention al reports do not allows allows to intera interaction ction by the users, interactive reports reports can do. Conventional reports do not allow interaction by the user; therefore, the basic list contains extensive information that the user must often sort through to find the relevant data. Interactive reports allow interaction by the user; therefore, the user can produce secondary, detailed lists off of the basic list by choosing the relevant data and requesting more information 53. What is ‘On-line programming’ or ‘module pool programming’? Module pool programming (or online programming) involves the creation of a module pool (a collection of ABAP modules) and one or more screens. The modules are called by the screen processor during program execution. 54. What are the types of ABAP programs or Terms of ABAP programs? Below is a list of common ABAP program terms. Program A series of ABAP statements
Report An ABAP program produce output as a list Module Pool A dialog program which is a collection of screens
List The output generated by an ABAP report program
92
55. What is Package in SAP? like Program, Tables, Structures, Screens etc. it’s not Folder , Package was stores all object related elements like it’s transport purpose only. Every object saved in a package it will generate a request number for transport
purpose. We are going to create a package by using transaction SE21. 56. How to move a Local object request number into a Package? We are going to Use a standard program RSWBO052 for move an object from Local object to a Package. 57. What is Request Number and types of Request numbers? Every object will be going saved into a package, it will be generate a Request number for transport purpose. We have 4 types of Request’s available in SAP: There are: 1. Workbench request number, 2. Customizing request number, 3. Transport of copies and, 4. Relocations 58. What is Workbench Request Number? All ABAP related objects or changes are saved under Workbench Request Number. 59. What is Customizing request number? All Function (Customizing) related changes are saved under Customizing Request Number. 60. How to Transport a request number from Development to Quality? Using transport organizer (SE09 or SE10) for Release a Request from Development to Quality systems. 61. Types of Request status’s? In SAP we have two types of status’s of Request number:
There are : 1. Modifiable st status atus , and 2. Released
status 62. What is task number? In every object number having multiple task numbers, if you want to transport it first release task numbers then release object number from development to quality systems. 63. What is version management?
93
Every program generates a version. In this program in every changes to be generates a new version. To display every version of change program code and compare old version program from new version program change. It’s version management management helps to save temporary temporary version of code. 64. Which ticketing tool you have to use? Ticket tool means which software your using for handling the ticket. These below are ticketing tools , from which consultants get tickets. 1) Clarify tool 2) remeidy tool 3) Solution Manager 4) Radix 5) ServiceNow Still so many are their, based on clients it will be decided, some time through email (lotus note notes, s, or outlook)only get the tickets.
View more...
Comments