Saturday, April 11, 2009

SAP Tutorial - Part 9 - SAP Functions - Part 2

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

SAP Function

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.

DATE_TO_DAY Converts a date in internal format to a text description of a day. For example 20030529 returns Thursday

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 Tuesday), 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

FM_SELECTION_CRITERIA_PRINT Print out selection criteria. Nicley formatted.

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.

GET_PAYSLIP Returns a fully formatted payslip, ready for displaying

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.

No comments: