ABAP常用函数集锦

时间:2022-08-07 17:23:36

函数名 描述 
SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息
EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织
VIEW_MAINTENANCE_CALL 维护表视图

函数名 描述 
DY_GET_FOCUS 获得屏幕焦点 
DY_GET_SET_FIELD_VALUE 获得或者设置屏幕字段的值

函数名 描述 
F4IF_INT_TABLE_VALUE_REQUEST 显示检索help 
READ_TEXT 读取长文本
CONVERSION_EXIT_CUNIT_OUTPUT 单位转换
SJIS_DBC_TO_SBC 全角转半角
SJIS_SBC_TO_DBC 半角转换为全角
CO_R0_CHECK_DECIMAL_POINT 根据单位检查数据的小数位
POSTAL_CODE_CHECK 检查邮政编码

函数名 描述 
CONVERSION_EXIT_ALPHA_INPUT 全数字则在前面补0
CONVERSION_EXIT_ALPHA_INPUT 和上面相反
GET_JOB_RUNTIME_INFO 获得job相关信息
TERMINAL_ID_GET 获得端末id
DATE_CONVERT_TO_FACTORYDATE 把输入日期转为工厂日历日期
MESSAGE_TEXT_BUILD 把消息转为文本

函数名 描述 
POPUP_TO_CONFIRM 弹出确认窗口

函数名 描述 
CONVERSION_EXIT_MATN1_INPUT 物料号码转换函数
CONVERSION_EXIT_MATN1_OUTPUT 同上相反
CONVERT_TO_LOCAL_CURRENCY 按照指定日期汇率转换金额为指定货币类型
SSF_FUNCTION_MODULE_NAME 根据form名取得对应的函数名(SmartForm)

函数名 描述 
DATE_CHECK_PLAUSIBILITY 日期CHECK
cl_gui_frontend_services=>gui_upload 上传到服务器
cl_gui_frontend_services=>gui_download 下载到服本地
SSF_FUNCTION_MODULE_NAME SMARTFORMS输出报表时,生成一个函数名称,然后CALL这个名称

函数名 描述 
POPUP_TO_DECIDE_LIST 弹出供选择窗口

ABAP_DOCU_DOWNLOAD – 以HTML格式下载ABAP文档。

ARFC_GET_TID – 以十六进制形式返回终端的IP地址。

BAL_* -容纳了SAP的应用程序日志所有的函数模块。

BP_EVENT_RAISE –在 ABAP/4 程序中触发一个事件。

BP_JOBLOG_READ –获得job log的执行结果。

CLOI_PUT_SIGN_IN_FRONT – 将负号前置, SAP默认将负号放在数字后面。

CLPB_EXPORT –从内表导入到剪贴板。

CLPB_IMPORT – 从剪贴板导入内表。

COMMIT_TEXT -To load long text into SAP 。

CONVERSION_EXIT_ALPHA_INPUT - 数字串前补0
example:
input = 123
output = 0000000000000。。。000000000000123

CONVERSION_EXIT_ALPHA_OUTPUT – 消除数字串前的0
example:
input = 00000000000123
output = 123

CONVERT_OTF – 将SAP文档(SAP Script)转换成其他类型。
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.

DATE_GET_WEEK – 返回一个日期所在的周数。

DATE_CHECK_PLAUSIBILITY – 检查一个日期是否是SAP的有效格式。

DYNP_VALUES_READ – 读取SCREEN字段的值,也可以用来读取报表SELECTION SCREEN。

DYNP_VALUES_UPDATE -更新屏幕字段的值。

ENQUE_SLEEP –在继续处理之前等待一个指定的时间。

ENQUEUE_ESFUNCTION – 锁定一个ABAP程序使它不可以被执行:

RELID = 'ZZ'
SRTF2 = 0
SRTF = (your report name)

注意不要用SY-REPID来传递你的报表名字,当把SY-REPID作为参数传递给函数模块的时候,SY-REPID的值实际上已经发生了变化。

EPS_GET_FILE_ATTRIBUTES – 获得文件属性。

EPS_GET_DIRECTORY_LISTING – 返回一个本地或网络目录的文件列表。

F4_DATE - 弹出一个窗口显示一个日历允许用户选择一个日期。

F4IF_SHLP_EXIT_EXAMPLE – F4接口模块。

