0% found this document useful (0 votes)
155 views22 pages

Common SAP R/3 Functions Manual

Book

Uploaded by

theict mentor
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
155 views22 pages

Common SAP R/3 Functions Manual

Book

Uploaded by

theict mentor
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

Common SAP R/3 Functions Manual

Springer
London
Berlin
Heidelberg
New York
Hong Kong
Milan
Paris
Tokyo
William Lawlor

Common SAP R/3


Functions Manual

, Springer
William Lawlor, MSc

British Library Cataloguing in Publication Data


Lawlor, William
Common SAP Rl3 functions manual. - (Springer professional computing)
I. Rl3 (Computer file) 2. ABAP/4 (Computer program language)
1. Title
650'.028553769
ISBN 1852337753

Library of Congress Cataloging-in-Publication Data


Lawlor, William, 1972-
Common SAP Rl3 functions manual 1 William Lawlor.
p. cm. -- (Springer professional computing)
Includes index.
ISBN 1-85233-775-3 (a1k. paper)
I. Integrated software. 2. SAP Rl3. 3. Client/server computing. 1. Title. II. Series.

QA76.76.I57L382003
005.75'85--dc22 2003060693

Apart from any fair dealing for the purposes of research or private study, or criticism or review, as permitted under the
Copyright, Designs and Patents Act 1988, this publication may only be reproduced, stored or transmitted, in any form or
by any means, with the prior permission in writing of the publishers, or in the case of reprographic reproduction in
accordance with the terms of licences issued by the Copyright Licensing Agency. Enquiries concerning reproduction
outside those terms should be sent to the publishers.
Additional material to this book can be downloaded from http://extras.springer.com.
ISBN 1-85233-775-3 Springer-Verlag London Berlin Heidelberg
A member of BertelsmannSpringer Science + Business Media GmbH
springeronline.com

© William Lawlor 2004

The use of registered names, trademarks etc. in this publication does not imply, even in the absence of a specific statement,
that such names are exempt from the relevant laws and regulations and therefore free for general use.

The publisher makes no representation, express or implied, with regard to the accuracy of the information contained in this
book and cannot accept any legal responsibility or liability for any errors or omissions that may be made.

Typeset by Gray Publishing, Tunbridge Wells, UK


Printed and bound by The Cromwell Press, Trowbridge, UK
34/3830-543210 Printed on acid-free paper SPIN 10954911
Foreword

It is well recognised that programs written to the standard and in the style of the host system
are inherently easier to maintain and upgrade. SAP is no different. Those programs that are
written with as much standard SAP code as possible are better equipped to cope with changes
in the system that could otherwise cause a custom program to malfunction.
Customised code can be notoriously difficult to decipher and change during upgrade proj-
ects. It is much better to utilise existing SAP code, which offers a degree of standardisation in
programs. Reducing the amount of re-coding for problems, for which SAP has already writ-
ten, tested, and provided solutions, in turn eliminates further sources of program errors and
cuts the all-important program development time, and hence costs.
The growing complexity of SAP has resulted in over 105,000 individual function modules
in the 4.6B system, and this number will continue to increase as new features are added to the
system. With no existing or consistent documentation for most of these modules, the author
has undertaken the task of producing the first concise reference of a broad range of modules
designed to solve common problems encountered in most ABAP-programming projects.
The modules chosen were based on analysis of thousands of custom developments and the
author's own many years of ABAP development. The modules described herein offer applica-
tion developers the most complete and consistent documentation available and should be a
welcome addition to any ABAP developer's library.

David Quirke
Project Manager, SAP

v
About the Author

William Lawlor has been involved in the IT industry, since the late 1980s. He has been pro-
gramming and involved in application development for over 10 years in several languages,
such as C and C+ +, Visual Basic, and COBOL. As a consultant, he has spent the last 6 years
working almost exclusively in ABAP. During this time he worked on three full SAP imple-
mentations and numerous version upgrades. He has also developed several ABAP utilities,
such as an authorisation-reporting tool for IMG transactions and a utility program to secure
transportable objects between systems.
He has attended numerous courses provided by SAP in ABAP, BASIS, Finance and Costing,
Sales and Distribution, Material Management, and Production Planning. He currently works
as an ABAP Consultant and Author.

vii
Contents

Contents .........................................................•............•... ix
Introduction xix
Layout of Reference Entries •..........•.•..................•.................•...... xxi
An Introduction to SAP .....•..........................................•............ xxiii
Using Function Modules ........•...........................•....•............•.....xxvii

1. System 1
ABAP4_CALL_TRANSAGION -Initiates a transaction in a separate window 1
ARFC_GET_TID - Returns IP address of the server (in hexadecimal) . .. . .. .. . 2
AUTHORITY_CHECK_DATASET - Checks file access authorization 3
BP_ EVENT_RAISE - Triggers background event. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
CAT_CHECK_RFCDESTINATION - Checks the RFC destinations and connections. . . . . . . . 6
CAT_PING - Checks RFC system and configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
DEQUEUE_ES_PROG - Releases program locks 8
ENQUEUCES_PROG - Prevents parallel execution of program 8
FTP_COMMAND - Executes a command on the FTP server 9
FTP_CONNEG - Opens connection to the FTP server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 10
FTP_DISCONNEG - Closes connection to the FTP server 12
GET_JOB_RUNTIMLINFO - Retrieves detailed job information.. . .. .. . .. .. 13
GULEXEC - Starts an external program asynchronously 13
GULGET_DESKTOP_INFO - Returns information about the end-users desktop . . . . . . . .. 14
GULRUN - Starts program with ShellExecute 16
GWY_READ_CONNEGIONS - Checks gateway connection 17
HLP_MODE_CREATE - Creates another session in system 18
IW_CGET_FRONTEND_VERSION - Version of SAP front-end installed on a PC 19
RFCMAIL - Sends e-mail to another SAP system 20
RSPO_FIND_SPOOL_REQUESTS - Finds a spool number 20
RSPO_OUTPUT_SPOOL_REQUEST - Outputs same request on a different printer. .. 22
RSPO_RPRINT_SPOOLREQ - Triggers spool to print automatically ..... ,. .. . 23
SAPWL_GET_SUMMARY_STATISTIC - Summary of object usage statistics 23
SAPWL_WORKLOAD_GET_DIREGORY - Timeframe of statistics on SAP database 25
SAPWL_WORKLOAD_GET_STATISTIC - Object usage statistics 26
SHOW_JOBSTATE - Checks the status of a job 27
SO_SPOOl_READ - Returns printer spool information 29

