Monday, September 21, 2020

Details about Internal Table in SAP ABAP.

Details about Internal Table in SAP ABAP.



Internal Table:

Ø Internal table is a temporary table created in RAM in Application Server

Ø It is created & filled with data during run time (execution time)

Ø Once execution is performed it is rolled out (or) discarded

 

Note:

Use Internal table for storing multiple records during run time

 

Difference between Database table & Internal table:

                   Database Table                                          Internal Table

1.     It is created in Database Server ------- 1. It is created in Application Server

2.     It holds data permanently                   ------- 2. It holds data temporarily

3.     It holds only specific type of data ----- 3. It holds data of different tables of at one place

 

Que: What is exact purpose of Internal table. Do you think should be created in ABAP

         programming?

Ans: In real time we are creating Internal table for storing different types of application data

         from different tables at one place

 

Every Internal table is having 2 parts

They are:

1.     Internal Table Body

2.     Header Line

 

1. Internal Table Body:

The name Internal table itself specifies body of Internal table & it holds multiple records

 

2. Header Line:

It is a default Work Area & holds single record

 

Note:

Header Line is system defined Work Area & Work Area is user defined Header Line

 

Syntax:

DATA:  BEGIN    OF   it_kna1   OCCURS   0,

              customer(20)    TYPE   C,

              name(20)          TYPE   C,

              city(20)            TYPE   C,

              END       OF    it_kna1.


 

Note:

1.     With above syntax an Internal table it_kna1 is crated in Application Server

2.     You can provide any name. But in real time Internal table should always begins with it_ (or) i_ followed by table name

3.     With BEGIN option Header Line is created & OCCURS option Body is created

4.     0, 1, 2, 3, …..9 is called Size Category

5.     Both Header Line & Body name is same (it_kna1)

 

Flow of Data in Internal Table:

1.     Database Table ----à Body---à Header Line--à Virtual Page ---à Presentation Server

2.     Database Table ---à Body---à Presentation Server

VOFM ROUTINE IN SAP ABAP.

 VOFM ROUTINE.



VOFM ROUTINE EXAMPLE IN SAP ABAP.

You always have to activate a new routine before using it. Each routine for requirements and formulas, copying requirements and data transfers is stored in a separate program. For each new routine an entry is added in table TFRM and TFRMT. For each routine, a long text can be stored as a text module.

Standard program required to run VOFM routine RV80HGEN

Standard program to activate in case of any error in VOFM routines RV80GHEN

And also apply OSS notes   : 598475.

Then go to edit- Then activate and deactivate subroutine

Maintenance obq3 m/08 ad v/08

 

4. Enhancements to make text edit or non-edit mode business requirements to add and include the enhancements to

Standard include LV70TFT3 and do enhancements 

    BREAK ROH.
    
IF SY-UNAME 'ROHAND SY-TCODE 'VL02N' OR SY-TCODE 'VL03N'.
  
CALL METHOD GV_TEXT_EDITOR->SET_READONLY_MODE
  
EXPORTING
    READONLY_MODE 
GV_TEXT_EDITOR->FALSE


    
EXCEPTIONS
              ERROR_CNTL_CALL_METHOD 
1
              INVALID_PARAMETER      
2
              
OTHERS                 3.


   
ENDIF.

 

LV61AA55 this in include we can enhancement pricing routines va01

ENHANCEMENT 1  ZSD_PRICING_ENHAMENTS1.    "active version
BREAK rohinik
.
  
data lv_flag1 type c.
DATAlv_kwert like xkomv-kwert,
      lv_value 
like xkomv-kwert.
  
LOOP AT XKOMV WHERE kschl 'PR00'.
     
IF SY-subrc 0.
      lv_kwert 
Xkomv-KWERT / 10.
    
ENDIF.
  
ENDLOOP.
  
LOOP AT XKOMV WHERE kschl 'ZNOY'.
    
IF SY-subrc 0.
      lv_value 