FILENAME_GET – 弹出一个文件选择对话框。

DATA out(60) TYPE c.
CALL FUNCTION 'FILENAME_GET'
EXPORTING
filename = 'c:1.txt'
title = 'GET FILENAME'
IMPORTING
filename = OUT.

FTP_CONNECT – 打开并登陆FTP服务器的连接。
FTP_COMMAND – 在FTP服务器上执行一个命令。
FTP_DISCONNECT –关闭指向FTP服务器的连接。

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 accommodate that, it only replaces the ampersands (&) in the message。

GET_GLOBAL_SYMBOLS – 返回一个程序的tables, select options, texts, etc 。甚至包含selection screen的文本定义。

GET_INCLUDETAB – 获得一个程序的INCLUDES列表。

GUI_CREATE_DIRECTORY –在显示服务器端创建一个目录 。

GUI_DELETE_FILE – 在显示服务器端删除一个文件 。

GUI_DOWNLOAD – 从应用服务器下载内表到显示服务器。

GUI_EXEC – 调用一个文件或程序,取代了WS_EXECUTE。

GUI_GET_DESKTOP_INFO – 获得客户端桌面信息,取代了WS_QUERY。

GUI_REMOVE_DIRECTORY – 从显示服务器删除一个目录 。

GUI_RUN – 启动一个文件或程序 。

GUI_UPLOAD – 从显示服务器上传文件到应用服务器,取代了WS_UPLOAD。

HELP_START – 为一个字段显示帮助。 Useful for doing AT SELECTION SCREEN ON VALUE REQUEST for those fields that do not provide F4 help at the DDIC level。

HOLIDAY_GET – 基于Factory Calendar&/ Holiday Calendar提供了一个节日表。

INIT_TEXT –上传长文本到SAP。

K_WERKS_OF_BUKRS_FIND – 返回一个特定公司代码的所有工厂。

LIST_TO_ASCII –将ABAP报表从 OTF形式转换成ASCII 形式。

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。

MONTH_NAMES_GET – 获得所有的月和名字

**** MS_EXCEL_OLE_STANDARD_OLE – 创建一个文件并自动启动Excel 。

CONVERT_OTFSPOOLJOB_2_PDF - converts a OTF spool to PDF (i。e。 Sap script document)

CONVERT_ABAPSPOOLJOB_2_PDF -convert ABAP spool output to PDF

POPUP_TO_CONFIRM_LOSS_OF_DATA – 弹出一个对话框告知用户有可能丢失数据,询问是否操作继续。

POPUP_TO_CONFIRM_STEP -弹出一个对话框询问用户是否操作继续。

POPUP_TO_CONFIRM_WITH_MESSAGE 可以显示定制的提示信息的确认窗口 类似POPUP_TO_CONFIRM_STEP,只是多三行的文本错误诊断提示。

POPUP_TO_CONFIRM_WITH_VALUE 用此函数可以建立一个对话框用于询问用户是否执行某步操作,该操作可能会丢失数据,用户可以选择Yes No 或者Cancel。该函数可以传入一个标题,两行的文本(提示问题)和一个对象值

POPUP_TO_DECIDE 显示一个对话框,用户可以两个操作中的一个或者取消。可以传入三行提示文本

POPUP_TO_DECIDE_WITH_MESSAGE 类似POPUP_TO_DECIDE

POPUP_TO_DISPLAY_TEXT 显示多行信息的窗口

POPUP_TO_SELECT_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 – 获得定价条件

PROFILE_GET - 从INI文件读取一条记录

PROFILE_SET – 往INI文件写一条记录

READ_TEXT – 上传长文本

REGISTRY_GET – 从注册表读取一条记录

REGISTRY_SET – 在注册表里设置一条记录

RFC_ABAP_INSTALL_AND_RUN – 当MODE参数值为‘F’时运行PROGRAM表中的程序'.

RH_GET_ACTIVE_WF_PLVAR – 获得激活的HR计划

RH_START_EXCEL_WITH_DATA – 启动Excel并用内表给文件赋值

RH_STRUC_GET –返回所有相关的组织信息

RP_CALC_DATE_IN_INTERVAL – 年月日加减

RP_LAST_DAY_OF_MONTHS – 获得一个月的最后一天