ix
x Contents

SO_WIND_SPOOL_L1ST - Dialogue to browse printer spool numbers 30


SXPG_CALL_SYSTEM - Calls command external to the SAP system 31
SXPG_COMMAND_CHECK - Checks authorization to execute a command . . . . . . . . .. 33
SXPG_COMMAND_EXECUTE - Executes a command on remote system 34
SXPG_COMMAND_L1ST_GET - Reads a list of external OS commands 35
TERMINAUD_GET - Returns IP address and the terminallD . . . . . . . . . . . . . . . . . . . . . . . . .. 35
TH_DELETE_USER - Logs off a user ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 36
TH_ENVIRONMENT - Gets values in SAP environment variables. . . . . . . . . . . . . . . . . . . . . .. 37
TH_REMOTE_TRANSAaION - Runs a transaction on a remote server 38
TH_SERVER_L1ST -List of RFC servers 39
TH_USER_INFO - Returns information about user 39
TH_USER_L1ST - Displays users logged onto server 41
TRANSAaION_CALL - Initiates a transaction in a separate window 42
USER_EXISTS - Checks whether user ID is valid 42
WS_EXECUTE - Calls another program from ABAP 43
WS_QUERY - Executes query function on front-end 44

2. Conversions.................................................................... 47
BAPLCURRENCY_CONV_TO_EXTERNAL - Converts currency format to external format 47
BAPLCURRENCY_CONV_TO_INTERNAL - Converts currency format to internal format 48
CF_UT_UNIT_CONVERSION - Converts material unit quantities 49
CONVERSION_EXIT_ALPHAJNPUT - Converts number to a string filled with zeroes 50
CONVERSION_EXIT_ALPHA_OUTPUT - Converts number with zeroes into an integer 51
CONVERSION_EXIT_AUART_INPUT - Converts sales document type to SAP format 51
CONVERSION_EXIT_AUART_OUTPUT - Converts sales document type to display format 52
CONVERSION_EXIT_CUNIT_INPUT - Converts external unit to SAP's internal unit 53
CONVERSION_EXIT_CUNIT_OUTPUT - Converts internal unit to commercial unit. . . . . . . . .. 54
CONVERSION_EXIT_LUNIT_INPUT - Converts technical unit for internal unit 55
CONVERSION_EXILLUNIT_OUTPUT - Converts internal unit to technical unit 56
CONVERSIONJAaOR_GET - Returns conversion factors for a unit 57
CONVERT_ABAPSPOOUOB_2_PDF - Converts ABAP spool output to PDF 59
CONVERT_OTFSPOOUOB_2_PDF - Converts an OTF (SAPscript) spool to PDF 61
CONVERT_TOJOREIGN_CURRENCY - Converts local currency to foreign currency 63
CONVERT_TO_LOCAL_CURRENCY - Converts foreign currency to local currency 64
CURRENCY_AMOUNT_SAP_TO_IDOC - Converts currency to IDOC format 66
CURRENCY_CODUSO_TO_SAP -ISO currency code to SAP's currency code 67
CURRENCY_CODE_SAP_TO_ISO - SAP currency code to ISO currency code 68
DATCSTRING_CONVERT - Converts string date into DATE type 68
DIMENSION_CHECK - Checks internal unit of dimension 69
DIMENSION_GET - Retrieves internallD of specified dimension 71
DIMENSION_GET_FOR_UNIT - Textual description of dimension 71
HR_ROUND_NUMBER - Rounds a number according to rules 72
HRCM_AMOUNT_TO_STRING_CONVERT - Converts an amount to a character string 73
HRCM_STRING_TO_AMOUNT_CONVERT - Converts a character string to an amount , 74
MATERIAL_UNIT_CONVERSION - Converts base unit to alternative unit...... 75
MD_CONVERT_MATERIAL_UNIT - Conversion of material units. . . . . . . . . . . . . . . . . . . . . . . . . 76
ROUND - Rounds value to a number of decimal places 77
Contents xi

ROUND_AMOUNT - Rounding based on company and currency ............. 79


SLUNIT_GET - Retrieves international unit of measure 80
SX_OBJECT_CONVERT_OTF_PDF - Conversion from OTF (SAPscript) to PDF.. .. 81
SX_OBJECT_CONVERT_OTF_PRT - Conversion from OTF to printer format 84
SX_OBJECT_CONVERT_OTF_RAW - Conversion from OTF (SAPscript) to ASCII 84
UNIT_CONVERSION_SIMPLE - Converts measurement unit values and rounds 85
UNIT_CONVERSION_WITHJACTOR - Converts value according to the factor passed. . . . . 86
UNIT_CORRESPONDENCE_CHECK - Checks if units belong to same dimension. . . . . . . . . . 87
UNIT_GET - Returns unit for dimension and factor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
UNIT_OF_MEASURE_ISO_TO_SAP - Converts ISO unit to SAP unit of measure. . . . . . . . . . . 90
UNIT_OF_MEASURE_SAP_TO_ISO - Converts SAP unit to ISO unit of measure. . . . . . . . . . . 91
UNIT_OF_MEASUREMENT_HELP - Displays all units of a specified dimension. ... ... .... 92

3. Dates and Times 93


ADD_TIME_TO_DATE - Adds months/days/years to a date. . . . . . . . . . . . . . . . . . . . . . . . . . . 93
C14B_ADD_TIME - Adds a time value to a date and time 95
COMPUTE_YEARS_BETWEEN_DATES - Number of years between two dates 95
CONVERSION_EXIT_LDATE_OUTPUT - Converts date format 96
CONVERT_DATUNPUT - Conversion exit routine for inverted date. . . . . . . . . . . . . . . . . . . 97
CONVERT_DATE_TO_EXTERNAL - Formats date from internal to display format 98
CONVERT_DATE_TOJNTERNAL - Formats date from display to internal format 99
COPF_DETERMINE_DURATION - Calculates difference between date and time 100
DATE_CHECK_PLAUSIBILITY - Checks if the value of a field is a date format 101
DATE_CHECK_WORKINGDAY - Determines if a single date is a working day . . . . . . . . . . .. 102
DATE_CHECK_WORKINGDAY_MULIPLE - Checks date across multiple factory calendars .. 103
DATE_COMPUTE_DAY - Determines the day of the week for a date 105
DATE_CONV_EXT_TO_INT - Conversion of dates to SAP's internal format " 106
DATE_CONVERT_TOJACTORYDATE - Converts calendar date into factory day 107
DATE_CONVERT_TO_WORKINGDAY - Converts a calendar date into working day 109
DATE_CREATE - Calculates a date from the input parameters 110
DATE_GET_WEEK - Determines the week in a year for a date 110
DATUN_FUTURE - Calculates a future or past date 112
DATE_TO_PERIOD_CONVERT - Returns the period of a date 113
DATUMSAUFBEREITUNG - Formats date as per the user settings. . . . . . . . . . . . . . . . . . . . .. 115
DAY_ATIRIBUTES_GET - Returns information about a day 116
DAY_IN_WEEK - Returns the day of the week for a date 117
DAYS_BETWEEN_TWO_DATES - Calculates number of days between two dates 118
EASTER_GET_DATE - The date of Easter Sunday 118
FACTORYDATCCONVERT_TO_DATE - Converts factory day into calendar date 119
FIMA_DAYS_AND_MONTHS_AND_YEARS - Calculates the difference between two dates . 120
FIRST_AND_LAST_DAYJN_YEAR_GET - First and last days of a period 121
FIRST_DAYJN_PERIOD_GET - Gets first day of a period 122
GET_CURRENT_YEAR - Gets the current fiscal year for a company 122
HOLlDAY_CHECK_AND_GET_INFO - Determines if a date is a holiday , 123
HOLIDAY_GET - All holidays in a factory calendar 124
HR_BEN_GET_DATUNTERSECTION - Checks if dates overlap another date range 126
HR_GET_LEAVE_DATA - Gets all leave information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 128
xii Contents

HR_HK_DIFF_BT_2_DATES - Days, months and years between two dates. . . . . . . . . . . . .. 130


HR_IE_NUM_PRSLWEEKS - Number of weeks between two dates 131
HR_PAYROLL_PERIODS_GET - Gets the payroll period for a particular date. . . . . . . . . . . .. 132
HR_TIME_RESULTS_GET - Gets the time results for a payroll period 134
LAST_DAY_IN_PERIOD_GET - Gets last day of a period 135
MONTH_NAMES_GET - Names of all the months 135
MONTH_PLUS_DETERMINE - Adds or subtracts months to/from a date. . . . . . . . . . . . . . .. 137
PERIOD_DAY_DETERMINE - Starts and finishes date for period-fiscal year 137
RE_ADD_MONTH_TO_DATE - Adds or subtracts months to/from a date 138
RH_GET_DATE_DAYNAME - Returns the day based on the date provided 139
RKE_ADD_TO_PERIOD - Calculates period from any period 139
RKE_TIMESTAMP_CONVERTJNPUT - Converts display to TIMESTAMP fields 140
RKE_TIMESTAMP_CONVERT_OUTPUT - Converts TIMESTAMP fields for display. . . . . . . . . .. 141
RP_CALCDATUN_INTERVAL - Adds/subtracts years, months, days to/from date 142
RP_CHECK_DATE - Checks if value is in date format 142
RP_LAST_DAY_OF_MONTHS - Gets the last day of the month 143
SD_DATETlME_DIFFERENCE - Difference in days and time for two dates 144
SUBTRACT_TIME_FROM_DATE - Subtracts months, days, and years from a given date .. 145
SWI_DURATION_DETERMINE - The time between two events in seconds 146
WDKAL_DATE_ADD_FKDAYS - Number of working days in a date range 147
WEEK_GETJIRST_DAY - Returns the date ofthe Monday of a week. . . . . . . . . . . . . . . . .. 148
WEEK_GET_NR_OF_WORKDAYS - The number of workable days in a week 149
WEEKDAY_GET - Names of all the days of the week 150

4. Files 151
C13ZJILCDOWNLOAD_ASCII - Downloads a file in ASCII format 151
C13Z_FILE_DOWNLOAD_BINARY - Downloads a file in binary format. . . . . . . . . . . . . . . . . .. 155
C13ZJILCUPLOAD_ASCII - Uploads a file in ASCII format. . . . . . . . . . . . . . . . . . . . . . . . . . .. 156
C13Z_FILE_UPLOAD_BINARY - Uploads a file in binary format. . . . . . . . . . . . . . . . . . . . . . . .. 157
DOWNLOAD - Downloads a file to the PC 157
EPS_GET_DIRECTORY_L1STING - Lists filenames from the application server. . . . . . . . . . .. 160
EPS_GETJILE_ATTRIBUTES - Returns attributes for a file 161
GULCREATE_DIRECTORY - Creates a directory on the presentation server 162
GULDELETE_FILE - Deletes a file on the presentation server. . . . . . . . . . . . . . . . . . . . . . .. 164
GUI_DOWNLOAD - Downloads a file to the presentation server. . . . . . . . . . . . . . . . . . . .. 165
GULREMOVCDIRECTORY - Deletes a directory in the presentation server 166
GULUPLOAD - Uploads a file from the presentation server 166
LIST_DOWNLOAD - Downloads report to local file. . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . .. 167
PROFILE_GET - Reads an entry in an INI file on the frontend 168
PROFILE_SET - Writes an entry to an INI file on the frontend 169
RS_DELETE_PROGRAM - Deletes an ABAP program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 170
RSPO_DOWNLOAD_SPOOUOB - Downloads program spool to a file. . . . . . . . . . . . . . . . . .. 171
RZL_READ_DIR - Reads a directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 172
RZL_READ_FILE - Reads a file 173
RZL_WRITEJILE_LOCAL - Saves internal table to the presentation server 174
SO_SPLlTJILE_AND_PATH - Splits a path into a filename and a path 175
Contents xiii

STRR_GET_REPORT - Downloads ABAP source code ........•...•................•.. 175


STRuaURE_EXPORT_TO_MSACCESS - Downloads data into MS Access 176
TABLE_EXPORT_TO_MSACCESS - Downloads data into MS Access 178
TMP_GULDIREaORY_LIST_FILES - Lists files and subdirectories ................•...... 179
TMP_GULREAD_DIREaORY - Lists files in a directory 180
UPLOAD - Uploads a file into SAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 181
UPLOADJILES - Uploads multiple files into SAP. . . •. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 182
WS_DOWNLOAD - File transfer from internal table 183
WS_FILE_DELETE - Deletes file in the presentation server. . . . . . . . . . . . . . . . . . . . . . . . . .. 184
WS_FILENAME_GET - Calls file selector popup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 184
WS_UPLOAD - File transfer to internal table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 185

S. Lists 189
DYNP_VALUES_READ - Reads screen values before PAl transport 189
DYNP_VALUES_UPDATE - Changes screen field contents without PBO . . . . . . . . . . . . . . .. 193
F4IUNT_TABLE_VALUE_REQUEST - Standard help at process on value-request 193
HR_DISPLAY_BASIC_LIST - Provides a table control for data 194
K_ABCDOKU_SHOW - Reads documentation from local program. . . . . . . . . . . . . . . . . .. 195
L1ST_FROM_MEMORY - Retrieves the output of report from memory 196
L1ST_TO_ASCI - Converts an ABAP report to ASCII ................................• 197
RPY_DYNPRO_READ - Reads screen objects, including screen flow •....•............ 198
RS_COVERPAGE_SELEaIONS - Returns the selection parameters for a report 199
RS_CREATE_VARIANT - For creating dynamic variants ...•........................... 200
RS_REFRESH_FROM_SELEaOPTIONS - Returns the selection parameters for a report. . .. 202
RS_SET_SELSCREEN_STATUS - Deactivates function codes on screen 203
RS_TOOL_ACCESS - Reads documentation from another program 204
RS_VARIANT_CONTENTS - Values of a variant returned in a table 206
RS_VARIANT_DELETE - Deletes a variant from a program 206
RS_VARIANT_EXISTS - Checks whether a variant exists for a report 207
RS_VARIANT_TEXT - Returns short description of variant 207
RS_VARIANT_VALUES_TECH_DATA - Reads variant parameters of a report 208
RZL_SUBMIT - Submits a remote report for execution 209
SAPGULPROGRESS_INDICATOR - Displays a progress bar on the SAP GUI 209
SAVE_LIST - Saves report as list container 210
VRM_SET_VALUES - Customises values on a drop-down field 211
WRITE_LIST - Contents from LIST_FROM_MEMORY 212
WWWJTAB_TO_HTML - Converts internal table to HTMl format ................•..•. 213
WWW_L1ST_TO_HTML-Converts report list to HTMl format ......................•.. 214

6. Long Texts ....................•..•....................•....................... 217


COMMIT_TEXT - Moves long texts from memory into log file 217
CREATE_TEXT - Creates header long text 218
DELETE_TEXT - Deletes long text(s) from SAP ...................................•. 220
EDIT_TEXT - Edits long text in fullscreen text editor 221
INIT_TEXT -Initialises long text header and line table 222
PRINT_TEXT - Formats text for printing 222
PRINT_TEXTJTF - Formats text into ITF for printing 223
xiv Contents

READ_TEXT - Reads text module into SAP 224


SAVE_TEXT - Saves long text in SAP 224

7. Number Ranges 227


NUMBER_GET_NEXT -Obtains next number from number object 227
NUMBER_RANGE_DEQUEUE - Unlocks the number range object. . . . . . . . . . . . . . . . . . . . .. 227
NUMBER_RANGE_ENQUEUE - Locks the number range object 228
NUMBER_RANGUNTERVAL_L1ST - Gets existing intervals of a number object 228
NUMBER_RANGE_OBJECT_CLOSE - Writes all changes to the database 229
NUMBER_RANGE_OBJECT_DELETE - Deletes the definition of a number object 229
NUMBER_RANGE_OBJECT_GET_INFO - Gets information for a number range object 230
NUMBER_RANGCOBJECT_INIT -Initialises local memory for a number object 230
NUMBER_RANGE_OBJECT_L1ST - Lists all number objects with their attributes 231
NUMBER_RANGE_OBJECT_MAINTAIN - Provides screens to maintain number object 233
NUMBER_RANGE_OBJECT_READ - Gets texts and attributes of number object " 235
NUMBER_RANGE_OBJECT_UPDATE - Copies and changes number range objects 236

8. Office Integration 237


ALSM_EXCEL_TO_INTERNAL_TABLE - Uploads Excel spreadsheet to internal table 237
EXCEL_OLE_STANDARD_DAT - Starts Excel and transfers internal table data 238
EXECUTE_WINWORD - Opens MS Word on the PC 240
KCD_EXCEL_OLE_TO_INT_CONVERT - Uploads data directly from Excel sheet 241
MS_EXCEL_OLE_STANDARD_DAT - Builds a file and automatically starts Excel 242
RH_START_EXCEL_WITH_DATA - Starts Excel with contents of an internal table 244
RS_SEND_MAILJOR_SPOOLLIST - Sends message from program to SAPoffice 245
SAP_CONVERT_TO_XLS_FORMAT - Downloads internal table to Excel 246
SO_NEW_DOCUMENT_ATT_SEND_APll - Attaches a document to an e-mail 247
SO_NEW_DOCUMENT_SEND_APll - Sends an express mail (SAPoffice) 249
WS_EXCEL - Starts MS Excel on the PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 250

9. Popup Dialogues. . . .. . . .. . . .. .. . . .. . .. . . .. . .. . .. . . .. . .. . .. .. . .. .. . .. . .. . .. . .... 253


Confirmation Prompt Dialogues 253
C14A_POPUP_ASKJILCOVERWRITE - Asks if file can be overwritten. . . . . . . . . . . . . . . . . . .. 253
GOB_POPUP_TO_HANDLE_TIME_OUT - Asks for next step if timeout occurs 254
POPUP_TO_CONFIRM - Confirms an action before carrying out 256
POPUP_TO_CONFIRM_DATA_LOSS - Confirms an action before carrying out 257
pOPUP_TO_CONFIRM_LOS5_0F_DATA - Confirms an action before carrying out 258
POPUP_TO_CON FIRM_STEP - Asks whether to perform processing step 259
pOPUP_TO_CONFIRM_WITH_MESSAGE - Informs about a specific point during action 260
pOPUP_TO_CONFIRM_WITH_VALUE - Displays a numeric value with a message 261

Display Input Check Dialogues 262


POPUP_GET_VALUES - Creates a dialogue box for display and input 262
POPUP_GET_VALUES_DB_CHECKED -Inputs data to be checked against database 264
POPUP_GET_VALUES_SET_MAX_FIELD - Specifies number of fields to display in dialogue 265
Contents xv
POPUP_GET_VALUES_USER_BUnONS - Requests values and displays pushbuttons ...•.. 267
POPUP_GET_VALUES_USER_CHECKED -Input data to be checked in a user exit .........• 268
pOPUP_GET_VALUES_USER_HELP - Branching in a user F1 or F4 help 270

Popup Screens 272


cOPo_pOPUP_TO_DISPLAY_TEXTLIST - Dialogue box displaying help when F1 is pressed 272
CORRESPONDENCE_POPUP_EMAIL - Dialogue box for requesting e-mail address .•....• 273
EPS_PROGRESS_POPUP - Creates a number of graphical popups ..........•.......... 274
ERGO_TEXT_SHOW - Shows text in a documentation window 276
F4_CLOCK - Displays a clock in a popup window 277
F4_DATE - Displays a calendar in a popup window 278
F4JILENAME - Displays selection of files on local PC 279
F4JILENAME_SERVER - Displays selection of files on server ...•..................... 281
F4_USER - Pops up logon IDs .............................................•...... 282
FITRV_CALCULATOR - A working popup calculator 283
HELP_START - Help values on database fields 284
HELP_VALUES_GET_NO_DD_NAME - Help values for any field 286
HELP_VALUES_GET_WITH_DD_NAME - Help values on database fields 288
HELP_VALUES_GET_WITH_DD_TABLE - Help values on database tables 290
HELP_VALUES_GET_WITH_TABLE - Lists help values on selection screen ............•... 291
KD_GET_FILENAME_ONJ4 - Selects files on the local PC 293
MD_POPUP_SHOW_INTERNAL_TABLE - Pops up contents of internal table ....•......... 294
POPUP_CONTINUE_YES_NO - Popup with the responses "Yes" and "No" 296
POPUP_DISPLAY_TEXT - Displays help documentation 297
POPUP_DISPLAY_TEXT_WITH_PARAMS - Displays help documentation with parameters. 298
POPUP_FORJNTERAaION - General purpose popup box " 300
POPUP_NO_LIST - Displays standard dialogue box if no data. . . . . . . . . . . . . . . . . . . . . .. 302
POPUP_TO_DECIDE - Provides user with several push buttons 303
pOPUP_TO_DECIDLLlST - Provides user with several radio buttons 304
POPUP_TO_DEClDE_WITH_MESSAGE - Displays a diagnosis text 305
POPUP_TO_DISPLAY_TEXT - Displays a two-line message 307
POPUP_TO_INFORM - Displays several lines of text 308
POPUP_TO_SELEa_MONTH - Popup to choose a month and year .......•............ 308
POPUP_WITH_TABLE_DISPLAY - Displays internal table data in a popup table 309
SO_EXPRESS_FLAG_SET - Popup after user performs an action 311
TERM_CONTROL_EDIT - Pops up mini-text editor. . . . . . . . . . . •. . . . . . . . . . . . . . . . . . . . . . .. 312
TH_POPUP - Popup on a specific users screen 315
TXW_TEXTNOTE_EDIT - Pops up mini-text editor 316
WS_MSG - Displays a one-line message ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 318

10. Miscellaneous ...•......•...............•......•....•.•....•.............•..•.. 321


Jobs 321
BP_JOB_DELETE - Deletes background job(s) ....•................•................ 321
BP_JOB_SELEa - Returns a table with job(s) details .........................•..... 321
BP_JOBLOG_READ - Fetches job log executions .......•......•.........•....•...... 324
BP_JOBLOG_SHOW - Displays job log in window ...•............................... 325
JOB_CLOSE - Schedules a background job. . . . . . . . . . . . . . . . . . . . . . . . . . . . •. . . . . . . . . .. 325
xvi Contents

JOB_OPEN - Creates a background job 326


JOB_SUBMIT - Adds a step (program) to a background job 327

Numbers . . . . . . . . .. . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 328
CLOI_PUT_SIGN_INJRONT -Moves negative sign of a number. . . . . . . . . . . . . . . . . . . . . .. 328
G_DECIMAL_PLACES_GET -Number of decimal places set for currency 329
NUMERICCHECK - Returns the format of a number . . . . . . . . . . . . . . . . . .. 329
QFOS_RANDOM - Returns a random number between 0 and 1 330
QFOS_RANDOM_INTEGER - Returns a random number. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 331

Printing 332
ADDRESS_INTO_PRINTFORM - Formats an address for printing. . . . . . . . . . . . . . . . . . . . . . .. 332
FM_SELECTION_CRITERIA_PRINT - Displays criteria used in selection screen 333
GET_PRINT]ARAMETERS - Reads and changes spool print parameters 334
LOAD_PRINT]ARAMETERS - User default printer settings 336
PRINT_SELECTIONS - Builds criteria table used in selection screen '" 337
SET_PRINT_PARAMETERS - Sets users print settings for a report 337
STORE_PRINT_PARAMETERS - Saves users current print settings 338

Programs and Transactions 339


BAPURANSACTION_COMMIT - Explicitly commits a BAPI 339
BAPLTRANSACTION_ROLLBACK - Prevents permanent changes by BAPls 340
DEQUEUE_ESFUNCTION - Unlocks program so that it can be executed 341
ENQUE_SLEEP - Waits a specified period of time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 341
ENQUEUE_ESFUNCTION - Locks program so that it cannot be executed 342
GET_COMPONENT_LIST - Detailed description of fields from programs 343
GETJIELDTAB - Retrieves table fields with field metadata 344
GET_GLOBAL_SYMBOLS - Returns all components of a program 345
GETJNCLUDETAB - Lists all INCLUDEs in a program 346
RFC_ABAP_INSTALL_AND_RUN - Runs a program that is stored in a table 347
RPY_TRANSACTION_READ - Where used for transactions and programs 348
RS_GET_ALL_INCLUDES - Lists all INCLUDEs in a program. . . . . . . . . . . . . . . . . . . . . . . . . . . 349
RZL_SLEEP - Hangs application from 1 to 5 seconds 350
SAPGULSETJUNCTIONCODE - Simulates a keystroke in an ABAP report 351

Text and Strings 352


CLPB_EXPORT - Loads text table from the clipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 352
CLPB_IMPORT - Sends text table to the clipboard 353
RKD_WORD_WRAP - Converts a long string into several lines 353
SCP_REPLACE_STRANGCCHARS - Replaces special letters with normal text . . . . . . .. 354
SPELL_AMOUNT - Converts numeric amount into characters . . . . . . . . . . . . . . . . . .. 356
STRING_CENTER - Centres a string within another 357
STRING_CONCATENATE - Joins two strings together 358
STRING_CONCATENATC3 - Joins three strings together. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 359
STRING_LENGTH - Returns the length of a string 360
STRING_MOVE_RIGHT - Shifts a string right 360
STRING_REVERSE - Returns a string in reverse order. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 361
STRING_SPLIT - Splits a string into smaller strings 362
Contents xvii

STRING_UPPER_LOWER_CASE - Converts string to proper case 363


SWA_STRING_SPLIT - Splits a string into smaller strings 364
TEXT_SPLIT - Splits text into smaller strings 365

Various 366
CALL_BROWSER - Calls default web browser or file manger 366
CHANGEDOCUMENT_READ_HEADERS - Gets change document header 367
CHANGEDOCUMENT_READ_POSITIONS - Gets change document details 369
CL_TABLCEDITOR - Displays and edits internal table data 370
CSAP_MAT_BOM_READ - Displays simple material BOMs 371
DDIFJIELDINFO_GET - Information about tables 372
FORMAT_MESSAGE - Formats error message for display 373
K_WERKS_OF_BUKRSJIND - Lists all plants for a given company code 374
MATERIAL_BTCLSELECTION_NEW - Selects the correct views on material master 375
MATERIAL_BTCLTEXT - BDC fields and OK codes for materials 377
REGISTRY_GET - Reads an entry from the registry 378
REGISTRY_SET - Sets an entry in the registry '" 379
RV_ORDER_FLOW_INFORMATION - Reads sales document flow 380
WRITE_MESSAGE - Formats error message for display 381

Appendix - Tables Used in Examples 383


Introduction

