Question 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.
Question 2 :
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.
Question 3 :
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?
strat_form using this we can open many layoutses
open_form using this we can open the layout
performance will be high
Open_form -- is used to initialize the spool request.
Start_form-- is used to initialize the layout.
Question 4 :
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.
Question 5 :
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-submi, "collective no
vbrp-matnr, "MATERIAL NUMBER
vbrp-fkimg, "ORDER QTY
vbrp-aubel, "SALES DOCUMENT
kna1-name1, "PAYER NAME
vbrk-fkart, "billing type
konv-kbetr, "CST PER
konv-kbetr, "LST PER
konv-kbetr, "ED PER
konv-kbetr, "Ecs PER
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