SAP Documents
SAP.

Thursday, April 30, 2009

SAP Reports Interview Questions Answers Vol - 1

A table is buffered. By select statement I don't want to get the data from table buffer. I want to get the data from database. How?
If buffering is allowed for a table in the ABAP Dictionary, the SELECT statement always reads the data from the buffer in the database interface of the current application server. To read data directly from the database table instead of from the buffer, use the following:

SELECT... FROM *lt;tables> BYPASSING BUFFER. ..

This addition guarantees that the data you read is the most up to date. However, as a rule, only data that does not change frequently should be buffered, and using the buffer where appropriate improves performance. You should therefore only use this option where really necessary.

What are user exits? What are customer exits?
User exits and customer exits are the same thing.
Both are used to give the customer the chance to influence the outcome of a process(-step) in some way, without having to change the standard SAP software. For example: if an order is entered in the system, availability checks, credit checks etc. could be performed by the system but just before writing the order to the database, the program runs a user exit. In this user exit, your code could change some fields in the order or write an entry in a table that you created for some reason.

What is the difference between start_form and open_form in scripts? Why is it necessary to close a form always once it is opened? Answer1:
strat_form using this we can open many layoutses
open_form using this we can open the layout
performance will be high

Answer2:
Open_form -- is used to initialize the spool request.
Start_form-- is used to initialize the layout.

What is difference between ON Change of and At New Field ? Select Single * from and select Upto 1 rows

At new - on change of difference: In case if you want calculate sub totals for same values in a field you can use the atnew statement.ie:
For example in a table sflight, there are 2 fields carrid ( airline id) and seatsmax( seat available). In case if you want calculate the total number of seats available for each carrrid you can sort the table first and using the at new and sum you can claculate the total seats for each carrid. Atnew will be triggered whenever there is a change in the carrid and the total seats will be returned for each carrid.
In the same scenario if you use onchange of it will not return the total seats for each carrid, instead it will return the total seat count for the entire table( ie: for all the carrids in the table. Another diffrence is atnew can be used only between loop and end loop whereas on change of can also be used in select- endselect , do -enddo. Another diffrence is while using atnew in case if you code any write statements between atnew and end at the value for the numeric fields will be returned as 0 and that of no numeric fields will be returned as *(asteriks). But in on change of the orginal values will be returned. Select single * and select upto 1 row diffrence.
The select single * from stmt selects only one row form the database table and puts it in to the work area(internal table). The select upto n(where n stands for a integer number) rows stmt selects all the rows from the database table but writes only the specified number of rows specified by the n into the internal table. If its given as upto 1 rows only 1 row is written in to the internal table.

When you create sales report, What you can see in that report ? What are those field names or data element names?

vbak-auart, "ORDER TYPE
vbak-audat, "DOCUMENT DATE
vbak-kunnr, "CUSTOMER
vbak-bstnk, "PURCHASEORDERNO
vbak-submi, "collective no
vbrp-posnr, "ITEM
vbrp-matnr, "MATERIAL NUMBER
vbrp-arktx, "DESCRIPTION
vbrp-fkimg, "ORDER QTY
vbrp-vkbur, "SALESOFFICE
vbrp-aubel, "SALES DOCUMENT
vbrk-netwr, "NETPRICE
vbrk-vbeln, "BILLINGDOCNO
vbrk-knumv, "DOC.CONDITION
kna1-name1, "CUSTOMERNAME
vbrp-werks, "PLANT
vbrk-kunrg, "PAYER
kna1-name1, "PAYER NAME
vbpa-kunnr, "EMPLOYEENO
vbrk-netwr, "DISCOUNT
vbrk-netwr,"NETAMT
vbrk-netwr,"INVAMT
vbrk-fkart, "billing type
vbrk-netwr, "CST
konv-kbetr, "CST PER
vbrk-netwr, "LST
konv-kbetr, "LST PER
vbrk-netwr, "ED
konv-kbetr, "ED PER
vbrk-netwr, "Ecs
konv-kbetr, "Ecs PER
vbrk-netwr, "SURCHARGE
vbrk-fkdat, "BILLINGDATE
kna1-name1, "EMPLOYEENAME
vbak-bstdk, "PODATE
likp-bolnr, "Bill Of Lading
likp-traty, "Means of Transport Type
likp-traid, "Means of Transport ID
vbpa-kunnr, "Bill To Party
kna1-name1, "Bill To Party Name
vbrk-netwr, "Net Amount Basic Amount - Discount

How to assign multiple transaction codes in a session method to BDC_Insert function module?
Call function ' BDC_Insert'
exporting
tr. code = ' enter tr.code1 here'
table = 'give an internal table related totr.code1 here'
call function 'BDC_INSERT'
exporting
tr.code = ' enter 2nd tr code'
tables = ' 2nd internal table'

“Check” and “Continue”. What is the difference?
Check statement, checks the condition with in a loop and if it satisfies the condition, the control moves to next statement in the loop. Otherwise, it terminates the loop.

Continue statement, acts like goto statement. If the condition is true, it processes the remaining statements and if the condition is false, then the control moves to the top of loop.
At-Line selection, At user-command etc..,

In at line-selection system defined fcode will be generated In at user-command we need to define the fcode and fkey manually then only it will triggers.

“Exit” and “Stop”. What is the difference?
exit statments is exit the current loop. and moving to next loop but stop statement move to end of selection. it's not check all other loops.

What is the reserve command?
Answer1:
Reverse Command :Reverse N Lines : if there is not enough space left on the current page for atleast n lines it starts a new page

Answer2:
RESERVE
If insufficient space is there for listing output reserve statement encounters NEW-PAGE.But before going to new page it processes END-OF-PAGE.

What are event keywords in reports?
Answer1:
Events keywords in Reports are
For Classical Reports,
1.Initialization
2. At line-selection
3. Start-of-selection
4.Top-of-page
5. At user-command
6.End-of-selection
7. End-of-page
8.At Pfn
For Interactive Reports,
9.At line-selection 10. Top-of-page during line selection
For LDB (Logical DataBase) Reports,
10. get 11.put 12. get table

Answer2:
1. Initialization
2. At line-selection
3. Start-of-selection
4.Top-of-page
5. Top-of -page during at line-selection
6. At PF
7. At user-command
8.End-of-selection
9. End-of-page

No comments: