Alv in Detail

                                                   ALV
 1) What is ALV programming in ABAP? When is this grid used in ABAP? 
ALV is Application List viewer.
Sap provides a set of ALV (ABAP LIST VIEWER) function modules which can be put into use to embellish the output of a report. This set of ALV functions is used to enhance the readability and functionality of any report output. Cases arise in sap when the output of a report contains columns extending more than 255 characters in length. 
In such cases, this set of ALV functions can help choose selected columns and arrange the different columns from a report output and also save different variants for report display. This is a very efficient tool for dynamically sorting and arranging the columns from a report output. 
The report output can contain up to 90 columns in the display with the wide array of display options.
The commonly used ALV functions used for this purpose are;
1. REUSE_ALV_VARIANT_DEFAULT_GET
2. REUSE_ALV_VARIANT_F4
3. REUSE_ALV_VARIANT_EXISTENCE
4. REUSE_ALV_EVENTS_GET
5. REUSE_ALV_COMMENTARY_WRITE
6. REUSE_ALV_FIELDCATALOG_MERGE
7. REUSE_ALV_LIST_DISPLAY
8. REUSE_ALV_GRID_DISPLAY
9. REUSE_ALV_POPUP_TO_SELECT
   2)How you call this function in your report?
After completion of all the data fetching from the database and append this data into an Internal Table. say I_ITAB.
Then use follwing function module.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            I_CALLBACK_PROGRAM       = 'Prog.name'
            I_STRUCTURE_NAME         = 'I_ITAB'
            I_DEFAULT                = 'X'
            I_SAVE                   = 'A'
       TABLES
            T_OUTTAB                 = I_ITAB.
  IF SY-SUBRC <> 0.
    WRITE: 'SY-SUBRC: ', SY-SUBRC .
  ENDIF.
ENDFORM.                    " GET_FINAL_DATA
 3) Upload Logo for REUSE_ALV_COMMENTARY_WRITE
For those who wish to upload and use a picture in your ALV abap reports.
Steps for uploading Logo :-:
1.  Goto the transaction OAER
2.  Enter the class name as 'PICTURES'
3.  Enter the class type as 'OT'
4.  Enter the object key as the name of the logo you wish to give
5.  Execute
6.  Then in the new screen select Standard doc. types in bottom window
     Click on the Screen icon 
     Now, it will ask for the file path where you have to upload the logo
7.  Now you can use this logo in REUSE_ALV_COMMENTARY_WRITE
or 
Import Logo and Background Picture for Reporting
In this step, you can import a customer-specific logo and a background picture into the R/3 System. These will be displayed in the header area of reports in HR Funds and Position Management.
From the SPRO: 
HR Funds and Position Management -> Dialog Control --> Customize Reporting Interface -> Import Logo and Background Picture for Reporting.
Activities
1. Enter the Name of your logo/background picture as an object key in the initial screen.
2. Make sure that the class name is PICTURES, and the class type is OT.
3. Choose Execute.
4. Double-click the document type Picture on the Create tab page.  A dialog box will appear in which you can enter the path in which the logo/background picture can be found.
5. Enter the path and choose Open.  The logo will be uploaded into the current R/3 System. If the logo/background picture is to be transported into other systems as well, choose Transport.
6. Return to the initial screen and repeat the procedure after having entered the Name of your background picture as an object key.
Please note that the logo/background picture can only be displayed in ALV-based reports with an HTML header. Manually programmed reports such as business distribution plans are not based on the ALV.
If you have selected several initial objects, ALV-based reports in HR Funds and Position Management will automatically use a hiearchical-sequential display. A logo is not displayed here either. Note also that the logo cannot be printed (see print preview in program).
Make sure that the logo does not exceed a height of 100 pixels because it would mean that the header of the report will be scrollable.
 4) How can I insert my company logo in the standard report?
It is not possible to print logo in the ordinary report, but it can be done through ALV.
Write  the code in Top-of-page event in ALV.
The following is the code for inserting the logo in ALV.
FORM TOP_OF_PAGE.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
           I_LOGO             = 'ENJOYSAP_LOGO'
            IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
  5) How to Refresh ALV List/Grid once it is displayed? 
This mean to say that if you have a 'refresh' push button in your gui status, every time you press the button, the list should get refreshed.
In ALV, to refresh the table you have to call the method "refresh_table_display". 
It has the syntax very similar to creating the table. 
It has two parameters. In the first one, you can mention if you want to refresh only the data (the icons are not refreshed) 
or 
if you want to refresh only the icons around the grid (the data is not refreshed - this option is mostly not used in day to day applications).
the synatx is :-
call method grid (name of grid )->refresh_table_display
exporting
IS_STABLE = <STRUCT OF TYPE LVC_S_STBL> (THIS IS FOR DATA REFRESHING)
I_SOFT_REFRESH = <VARIABLE OF CHAR 01>  (THIS IS FOR ICON REFRESHING).

program to refresh alv grid control.

https://www.sdn.sap.com/irj/scn/wiki?path=/display/Snippets/demo+program+to+refresh+alv+grid%2528oops%2529
 6)  Sample programs on ALV Grid
report zbnstest.
************************************************************************
* TABLES AND DATA DECLARATION.
************************************************************************
*TABLES: mara,makt.",marc.
data syrepid like sy-repid.
data sydatum(10). " LIKE sy-datum.
data sypagno(3) type n.
 
* WHEN USING MORE THAN ONE TABLE IN ALV WE NEEED TO DECLARE THE TYPE
* GROUP (TYPE-POOLS--------->SLIS)
type-pools : slis.
 
************************************************************************
* INTERNAL TABLE DECLARATION.
************************************************************************
* INTERNAL TABLE TO HOLD THE VALUES FROM THE MARA TABLE
data: begin of t_mara occurs 0,
matnr like mara-matnr,
meins like mara-meins,
mtart like mara-mtart,
matkl like mara-matkl,
end of t_mara.
* INTERNAL TABLE TO HOLD THE CONTENTS FROM THE EKKO TABLE
data : begin of t_marc occurs 0,
matnr like mara-matnr,
werks like marc-werks,
minbe like marc-minbe.
data: end of t_marc.
* INTERNAL TABLE TO HOLD THE VALUES FROM MAKT TABLE.
data : begin of t_makt occurs 0,
matnr like mara-matnr,
maktx like makt-maktx,
spras like makt-spras,
end of t_makt.
* INTERNAL TABLE WHICH ACTUALLY MERGES ALL THE OTHER INTERNAL TABLES.
data: begin of itab1 occurs 0,
matnr like mara-matnr,
meins like mara-meins,
maktx like makt-maktx,
spras like makt-spras,
werks like marc-werks,
minbe like marc-minbe,
end of itab1.
 
* THE FOLLOWING DECLARATION IS USED FOR DEFINING THE FIELDCAT
* AND THE LAYOUT FOR THE ALV.
* HERE AS slis_t_fieldcat_alv IS A INTERNAL TABLE WITHOUT A HEADER LINE
* WE EXPLICITELY DEFINE AN INTERNAL TABLE OF THE SAME STRUCTURE AS THAT
* OF slis_t_fieldcat_alv BUT WITH A HEADER LINE IN THE DEFINITION.
* THIS IS DONE TO MAKE THE CODE SIMPLER.
* OTHERWISE WE MAY HAVE TO DEFINE THE STRUCTURE AS IN THE NORMAL SAP
* PROGRAMS.
* IN THE FIELDCATALOG TABLE WE ACTUALLY PASS THE FIELDS FROM ONE OR
* MORE TABLES AND CREATE A STRUCTURE
* IN THE LAYOUT STRUCTURE WE BASICALLY DEFINE THE FORMATTING OPTIONS
* LIKE DISPLAY IN THE ZEBRA PATTERN ,THE HOTSPOT OPTIONS ETC.
data: fieldcatalog type slis_t_fieldcat_alv with header line,
fieldlayout type slis_layout_alv.
 
* DECLARING THE EVENTTABLE INTERNL TABLE FOR USING EVENTS LIKE
* TOP-OF-PAGE ETC.
data : eventstab type slis_t_event with header line.
* DECLARING AN INTERNAL TABLE TO HOLD THE DATA FOR THE TOP-OF-PAGE
data : heading type slis_t_listheader with header line.
data : heading1 type slis_t_listheader with header line.
data : heading2 type slis_t_listheader with header line.
data : heading3 type slis_t_listheader with header line.
data : heading4 type slis_t_listheader with header line.
data : heading5 type slis_t_listheader with header line.
data : heading6 type slis_t_listheader with header line.
data : heading7 type slis_t_listheader with header line.
data : heading8 type slis_t_listheader with header line.
 
* STRUCTURE TO PASS THE COLOR ATTRIBUTES FOR DISPLAY.
data : colorstruct type slis_coltypes.
************************************************************************
* INITIALIZATION. *
************************************************************************
initialization.
syrepid = sy-repid.
sypagno = sy-pagno.
clear fieldcatalog.
 
************************************************************************
* START-OF-SELECTION. *
************************************************************************
start-of-selection.
* SUBROUTINE TO POPULATE THE COLORSTRUCT
perform fill_colorstruct using colorstruct.
* SUBROUTINE TO POPULATE THE FIELDS OF THE FIELD CATALOGUE
perform populate_fieldcatalog.
* SUBROUTINE TO SELECT DATA FROM VARIOUS TABLES AND POPULATE IT IN THE
* INTERNAL TABLE.
perform selectdata_and_sort.
* SUBROUTINE TO POPULATE THE LAYOUT STRUCTURE.
perform populate_layout using fieldlayout.
* SUBROUTINE TO CALL THE FUNCTION MERGE TO ENSURE PROPER DISPLAY.
perform merge_fieldcatalog.
* SUBROUTINE TO POPULATE THE EVENTSTAB.
perform fill_eventstab tables eventstab.
* SUBROUTINE TO POPULATE THE HEADING TABLES.
perform fill_headingtable tables heading using 'HEADING'.
perform fill_headingtable tables heading1 using 'HEADING1'.
perform fill_headingtable tables heading2 using 'HEADING2'.
perform fill_headingtable tables heading3 using 'HEADING3'.
perform fill_headingtable tables heading4 using 'HEADING4'.
perform fill_headingtable tables heading5 using 'HEADING5'.
perform fill_headingtable tables heading6 using 'HEADING6'.
perform fill_headingtable tables heading7 using 'HEADING7'.
perform fill_headingtable tables heading8 using 'HEADING8'.
* SUBROUTINE TO DISPLAY THE LIST.
perform display_alv_list.
 
 
************************************************************************
* FORMS
************************************************************************
* IN THIS SUBROUTINE WE POPULATE THE FIELDCATALOG TABLE WITH THE NAMES
* OF THE TABLE,FIELDNAME,WHETHER IT IS KEY FIELD OR NOT,HEADING AND
* COLUMN JUSTIFICATION.
form populate_fieldcatalog.
perform fill_fields_of_fieldcatalog tables fieldcatalog
using 'ITAB1' 'MATNR' 'X' .
perform fill_fields_of_fieldcatalog tables fieldcatalog
using 'ITAB1' 'MEINS' ' '.
perform fill_fields_of_fieldcatalog tables fieldcatalog
using 'ITAB1' 'MAKTX' ' ' .
perform fill_fields_of_fieldcatalog tables fieldcatalog
using 'ITAB1' 'MTART' ' ' .
perform fill_fields_of_fieldcatalog tables fieldcatalog
using 'ITAB1' 'MATKL' ' ' .
perform fill_fields_of_fieldcatalog tables fieldcatalog
using 'ITAB1' 'SPRAS' ' ' .
perform fill_fields_of_fieldcatalog tables fieldcatalog
using 'ITAB1' 'WERKS' ' ' .
perform fill_fields_of_fieldcatalog tables fieldcatalog
using 'ITAB1' 'MINBE' ' ' .
endform. " POPULATE_FIELDCATALOG
 