This book is a reference guide to the functions provided by the SAP R/3 system.
The SAP R/3 (SAP for short) system provides many built-in functions (approximately
237,000 as of release 4.6C) to assist in the rapid development of ABAP-programming projects,
by reducing the amount of "reinventing the wheel" code that would otherwise be required.
Some of the functions are extremely specific, written by SAP to solve a particular problem
in a single program. Many of them, however, are generalised enough for repeated use in a variety
of circumstances in ABAP programs. These are the foci of this book.
The problem of using SAP's functions is that most of them are either poorly documented
or have no documentation at all, and there is almost no information on what functions are
actually available, their purpose, or their method of operation. It is often a long and arduous
process of investigation, trial and error, and sheer luck to discover a suitable function.
This book intends to change all that by providing a central resource for the most commonly
used SAP functions. Each function contains a summary of its purpose, a longer detailed descrip-
tion or other pertinent information (such as if the function has been superseded or is obsolete), an
explanation of the most commonly used parameters (input, output, changing, tables) with a list
of possible values passed to them (where appropriate), a fully worked example of the function in
action, and ending with references to other related functions documented elsewhere in the book.
Contained within these pages are those functions that are most likely to be required in your
ABAP-programming projects. They include time, date, and numeric conversions, popup dia-
logue boxes, uploading and downloading MS Excel and ordinary file data, sending e-mail
onto the Internet, date and time calculations, and much more.
Functions are arranged alphabetically within each chapter. So if you need to know on what
day Easter will fall for any year, GET_EASTER_DATE will be found in the Date and Time routines
chapter. Similarly, to upload Excel data to an ABAP-internal table, look at ALSM_EXCEL_
TO_INTERNAL_TABLE in the Office Integration chapter.
Lists describing the most commonly used parameters to a function are also provided. These
lists offer a clear textual description of the parameter, which can be of help to the more obscurely
named parameters. In some modules, parameter tables list the values that an input parameter
takes, and describes each individually.
Each function described also contains a simple but fully working example (4.6B). To offer
the reader a more complete understanding of the function, some closely related modules (e.g.
the RSPO_ >I- group) are coded into one complete program, demonstrating how the functions
interact with each other. Each function ends with references to other related documented
functions, if appropriate.
This information often takes years to accumulate. The seasoned ABAPer should have at
least seen some of these functions before, and the beginner now has instant access to a host of
cross-application functionality, which will be of immense value in any ABAP-programming
project, or thumbed through as a reference at leisure, away from the Pc.

xix
Layout of Reference Entries

