Monday, September 21, 2020

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.

Memories, explain about them in SAP ABAP.

What are the types of Memories, explain about them?



Ans :- The Memory concept is used to access the data across the internal or External Sessions.

 There are 2 types of memories.

1. SAP Memory: - It is used to access the data from one session to another session through Parameter ID or Memory ID.

 The ABAP statements SET PARAMETER ID and GET PARAMETER ID are used to work with the SAP memory.

 SET PARAMETER ID is used to pass the field value from an application program into the specified SAP Memory ID or Parameter ID.

 GET PARAMETER ID is used to get the data from the specified memory ID or Parameter ID into filed of an application program.

 The Parameter ID’s are maintained at Data Element level under Further Characteristics.

2. ABAP memory: - It is used to access the data across internal sessions. The ABAP statements IMPORT & EXPORT are used to work with the ABAP Memory.

 The IMPORT statement is used to import the data from the specified memory ID into data variable.

 The EXPORT statement is used to export the data into the specified memory ID from the program.

Control Break Statements, explain about them in SAP ABAP.

What are the Control Break Statements, explain about them?



Control Break Statements, explain about them in SAP ABAP.

Ans :-

Control Break statements: - They are used to control the data flow of an internal table.

 The Control break statements start with AT and ends with ENDAT.

 These statements should be used within the LOOP statements only

 Following are the different types of Control break statements.

AT FIRST: - This event is triggered at the first record of an internal table. This is used to display the Header information.

AT NEW: - This event is triggered at the first record of each block. This is used to display the individual headings.

AT END OF: - This event is triggered at the last record of each block. This is used to display the total/sub totals in the internal table.

AT LAST: - This event is triggered at the last record of an internal table.

ON CHANGE OF: - It is a special control break statement which can be used outside of the loop statement also.

 It is almost similar to AT NEW statement but it doesn't consider the preceding fields.

 It can be used on the multiple fields using SET operators (AND, OR, BETWEEN).

Explain about the events associated with Classical Reports in SAP ABAP.

Explain about the events associated with Classical Reports?



Events associated with Classical Reports in SAP ABAP.

Ans :- Following are the EVENTS associated with the Classical Reports .

 LOAD-OF-PROGRAM : This event triggers at the time of loading the program

into a memory.

INITIALIZATION: This event is triggered before the selection screen is displayed. It is used to clear & refresh the data variables and used to pass the default values to the selection fields.

AT SELECTION-SCREEN: This event is triggered after providing the input in the selection screen.

START-OF-SELECTION: It is the default event & mandatory to execute any executable program. It is used to fetch the data from the DB. If no event is used in the executable program, the entire program will be triggered under

Start-Of-Selection.

END-OF-SELECTION: This event is triggered after Start-Of-Selection event is processed. It is used to specify the data process statements.

TOP-OF-PAGE: This event is triggered with the first ULINE/WRITE/SKIP/NEW PAGE statement in START_OF-SELECTION event in the program. It is used to display the column headings.

END-OF-PAGE: This event is triggered at the end of each page. It is used to display the footer details of a page such as totals etc..The report addition

LINE-COUNT must be specified to trigger this event.

Explain about Loop termination statements in SAP ABAP.

 Explain about Loop termination statements?



 Loop termination statements in SAP ABAP.

Ans :- The following statements are used to come out of the loops and continue with the next

loop statements.

EXIT: - This statement is used to come out of the loop statement and continue with the next statement line outside of the loop statements in the program.

STOP: - This statement is used to stop the Loop process along with the next part of the loop statement.

CONTINUE: - This statement is used to stop the current loop process and continue with the next loop process.

CHECK: - This statement is used to check the specified conditions and continue with the next loop process.

 CHECK = CONDITION + CONTINUE.

Friday, September 11, 2020

Disadvantage Of Using Batch Input Session Method in SAP ABAP.

What Is The Biggest Disadvantage Of Using Batch Input Session Method?



Session Method Disadvantage in SAP ABAP.

When dealing with batch input sessions, there is a timing issue involving the creation of a batch input session and the processing of a batch input session. The creation and processing of batch input sessions are distinct or two different actions; therefore, they occur at different times.

Between the time a batch input session is created and the time it is processed, changes might have been made to the SAP database. These changes may result in errors when processing the batch input session.

For example, a BDC program creates a batch input session to insert 10000 materials into the SAP database. Before the session is processed, a SAP user inserts 20 of these materials into the SAP system. When the batch input session is finally processed, these 20 materials will result in errors because they cannot be inserted into the SAP database more than once. Also Batch Input Sessions cannot be run in parallel and hence are not fast.

Search Help in SAP ABAP.

What are the Search Help, types and explain about them?



Search Help

Ans: - It is used to provide all the possible entries to the input variable as search help.

1) Elementary Search help:

 - It is created using one base table.

2) Collective Search help:

 - It is the collection of Elementary Search help.

Search Help Exit: It is a Function module to filter possible entries of a search help.

It is used to modify the F4 values at run time.

Differences between Check table and Value table in SAP ABAP.

 What are the differences between Check table and Value table?



Check table VS Value table

1. It is maintained at the TABLE level.

1. It is maintained at the DOMAIN level.

--------------------------------------------------

2. It can be used to extract the data in the programs.

2. It can't be used to extract data since it is linked with the domain.

---------------------------------------------------

3. The Search Help is displayed from the Check table on the foreign key field of a foreign key table.

3. The Search Help is displayed on each field which is linked with the same domain of the Value table.

----------------------------------------------------

4. It forces the user to select any one of the check table field entries