*---------------------------------------------------------------------*
* FORM FILL_FIELDS_OF_FIELDCATALOG *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> FIELDCATALOG *
* --> P_TABNAME *
* --> P_FIELDNAME *
* --> P_KEY *
* --> P_KEY *
*---------------------------------------------------------------------*
form fill_fields_of_fieldcatalog tables fieldcatalog
structure fieldcatalog
using p_tabname
p_fieldname
p_key.
* p_no_out.
fieldcatalog-tabname = p_tabname.
fieldcatalog-fieldname = p_fieldname.
fieldcatalog-key = p_key.
fieldcatalog-emphasize = '1234'.
*fieldcatalog-no_out = p_no_out.
append fieldcatalog.
endform. " FILL_FIELDSOFFIELDCATALOG
 
*---------------------------------------------------------------------*
* FORM POPULATE_LAYOUT *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> FIELDLAYOUT *
*---------------------------------------------------------------------*
form populate_layout using fieldlayout type slis_layout_alv.
fieldlayout-f2code = '&ETA' .
fieldlayout-zebra = 'X'.
* FOR THE WINDOW TITLE.
fieldlayout-window_titlebar = 'ALV with Events'.
fieldlayout-colwidth_optimize = 'X'.
fieldlayout-no_vline = ' '.
*fieldlayout-no_input = 'X'.
fieldlayout-confirmation_prompt = ''.
fieldlayout-key_hotspot = 'X'.
* This removes the column headings if the flag is set to 'X'
fieldlayout-no_colhead = ' '.
*fieldlayout-hotspot_fieldname = 'MAKTX'.
fieldlayout-detail_popup = 'X'.
* fieldlayout-coltab_fieldname = 'X'.
endform. " POPULATE_LAYOUT
*---------------------------------------------------------------------*
* FORM SELECTDATA_AND_SORT *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form selectdata_and_sort.
select matnr meins mtart matkl from mara
into corresponding fields of t_mara
up to 500 rows .
select matnr maktx spras from makt
into corresponding fields of t_makt
where matnr = t_mara-matnr and
spras = sy-langu.
select matnr werks minbe from marc
into corresponding fields of t_marc
where matnr = t_mara-matnr.
append t_marc.
endselect.
append t_makt.
endselect.
append t_mara.
endselect.
perform populate_itab1.
sort itab1 by matnr.
endform. " SELECTDATA_AND_SORT
*---------------------------------------------------------------------*
* FORM MERGE_FIELDCATALOG *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form merge_fieldcatalog.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = syrepid
i_internal_tabname = 'ITAB1'
* i_structure_name = 'COLORSTRUCT'
* I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = syrepid
changing
ct_fieldcat = fieldcatalog[]
exceptions
inconsistent_interface = 1
program_error = 2
others = 3.
endform. " MERGE_FIELDCATALOG
 
* IN THIS FUNCTION THE MINIMUM PARAMETERS THAT WE NEED TO PASS IS AS
* FOLLOWS:-
* i_callback_program --> CALLING PROGRAM NAME
* i_structure_name --> STRUCTURE NAME.
* is_layout --> LAYOUT NAME.
* it_fieldcat ---> BODY OF THE FIELD CATALOGUE INTERNAL TABLE
form display_alv_list.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
* I_INTERFACE_CHECK = ' '
i_callback_program = syrepid
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
i_structure_name = 'ITAB1'
is_layout = fieldlayout
it_fieldcat = fieldcatalog[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* THE FOLLOWING PARAMETER IS SET AS 'A' INORDER TO DISPLAY THE STANDARD
* TOOL BAR
i_save = 'A'
* IS_VARIANT = ' '
it_events = eventstab[]
* IT_EVENT_EXIT =
* IS_PRINT =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = itab1
exceptions
program_error = 1
others = 2.
endform. " DISPLAY_ALV_LIST
*&---------------------------------------------------------------------*
*& Form POPULATE_ITAB1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form populate_itab1.
loop at t_mara.
loop at t_makt where matnr = t_mara-matnr.
loop at t_marc where matnr = t_mara-matnr.
move-corresponding t_mara to itab1.
move-corresponding t_makt to itab1.
move-corresponding t_marc to itab1.
append itab1.
endloop.
endloop.
endloop.
endform. " POPULATE_ITAB1
*&---------------------------------------------------------------------*
*& Form FILL_EVENTSTAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_EVENTSTAB text *
*----------------------------------------------------------------------*
form fill_eventstab tables p_eventstab structure eventstab.
* WHEN THE FOLLOWING FUNCTION IS CALLED THE SYSTEM POPULATES THE
* INTERNAL TABLE EVENTSTAB WITH A LIST OF EVENTS NAME.
* AS SHOWN BELOW WHEN USING I_LIST_TYPE = 0 THE FUNCTION RETURNS 14
* EVENTS NAME.
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events = p_eventstab[]
exceptions
list_type_wrong = 1
others = 2.
* BY CALLING THE ABOVE FUNCTION WE FIRST POPULATE THE EVENTSTAB WITH
* THE PREDEFINED EVENTS AND THEN WE MOVE THE FORM NAME AS SHOWN BELOW.
* WE ASSIGN A FORM NAME TO THE EVENT AS REQUIRED BY THE USER.
* FORM NAME CAN BE ANYTHING.THE PERFORM STATEMENT FOR THIS FORM
* IS DYNAMICALY CALLED.
read table p_eventstab with key name = slis_ev_top_of_page.
if sy-subrc = 0 .
move 'TOP_OF_PAGE' to p_eventstab-form.
append p_eventstab.
endif.
read table p_eventstab with key name = slis_ev_top_of_coverpage.
if sy-subrc = 0 .
move 'TOP_OF_COVERPAGE' to p_eventstab-form.
append p_eventstab.
endif.
read table p_eventstab with key name = slis_ev_end_of_coverpage .
if sy-subrc = 0 .
move 'END_OF_COVERPAGE' to p_eventstab-form.
append p_eventstab.
endif.
read table p_eventstab with key name = slis_ev_foreign_top_of_page.
if sy-subrc = 0 .
move 'FOREIGN_TOP_OF_PAGE' to p_eventstab-form.
append p_eventstab.
endif.
read table p_eventstab with key name = slis_ev_foreign_end_of_page.
if sy-subrc = 0 .
move 'FOREIGN_END_OF_PAGE' to p_eventstab-form.
append p_eventstab.
endif.
read table p_eventstab with key name = slis_ev_list_modify.
if sy-subrc = 0 .
move 'LIST_MODIFY' to p_eventstab-form.
append p_eventstab.
endif.
read table p_eventstab with key name = slis_ev_top_of_list.
if sy-subrc = 0 .
move 'TOP_OF_LIST' to p_eventstab-form.
append p_eventstab.
endif.
read table p_eventstab with key name = slis_ev_end_of_page.
if sy-subrc = 0 .
move 'END_OF_PAGE' to p_eventstab-form.
append p_eventstab.
endif.
read table p_eventstab with key name = slis_ev_end_of_list .
if sy-subrc = 0 .
move 'END_OF_LIST' to p_eventstab-form.
append p_eventstab.
endif.
endform. " FILL_EVENTSTAB
*&---------------------------------------------------------------------*
*& Form FILL_HEADINGTABLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_HEADING text *
*----------------------------------------------------------------------*
form fill_headingtable tables p_heading structure heading
using tablename.
case tablename.
when 'HEADING'.
p_heading-typ = 'H'.
concatenate
' REPORT NAME:-' syrepid
' ABB Industry Pte Ltd' into p_heading-info.
append p_heading.
write sy-datum using edit mask '_//___' to sydatum.
concatenate
' DATE:-' sydatum ' USER: ' sy-uname 'PAGE NO:' sypagno
into p_heading-info.
append p_heading.
when 'HEADING1'.
p_heading-typ = 'H'.
p_heading-info = 'TOP-OF-COVER-PAGE'.
append p_heading.
when 'HEADING2'.
p_heading-typ = 'H'.
p_heading-info = 'END-OF-COVER-PAGE'.
append p_heading.
when 'HEADING3'.
p_heading-typ = 'H'.
p_heading-info = 'FOREIGN-TOP-OF-PAGE'.
append p_heading.
when 'HEADING4'.
p_heading-typ = 'H'.
p_heading-info = 'FOREIGN-END-OF-PAGE'.
append p_heading.
* WHEN 'HEADING5'.
* P_HEADING-TYP = 'H'.
* P_HEADING-INFO = 'LIST-MODIFY'.
* APPEND P_HEADING.
when 'HEADING6'.
p_heading-typ = 'H'.
p_heading-info = 'END-OF-PAGE'.
append p_heading.
when 'HEADING7'.
p_heading-typ = 'H'.
p_heading-info = 'END-OF-LIST'.
append p_heading.
when 'HEADING8'.
p_heading-typ = 'H'.
p_heading-info = 'TOP-OF-LIST'.
append p_heading.
endcase.
endform. " FILL_HEADINGTABLE
*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = heading[]
exceptions
others = 1.
endform.
*&---------------------------------------------------------------------*
*& Form FILL_COLORSTRUCT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_COLORSTRUCT text *
*----------------------------------------------------------------------*
form fill_colorstruct using p_colorstruct type slis_coltypes .
p_colorstruct-heacolfir-col = 6.
p_colorstruct-heacolfir-int = 1.
p_colorstruct-heacolfir-inv = 1.
endform. " FILL_COLORSTRUCT
*---------------------------------------------------------------------*
* FORM TOP_OF_COVERPAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form top_of_coverpage.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = heading1[]
exceptions
others = 1.
endform.
*---------------------------------------------------------------------*
* FORM END_OF_COVERPAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form end_of_coverpage.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = heading2[]
exceptions
others = 1.
endform.
*---------------------------------------------------------------------*
* FORM FOREIGN_TOP_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form foreign_top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = heading3[]
exceptions
others = 1.
endform.
*---------------------------------------------------------------------*
* FORM FOREIGN_END_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form foreign_end_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = heading4[]
exceptions
others = 1.
endform.
*---------------------------------------------------------------------*
* FORM LIST_MODIFY *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
*FORM LIST_MODIFY.
* CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
* EXPORTING
* IT_LIST_COMMENTARY = HEADING5[]
* EXCEPTIONS
* OTHERS = 1.
*ENDFORM.
*---------------------------------------------------------------------*
* FORM END_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form end_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = heading6[]
exceptions
others = 1.
endform.
*---------------------------------------------------------------------*
* FORM END_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form end_of_list.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = heading7[]
exceptions
others = 1.
endform.
*---------------------------------------------------------------------*
* FORM TOP_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form top_of_list.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = heading8[]
exceptions
others = 1.
endform.
*--- End of Program
 8) List of ABAP Functions