I~--------Summa~
Uploads file from the application server.
II r - - - - Desaiption
Replaces WS_UPLOAD.
Parameten
EXPORTING
FI LENAME Path and fllename to download
FIL[TYPE Fi le type:
Value Meanlng
ASC ASCII (default!
BIN Binary
DBF DBASE
IBM ASC I I with I BM code page convers i on
WKI Spreadsheet
OAT ASCII data table with column tab
TABLES
DATA_TAB Table of data

Example
REPORT ZEXAMPLE.
DA TA, BEG I N OF !TAB OCCU RS O.
COLA(\O).
COLB(\O) •
ENO OF !TAB.

CALL FUNCTION 'GUI UPLOAD'


EXPORTI NG
FILENAME - 'C:\TEMP\zexample txt'
FILETYPE - 'ASC'
TABLES
DATA_TAB - !TAB
EXCEPTIONS
FILE_OPEN_ERROR - I
FILE_READ_ERROR - 2
NO_BATCH - 3
GU I_REFUSEJ I L[TRANSFER - 4
INVALID_TYPE - S
OTHERS - 6.
IF SV-SUBRC NE O.
WRlTE:1 'Could not upload file'.
ELSE.
WRlTE:1 'File uploaded into internal table.',
ENOl F.

Set Also
~ UPLOAD, WS_UPLOAD
Y I See also: Names of related functions documented in the book

Example: Working ABAP coding of the function

Parameters: Most commonly used function parameters with input values

Description: Optional. Noteworthy information about the function

Swnmary: Brief explanation of the function

GUCUPWAD: Name of the function

xxi
An Introduction to SAP

The SAP name (pronounced S-A-P not "sap") is derived from the German "Systeme,
Andwendungen, Produkte in der Datenverarbeitung': or in English, "Systems, Applications,
and Products in Data Processing".
SAP AG, the company behind the system, was founded in 1972 by five ex-IBM employees.
Their global headquarters is based in Walldorf, Germany and has subsidiaries in over 50 coun-
tries around the world. SAP AG is now the third largest software maker in the world with over
17,500 customers, including more than half of the world's 500 top companies.
SAP R/3 is the leading example of an Enterprise Resource Planning (ERP) system, used by
medium to large companies to track and manage in real time, business information, such as
sales, production, and financial data. The R/3 system is known simply as SAP. It consists of
suites of major business applications, which can be viewed as a tightly integrated collection
of logical business modules. A module is a set of programs (or transactions) that deal with the
same area of business functionality, such as Financial Accounting, Materials Management,
and Human Resource Management. The software was developed with this idea of componen-
tisation of business functions in mind.
Each module, which is based on detailed analyses of industry best practices, implements
a specific segment of enterprise operations and are in themselves, extremely complex. The
modules work in close cooperation and this comprehensive integration offers complete har-
monisation across all business functions. For example, when a vendor completes a purchase
order, inventory levels are adjusted in Materials Management, and triggers the issuing of an
invoice from Financial Accounting.
There are 11 modules in SAP, usually referred to by a two-letter acronym. The BASIS sys-
tem could also be considered a module, but is the heart of the SAP system and is not normally
evident to users. All these modules need not be implemented in a company:

AM Asset Management - track, value, and depreciate assets, including:


• Purchase
• Depreciation
• Sale
CO Controlling - internal cost management accounting, including:
• Overhead cost
• Product cost
• Profitability analysis
FI Financial Accounting - normal accounting books, including:
• Generalledger
• Special purpose ledger
• Accounts receivable and payable

xxiii
xxiv An Introduction to SAP

HR Human Resources - people management, including:


• Payroll
• Recruitment
• Personnel development
MM Materials Management - anything to do with goods, including:
• Inventory management
• Consumption-based planning
• Purchasing
PM Plant Maintenance - equipment maintenance record, including:
• Maintenance order management
• Equipment inventory
• Down time
PP Production Planning - manages the production process, including:
• Production orders execution
• Material requirements planning
• Capacity planning
PS Project System - standard tools for project management, including:
• Progress analysis
• Time sheets
• Costs and forecasts
QM Quality Management - controls material quality, including:
• Planning
• Inspections
• Certificates
SD Sales and Distribution - controls the order lifecycle, including:
• Sales promotions
• Pricing
• Billing
CA Cross-Application - enhances the individual modules, including:
• Workflow (WF)
• Business information warehouse (BW)
• Industry solutions (IS)

SAP is delivered to customers with selected standard processes turned on and it is the
process of configuration which gives SAP its great flexibility. This configuration is done by
business analysts, people experienced in identifying and mapping (or where necessary, chang-
ing) business processes. They customise the modules by adjusting the thousands of possible
values within each module. This phase precedes going live and no programming is normally
required at this stage.
The SAP R/2 system, that was released into the German market in 1979, was designed
purely to operate as a mainframe system, and was the first integrated, enterprise-wide com-
puter system. In line with the trends in technology towards the end of the 1980s, SAP AG
launched R/3 in 1992, which runs under the three-tier client/server paradigm. These tiers
include:

Presentation server: The local PC that has SAPGUI installed.


Application server: Loads and runs programs from the database server.
Database server: Stores SAP's application programs and data.
An Introduction to SAP xxv

The software-orientated, client/server architecture of the R/3 system enables real-time


enterprise-wide information management and runs contrary to the central-processing design
of R/2. In mid-2001, there were approximately 644 installations of R/2. The number dropped
to below 200 by 2002 and is expected to be close to zero by mid/end-2004. Maintenance for all
remaining SAP R/2 systems ends by December 2004.
R/3 is hardware and operating-system neutral, and operates in a wide variety of environ-
ments which has helped it to grow, in just 10 years, to over 44,500 installations with an esti-
mated 10 million users in 120 countries. Today, SAP is available in 46 country-specific
versions, incorporating 28 languages including Japanese Kanji and other double-byte character
languages.
With each release, the system has been developed to meet the increasing commercial and
technological needs of organisations around the globe. Each release is assigned a version
number and the higher the version number, the later the release. The current release of R/3 is
4.7, called "Enterprise". From version to version, bugs have been fixed and the scope of the sys-
tem has been expanded to include new functionality, however subsequent releases and revi-
sions are downward compatible.
Using Function Modules

The programming language ABAP/4 (or now officially just called ABAP, "Advanced Business
Application Language") originated in the R/2 system, and was used exclusively for reporting.
With each release of SAP, the scope of the language has expanded to include new features, and
is now a modern fourth-generation language with object-oriented functionality.
Basic programs and reports are written entirely in ABAP and do not require any additional
assistance from the numerous tools and utilities within SAP. Usually, the ABAP editor
(Transaction SE38) is enough. Complex programs, called Transactions, require several develop-
ment tools, such as Screen Painter (Transaction SE51) to create and design interactive screens and
Menu Painter (Transaction S£41) to create custom screen titles and menu bars for each screen.
As with all modern-programming languages, SAP comes with a host of pre-written proce-
dures available for reuse in ABAP programs, called Function Modules, which can be accessed
from Transaction SE37. A function module is an independent routine that can be called from
within an ABAP program (using the CALL FUNCTION statement) to perform a specific task.
Examples include determining the IP address of a terminal, to finding the number of seconds,
hours, days, months and years between two dates.
Each function module is unique and is global to all ABAP programs, which is to say that no
special "include" statements need be inserted into the beginning of ABAP programs, unlike
for some functions in the C language, for example. Each module forms part of a function
group (pool), which is a way of grouping together modules with similar functionality. These
can be accessed from Transaction SE80.
Most function modules can be tested independently of the calling program, within
Transaction SE37. Exceptions defined in the module can be used to flag error conditions.
These errors are not necessarily ABAP coding errors, but could be a legitimate response coded
in the function module to certain conditions.
For example, if the date 31 September is passed into a function, the module can determine
that this is an invalid date and raise it as an exception, to be handled by the calling program.
Usually, each exception is given a unique (per module) numerical value, which is placed in the
system variable SY-SUBRC. The calling program can then examine the contents of this vari-
able to determine whether or not an exception has been triggered and, if so, which exception,
and take the appropriate action. A value of zero in this variable signifies that no errors
occurred in the function module.
A program snippet calling a function and handling errors would typically look something
like this:

REPORT ZEXAMPLE.
DATA V_YEARS TYPE I.
PARAMETERS: BIRTHDAY LIKE SY-DATUM.

xxvii
xxviii Using Function Modules

CALL FUNCTION 'COMPUTE_YEARS_BETWEEN_DATES'


EXPORTING
FIRST_DATE = BIRTHDAY
SECOND_DATE = SY-DATUM
IMPORTING
YEARS_BETWEEN_DATES = V_YEARS
EXCEPTIONS
SEOUENCE_OF_DATES_NOT_VALID = 1
OTHERS = 2.
CASE SY-SUBRC.
WHEN O.
WRITE:/ 'YOU ARE'. V_YEARS. 'YEARS OLD'.
WHEN 1.
WRITE:/ 'INPUT DATE IS NOT VALID'.
WHEN OTHERS.
WRITE:/ 'COULD NOT CALCULATE AGE FROM INPUT DATES'.
ENDCASE.

There is no guarantee that a desired function module exists, but SAP has developed a module
to cover almost every conceivable requirement, sometimes more than one to do a similar job.
There is no sure fire way of finding the module you need either, but generally the best method
is to enter a string containing the likely text of the function module in the function name box
in S£37, surrounded by asterisks (*) for wild-card characters.
If a list of functions is returned, simply double click on the function name, click the test
button, and enter appropriate input values. Check the results to determine if it suits your
requirements. The function module can be easily copied into a program by selecting the
Pattern button in Transaction S£38 and entering the function's name. All import, export, and
exception parameters are automatically pasted into the program, Optional parameters are
commented out (usually in a blue colour), while required parameters are coloured black,
ready to be assigned a value,

You might also like