RPY_DYNPRO_READ – 读取屏幕

RPY_TRANSACTION_READ – 给定一个事务代码,获得其程序和屏幕;或给定一个程序和屏幕获得事务代码

RS_COVERPAGE_SELECTIONS – 获得一个报表的选择参数列表。

RS_REFRESH_FROM_SELECTOPTIONS –获得当前选择屏幕的内容

RS_SEND_MAIL_FOR_SPOOLLIST – 在程序中给SAP office 发送消息

RS_VARIANT_CONTENTS – 获得一个变式的内容

RZL_SLEEP – 将当前程序挂起

RZL_SUBMIT – 提交一个远程报表

RZL_READ_DIR_LOCAL – 读取应用服务器的目录

RZL_READ_DIR – 如果服务器名字左部为空,从本地读取目录,否则读取远程服务器的目录

RZL_READ_FILE – 如果为给定服务器名字则读取本地文件,否则读取远程服务器文件。

RZL_WRITE_FILE_LOCAL - 将内表保存到显示服务器(not PC). 不使用OPEN DATASET因此避免了授权检查。

SAPGUI_PROGRESS_INDICATOR – 显示一个进度条

SAVE_TEXT – 上传长文本

SCROLLING_IN_TABLE –当编写模块池的时候可以用它来处理滚动

SD_DATETIME_DIFFERENCE – 两日期作差

SO_NEW_DOCUMENT_ATT_SEND_API1 - 将文档作为邮件的一部分发送

SO_SPLIT_FILE_AND_PATH – 将一个包含路径的全文件名分割为文件名和路径

SO_SPOOL_READ – 根据SPOOL号获得printer spool

SO_WIND_SPOOL_LIST – 根据用户浏览printer spool号

SX_OBJECT_CONVERT_OTF_PDF – 从OTF转换为PDF (SAP 脚本转换)

SX_OBJECT_CONVERT_OTF_PRT – 从OTF转换为打印机格式(SAP 脚本转换)

SX_OBJECT_CONVERT_OTF_RAW – 从OTF转换为ASCII(SAP 脚本转换)

SXPG_CALL_SYSTEM - 检查用户是否有执行某个命令的权限

SXPG_COMMAND_LIST_GET – 获得一个包含所有定义的外部OS命令的列表.

SXPG_COMMAND_DEFINITION_GET – 从R/3系统数据库读取单个外部OS命令的定义

SXPG_COMMAND_CHECK - 检查用户是否有执行某个命令的权限

SXPG_COMMAND_EXECUTE -检查用户是否有执行某个命令的权限,拥有授权则执行命令

TERMINAL_ID_GET –返回终端ID

TH_DELETE_USER – 剔除一个用户,效果同SM04

TH_ENVIRONMENT – 获得UNIX环境

TH_POPUP –在特定用户屏幕上显示一个系统消息

TH_REMOTE_TRANSACTION – 在远程服务器上运行事务代码

TH_USER_INFO – 获得当前用户的信息 (会话,登陆的工作台等)

TH_USER_LIST –显示登陆到应用服务器的用户列表

UNIT_CONVERSION_SIMPLE –衡量单位转换

UPLOAD –上传文件到显示服务器

UPLOAD_FILES – 上传一个或多个文件

WRITE_LIST –显示一个列表对象

WS_DOWNLOAD –将内表下载到显示服务器

WS_EXCEL –启动EXCEL

WS_EXECUTE –执行一个程序

WS_FILE_DELETE – 删除一个文件

WS_FILENAME_GET –调用文件选择对话框

WS_MSG –显示一个对话框显示在线消息

WS_UPLOAD – 从显示服务器上传文件到内表

WS_VOLUME_GET –获得终端设备标签

WWW_LIST_TO_HTML – 运行一个报表之后,调用这个方法将列表输出转换成HTML

SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息

EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织

VIEW_MAINTENANCE_CALL 维护表视图

DY_GET_FOCUS 获得屏幕焦点

DY_GET_SET_FIELD_VALUE 获得或者设置屏幕字段的值

F4IF_INT_TABLE_VALUE_REQUEST 显示检索help

CONVERSION_EXIT_CUNIT_OUTPUT 单位转换

SJIS_DBC_TO_SBC 全角转半角

SJIS_SBC_TO_DBC 半角转换为全角