ABAP_DOCU_DOWNLOAD
Download ABAP documentation in HTML format.
 
APPL_LOG_DELETE
With this function module you delete logs in the database according to specified selection conditions
 
APPL_LOG_DISPLAY
With this function module you can analyze logs in the database.
 
APPL_LOG_DISPLAY_INTERN
With this function module you can analyze logs in local memory, e.g. when you have only collected log records at runtime and do not want to write to the database.
 
APPL_LOG_INIT
This function module checks whether the specified object or sub-object exists and deletes all existing associated data in local memory.
 
APPL_LOG_READ_DB
With this function module you read the log data in the database for an object or sub-object according to specified selection conditions.
 
APPL_LOG_READ_INTERN
With this function module you read all log data whose log class has at least the specified value, from local memory, for the specified object or sub-object.
 
APPL_LOG_SET_OBJECT
With this function module, you create a new object or sub-object for writing in local memory. With a flag you can control whether the APPL_LOG_WRITE_... messages are written in local memory or are output on the screen.
 
APPL_LOG_WRITE_DB
With this function module you write all data for the specified object or sub-object in local memory to the database. If the log for the object or sub-object in question is new, the log number is returned to the calling program.
 
APPL_LOG_WRITE_HEADER
With this function module, you write the log header data in local memory.
 
APPL_LOG_WRITE_LOG_PARAMETERS
With this function module, you write the name of the log parameters and the associated values for the specified object or sub-object in local memory. If this function module is called repeatedly for the same object or sub-object, the existing parameters are updated accordingly. If you do not specify an object or sub-object with the call, the most recently used is assumed.
 
APPL_LOG_WRITE_MESSAGE_PARAMS
With this function module you write a single message, with parameters, in local memory. Otherwise the function module works like APPL_LOG_WRITE_SINGLE_MESSAGE.
 
APPL_LOG_WRITE_MESSAGES
With this function module you write one or more messages, without parameters, in local memory.
 
APPL_LOG_WRITE_SINGLE_MESSAGE
With this function module you write a single message, without parameters, in local memory. If no header entry has yet been written for the object or sub-object, it is created. If you do not specify an object or sub-object with the call, the most recently used is assumed.
 
ARFC_GET_TID
will return the IP address of the terminal in hex.
 
BAL_CNTL_CREATE
Create Control for log display
 
BAL_CNTL_FREE
Release Control
 
BAL_CNTL_REFRESH
Put new data in log display
 
BAL_DB_DELETE
Delete logs from the database
 
BAL_DB_DEQUEUE
Unlock log
 
BAL_DB_ENQUEUE
Lock log
 
BAL_DB_LOAD
Load logs from the database
 
BAL_DB_LOAD
Load log(s)
 
BAL_DB_SAVE
Save logs in the database
 
BAL_DB_SAVE
Save log(s)
 
BAL_DB_SAVE_PREPARE
Prepare save
 
BAL_DB_SEARCH
Find logs in the database
 
BAL_DSP_LOG_DISPLAY
Display messages in memory
 
BAL_DSP_LOG_DISPLAY
Display Log
 
BAL_DSP_LOG_PARAMETERS
Either output extended long text or call a callback routine (based on the data in BAL_S_LOG-PARAMS)
 
BAL_DSP_LOG_TECHNICAL_DATA
Output all log header data
 
BAL_DSP_MSG_LONGTEXT
Display message long text
 
BAL_DSP_MSG_PARAMETERS
Either output extended long text or call a callback routine (based on the data in BAL_S_MSG-PARAMS)
 
BAL_DSP_MSG_TECHNICAL_DATA
Output technical data of a message such as work area, error number, etc.
 
BAL_DSP_OUTPUT_FREE
End output
 
BAL_DSP_OUTPUT_INIT
Initialize output
 
BAL_DSP_OUTPUT_SET_DATA
Set dataset to be displayed
 
BAL_DSP_PROFILE_DETLEVEL_GET
Message hierarchy in DETLEVEL
 
BAL_DSP_PROFILE_NO_TREE_GET
Display without tree (fullscreen)
 
BAL_DSP_PROFILE_POPUP_GET
Display without tree (popup)
 
BAL_DSP_PROFILE_SINGLE_LOG_GET
Standard profile (SLG1) for one log
 
BAL_DSP_PROFILE_STANDARD_GET
Standard profile (SLG1) for a lot of logs
 
BAL_GLB_AUTHORIZATION_GET
Assign authorization
 
BAL_GLB_AUTHORIZATION_RESET
Reset authorization
 
BAL_GLB_CONFIG_GET
Read configuration
 
BAL_GLB_CONFIG_SET
Set configuration
 
BAL_GLB_MEMORY_EXPORT
Put function group memory in ABAP-MEMORY
 
BAL_GLB_MEMORY_IMPORT
Get function group memory from ABAP-MEMORY
 
BAL_GLB_MEMORY_REFRESH
(Partially) reset global memory
 
BAL_GLB_MEMORY_REFRESH
(Partially) initialize memory
 
BAL_GLB_MSG_CURRENT_HANDLE_GET
Get current message handle
 
BAL_GLB_MSG_DEFAULTS_GET
Get message defaults
 
BAL_GLB_SEARCH_LOG
Find logs in memory
 
BAL_GLB_SEARCH_MSG
Find messages in memory
 
BAL_LOG_CREATE
Create log with header data
 
BAL_LOG_CREATE
Create log with header data
 
BAL_LOG_DELETE
Delete log (from database also at Save)
 
BAL_LOG_EXIST
Check existence of a log in memory
 
BAL_LOG_HDR_CHANGE
Change log header
 
BAL_LOG_HDR_CHECK
Check log header data for consistency
 
BAL_LOG_HDR_READ
Read log header and other data
 
BAL_LOG_MSG_ADD
Put message in log
 
BAL_LOG_MSG_ADD
Put message in log
 
BAL_LOG_MSG_CHANGE
Change message
 
BAL_LOG_MSG_CHANGE
Change message
 
BAL_LOG_MSG_CHECK
Check message data for consistency
 
BAL_LOG_MSG_CUMULATE
Add message cumulated
 
BAL_LOG_MSG_DELETE
Delete message
 
BAL_LOG_MSG_DELETE
Delete message
 
BAL_LOG_MSG_EXIST
Check existence of a message in memory
 
BAL_LOG_MSG_READ
Read message and other data
 
BAL_LOG_MSG_REPLACE
Replace last message
 
BAL_LOG_REFRESH
Delete log from memory
 
BAL_LOG_REFRESH
Delete log from memory
 
BAL_MSG_DISPLAY_ABAP
Output message as ABAP-MESSAGE
 
BAL_OBJECT_SELECT
Read Application Log objects table record
 
BAL_OBJECT_SUBOBJECT
Check whether object and subobject exist and the combination is allowed
 
BAL_SUBOBJECT_SELECT
Read subobject table record
 
BP_EVENT_RAISE
Trigger an event from ABAP/4 program
 
BP_JOBLOG_READ
Fetch job log executions
 
CHANGEDOCUMENT_READ_HEADERS
Get the change document header for a sales document, and put the results in an internal table.
 

Example:
CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
EXPORTING
objectclass = 'EINKBELEG'
objectid = l_objectid
username = space
TABLES
i_cdhdr = lt_cdhdr.
LOOP AT lt_cdhdr WHERE udate IN s_aedat.
CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
EXPORTING
changenumber = lt_cdhdr-changenr
TABLES
editpos = lt_editpos.
LOOP AT lt_editpos WHERE fname = 'LOEKZ'
AND f_new = 'L'.
p_desc = text-r01. " Cancel Contract
ENDLOOP.
ENDLOOP.
CHANGEDOCUMENT_READ_POSITIONS
Get the details of a change document, and store them in an internal table. This will tell you whether a field was changed, deleted, or updated.
 

Example:
CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
EXPORTING
objectclass = 'EINKBELEG'
objectid = l_objectid
username = space
TABLES
i_cdhdr = lt_cdhdr.
LOOP AT lt_cdhdr WHERE udate IN s_aedat.
CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
EXPORTING
changenumber = lt_cdhdr-changenr
TABLES
editpos = lt_editpos.
LOOP AT lt_editpos WHERE fname = 'LOEKZ'
AND f_new = 'L'.
p_desc = text-r01. " Cancel Contract
ENDLOOP.
ENDLOOP.
CLAF_CLASSIFICATION_OF_OBJECTS
Return all of the characteristics for a material
 
CLOI_PUT_SIGN_IN_FRONT
Move the negative sign from the left hand side of a number, to the right hand side of the number. Note that The result will be left justified (like all character fields), not right justifed as numbers normally are.
 
CLPB_EXPORT
Export a text table to the clipboard (on presentation server)
 
CLPB_IMPORT
Import a Text Table from the Clipboard (on presentation server)
 
COMMIT_TEXT
To load long text into SAP
 
CONVERSION_EXIT_ALPHA_INPUT
converts any number into a string fill with zeroes, with the number at the extreme right
 

Example:
input = 123
output = 0000000000000...000000000000123
CONVERSION_EXIT_ALPHA_OUTPUT
converts any number with zeroes right into a simple integer
 

Example:
input = 00000000000123
output = 123
CONVERT_ABAPSPOOLJOB_2_PDF
convert abap spool output to PDF
 
CONVERT_OTF
Convert SAP documents (SAPScript) to other types.
 

Example:
CALL FUNCTION "CONVERT_OTF"
EXPORTING FORMAT = "PDF"
IMPORTING BIN_FILESIZE = FILE_LEN
TABLES OTF = OTFDATA
LINES = PDFDATA
EXCEPTIONS ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
OTHERS = 4.
CONVERT_OTFSPOOLJOB_2_PDF
converts a OTF spool to PDF (i.e. Sapscript document)
 
CONVERT_TO_FOREIGN_CURRENCY
Convert local currency to foreign currency.
 
CONVERT_TO_LOCAL_CURRENCY
Convert from foreign currency to local currency
 
DATE_CHECK_PLAUSIBILITY
Check to see if a date is in a valid format for SAP. Works well when validating dates being passed in from other systems.
 
DATE_COMPUTE_DAY
Returns a number indicating what day of the week the date falls on. Monday is returned as a 1, Tuesday as 2, etc.
 
DATE_GET_WEEK
will return the week that a date is in.
 
DATE_IN_FUTURE
Calculate a date N days in the future.
 
DAY_ATTRIBUTES_GET
Return useful information about a day. Will tell you the day of the week as a word (Tuesday), the day of the week (2 would be Tuedsay), whether the day is a holiday, and more.(provided by Francois Henrotte)
 
DOWNLOAD
download a file to the presentation server (PC)
 
DYNP_VALUES_READ
Read the values from a dynpro. This function can be used to read the values from a report's selection screen too (Another example).
 
DYNP_VALUES_UPDATE
Similar to DYNP_VALUES_READ, this function will allow the updating of fields on a dynpro. Very useful when you want to change a field based on the value entered for another field.
 
ENQUE_SLEEP
Wait a specified period of time before continuing processing.
 
ENQUEUE_ESFUNCTION
Lock an abap program so that it cannot be executed.
 