= ( XKOMV-kbetr / 100 * lv_kwert.
      Xkomv
-kwert lv_value.
    
MODIFY XKOMV transporting kwert.

        DATA lv_flag1 TYPE C.
        
DATAlv_kwert LIKE xkomv-kwert,
              lv_value 
LIKE xkomv-kwert.
        
LOOP AT XKOMV WHERE kschl 'PR00'.
          
IF SY-subrc 0.
            lv_kwert 
Xkomv-KWERT / 10.
          
ENDIF.
        
ENDLOOP.
        
LOOP AT XKOMV WHERE kschl 'ZNOY'.
          
IF SY-subrc 0.
            lv_value 
= ( XKOMV-kbetr / 10 * lv_kwert.
            Xkomv
-kwert lv_value.
            
MODIFY XKOMV TRANSPORTING kwert.
 



         ENDIF.
        
ENDLOOP.


    
ENDIF.
  
ENDLOOP.

I done enhancements to include programs LV61AA55 to get accurate values as per the request

VOFM Routine is very important with help of you can create your condition

exit NAME: LV69AF40 Put this code for getting data

 break ROH.

 data lv_value1 LIKE xkomv-kwert.
 
import lv_value1 from MEMORY id 'ZKWERT'.
    
LOOP AT XKOMV WHERE kschl 'BASB'.
    
IF SY-subrc 0.
    Xkomv
-kwert lv_value1.
    
MODIFY XKOMV TRANSPORTING kwert WHERE kschl 'BASB'.
    
ENDIF.
    
ENDLOOP.  

 

and exit name for seeting the code

exit NAME: LV69AF41 Put this code for getting data

    break roh.
    
DATA lv_value1 LIKE xkomv-kwert.
    
IMPORT lv_value1 FROM MEMORY ID 'ZKWERT'.
    
LOOP AT XKOMV WHERE kschl 'BASB'.
      
IF SY-subrc 0.
        Xkomv
-kwert lv_value1.
        
MODIFY XKOMV TRANSPORTING kwert WHERE kschl 'BASB'.
      
ENDIF.
    
ENDLOOP.

 BREAK ROH.

  DATAlv_kwert LIKE komv-kwert,
        lv_value 
LIKE xkomv-kwert,
        lv_value1 
LIKE xkomv-kwert.
    
CLEARlv_valuelv_value1.
  
IF KOMV-kschl =     'PB00'.
    
IF SY-subrc 0.
      lv_value 
komv-KAWRT.
    
ENDIF.
  
ENDIF.
  
IF KOMV-kschl =     'FRA1'.
    
IF SY-subrc 0.
      lv_value 
komv-kwert.
    
ENDIF.
    
ENDIF.
  
LOOP AT XKOMV WHERE kschl 'BASB'.
    
IF SY-subrc 0.
      lv_VALUE1 
lv_value + komv-KAWRT.
      
IF lv_value1 is INITIAL.
*         lv_value1 = 50400000.
        
TYPESBEGIN OF ty_ekko,
          ebeln 
TYPE ebeln,
          knumv 
TYPE  knumv,
        
END OF ty_ekko.

        
TYPESBEGIN OF ty_konv,
          knumv 
TYPE knumv,
          KSCHL 
TYPE kschl,
          KAWRT 
TYPE kawrt,
        
END     OF ty_konv.
   
DATA LV_EKKO TYPE TY_EKKO,
          LV_KONV 
TYPE TY_KONV.
           SELECT SINGLE ebeln knumv FROM ekko into lv_ekko 

                    WHERE ebeln '4500018438'"lv_ekko-ebeln.


      
SELECT SINGLE knumv kschl kawrt FROM konv INTO lv_konv 

                                                                                     WHERE knumv lv_ekko-knumv
                                                              
AND kschl  'FRA1'.
      lv_value1 
= ( lv_konv-kawrt * 100 + lv_konv-kawrt.
       
endif.
      Xkomv
-kwert lv_value1.
      
MODIFY XKOMV TRANSPORTING kwert WHERE kschl 'BASB'.
      
export lv_value1 to MEMORY id 'ZKWERT'.
    
ENDIF.
  
ENDLOOP.

This document belong to purchases documents header data as per the requirements be can created purchase documents header data 

Sunday, September 13, 2020

Differences between Normal Reports and ALV Reports in SAP ABAP.

What are the differences between Normal Reports and ALV Reports?



  • Classical reports
  • ALV Reports

1. Simple reports using the WRITE statements within the loops.

1. The system generated Functions start with REUSE* are used to display the data.

=================================================================

2. Performance is not as good as ALV Reports since the LOOP statement must be used to display the data.

2. Performance is good since the data is displayed using the function modules outside of the loops.

=================================================================

3. Not possible to edit the Fields in the Output.

3. It can be possible to edit the Fields in the Output.

=============================================================

4. It is difficult to display the LOGOS in the output.

4. It is so EASY to display the LOGOS in the output.

==========================================================

5. It is COMPLEX to Align the Columns.

5. Column Alignment is done by the system.

Which techniques used to identify the record which was clicked by the user in the previous list in SAP ABAP.

Which techniques used to identify the record which was clicked by the user in the previous list?



Ans: HIDE & GET-CURSOR

HIDE: This statement is used to hide the selected field value which can be passed to the corresponding drill down list to filter the unwanted records. It is used to capture the selected field values to the next drill down list. Hide statement provides Single drill down list.

GET-CURSOR: This statement is used to capture the selected field values & field names based on the cursor position. This statement provides drill multiple down lists.

What are the types of execution modes in SAP ABAP.

What are the types of execution modes?


 Execution modes in SAP ABAP.

Ans: There are 2 types of execution mode to execute a program or the transaction codes.

1. Foreground: It is used to execute the programs or the transaction codes directly by pressing execute icon or F8 function key. It requires user interaction.

2. Background: This execution mode is used to execute the programs or the transaction codes periodically such as Hourly, Daily, Weekly, Monthly etc in background. It doesn’t require any user interaction. The variants must be created before the programs are scheduled in back ground.

 The T-code SM36 is used to define the background jobs &

 The T-code SM37 is used to check the status of the background jobs.

The standard function modules JOB_OPEN -> To open back ground job

JOB_SUBMIT -> To submit job in back ground

JOB_CLOSE -> To close scheduled job.

Debug Background Jobs in SAP ABAP.

How to debug Background Jobs?


Debug Background Jobs in SAP ABAP.

Ans: The Background jobs can be debug using the command ‘JDBG’.

 Execute the T-code SM37

 Check the required background job to be debug.

 Enter JDBG in the Command field & Press Enter

 Keep on pressing F7 until the required program is stopped.

 Use the Function keys F5/F6/F7 to check the program Line by line/Block by Block once it is reached.

Explain about Debugger, Break points and Watch points in SAP ABAP.

Explain about Debugger, Break points and Watch points?



Debugger, Break points and Watch points in SAP ABAP.

Ans :- Debugger :- This tool is used to check the program line by line & block by block for finding and rectifying errors or bugs.

Break Points:- These are Statement based. They are used to stop the program in the debugger tool for checking line by line or block by block.

 Break points are of 4 types. We can place up to 30 break points in the program.

1. Session Break Point: An icon set/delete breakpoint icon or click on statement line at gray color vertical selection in the source code.

2. Static Break Point: The ABAP statement BREAK-POINT/BREAK <user_name> is used to set the Static break point. In the real time the ABAP statement BREAK-POINT should not be used since all the users are stopped.

3. Dynamic Break Point: They are used to check the program in case of not possible to find a location. The command /H is used to set dynamic break points. The program is stopped at the first statement line of the performed action.

4. External Break Point: They are used to check the cross application components such as RFC, BAPI from one system to another. An icon set or delete external break-points is used to set or delete external break-points.

Watch Points: - These are Condition based. They are used to stop the program once the set condition is reached. The Watch points can be set inside the debugger tool. We can place up to 9 watch points in the program. We can reduce debugging time using watch points.