4. It does not force the user since it has empty value by default.

Types of Views and explain in SAP ABAP.

What are the types of Views and explain about them?



View in SAP ABAP.

Ans: - Views are the virtual/imaginary tables. It does not contain the data permanently.

View contains the data at Run time only.

1) Database View: - 

It is used to combine the multiple tabled data by joining them. It can be used to extract the data in the programs.

2) Maintenance View: - 

It is used to maintain multiple tables data using the T-code SM30 (TMG).

3) Help View: 

- It is used in the selection method in an Elementary Search Help to provide the

list of possible entries from the multiple tables.

4) Projection View

: - It is used to HIDE the unwanted fields of the table. It can be

defined using one table only.

Thursday, September 10, 2020

Explain about Constants, Text Symbols, Selection Texts and Variants in SAP ABAP.

 Explain about Constants, Text Symbols, Selection Texts and Variants?



Constants:

-They are used to avoid the hard coded text in the programs and improve the reusability in the program. The ABAP statement ‘CONSTANTS’ is used to define constants.

Text Symbols: 

- The ABAP Statement TEXT followed by the symbol number (XXX) can used to define or call the text symbol.

Selection texts:

 - They are used to maintain the Field labels (descriptions) of the input fields of the selection screen. The T-code SE63 is used to translate the text elements.

Variants: 

- They are used to save the input data for further execution in the selection screen. They can also be used to avoid the data entry errors & schedule a program in the back ground.

Some Keywords in SAP ABAP.

Some Keywords in SAP ABAP.



Some Keywords in SAP ABAP.

Ans: 

Append:

It is the keyword used to append record by record from work area to at last record of the

internal table. Syntax: APPEND <gs_dbtab> TO <gt_dbtab>.

Insert:

This statement is used to insert a new record at any position of an internal table.

Syntax : INSERT <gs_final> INDEX <n>? SY-TABIX.

Collect:

It also used like an APPEND statement. This statement is used to compare character/string

fields data & summarizes the numeric field data. It is used to display sub-totals .

Syntax : COLLECT <gs_source> INTO <gs_collect>.

Lines:

It is the keyword which returns no of records available in the internal table.

Occurs:

It is the keyword; it allocates 8KB of memory for the internal table by default. If the data in the

Internal table exceeds 8KB then it will bring one more 8KB of memory & so on up to 2GB.

Clear: 

It clears the contents of the work area & internal table with header line ITAB[ ] & variables

Refresh: 

It clears the contents of the internal table only.

Free: 

It clears the contents of internal table along with allocated memory.

Different types of internal tables and explain about them in SAP ABAP.

What are the different types of internal tables and explain about them?



Different types of internal tables and explain about them in SAP ABAP.

Ans :- Internal Tables: - They are the intermediate tables to hold the multiple records at run time.

 There are 3 types of internal tables.

1. STANDARD Internal tables: - The standard Internal Tables are filled using the ABAP statement 'APPEND'/’INSERT’. It accepts the duplicate records. Searching of a record is Linear Search. It is the default index table. Standard internal table can be sorted explicitly.

Syntax: - DATA: <gt_dbtab> TYPE STANDARD TABLE OF <typ_dbtab/dbstr.....>.

2. SORTED Internal table: - The ABAP statement 'INSERT/APPEND' is used to fill Sorted Internal Table. It does not accept the Duplicate records. Searching of a record is Binary Search. Sorted internal table cannot be sorted explicitly. An

additional statement with UNIQUE/NON-UNIQ UE key must be used to declare Sorted Internal Tables.

Syntax :- DATA: <gt_dbtab> TYPE SORTED TABLE OF <dbtab/dbstr.....> WITH

UNIQUE/NON-UNIQUE KEY <k-f1> <k-f2>.

3. HASHED Internal tables: - They are Non Index tables. The Hashed Internal Tables holds huge amount of data than Standard & Sorted internal tables since they follow ‘Hashed Algorithm’. The ABAP statement ‘WITH UNIQUE KEY' must be used to declare Hashed Internal Tables.

It holds huge amount of data (2 GB) than standard & sorted internal tables.

Syntax:- DATA: <gt_dbtab> TYPE HASHED TABLE OF <dbtab/dbstr.....> WITH UNIQUE KEY <k-f1> <k-f2>.

Differences between Work Area and Field Symbol in SAP ABAP.

What are the differences between Work Area and Field Symbol?


Differences between Work Area and Field Symbol in SAP ABAP.

Work Area

Field Symbol

-----------

1. It is the data variable.

1. It is a Pointer.

--------------

2. The ABAP statement is DATA is used to declare

or define work areas.

2. The ABAP statement FIELD-SYMBOLS is used to declare Field symbols.

------------------

3. The ABAP statement INTO is used to process record by record through work area .

3. The ABAP statement ASSIGNING is used to assign the FIELD-SYMBOLS .

------------------

4. The ABAP statement MODIFY must be used to

modify the internal table .

4.No need to use MODIFY , Since it is a pointer .

---------------------

5. No need to specify within the Angular brackets (< >).

5. It Must be specify within the Angular brackets (< >) .

Differences between Work area and internal tables In SAP ABAP.

 Differences between Work area and internal tables?



Work area and internal tables in SAP ABAP.

1. It Holds single record at a time. Work Area

1. Holds Multiple records.Internal Tables

2. It doesn't have BODY.Work Area

2. It has BODY [].Internal Tables

3.The Record by record is processed through the work area.Work Area

3. In case of internal table with header line the record by record is processed through header line.Internal Tables