Example:
Set the parameters as follows:
RELID = 'ZZ'
SRTF2 = 0
SRTF = (your report name)
Please note that you should not use SY-REPID to pass your report name to the function. The value of SY-REPID will change as it is being passed to the function module, and will no longer hold the value of the calling report.
EPS_GET_DIRECTORY_LISTING
return a list of filenames from a local or network drive
 
EPS_GET_FILE_ATTRIBUTES
Pass in a filename and a path, and will return attributes for the file
 
F4_DATE
displays a calendar in a popup window and allows user to choose a date, or it can be displayed read only.
 
F4_IF_FIELD_VALUE_REQUEST
Use values from a DDIC table to provide a list of possible values. TABNAME and FIELDNAME are required fields, and when MULTIPLE_CHOICE is selected, more than one value can be returned.
 
F4IF_INT_TABLE_VALUE_REQUEST
F4 help that returns the values selected in an internal table. Very handy when programming your very own F4 help for a field.
 

Example:
data:
begin of t_values occurs 2,
value like kna1-begru,
end of t_values,
t_return like ddshretval occurs 0 with header line.
t_values = 'PAR*'.
append t_values.
t_values = 'UGG'.
append t_values.
call function 'F4IF_INT_TABLE_VALUE_REQUEST'
exporting
retfield = 'BEGRU'
value_org = 'S'
tables
value_tab = t_values
return_tab = t_return
exceptions
parameter_error = 1
no_values_found = 2
others = 3.
if sy-subrc = 0.
read table t_return index 1.
o_begru-low = t_return-fieldval.
if o_begru-low = 'PAR*'.
o_begru-option = 'CP'.
else.
o_begru-option = 'EQ'.
endif.
o_begru-sign = 'I'.
append o_begru to s_begru.
else.
o_begru = i_begru.
endif.
F4IF_SHLP_EXIT_EXAMPLE
documents the different reasons to use a search help exit, and shows how it is done.
 
F4IP_INT_TABLE_VALUE_REQUEST
This function does not exist in 4.6 and above. Use F4IF_INT_TABLE_VALUE_REQUEST instead.
 
FILENAME_GET
popup to get a filename from a user, returns blank filename if user selects cancel
 
FORMAT_MESSAGE
Takes a message id and number, and puts it into a variable. Works better than WRITE_MESSAGE, since some messages use $ as a place holder, and WRITE_MESSAGE does not accommadate that, it only replaces the ampersands (&) in the message.
 
FTP_COMMAND
Execute a command on the FTP server
 
FTP_CONNECT
Open a connection (and log in) to an FTP server
 
FTP_DISCONNECT
Close the connection (and log off) the FTP server
 
FU CSAP_MAT_BOM_READ
You can use this function module to display simple material BOMs. You cannot display BOM groups (for example, all variants of a variant BOM). as in transaction CS03. Current restrictions: You cannot display long texts. You cannot display sub-items. You cannot display classification data of BOM items for batches. You can only display one alternative or variant. You cannot enter an alternative for module CSAP_MAT_BOM_READ, so you always see alternative 01. The following example came from a posting on the SAP-R3-L mailing list.
 

Example:
data: begin of tstk2 occurs 0.
include structure stko_api02.
data: end of tstk2.
data: begin of tstp2 occurs 0.
include structure stpo_api02.
data: end of tstp2.
data: begin of tdep_data occurs 0.
include structure csdep_data.
data: end of tdep_data.
data: begin of tdep_descr occurs 0.
include structure csdep_descr.
data: end of tdep_descr.
data: begin of tdep_source occurs 0.
include structure csdep_source.
data: end of tdep_source.
data: begin of tdep_order occurs 0.
include structure csdep_order.
data: end of tdep_order.
data: begin of tdep_doc occurs 0.
include structure csdep_doc.
data: end of tdep_doc.
data: flg_warning like capiflag-flwarning.
call function 'CSAP_MAT_BOM_READ'
exporting
material = 'MAT100'
plant = '0001'
bom_usage = '1'
valid_from = '20.12.1996'
  • valid_to
    importing
    fl_warning = flg_warning
    tables
    t_stko = tstk2
    t_stpo = tstp2
    t_dep_data = tdep_data
    t_dep_descr = tdep_descr
    t_dep_source = tdep_source
    t_dep_order = tdep_order
    t_dep_doc = tdep_doc
    exceptions
    error = 1.
Function Group GRAP is now obsolete.
SAP recommends using functions in function group SFES instead. Below is an overview of the changes.
 
G_SET_GET_ALL_VALUES
Fetch values from a set.
 
GET_CURRENT_YEAR
Get the current fiscal year.
 

Example:
CALL FUNCTION 'GET_CURRENT_YEAR'
EXPORTING
BUKRS = '1000' " Company Code
DATE = SY-DATUM " Date to find fiscal year for
IMPORTING
CURRM = w_currm " Current Fiscal Month
CURRY = w_curry " Current Fiscal Year
PREVM = w_prevm " Previous Fiscal Month
PREVY = w_prevy. " Previous Fiscal Year
GET_GLOBAL_SYMBOLS
Returns a list of all tables, select options, texts, etc for a program. Even includes the text definitions for the selection screen
 
GET_INCLUDETAB
Returns a list of all INCLUDES in a program
 
GET_JOB_RUNTIME_INFO
Get the current job number from a program. Also returns other useful info about the current job.
 
GUI_CREATE_DIRECTORY
Create a directory on the presentation server
 
GUI_DELETE_FILE
Replaces WS_FILE_DELETE. Delete a file on the presentation server
 
GUI_DOWNLOAD
Replaces WS_DOWNLOAD. Download table from the app server to presentation server
 
GUI_EXEC
Replaces WS_EXECUTE. Start a File or Program Asynchronously with WinExec
 
GUI_GET_DESKTOP_INFO
Replaces WS_QUERY. Delivers Information About the Desktop (client)
 
GUI_REMOVE_DIRECTORY
Delete a directory on the presentation server
 
GUI_RUN
Start a File or Program Asynchronously with ShellExecute
 
GUI_UPLOAD
Replaces WS_UPLOAD. Upoad file from presentation server to the app server
 
HELP_START
Display help for a field. Useful for doing AT SELECTION SCREEN ON VALUE REQUEST for those fields that do not provide F4 help at the DDIC level.
 
HELP_VALUES_GET_WITH_TABLE
Show a list of possible values for F4 popup help on selection screens. This function module pops up a screen that is just like all the other F4 helps, so it looks like the rest of the SAP system. Very useful for providing dropdowns on fields that do not have them predefined.
 

Example:
tables: t001w.
DATA: lc_werks LIKE t001w-werks,
ltab_fields LIKE help_value OCCURS 0 with header line,
BEGIN OF ltab_values OCCURS 0,
feld(40) TYPE c,
END OF ltab_values.
  • *- *-- Set up fields to retrieve data
    ltab_fields-tabname = 'T001W'.
    ltab_fields-fieldname = 'WERKS'.
    ltab_fields-selectflag = 'X'.
    APPEND ltab_fields.
    ltab_fields-tabname = 'T001W'.
    ltab_fields-fieldname = 'NAME1'.
    ltab_fields-selectflag = space.
    APPEND ltab_fields.
    • *-- Fill values
      select * from t001w.
      ltab_values-feld = t001w-werks.
      append ltab_values.
      ltab_values-feld = t001w-name1.
      append ltab_values.
      endselect.
      CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE'
      EXPORTING
      fieldname = 'WERKS'
      tabname = 'T001W'
      title_in_values_list = 'Select a value'
      IMPORTING
      select_value = lc_werks
      TABLES
      fields = ltab_fields
      valuetab = ltab_values
      EXCEPTIONS
      field_not_in_ddic = 01
      more_then_one_selectfield = 02
      no_selectfield = 03.
HOLIDAY_CHECK_AND_GET_INFO
Useful for determining whether or not a date is a holiday. Give the function a date, and a holiday calendar, and you can determine if the date is a holiday by checking the parameter HOLIDAY_FOUND.
 

Example:
data: ld_date like scal-datum default sy-datum,
lc_holiday_cal_id like scal-hcalid default 'CA',
ltab_holiday_attributes like thol occurs 0 with header line,
lc_holiday_found like scal-indicator.
CALL FUNCTION 'HOLIDAY_CHECK_AND_GET_INFO'
EXPORTING
date = ld_date
holiday_calendar_id = lc_holiday_cal_id
WITH_HOLIDAY_ATTRIBUTES = 'X'
IMPORTING
HOLIDAY_FOUND = lc_holiday_found
tables
holiday_attributes = ltab_holiday_attributes
EXCEPTIONS
CALENDAR_BUFFER_NOT_LOADABLE = 1
DATE_AFTER_RANGE = 2
DATE_BEFORE_RANGE = 3
DATE_INVALID = 4
HOLIDAY_CALENDAR_ID_MISSING = 5
HOLIDAY_CALENDAR_NOT_FOUND = 6
OTHERS = 7.
if sy-subrc = 0 and
lc_holiday_found = 'X'.
write: / ld_date, 'is a holiday'.
else.
write: / ld_date, 'is not a holiday, or there was an error calling the function'.
endif.
HOLIDAY_GET
Provides a table of all the holidays based upon a Factory Calendar &/ Holiday Calendar.
 
HR_DISPLAY_BASIC_LIST
is an HR function, but can be used for any data. You pass it data, and column headers, and it provides a table control with the ability to manipulate the data, and send it to Word or Excel. Also see the additional documentation here.
 
HR_GET_LEAVE_DATA
Get all leave information (includes leave entitlement, used holidays/paid out holidays)
 
HR_IE_NUM_PRSI_WEEKS
Return the number of weeks between two dates.
 
HR_PAYROLL_PERIODS_GET
Get the payroll period for a particular date. (provided by Francois Henrotte)
 

Example:
DATA: IT_T549Q TYPE T549Q OCCURS 0 WITH HEADER LINE,
IT_ZL TYPE PC2BF OCCURS 0 WITH HEADER LINE.
W_BEGDA = '20010101'.
W_PERNR = '00000001'.
CALL FUNCTION 'HR_PAYROLL_PERIODS_GET'
EXPORTING
get_begda = w_begda
TABLES
get_periods = it_t549q
EXCEPTIONS
no_period_found = 1
no_valid_permo = 2.
CHECK sy-subrc = 0.
CALL FUNCTION 'HR_TIME_RESULTS_GET'
EXPORTING
get_pernr = w_pernr
get_pabrj = it_t549q-pabrj
get_pabrp = it_t549q-pabrp
TABLES
get_zl = it_zl
EXCEPTIONS
no_period_specified = 1
wrong_cluster_version = 2
no_read_authority = 3
cluster_archived = 4
technical_error = 5.
NOTE: it_zl-iftyp = 'A' absence
it_zl-iftyp = 'S' at work
HR_TIME_RESULTS_GET
Get the time results for a payroll period. (provided by Francois Henrotte)
 