CO_R0_CHECK_DECIMAL_POINT 根据单位检查数据的小数位

POSTAL_CODE_CHECK 检查邮政编码 GET_JOB_RUNTIME_INFO 获得job相关信息

TERMINAL_ID_GET 获得终端

idDATE_CONVERT_TO_FACTORYDATE 把输入日期转为工厂日历日期

MESSAGE_TEXT_BUILD 把消息转为文本

CONVERT_TO_LOCAL_CURRENCY 按照指定日期汇率转换金额为指定货币类型

SSF_FUNCTION_MODULE_NAME 根据form名取得对应的函数名(SmartForm)

DATE_CHECK_PLAUSIBILITY 检查日期合法性

CHECKcl_gui_frontend_services=>gui_upload 上传到服务器

cl_gui_frontend_services=>gui_download 下载到本地

SSF_FUNCTION_MODULE_NAME SMARTFORMS输出报表时,生成一个函数名称,然后CALL这个名

通过这个日期得出那天是星期几
DAY_IN_WEEK

用来得到将来/过去的日期的
RP_CALC_DATE_IN_INTERVAL

日期的加减
BKK_ADD_MONTH_TO_DATE

一组有用的用户交互窗口函数
POPUP_TO_CONFIRM_LOSS_OF_DATA 显示有YES/NO的弹出窗口,提示用户未保存的数据将丢失

POPUP_TO_CONFIRM_STEP 提示是否确认操作的弹出窗口

POPUP_TO_CONFIRM_WITH_MESSAGE 可以显示定制的提示信息的确认窗口

POPUP_TO_CONFIRM_WITH_VALUE 显示确认用户对某个特定对象的操作的弹出窗口

POPUP_TO_DECIDE 将待确认选项以单选按钮的方式显示的弹出窗口

POPUP_TO_DECIDE_WITH_MESSAGE 带消息的确认窗口

POPUP_TO_DISPLAY_TEXT 显示多行信息的窗口

POPUP_TO_SELECT_MONTH 月份选择窗口

实例:

) TYPE n,
         retcode LIKE sy-subrc.
selmonth = sy-datum(6).

CALL FUNCTION 'POPUP_TO_SELECT_MONTH'
  EXPORTING
    actual_month                     = selmonth
*    FACTORY_CALENDAR                 = ' '
*    HOLIDAY_CALENDAR                 = ' '
*    LANGUAGE                         = SY-LANGU
*    START_COLUMN                     = 8
*    START_ROW                        = 5
  IMPORTING
   selected_month                   = selmonth
   return_code                      =   retcode
*  EXCEPTIONS
*    FACTORY_CALENDAR_NOT_FOUND       = 1
*    HOLIDAY_CALENDAR_NOT_FOUND       = 2
*    MONTH_NOT_FOUND                  = 3
*    OTHERS                           = 4
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

图例:ABAP常用函数集锦

POPUP_WITH_TABLE_DISPLAY 有表格对象的确认窗口

一组操纵客户端文件系统的函数
GUI_CREATE_DIRECTORY 在PC上建立文件目录

GUI_DELETE_FILE 删除PC上的文件

GUI_DOWNLOAD 文件下载函数

GUI_EXEC 执行PC上的程序,或者打开文件

GUI_GET_DESKTOP_INFO 得到PC客户端的系统信息,比如操作系统等

GUI_REMOVE_DIRECTORY 删除PC目录

GUI_RUN 运行PC程序(ShellExecute)

GUI_UPLOAD 从PC上传程序

判断某天是否是假日 
HOLIDAY_CHECK_AND_GET_INFO

ABAP_DOCU_DOWNLOAD 
Download ABAP documentation in HTML format.

GET_CURRENT_YEAR
得到当前的财政年(fiscal year)

察看某日期的属性,包括该日期是星期几,第几天(周2=2),是不是公共假期等,需要输入国家日历。

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)?

CLPB_IMPORT :从剪贴板导入internal table
CLPB_EXPORT : 从internal table输入到剪贴板
示例程序:GRCLPB_1

在SE38环境下的程序名输入栏输入'DEMO*'后按F4,你可以查到SAP所有的DEMO示例程序,会学到很多ABAP功能的实现方法,输入'BCALV*'后按F4,你可以查到很多ALV示例程序。