Example:
DATA: IT_T549Q TYPE T549Q OCCURS 0 WITH HEADER LINE,
IT_ZL TYPE PC2BF OCCURS 0 WITH HEADER LINE.
W_BEGDA = '20010101'.
W_PERNR = '00000001'.
CALL FUNCTION 'HR_PAYROLL_PERIODS_GET'
EXPORTING
get_begda = w_begda
TABLES
get_periods = it_t549q
EXCEPTIONS
no_period_found = 1
no_valid_permo = 2.
CHECK sy-subrc = 0.
CALL FUNCTION 'HR_TIME_RESULTS_GET'
EXPORTING
get_pernr = w_pernr
get_pabrj = it_t549q-pabrj
get_pabrp = it_t549q-pabrp
TABLES
get_zl = it_zl
EXCEPTIONS
no_period_specified = 1
wrong_cluster_version = 2
no_read_authority = 3
cluster_archived = 4
technical_error = 5.
NOTE: it_zl-iftyp = 'A' absence
it_zl-iftyp = 'S' at work
INIT_TEXT
To load long text into SAP
 
K_WERKS_OF_BUKRS_FIND
Return a list of all plants for a given company code.
 
LIST_FROM_MEMORY
Retrieves the output of a report from memory when the report was executed using SUBMIT... EXPORTING LIST TO MEMORY. See also WRITE_LIST.
 
LIST_TO_ASCII
convert an ABAP report (displayed on screen) from OTF to ASCII format
 
MBEW_EXTEND
Get the stock position for the previous month. This displays the same info that you see in MM03.
 
MONTH_NAMES_GET
It returns all the month and names in repective language.
 
MONTH_PLUS_DETERMINE
Add or subtract months from a date. To subtract a month, enter a negative value for the 'months' parameter.
 

Example:
data: new_date type d.
CALL FUNCTION 'MONTH_PLUS_DETERMINE'
EXPORTING
months = -5 " Negative to subtract from old date, positive to add
olddate = sy-datum
IMPORTING
NEWDATE = new_date.
write: / new_date.
MS_EXCEL_OLE_STANDARD_OLE
will build a file, and automatically start Excel
 
OTF_CONVERT
wraps several other function modules. Will convert OTF to ASCII or PDF
 
POPUP_TO_CONFIRM_LOSS_OF_DATA
Create a dialog box in which you make a question whether the user wishes to perform a processing step with loss of data.
 
POPUP_TO_CONFIRM_STEP
Create a dialog box in which you make a question whether the user wishes to perform the step.
 
POPUP_TO_CONFIRM_WITH_MESSAGE
Create a dialog box in which you inform the user about a specific decision point during an action.
 
POPUP_TO_CONFIRM_WITH_VALUE
Create a dialog box in which you make a question whether the user wishes to perform a processing step with a particular object.
 
POPUP_TO_DECIDE
Provide user with several choices as radio buttons
 
POPUP_TO_DECIDE_WITH_MESSAGE
Create a dialog box in which you inform the user about a specific decision point via a diagnosis text.
 
POPUP_TO_DISPLAY_TEXT
Create a dialog box in which you display a two line message
 
POPUP_TO_SELECT_MONTH
Popup to choose a month
 
POPUP_WITH_TABLE_DISPLAY
Provide a display of a table for user to select one, with the value of the table line returned when selected.
 
PRICING
Return pricing conditions in an internal table. Use structure TCOMK for parameter COMM_HEAD_1, and structure TCOMP for parameter COMM_ITEM_1, and set CALCULATION_TYPE to B. The pricing conditions will be returned in XOMV. You must fill TCOMP, and TCOMK with the appropriate values before callling the function in order for it to work.
 
PROFILE_GET
Read an Entry in an INI File on the frontend
 
PROFILE_SET
Write an Entry in an INI File on the frontend
 
READ_TEXT
To load long text into SAP
 
REGISTRY_GET
Read an Entry from the Registry
 
REGISTRY_SET
Set an entry in the Registry
 
RFC_ABAP_INSTALL_AND_RUN
Runs an ABAP program that is stored in the table PROGRAM when the MODE = 'F'. Table WRITES contains the ouput of the program. Allows you to run a program without having the source code in the target system.
 
RH_GET_ACTIVE_WF_PLVAR
Return the active HR Plan
 
RH_GET_DATE_DAYNAME
return the day based on the date provied
 
RH_START_EXCEL_WITH_DATA
starts Excel with the contents of an internal table. This function finds Excel in the desktop registry. It also uses a local PC working directory to save the file (that's what the 'W' value for data path flag does). Very transparent to user!
 
RH_STRUC_GET
Returns all related org info
 
RHP0_POPUP_F4_SEARK
is a matchcode for any type of HR Planning object, including the possibility to fill the field that you want
 

Example:
Examples: search for any organizational structure
F4 = 'X'
PLVAR = '01'
OTYPE = 'O '
search for any persons
F4 = 'X'
PLVAR = '01'
OTYPE = 'P '
MULTI_SELECT = 'X' to allow multiple selection
EASY = 'X' for user-dependent matchcode
Unfortunately, the use of table BASE_OBJIDS is disabled, so you can't specify
a root for the hierarchy you display
RKD_WORD_WRAP
Convert a long string or phrase into several lines.
 
RP_CALC_DATE_IN_INTERVAL
Add/subtract years/months/days from a date
 
RP_LAST_DAY_OF_MONTHS
Determine last day of month
 
RPY_DYNPRO_READ
Read dynpro, including screen flow
 
RPY_TRANSACTION_READ
Given a transaction, return the program and screen or given a program and screen, return the transactions that use the program and screen.
 
RS_COVERPAGE_SELECTIONS
Returns an internal table that contains a formatted list of all the selection parameters entered for a report. Table is ready to print out.
 
RS_REFRESH_FROM_SELECTOPTIONS
Get the current contents of selection screen
 
RS_SEND_MAIL_FOR_SPOOLLIST
Send message from ABAP/4 program to SAPoffice.
 
RS_VARIANT_CONTENTS
Returns the contents of the specified variant in a table.
 
RSPO_DOWNLOAD_SPOOLJOB
Download the spool from a program to a file. Requires spool number.
 
RSPO_RETURN_ABAP_SPOOLJOB
Fetch printer spool according to the spool number informed.
 
RZL_READ_DIR
If the server name is left blank, it reads a directory from local presentation server, otherwise it reads the directory of the remote server
 
RZL_READ_DIR_LOCAL
Read a directory on the Application Server
 
RZL_READ_FILE
Read a file from the presentation server if no server name is given, or read file from remote server. Very useful to avoid authority checks that occur doing an OPEN DATASET. This function using a SAP C program to read the data.
 
RZL_SLEEP
Hang the current application from 1 to 5 seconds.
 
RZL_SUBMIT
Submit a remote report.
 
RZL_WRITE_FILE_LOCAL
Saves table to the presentation server (not PC). Does not use OPEN DATASET, so it does not suffer from authority checks!
 
SAP_CONVERT_TO_XLS_FORMAT
Convert data to Microsoft Excel format.
 
SAPGUI_PROGRESS_INDICATOR
Display a progress bar on the SAP GUI, and give the user some idea of what is happening
 
SAVE_TEXT
To load long text into SAP
 
SCROLLING_IN_TABLE
If you are coding a module pool and using a table control, you can use this function SCROLLING_IN_TABLE to handle any scrolling. (provided by Paul Kjaer)
 
SD_DATETIME_DIFFERENCE
Give the difference in Days and Time for 2 dates
 
SO_NEW_DOCUMENT_ATT_SEND_API1
Send a document as part of an email. The documentation is better than normal for this function, so please read it.
 
SO_SPLIT_FILE_AND_PATH
Split a fully pathed filename into a filename and a path.
 
SO_SPOOL_READ
Fetch printer spool according to the spool number informed. See also RSPO_RETURN_ABAP_SPOOLJOB
 
SO_WIND_SPOOL_LIST
Browse printer spool numbers according to user informed.
 
SWD_HELP_F4_ORG_OBJECTS
HR Matchcode tailored for organizational units. Includes a button so that you can browse the hierarchy too.
 
SX_OBJECT_CONVERT_OTF_PDF
Conversion From OTF to PDF (SAPScript conversion)
 
SX_OBJECT_CONVERT_OTF_PRT
Conversion From OTF to Printer Format (SAPScript conversion)
 
SX_OBJECT_CONVERT_OTF_RAW
Conversion From OTF to ASCII (SAPScript conversion)
 
SXPG_CALL_SYSTEM
you can check the user's authorization for the specified command and run the command. The command runs on the host system on which the function module is executed. The function module is RFC capable. It can therefore be run on the host system at which a user happens to be active or on another designated host system at which an R/3 server is active.
 
SXPG_COMMAND_CHECK
Check whether the user is authorized to execute the specified command on the target host system with the specified arguments.
 
SXPG_COMMAND_DEFINITION_GET
Read the definition of a single external OS command from the R/3 System's database.
 
SXPG_COMMAND_EXECUTE
Check a user's authorization to use a command, as in SXPG_COMMAND_CHECK. If the authorization check is successful, then execute the command on the target host system.
 
SXPG_COMMAND_LIST_GET
Select a list of external OS command definitions.
 
TERMINAL_ID_GET
Return the terminal id
 
TH_DELETE_USER
Logoff a user. Similar results to using SM04.
 
TH_ENVIRONMENT
Get the UNIX environment
 
TH_POPUP
Display a popup system message on a specific users screen.
 
TH_REMOTE_TRANSACTION
Run a transaction on a remote server. Optionally provide BDC data to be used in the transaction
 
TH_USER_INFO
Give information about the current user (sessions, workstation logged in from, etc)
 
TH_USER_LIST
Show which users are logged into an app server
 
TMP_GUI_DIRECTORY_LIST_FILES
Retrieve all of the files and subdirectories on the Presentation Server (PC) for a given directory.
 
When a value other than * or *.* is used for the filter, you will not get any directories, unless they match your wildcard filter. For example, if you entered *.png, then only files and directories that end in png will be returned by the function.

Example:
data: lc_directory like bdschko16-target_dir value 'C:\TEMP\',
lc_filter(20) type c default '.'.
li_file_count type i,
li_dir_count type i,
ltab_dir_table like sdokpath occurs 0 with header line,
ltab_file_file_table like sdokpath occurs 0 with header line.

call function 'TMP_GUI_DIRECTORY_LIST_FILES'
exporting
directory = lc_directory
filter = lc_filter importing
file_count = li_file_count
dir_count = li_dir_count
tables
file_table = ltab_file_table
dir_table = ltab_dir_table
exceptions
cntl_error = 1
others = 2. |

UNIT_CONVERSION_SIMPLE
convert weights from one UOM to another.
 
UPLOAD
upload a file to the presentation server (PC)
 
UPLOAD_FILES
Will load one or more files from app or presentation server
 
WEEK_GET_FIRST_DAY
For a given week (YYYYMM format), this function returns the date of the Monday of that week.
 
WRITE_LIST
Useful for writing out the list contents that result from the function LIST_FROM_MEMORY.
 
WS_DOWNLOAD
Save Internal Table as File on the Presentation Server
 
WS_EXCEL
Start EXCEL on the PC
 
WS_EXECUTE
execute a program on a windows PC
 
WS_FILE_DELETE
Delete File at the Frontend
 
WS_FILENAME_GET
Call File Selector
 
WS_MSG
Create a dialog box in which you display an one line message
 
WS_UPLOAD
Load Files from the Presentation Server to Internal ABAP Tables
 
WS_VOLUME_GET
Get the label from a frontend device.
 
WWW_LIST_TO_HTML
After running a report, call this function to convert the list output to HTML.  

ABAP_DOCU_DOWNLOAD
Download ABAP documentation in HTML format.
 
APPL_LOG_DELETE
With this function module you delete logs in the database according to specified selection conditions
 
APPL_LOG_DISPLAY
With this function module you can analyze logs in the database.
 
APPL_LOG_DISPLAY_INTERN
With this function module you can analyze logs in local memory, e.g. when you have only collected log records at runtime and do not want to write to the database.
 
APPL_LOG_INIT
This function module checks whether the specified object or sub-object exists and deletes all existing associated data in local memory.
 
APPL_LOG_READ_DB
With this function module you read the log data in the database for an object or sub-object according to specified selection conditions.
 
APPL_LOG_READ_INTERN
With this function module you read all log data whose log class has at least the specified value, from local memory, for the specified object or sub-object.
 
APPL_LOG_SET_OBJECT
With this function module, you create a new object or sub-object for writing in local memory. With a flag you can control whether the APPL_LOG_WRITE_... messages are written in local memory or are output on the screen.
 
APPL_LOG_WRITE_DB
With this function module you write all data for the specified object or sub-object in local memory to the database. If the log for the object or sub-object in question is new, the log number is returned to the calling program.
 
APPL_LOG_WRITE_HEADER
With this function module, you write the log header data in local memory.
 
APPL_LOG_WRITE_LOG_PARAMETERS
With this function module, you write the name of the log parameters and the associated values for the specified object or sub-object in local memory. If this function module is called repeatedly for the same object or sub-object, the existing parameters are updated accordingly. If you do not specify an object or sub-object with the call, the most recently used is assumed.
 
APPL_LOG_WRITE_MESSAGE_PARAMS
With this function module you write a single message, with parameters, in local memory. Otherwise the function module works like APPL_LOG_WRITE_SINGLE_MESSAGE.
 
APPL_LOG_WRITE_MESSAGES
With this function module you write one or more messages, without parameters, in local memory.
 
APPL_LOG_WRITE_SINGLE_MESSAGE
With this function module you write a single message, without parameters, in local memory. If no header entry has yet been written for the object or sub-object, it is created. If you do not specify an object or sub-object with the call, the most recently used is assumed.
 
ARFC_GET_TID
will return the IP address of the terminal in hex.
 
BAL_CNTL_CREATE
Create Control for log display
 
BAL_CNTL_FREE
Release Control
 
BAL_CNTL_REFRESH
Put new data in log display
 
BAL_DB_DELETE
Delete logs from the database
 
BAL_DB_DEQUEUE
Unlock log
 
BAL_DB_ENQUEUE
Lock log
 
BAL_DB_LOAD
Load logs from the database
 
BAL_DB_LOAD
Load log(s)
 
BAL_DB_SAVE
Save logs in the database
 
BAL_DB_SAVE
Save log(s)
 
BAL_DB_SAVE_PREPARE
Prepare save
 
BAL_DB_SEARCH
Find logs in the database
 
BAL_DSP_LOG_DISPLAY
Display messages in memory
 
BAL_DSP_LOG_DISPLAY
Display Log
 
BAL_DSP_LOG_PARAMETERS
Either output extended long text or call a callback routine (based on the data in BAL_S_LOG-PARAMS)
 
BAL_DSP_LOG_TECHNICAL_DATA
Output all log header data
 
BAL_DSP_MSG_LONGTEXT
Display message long text
 
BAL_DSP_MSG_PARAMETERS
Either output extended long text or call a callback routine (based on the data in BAL_S_MSG-PARAMS)
 
BAL_DSP_MSG_TECHNICAL_DATA
Output technical data of a message such as work area, error number, etc.
 
BAL_DSP_OUTPUT_FREE
End output
 
BAL_DSP_OUTPUT_INIT
Initialize output
 
BAL_DSP_OUTPUT_SET_DATA
Set dataset to be displayed
 
BAL_DSP_PROFILE_DETLEVEL_GET
Message hierarchy in DETLEVEL
 
BAL_DSP_PROFILE_NO_TREE_GET
Display without tree (fullscreen)
 
BAL_DSP_PROFILE_POPUP_GET
Display without tree (popup)
 
BAL_DSP_PROFILE_SINGLE_LOG_GET
Standard profile (SLG1) for one log
 
BAL_DSP_PROFILE_STANDARD_GET
Standard profile (SLG1) for a lot of logs
 
BAL_GLB_AUTHORIZATION_GET
Assign authorization
 
BAL_GLB_AUTHORIZATION_RESET
Reset authorization
 
BAL_GLB_CONFIG_GET
Read configuration
 
BAL_GLB_CONFIG_SET
Set configuration
 
BAL_GLB_MEMORY_EXPORT
Put function group memory in ABAP-MEMORY
 
BAL_GLB_MEMORY_IMPORT
Get function group memory from ABAP-MEMORY
 
BAL_GLB_MEMORY_REFRESH
(Partially) reset global memory
 
BAL_GLB_MEMORY_REFRESH
(Partially) initialize memory
 
BAL_GLB_MSG_CURRENT_HANDLE_GET
Get current message handle
 
BAL_GLB_MSG_DEFAULTS_GET
Get message defaults
 
BAL_GLB_SEARCH_LOG
Find logs in memory
 
BAL_GLB_SEARCH_MSG
Find messages in memory
 
BAL_LOG_CREATE
Create log with header data
 
BAL_LOG_CREATE
Create log with header data
 
BAL_LOG_DELETE
Delete log (from database also at Save)
 
BAL_LOG_EXIST
Check existence of a log in memory
 
BAL_LOG_HDR_CHANGE
Change log header
 
BAL_LOG_HDR_CHECK
Check log header data for consistency
 
BAL_LOG_HDR_READ
Read log header and other data
 
BAL_LOG_MSG_ADD
Put message in log
 
BAL_LOG_MSG_ADD
Put message in log
 
BAL_LOG_MSG_CHANGE
Change message
 
BAL_LOG_MSG_CHANGE
Change message
 
BAL_LOG_MSG_CHECK
Check message data for consistency
 
BAL_LOG_MSG_CUMULATE
Add message cumulated
 
BAL_LOG_MSG_DELETE
Delete message
 
BAL_LOG_MSG_DELETE
Delete message
 
BAL_LOG_MSG_EXIST
Check existence of a message in memory
 
BAL_LOG_MSG_READ
Read message and other data
 
BAL_LOG_MSG_REPLACE
Replace last message
 
BAL_LOG_REFRESH
Delete log from memory
 
BAL_LOG_REFRESH
Delete log from memory
 
BAL_MSG_DISPLAY_ABAP
Output message as ABAP-MESSAGE
 
BAL_OBJECT_SELECT
Read Application Log objects table record
 
BAL_OBJECT_SUBOBJECT
Check whether object and subobject exist and the combination is allowed
 
BAL_SUBOBJECT_SELECT
Read subobject table record
 
BP_EVENT_RAISE
Trigger an event from ABAP/4 program
 
BP_JOBLOG_READ
Fetch job log executions
 
CHANGEDOCUMENT_READ_HEADERS
Get the change document header for a sales document, and put the results in an internal table.
 

Example:
CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
EXPORTING
objectclass = 'EINKBELEG'
objectid = l_objectid
username = space
TABLES
i_cdhdr = lt_cdhdr.
LOOP AT lt_cdhdr WHERE udate IN s_aedat.
CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
EXPORTING
changenumber = lt_cdhdr-changenr
TABLES
editpos = lt_editpos.
LOOP AT lt_editpos WHERE fname = 'LOEKZ'
AND f_new = 'L'.
p_desc = text-r01. " Cancel Contract
ENDLOOP.
ENDLOOP.
CHANGEDOCUMENT_READ_POSITIONS
Get the details of a change document, and store them in an internal table. This will tell you whether a field was changed, deleted, or updated.
 

Example:
CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
EXPORTING
objectclass = 'EINKBELEG'
objectid = l_objectid
username = space
TABLES
i_cdhdr = lt_cdhdr.
LOOP AT lt_cdhdr WHERE udate IN s_aedat.
CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
EXPORTING
changenumber = lt_cdhdr-changenr
TABLES
editpos = lt_editpos.
LOOP AT lt_editpos WHERE fname = 'LOEKZ'
AND f_new = 'L'.
p_desc = text-r01. " Cancel Contract
ENDLOOP.
ENDLOOP.
CLAF_CLASSIFICATION_OF_OBJECTS
Return all of the characteristics for a material
 
CLOI_PUT_SIGN_IN_FRONT
Move the negative sign from the left hand side of a number, to the right hand side of the number. Note that The result will be left justified (like all character fields), not right justifed as numbers normally are.
 
CLPB_EXPORT
Export a text table to the clipboard (on presentation server)
 
CLPB_IMPORT
Import a Text Table from the Clipboard (on presentation server)
 
COMMIT_TEXT
To load long text into SAP
 
CONVERSION_EXIT_ALPHA_INPUT
converts any number into a string fill with zeroes, with the number at the extreme right
 

Example:
input = 123
output = 0000000000000...000000000000123
CONVERSION_EXIT_ALPHA_OUTPUT
converts any number with zeroes right into a simple integer
 

Example:
input = 00000000000123
output = 123
CONVERT_ABAPSPOOLJOB_2_PDF
convert abap spool output to PDF
 
CONVERT_OTF
Convert SAP documents (SAPScript) to other types.
 

Example:
CALL FUNCTION "CONVERT_OTF"
EXPORTING FORMAT = "PDF"
IMPORTING BIN_FILESIZE = FILE_LEN
TABLES OTF = OTFDATA
LINES = PDFDATA
EXCEPTIONS ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
OTHERS = 4.
CONVERT_OTFSPOOLJOB_2_PDF
converts a OTF spool to PDF (i.e. Sapscript document)
 
CONVERT_TO_FOREIGN_CURRENCY
Convert local currency to foreign currency.
 
CONVERT_TO_LOCAL_CURRENCY
Convert from foreign currency to local currency
 
DATE_CHECK_PLAUSIBILITY
Check to see if a date is in a valid format for SAP. Works well when validating dates being passed in from other systems.
 
DATE_COMPUTE_DAY
Returns a number indicating what day of the week the date falls on. Monday is returned as a 1, Tuesday as 2, etc.
 
DATE_GET_WEEK
will return the week that a date is in.
 
DATE_IN_FUTURE
Calculate a date N days in the future.
 
DAY_ATTRIBUTES_GET
Return useful information about a day. Will tell you the day of the week as a word (Tuesday), the day of the week (2 would be Tuedsay), whether the day is a holiday, and more.(provided by Francois Henrotte)
 
DOWNLOAD
download a file to the presentation server (PC)
 
DYNP_VALUES_READ
Read the values from a dynpro. This function can be used to read the values from a report's selection screen too (Another example).
 
DYNP_VALUES_UPDATE
Similar to DYNP_VALUES_READ, this function will allow the updating of fields on a dynpro. Very useful when you want to change a field based on the value entered for another field.
 
ENQUE_SLEEP
Wait a specified period of time before continuing processing.
 
ENQUEUE_ESFUNCTION
Lock an abap program so that it cannot be executed.
 

Example:
Set the parameters as follows:
RELID = 'ZZ'
SRTF2 = 0
SRTF = (your report name)
Please note that you should not use SY-REPID to pass your report name to the function. The value of SY-REPID will change as it is being passed to the function module, and will no longer hold the value of the calling report.
EPS_GET_DIRECTORY_LISTING
return a list of filenames from a local or network drive
 
EPS_GET_FILE_ATTRIBUTES
Pass in a filename and a path, and will return attributes for the file
 
F4_DATE
displays a calendar in a popup window and allows user to choose a date, or it can be displayed read only.
 
F4_IF_FIELD_VALUE_REQUEST
Use values from a DDIC table to provide a list of possible values. TABNAME and FIELDNAME are required fields, and when MULTIPLE_CHOICE is selected, more than one value can be returned.
 
F4IF_INT_TABLE_VALUE_REQUEST
F4 help that returns the values selected in an internal table. Very handy when programming your very own F4 help for a field.
 

Example:
data:
begin of t_values occurs 2,
value like kna1-begru,
end of t_values,
t_return like ddshretval occurs 0 with header line.
t_values = 'PAR*'.
append t_values.
t_values = 'UGG'.
append t_values.
call function 'F4IF_INT_TABLE_VALUE_REQUEST'
exporting
retfield = 'BEGRU'
value_org = 'S'
tables
value_tab = t_values
return_tab = t_return
exceptions
parameter_error = 1
no_values_found = 2
others = 3.
if sy-subrc = 0.
read table t_return index 1.
o_begru-low = t_return-fieldval.
if o_begru-low = 'PAR*'.
o_begru-option = 'CP'.
else.
o_begru-option = 'EQ'.
endif.
o_begru-sign = 'I'.
append o_begru to s_begru.
else.
o_begru = i_begru.
endif.
F4IF_SHLP_EXIT_EXAMPLE
documents the different reasons to use a search help exit, and shows how it is done.
 
F4IP_INT_TABLE_VALUE_REQUEST
This function does not exist in 4.6 and above. Use F4IF_INT_TABLE_VALUE_REQUEST instead.
 
FILENAME_GET
popup to get a filename from a user, returns blank filename if user selects cancel
 
FORMAT_MESSAGE
Takes a message id and number, and puts it into a variable. Works better than WRITE_MESSAGE, since some messages use $ as a place holder, and WRITE_MESSAGE does not accommadate that, it only replaces the ampersands (&) in the message.
 
FTP_COMMAND
Execute a command on the FTP server
 
FTP_CONNECT
Open a connection (and log in) to an FTP server
 
FTP_DISCONNECT
Close the connection (and log off) the FTP server
 
FU CSAP_MAT_BOM_READ
You can use this function module to display simple material BOMs. You cannot display BOM groups (for example, all variants of a variant BOM). as in transaction CS03. Current restrictions: You cannot display long texts. You cannot display sub-items. You cannot display classification data of BOM items for batches. You can only display one alternative or variant. You cannot enter an alternative for module CSAP_MAT_BOM_READ, so you always see alternative 01. The following example came from a posting on the SAP-R3-L mailing list.
 

Example:
data: begin of tstk2 occurs 0.
include structure stko_api02.
data: end of tstk2.
data: begin of tstp2 occurs 0.
include structure stpo_api02.
data: end of tstp2.
data: begin of tdep_data occurs 0.
include structure csdep_data.
data: end of tdep_data.
data: begin of tdep_descr occurs 0.
include structure csdep_descr.
data: end of tdep_descr.
data: begin of tdep_source occurs 0.
include structure csdep_source.
data: end of tdep_source.
data: begin of tdep_order occurs 0.
include structure csdep_order.
data: end of tdep_order.
data: begin of tdep_doc occurs 0.
include structure csdep_doc.
data: end of tdep_doc.
data: flg_warning like capiflag-flwarning.
call function 'CSAP_MAT_BOM_READ'
exporting
material = 'MAT100'
plant = '0001'
bom_usage = '1'
valid_from = '20.12.1996'
  • valid_to
    importing
    fl_warning = flg_warning
    tables
    t_stko = tstk2
    t_stpo = tstp2
    t_dep_data = tdep_data
    t_dep_descr = tdep_descr
    t_dep_source = tdep_source
    t_dep_order = tdep_order
    t_dep_doc = tdep_doc
    exceptions
    error = 1.
Function Group GRAP is now obsolete.
SAP recommends using functions in function group SFES instead. Below is an overview of the changes.
 
G_SET_GET_ALL_VALUES
Fetch values from a set.
 
GET_CURRENT_YEAR
Get the current fiscal year.
 

Example:
CALL FUNCTION 'GET_CURRENT_YEAR'
EXPORTING
BUKRS = '1000' " Company Code
DATE = SY-DATUM " Date to find fiscal year for
IMPORTING
CURRM = w_currm " Current Fiscal Month
CURRY = w_curry " Current Fiscal Year
PREVM = w_prevm " Previous Fiscal Month
PREVY = w_prevy. " Previous Fiscal Year
GET_GLOBAL_SYMBOLS
Returns a list of all tables, select options, texts, etc for a program. Even includes the text definitions for the selection screen
 
GET_INCLUDETAB
Returns a list of all INCLUDES in a program
 
GET_JOB_RUNTIME_INFO
Get the current job number from a program. Also returns other useful info about the current job.
 
GUI_CREATE_DIRECTORY
Create a directory on the presentation server
 
GUI_DELETE_FILE
Replaces WS_FILE_DELETE. Delete a file on the presentation server
 
GUI_DOWNLOAD
Replaces WS_DOWNLOAD. Download table from the app server to presentation server
 
GUI_EXEC
Replaces WS_EXECUTE. Start a File or Program Asynchronously with WinExec
 
GUI_GET_DESKTOP_INFO
Replaces WS_QUERY. Delivers Information About the Desktop (client)
 
GUI_REMOVE_DIRECTORY
Delete a directory on the presentation server
 
GUI_RUN
Start a File or Program Asynchronously with ShellExecute
 
GUI_UPLOAD
Replaces WS_UPLOAD. Upoad file from presentation server to the app server
 
HELP_START
Display help for a field. Useful for doing AT SELECTION SCREEN ON VALUE REQUEST for those fields that do not provide F4 help at the DDIC level.
 
HELP_VALUES_GET_WITH_TABLE
Show a list of possible values for F4 popup help on selection screens. This function module pops up a screen that is just like all the other F4 helps, so it looks like the rest of the SAP system. Very useful for providing dropdowns on fields that do not have them predefined.
 

Example:
tables: t001w.
DATA: lc_werks LIKE t001w-werks,
ltab_fields LIKE help_value OCCURS 0 with header line,
BEGIN OF ltab_values OCCURS 0,
feld(40) TYPE c,
END OF ltab_values.
  • *- *-- Set up fields to retrieve data
    ltab_fields-tabname = 'T001W'.
    ltab_fields-fieldname = 'WERKS'.
    ltab_fields-selectflag = 'X'.
    APPEND ltab_fields.
    ltab_fields-tabname = 'T001W'.
    ltab_fields-fieldname = 'NAME1'.
    ltab_fields-selectflag = space.
    APPEND ltab_fields.
    • *-- Fill values
      select * from t001w.
      ltab_values-feld = t001w-werks.
      append ltab_values.
      ltab_values-feld = t001w-name1.
      append ltab_values.
      endselect.
      CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE'
      EXPORTING
      fieldname = 'WERKS'
      tabname = 'T001W'
      title_in_values_list = 'Select a value'
      IMPORTING
      select_value = lc_werks
      TABLES
      fields = ltab_fields
      valuetab = ltab_values
      EXCEPTIONS
      field_not_in_ddic = 01
      more_then_one_selectfield = 02
      no_selectfield = 03.
HOLIDAY_CHECK_AND_GET_INFO
Useful for determining whether or not a date is a holiday. Give the function a date, and a holiday calendar, and you can determine if the date is a holiday by checking the parameter HOLIDAY_FOUND.
 

Example:
data: ld_date like scal-datum default sy-datum,
lc_holiday_cal_id like scal-hcalid default 'CA',
ltab_holiday_attributes like thol occurs 0 with header line,
lc_holiday_found like scal-indicator.
CALL FUNCTION 'HOLIDAY_CHECK_AND_GET_INFO'
EXPORTING
date = ld_date
holiday_calendar_id = lc_holiday_cal_id
WITH_HOLIDAY_ATTRIBUTES = 'X'
IMPORTING
HOLIDAY_FOUND = lc_holiday_found
tables
holiday_attributes = ltab_holiday_attributes
EXCEPTIONS
CALENDAR_BUFFER_NOT_LOADABLE = 1
DATE_AFTER_RANGE = 2
DATE_BEFORE_RANGE = 3
DATE_INVALID = 4
HOLIDAY_CALENDAR_ID_MISSING = 5
HOLIDAY_CALENDAR_NOT_FOUND = 6
OTHERS = 7.
if sy-subrc = 0 and
lc_holiday_found = 'X'.
write: / ld_date, 'is a holiday'.
else.
write: / ld_date, 'is not a holiday, or there was an error calling the function'.
endif.
HOLIDAY_GET
Provides a table of all the holidays based upon a Factory Calendar &/ Holiday Calendar.
 
HR_DISPLAY_BASIC_LIST
is an HR function, but can be used for any data. You pass it data, and column headers, and it provides a table control with the ability to manipulate the data, and send it to Word or Excel. Also see the additional documentation here.
 
HR_GET_LEAVE_DATA
Get all leave information (includes leave entitlement, used holidays/paid out holidays)
 
HR_IE_NUM_PRSI_WEEKS
Return the number of weeks between two dates.
 
HR_PAYROLL_PERIODS_GET
Get the payroll period for a particular date. (provided by Francois Henrotte)
 

Example:
DATA: IT_T549Q TYPE T549Q OCCURS 0 WITH HEADER LINE,
IT_ZL TYPE PC2BF OCCURS 0 WITH HEADER LINE.
W_BEGDA = '20010101'.
W_PERNR = '00000001'.
CALL FUNCTION 'HR_PAYROLL_PERIODS_GET'
EXPORTING
get_begda = w_begda
TABLES
get_periods = it_t549q
EXCEPTIONS
no_period_found = 1
no_valid_permo = 2.
CHECK sy-subrc = 0.
CALL FUNCTION 'HR_TIME_RESULTS_GET'
EXPORTING
get_pernr = w_pernr
get_pabrj = it_t549q-pabrj
get_pabrp = it_t549q-pabrp
TABLES
get_zl = it_zl
EXCEPTIONS
no_period_specified = 1
wrong_cluster_version = 2
no_read_authority = 3
cluster_archived = 4
technical_error = 5.
NOTE: it_zl-iftyp = 'A' absence
it_zl-iftyp = 'S' at work
HR_TIME_RESULTS_GET
Get the time results for a payroll period. (provided by Francois Henrotte)
 

Example:
DATA: IT_T549Q TYPE T549Q OCCURS 0 WITH HEADER LINE,
IT_ZL TYPE PC2BF OCCURS 0 WITH HEADER LINE.
W_BEGDA = '20010101'.
W_PERNR = '00000001'.
CALL FUNCTION 'HR_PAYROLL_PERIODS_GET'
EXPORTING
get_begda = w_begda
TABLES
get_periods = it_t549q
EXCEPTIONS
no_period_found = 1
no_valid_permo = 2.
CHECK sy-subrc = 0.
CALL FUNCTION 'HR_TIME_RESULTS_GET'
EXPORTING
get_pernr = w_pernr
get_pabrj = it_t549q-pabrj
get_pabrp = it_t549q-pabrp
TABLES
get_zl = it_zl
EXCEPTIONS
no_period_specified = 1
wrong_cluster_version = 2
no_read_authority = 3
cluster_archived = 4
technical_error = 5.
NOTE: it_zl-iftyp = 'A' absence
it_zl-iftyp = 'S' at work
INIT_TEXT
To load long text into SAP
 
K_WERKS_OF_BUKRS_FIND
Return a list of all plants for a given company code.
 
LIST_FROM_MEMORY
Retrieves the output of a report from memory when the report was executed using SUBMIT... EXPORTING LIST TO MEMORY. See also WRITE_LIST.
 
LIST_TO_ASCII
convert an ABAP report (displayed on screen) from OTF to ASCII format
 
MBEW_EXTEND
Get the stock position for the previous month. This displays the same info that you see in MM03.
 
MONTH_NAMES_GET
It returns all the month and names in repective language.
 
MONTH_PLUS_DETERMINE
Add or subtract months from a date. To subtract a month, enter a negative value for the 'months' parameter.
 

Example:
data: new_date type d.
CALL FUNCTION 'MONTH_PLUS_DETERMINE'
EXPORTING
months = -5 " Negative to subtract from old date, positive to add
olddate = sy-datum
IMPORTING
NEWDATE = new_date.
write: / new_date.
MS_EXCEL_OLE_STANDARD_OLE
will build a file, and automatically start Excel
 
OTF_CONVERT
wraps several other function modules. Will convert OTF to ASCII or PDF
 
POPUP_TO_CONFIRM_LOSS_OF_DATA
Create a dialog box in which you make a question whether the user wishes to perform a processing step with loss of data.
 
POPUP_TO_CONFIRM_STEP
Create a dialog box in which you make a question whether the user wishes to perform the step.
 
POPUP_TO_CONFIRM_WITH_MESSAGE
Create a dialog box in which you inform the user about a specific decision point during an action.
 
POPUP_TO_CONFIRM_WITH_VALUE
Create a dialog box in which you make a question whether the user wishes to perform a processing step with a particular object.
 
POPUP_TO_DECIDE
Provide user with several choices as radio buttons
 
POPUP_TO_DECIDE_WITH_MESSAGE
Create a dialog box in which you inform the user about a specific decision point via a diagnosis text.
 
POPUP_TO_DISPLAY_TEXT
Create a dialog box in which you display a two line message
 
POPUP_TO_SELECT_MONTH
Popup to choose a month
 
POPUP_WITH_TABLE_DISPLAY
Provide a display of a table for user to select one, with the value of the table line returned when selected.
 
PRICING
Return pricing conditions in an internal table. Use structure TCOMK for parameter COMM_HEAD_1, and structure TCOMP for parameter COMM_ITEM_1, and set CALCULATION_TYPE to B. The pricing conditions will be returned in XOMV. You must fill TCOMP, and TCOMK with the appropriate values before callling the function in order for it to work.
 
PROFILE_GET
Read an Entry in an INI File on the frontend
 
PROFILE_SET
Write an Entry in an INI File on the frontend
 
READ_TEXT
To load long text into SAP
 
REGISTRY_GET
Read an Entry from the Registry
 
REGISTRY_SET
Set an entry in the Registry
 
RFC_ABAP_INSTALL_AND_RUN
Runs an ABAP program that is stored in the table PROGRAM when the MODE = 'F'. Table WRITES contains the ouput of the program. Allows you to run a program without having the source code in the target system.
 
RH_GET_ACTIVE_WF_PLVAR
Return the active HR Plan
 
RH_GET_DATE_DAYNAME
return the day based on the date provied
 
RH_START_EXCEL_WITH_DATA
starts Excel with the contents of an internal table. This function finds Excel in the desktop registry. It also uses a local PC working directory to save the file (that's what the 'W' value for data path flag does). Very transparent to user!
 
RH_STRUC_GET
Returns all related org info
 
RHP0_POPUP_F4_SEARK
is a matchcode for any type of HR Planning object, including the possibility to fill the field that you want
 

Example:
Examples: search for any organizational structure
F4 = 'X'
PLVAR = '01'
OTYPE = 'O '
search for any persons
F4 = 'X'
PLVAR = '01'
OTYPE = 'P '
MULTI_SELECT = 'X' to allow multiple selection
EASY = 'X' for user-dependent matchcode
Unfortunately, the use of table BASE_OBJIDS is disabled, so you can't specify
a root for the hierarchy you display
RKD_WORD_WRAP
Convert a long string or phrase into several lines.
 
RP_CALC_DATE_IN_INTERVAL
Add/subtract years/months/days from a date
 
RP_LAST_DAY_OF_MONTHS
Determine last day of month
 
RPY_DYNPRO_READ
Read dynpro, including screen flow
 
RPY_TRANSACTION_READ
Given a transaction, return the program and screen or given a program and screen, return the transactions that use the program and screen.
 
RS_COVERPAGE_SELECTIONS
Returns an internal table that contains a formatted list of all the selection parameters entered for a report. Table is ready to print out.
 
RS_REFRESH_FROM_SELECTOPTIONS
Get the current contents of selection screen
 
RS_SEND_MAIL_FOR_SPOOLLIST
Send message from ABAP/4 program to SAPoffice.
 
RS_VARIANT_CONTENTS
Returns the contents of the specified variant in a table.
 
RSPO_DOWNLOAD_SPOOLJOB
Download the spool from a program to a file. Requires spool number.
 
RSPO_RETURN_ABAP_SPOOLJOB
Fetch printer spool according to the spool number informed.
 
RZL_READ_DIR
If the server name is left blank, it reads a directory from local presentation server, otherwise it reads the directory of the remote server
 
RZL_READ_DIR_LOCAL
Read a directory on the Application Server
 
RZL_READ_FILE
Read a file from the presentation server if no server name is given, or read file from remote server. Very useful to avoid authority checks that occur doing an OPEN DATASET. This function using a SAP C program to read the data.
 
RZL_SLEEP
Hang the current application from 1 to 5 seconds.
 
RZL_SUBMIT
Submit a remote report.
 
RZL_WRITE_FILE_LOCAL
Saves table to the presentation server (not PC). Does not use OPEN DATASET, so it does not suffer from authority checks!
 
SAP_CONVERT_TO_XLS_FORMAT
Convert data to Microsoft Excel format.
 
SAPGUI_PROGRESS_INDICATOR
Display a progress bar on the SAP GUI, and give the user some idea of what is happening
 
SAVE_TEXT
To load long text into SAP
 
SCROLLING_IN_TABLE
If you are coding a module pool and using a table control, you can use this function SCROLLING_IN_TABLE to handle any scrolling. (provided by Paul Kjaer)
 
SD_DATETIME_DIFFERENCE
Give the difference in Days and Time for 2 dates
 
SO_NEW_DOCUMENT_ATT_SEND_API1
Send a document as part of an email. The documentation is better than normal for this function, so please read it.
 
SO_SPLIT_FILE_AND_PATH
Split a fully pathed filename into a filename and a path.
 
SO_SPOOL_READ
Fetch printer spool according to the spool number informed. See also RSPO_RETURN_ABAP_SPOOLJOB
 
SO_WIND_SPOOL_LIST
Browse printer spool numbers according to user informed.
 
SWD_HELP_F4_ORG_OBJECTS
HR Matchcode tailored for organizational units. Includes a button so that you can browse the hierarchy too.
 
SX_OBJECT_CONVERT_OTF_PDF
Conversion From OTF to PDF (SAPScript conversion)
 
SX_OBJECT_CONVERT_OTF_PRT
Conversion From OTF to Printer Format (SAPScript conversion)
 
SX_OBJECT_CONVERT_OTF_RAW
Conversion From OTF to ASCII (SAPScript conversion)
 
SXPG_CALL_SYSTEM
you can check the user's authorization for the specified command and run the command. The command runs on the host system on which the function module is executed. The function module is RFC capable. It can therefore be run on the host system at which a user happens to be active or on another designated host system at which an R/3 server is active.
 
SXPG_COMMAND_CHECK
Check whether the user is authorized to execute the specified command on the target host system with the specified arguments.
 
SXPG_COMMAND_DEFINITION_GET
Read the definition of a single external OS command from the R/3 System's database.
 
SXPG_COMMAND_EXECUTE
Check a user's authorization to use a command, as in SXPG_COMMAND_CHECK. If the authorization check is successful, then execute the command on the target host system.
 
SXPG_COMMAND_LIST_GET
Select a list of external OS command definitions.
 
TERMINAL_ID_GET
Return the terminal id
 
TH_DELETE_USER
Logoff a user. Similar results to using SM04.
 
TH_ENVIRONMENT
Get the UNIX environment
 
TH_POPUP
Display a popup system message on a specific users screen.
 
TH_REMOTE_TRANSACTION
Run a transaction on a remote server. Optionally provide BDC data to be used in the transaction
 
TH_USER_INFO
Give information about the current user (sessions, workstation logged in from, etc)
 
TH_USER_LIST
Show which users are logged into an app server
 
TMP_GUI_DIRECTORY_LIST_FILES
Retrieve all of the files and subdirectories on the Presentation Server (PC) for a given directory.
 
When a value other than * or *.* is used for the filter, you will not get any directories, unless they match your wildcard filter. For example, if you entered *.png, then only files and directories that end in png will be returned by the function.

Example:
data: lc_directory like bdschko16-target_dir value 'C:\TEMP\',
lc_filter(20) type c default '.'.
li_file_count type i,
li_dir_count type i,
ltab_dir_table like sdokpath occurs 0 with header line,
ltab_file_file_table like sdokpath occurs 0 with header line.

call function 'TMP_GUI_DIRECTORY_LIST_FILES'
exporting
directory = lc_directory
filter = lc_filter importing
file_count = li_file_count
dir_count = li_dir_count
tables
file_table = ltab_file_table
dir_table = ltab_dir_table
exceptions
cntl_error = 1
others = 2. |

UNIT_CONVERSION_SIMPLE
convert weights from one UOM to another.
 
UPLOAD
upload a file to the presentation server (PC)
 
UPLOAD_FILES
Will load one or more files from app or presentation server
 
WEEK_GET_FIRST_DAY
For a given week (YYYYMM format), this function returns the date of the Monday of that week.
 
WRITE_LIST
Useful for writing out the list contents that result from the function LIST_FROM_MEMORY.
 
WS_DOWNLOAD
Save Internal Table as File on the Presentation Server
 
WS_EXCEL
Start EXCEL on the PC
 
WS_EXECUTE
execute a program on a windows PC
 
WS_FILE_DELETE
Delete File at the Frontend
 
WS_FILENAME_GET
Call File Selector
 
WS_MSG
Create a dialog box in which you display an one line message
 
WS_UPLOAD
Load Files from the Presentation Server to Internal ABAP Tables
 
WS_VOLUME_GET
Get the label from a frontend device.
 
WWW_LIST_TO_HTML
After running a report, call this function to convert the list output to HTML.
    
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.