ABAP常用函数
- 格式:doc
- 大小:41.50 KB
- 文档页数:8
abap 常用函数用法ABAP是一种功能强大的SAP开发语言,用于创建和编辑业务应用程序。
在ABAP编程中,函数是一种常用的工具,用于执行特定的任务。
本篇文章将介绍一些常用的ABAP函数及其用法。
一、字符串函数1.LEFT(string,length):返回string字符串左边的length个字符。
2.RIGHT(string,length):返回string字符串右边的length个字符。
3.MID(string,start_position,length):返回string字符串从start_position开始,length个字符的子串。
4.CONCATENATE(string1,string2,...):将多个字符串连接成一个字符串。
5.TRIM(string):去除字符串首尾的空格。
6.LOWER(string):将字符串转换为小写。
7.UPPER(string):将字符串转换为大写。
二、数值函数1.ABS(number):返回number的绝对值。
2.ROUND(number,digits):对number进行四舍五入到digits位小数。
3.FLOOR(number):对number向下取整。
4.CEILING(number):对number向上取整。
5.MOD(number1,number2):返回number1除以number2的余数。
三、日期函数1.CURDATE():返回当前日期。
2.YEAR(date):返回date日期的年份。
3.MONTH(date):返回date日期的月份。
4.DAY(date):返回date日期的天数。
5.ADD_MONTHS(date,months):将date日期增加指定的月份。
6.SUBTRACT_MONTHS(date,months):将date日期减少指定的月份。
四、其他常用函数1.ISNULL(value):检查value是否为空。
2.IS_NOT_NULL(value):检查value是否不为空。
ABAP 函数总结常用函数解释函数名描述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 显示检索helpREAD_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 全数字则在前面补0CONVERSION_EXIT_ALPHA_INPUT 和上面相反GET_JOB_RUNTIME_INFO 获得job相关信息TERMINAL_ID_GET 获得端末idDATE_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 日期CHECKcl_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文档。
SAPABAP函数总结常用函数解释SAPABAP是一种流行的编程语言,常用于SAP系统开发。
在ABAP中,函数是可重复使用的代码块,用于执行特定的任务或操作。
这些函数可以在ABAP程序中调用,以提高代码的可维护性和重用性。
下面是一些常用的SAPABAP函数以及它们的解释。
1.STRLEN函数:返回一个字符串的长度。
这个函数可以用于计算字符串的字符数,以便于处理和操作字符串。
2.CONCATENATE函数:将多个字符串连接成一个字符串。
这个函数可以用于连接两个或多个字符串,使其成为一个新的字符串。
3.REPLACE函数:替换字符串中指定的内容。
这个函数可以用于替换一个字符串中的一些子串,以实现特定的文本替换需求。
4.SPLIT函数:将一个字符串按照指定的分隔符分割成一个字符串表。
这个函数可以用于将一个长字符串以指定的分隔符分割为多个小字符串,并存储在表中。
5.TRANSLATE函数:替换字符串中的字符。
这个函数可以用于替换一个字符串中的特定字符或字符串,以实现文本的转换或调整。
6.NUMERIC_CHECK函数:检查一个字符串是否为合法的数字。
这个函数可以用于验证一个字符串是否为合法的数字,以确保数据的准确性。
7.DATE_CONVERSION_FUNCTIONS函数:日期转换函数。
这个函数可以用于在不同日期格式之间进行转换,以满足不同日期格式的需求。
8.DYNPRO_NOT_FOUND函数:检查屏幕元素是否存在。
这个函数可以用于检查SAP屏幕中是否存在一个指定的屏幕元素,以便根据结果来决定后续的操作。
9.WRITE函数:向输出窗口或内部表写入数据。
这个函数可以用于将数据写入SAP输出窗口,或写入内部表,以进行后续的数据处理。
10.SY-SUBRC函数:获取最近一次操作的执行状态。
这个函数可以用于获取最近一次操作的执行结果,以便根据结果进行进一步的处理和判断。
11.CONVERSION_EXIT_ALPHA_INPUT函数:输入转换函数。
abap 函数表一、ABAP简介ABAP是SAP系统中广泛使用的编程语言,用于开发系统功能、报表、图形用户界面等。
ABAP程序可以通过调用函数来实现各种功能,提高开发效率。
二、ABAP函数分类ABAP函数根据功能和用途可以分为以下几类:1. 数据处理函数:用于对数据进行处理,包括数据类型转换、数值计算、字符串处理等。
2. 数据库操作函数:用于与数据库进行交互,包括查询、插入、更新、删除等操作。
3. 文件操作函数:用于对文件进行读写、删除等操作。
4. 字符串操作函数:用于对字符串进行操作,包括分割、合并、替换、加密等。
5. 日期和时间函数:用于处理日期和时间,包括获取当前日期和时间、计算日期差值、格式化日期等。
6. 用户自定义函数:用户可以根据需要编写自定义函数,实现特定的功能。
以下是一个ABAP函数表的示例,列出了部分常用的ABAP函数:1. 数据类型转换函数(1) TYPE-CONVERT(value1, type, value2) 将value1从一种类型转换为type类型,并返回转换后的结果。
(2) VALUE(value, type) 将value转换为指定类型,并返回转换后的结果。
(3) TYPE-CHECK(value, type) 检查value是否符合type类型的要求,返回TRUE或FALSE。
2. 数值计算函数(1) ABS(number) 返回number的绝对值。
(2) ROUND(number, digits) 对number进行四舍五入,digits 指定小数位数。
(3) SQUARE(number) 返回number的平方。
(4) FLOOR(number) 对number向下取整。
(5) CEILING(number) 对number向上取整。
3. 字符串操作函数(1) STR-SUBSTR(string, start_pos, [end_pos]) 从string中截取从start_pos到end_pos之间的子串。
abap 聚合函数ABAP(Advanced Business Application Programming)是一种面向SAP系统的编程语言,广泛用于企业资源计划(ERP)和商务信息仓库(BIW)等应用程序的开发。
在ABAP中,聚合函数(Aggregate Functions)是一组用于对数据进行汇总和计算的函数,能够提供有关数据集的总体信息。
本文将介绍ABAP中常用的聚合函数及其用法。
一、SUM函数SUM函数用于计算某个字段的总和。
例如,可以使用SUM函数计算销售订单中所有产品的销售数量总和。
语法:SUM(字段名)。
示例:DATA sales_amount TYPE i.SELECT SUM(数量) INTO sales_amount FROM 销售订单 WHERE 日期= '2021-01-01'.WRITE: '销售订单的销售总量为', sales_amount.二、AVG函数AVG函数用于计算某个字段的平均值。
例如,可以使用AVG函数计算销售订单中所有产品的平均销售价格。
语法:AVG(字段名)。
示例:DATA average_price TYPE p DECIMALS 2.SELECT AVG(价格) INTO average_price FROM 销售订单 WHERE 日期= '2021-01-01'.WRITE: '销售订单的平均销售价格为', average_price.三、MIN函数MIN函数用于计算某个字段的最小值。
例如,可以使用MIN函数找到销售订单中价格最低的产品。
语法:MIN(字段名)。
示例:DATA min_price TYPE p DECIMALS 2.SELECT MIN(价格) INTO min_price FROM 销售订单WHERE 日期= '2021-01-01'.WRITE: '销售订单中价格最低的产品价格为', min_price.四、MAX函数MAX函数用于计算某个字段的最大值。
abap函数荟萃2009年04月02日星期四08:331 .函数WS_UPLOAD功能﹕将TXT文件转换成SAP中的内表定义的数据表格文件注意﹕1函数将按参数data_tab的实际参数(假设为table1) table1定义的各个字段的长度来依次将TXT文件间隔开﹐并依次将对应的值付给table1的字段,table中的各个字段必须为C型2 TXT文件中﹐各个字段值之间不能有空格事例: ZBC400_JOHN_262 .函数TH_POPUP功能:向函数入口参数client , user决定的用户发送信息(信息为入口参数message决定的信息)事例﹕ZBC_LSL_0173.函数HELP_V ALUES_GET_WITH_TABLE功能﹕弹出用户所需要的信息﹐让用户选择﹐并把选种的信息付给输入框﹐相当与建立起SEARCH HELP注意: 1 tables的参数fields , valuetab需要固定的内表结构2 importing的参数select_value有高﹐低两个值﹐即用户选种的值付给相应的输入框的最小值﹐最大值3 tables的参数fields , valuetab的实际参数(假设为tab_field, field_value)tab_field, field_value的付值,其tab_field内表中﹐有且仅有一个字段的selectflag = 'X’事例﹕ZPP0002934 .函数Z_UDARBID功能﹕根据工单号﹐当前工作中心代号﹐读出上一工作中心代号﹐上一工作中心名称﹐下一工作中心代号﹐下一工作中心名称事例﹕ZPP000224_EDIT说明﹕取得上下组别的函数更正确的函数z_udarbid_change(可以解决组别循环问题)示例﹕ZBAK_ZPP000222_LSL5 .函数Z_COLORANDSIZE功能﹕根据该物料的组态﹐得出该物料的颜色尺码.注意﹕入口参数IP_SPRAS = 'E’表示本厂款号﹐’M’表示客户款号6 .函数Z_PRINTTITLE功能﹕打印标准报表头事例﹕ZBC_LSL_7777 .函数Z_PAGECHANGE功能﹕许多记录时﹐进行翻叶操作8 .函数READ_TEXT功能﹕读取内文假设﹕FORM get_pitext USING pn LIKE thead-tdname .REFRESH tabline.CALL FUNCTION 'READ_TEXT'EXPORTINGclient = sy-mandtid = '0006'language = 'M'object = 'VBBK'name = pnarchive_handle = 0IMPORTINGheaders = theadTABLESlines = tablineEXCEPTIONSnot_found = 2.注意﹕1 tabline必须为固定格式, headers的实际参数必须为thead name的实际参数必须为thead-tdname形式,靠它来确定取谁的内文2 client , language , archive_handle的入口值基本固定如上3 id为va03?转到?表头?内文?(双击要读取的内文项)?goto?headertext id既是参数id的值text object既是参数object的值事例﹕ZPP0002209 .函数Z_CURR_TO_CHAR .功能﹕把curr型的数据转化成char型的数据﹐转化后的数据仍然按curr型数据显示(“###,###,###.##”)并可以在char型数前后添加固定个特殊字符(“**12,111,456.23”, ”**********12.45”)假设p_curr为CURR型﹐p_char = '*’CALL FUNCTION 'Z_CURR_TO_CHAR'EXPORTINGp_curr_i = p_curr* p_char_i = p_char* p_num_i = 2* p_bore_i =* p_nums_i = 20IMPORTINGp_char_o = t_chrEXCEPTIONno_p_curr_i = 1curr_type_wrong = 2not_bore_i = 3OTHERS = 4.说明﹕p_curr :必须输入参数﹐不能超过15个长度,被转化的参数p_char :可线参数﹐须添加的特殊字符p_num_I :可线参数﹐当参数p_nums_I为空时有效﹐要添加的特殊字符的个数p_bore_I:可线参数﹐决定是在前/后添加特殊字符,b?前﹐e?后﹐默认为b,只能输入b/e否则函数不转化p_nums_I:可线参数﹐决定转化成固定个字符长度的﹐若参数p_char_I有值﹐则不足位时补特殊字符﹐若参数p_char_I为空时﹐该参数无效﹐若该参数输入值﹐则参数p_num_I无效。
abap 常用函数用法-回复标题:ABAP常用函数用法详解ABAP(Advanced Business Application Programming)是SAP公司开发的一种高级编程语言,广泛应用于企业资源规划(ERP)系统中。
在ABAP编程中,函数的使用是不可或缺的一部分。
本文将详细介绍一些ABAP常用函数的用法。
1. CONCATENATE函数CONCATENATE函数用于连接两个或更多的字符字段或变量。
其基本语法如下:CONCATENATE expression1 [ INTO target ] [ SEPARATED BY separator ].例如,我们想要连接两个字符串"Hello"和"World":DATA(str1) = 'Hello'.DATA(str2) = 'World'.DATA(result) = CONCATENATE str1 ' ' str2.在上述代码中,'result'的值将会是"Hello World"。
2. SUBSTRING函数SUBSTRING函数用于从字符串中提取一部分子字符串。
其基本语法如下:SUBSTRING string [ OFFSET offset ] [ LENGTH length ].例如,我们想要从字符串"Hello World"中提取"World":DATA(full_str) = 'Hello World'.DATA(sub_str) = SUBSTRING full_str OFFSET 6.在上述代码中,'sub_str'的值将会是"World"。
3. REPLACE函数REPLACE函数用于在字符串中替换某个子字符串。
ABAP 常用日期函数总结WEEK的函数:function group:CADA1.计算两个日期间的工作天数,即除双休日之外的天数DATE_CONVERT_TO_FACTORYDATEHR_HK_DIFF_BT_2_DATES2.根据系统当前时间找到上月的第一天和最后一天。
CALL FUNCTION'FIMA_DATE_CREATE'EXPORTINGi_date = sy-datum * I_FLG_END_OF_MONTH = ' '* I_YEARS = 0I_MONTHS = '-1'* I_DAYS = 0* I_CALENDAR_DAYS = 0I_SET_LAST_DAY_OF_MONTH = 'X'IMPORTINGE_DATE = lastdate.* E_FLG_END_OF_MONTH =* E_DAYS_OF_I_DATE = .其中,lastdate为上月最后一天。
Firstday是上月第一天Concatenate lastdate+(6)'01' into firstday.3.当天是当年的第几周DATE_GET_WEEK4.得到该周第一天Week_get_first_day5.查找当前月份以前的月份(比如现在是4月份,如果我需要知道六个月以前的月份)ccm_go_back_monthsrp_calc_date_in_interval6.获取两日期之间天数函数:fima_days_and_months_and_years7.取得当月的第一天和最后一天Concatenate sy-datum(6)'01' into so_date-low.Call function'BKK_GET_MONTH_LASTDAY'EXPORTINGi_date = SY-DATUM* IMPORTINGE_DATE = so_date-high.So_date-sign = 'I' .So_date-option = 'BT'.Append so_date.8.Rp_calc_date_in_interval 年月日加减9.DATE_CHECK_PLASIBILITY 日期有效性检查10.SD_DATETIME_DIFFERENCE 两日期做差11.DATE_CONVERT_TO_FACTORYDATE 把输入日期转为工厂日历日期12.MONTH_NAMES_GET 获得所有的月和名字13.F4_DATE 弹出一个窗口显示一个日历允许用户选择一个日期14.RP_LAST_DAY_OF_MONTHS 获得一个月的最后一天15.FIRST_DAY_IN_PERIOD_GET 获得期间首日16.LAST_DAY_IN_PERIOD_GET 获得期间末日17.获得两个日期的年数CALL FUNCTION'HR_99S_INTERVAL_BETWEEN_DATES' EXPORTINGBEGDA = gdatendda = sy-datum* TAB_MODE = ' '* IMPORTING* DAYS =* C_WEEKS =* C_MONTHS =C_YEARS = l_age* WEEKS =* MONTHS =* YEARS =* D_MONTHS =* MONTH_TAB =.18.关于星期的函数CALLFUNCTION'GET_WEEK_INFO_BASED_ON_DATE' EXPORTINGDATE= SY-DATUMIMPORTINGWEEK =MONDAY =SUNDAY =.19.输入日期,显示星期几CALL FUNCTION'DAY_IN_WEEK'EXPORTINGdatum =IMPORTINGWOTNR = 对应日期星期几20.弹出选择周的对话框AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_week-low. PERFORM getweek CHANGING s_week-low.*&---------------------------------------------------------------------**& Form getweek*&------------------------------------------------------------FORM getweek CHANGING p_week.DATA: begin_date TYPE d.CALL FUNCTION'POPUP_CALENDAR_SDB'EXPORTING* SEL_DAY =sel_week = 'X'* SEL_MONTH =* SEL_INTERVAL =* DAY_INFO =* SEL_ONLY_MARKED_DAYS =focus_day = sy-datum* IMPORTINGbegin_date = begin_date* END_DATE =.CALL FUNCTION'GET_WEEK_INFO_BASED_ON_DATE'EXPORTINGdate = begin_dateIMPORTINGweek = p_week.* MONDAY =* SUNDAY =ENDFORM. "getweek21.只显示年月,但要有日期的search help.PARAMETERS: p1(6) TYPE c.AT SELECTION-SCREEN ON VALUE-REQUEST FOR p1. DATA: l_date TYPE sy-datum.CALL FUNCTION'F4_DATE'EXPORTINGdate_for_first_month = sy-datum* DISPLAY = ' '* FACTORY_CALENDAR_ID = ' '* GREGORIAN_CALENDAR_FLAG = ' '* HOLIDAY_CALENDAR_ID = ' '* PROGNAME_FOR_FIRST_MONTH = ' ' IMPORTINGselect_date = l_date* SELECT_WEEK =* SELECT_WEEK_BEGIN =* SELECT_WEEK_END =EXCEPTIONScalendar_buffer_not_loadable = 1date_after_range = 2date_before_range = 3date_invalid = 4factory_calendar_not_found = 5holiday_calendar_not_found = 6parameter_conflict = 7OTHERS= 8.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.p1 = l_date+0(6).*检查日期的合理性CALL FUNCTION'DATE_CHECK_PLAUSIBILITY'EXPORTINGdate= bkdf-dbbdt "周期性分录的凭证抬头补充周期性分录凭证开始日期EXCEPTIONSplausibility_check_failed = 1OTHERS= 2.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.22.判断是不是时间TIME_CHECK_PLAUSIBILITY23.得到当前的财政年GET_CURRENT_YEAR24.查看某日期的属性,包括该日期是周几,第几天,是不是公共假日,需要输入国家日历DAY_ATTRIBUTES_GET25.判断某天是不是假日HOLIDAY_CHECK_AND_GET_INFO26.月份选择窗口POPUP_TO_SELECT_MONTH27.比较日期和时间type-pools: trff. "Treasury: Finanzmathematik 国库计量金融表库data: x_log_op type trff_type_c_2. "Treasury: FinanzmathematikCALL FUNCTION'FIMA_DATE_CREATE'EXPORTINGi_date = sy-datumi_time = sy-uzeitI_FLG_END_OF_MONTH = 'X'l_comp_date = l_modify-moddatel_comp_time = l_modify-modtime* I_YEARS = 0* I_MONTHS = 0* I_DAYS = 0* I_CALENDAR_DAYS = 0* I_SET_LAST_DAY_OF_MONTH = ' 'IMPORTINGe_log_op = x_log_op.* E_DATE =* E_FLG_END_OF_MONTH =* E_DAYS_OF_I_DATE =.p_months = -4. "前4月,如果为正,则是后面的日期CALL FUNCTION'MONTH_PLUS_DETERMINE'EXPORTINGmonths = p_monthsolddate = p_dateIMPORTINGNEWDATE = p_date.28.从数据库表中获得指定语言每周七天的名称:WEEKDAY_GET 函数模块的作用:输入参数:Language:指定语言代码,可以省略,为登录语言。
博客:/u2/64908/article_85516.html常用的系统变量如下:1. SY-PAGNO当前页号2. SY-DATUM当前时间3. SY-LINSZ当前报表宽度4. SY-LINCT当前报表长度5. SPACE空字符6. SY-SUBRC执行状态为0,表示成功.7. SY-UNAME 用户名8. SY-UZEIT当前时间9. SY-TCODE当前的事务代码10. SY-LSIND列表索引页11. SY-LISTI上一个列表的索引12. SY-LILLI绝对列表中选定行的行号13. SY-CUROW屏幕上的行14. SY-CUCOL光标列15. SY-CPAGE列表的当前显示页16. SY-STARO真实行号17. SY-LISEL选择行的内容,长度为25518. SY-LINNO当前行19. SY-INDEX:做无条件循环是的次数值.20. SY-FDPOS:子字符串在源串中的位置。
系统常用函数21. SHIFT STRING:左移字符串。
长度减1。
22 CONCATENATE 字符合并23. SPLIT:拆分字符串。
24. SEARCH:查询字符串。
25. REPLACE:替换字符串。
26. CONDENSE:删除多余的空格。
27. TRANSLATE:转换字符格式,如将'ABC'转换为'ABC'28. CONVERT TEXT:创建一个可排序的字符串。
29. OVERLAY:用一个字符串覆盖另一个字符串。
30. STRLEN:字符串长度。
31. ABS:取绝对值。
32. COS、SIN、TAN:取三角函数值。
33. ACOS、ASIN、A TAN:反三角函数。
34. COSH、SINH、TANH:双曲函数。
35. EXP:E的幂函数。
36. LOG:底数为E的对数。
37. LOG10:底数为10的对数。
38. SQRT:平方根。
39. SIGN:返回参数符号。
40. TRUNC:返回参数的整数部分。
41. FRAC:输入参数的小数部分。
42. CEIL:返回不小于参数的最小整数。
43. FLOOR:返回不大于参数的最小整数WS_DOWNLOAD :下载表格到本地文件可能没有类的方法高效RP_LAST_DAY_OF_MONTHS:取月的最后一天UNIT_CONVERSION_SIMPLE:单位换算WS_FILENAME_GET:呼叫open dialog的方式C14B_ADD_TIME:加时间到某年某日BAPI_CURRENCY_CONV_TO_INTERNAL:将货币转成内部存储值BAPI_CURRENCY_CONV_TO_EXTERNAL:将货币转成外部储存值CONVERSION_EXIT_ALPHA_OUTPUT:将数字前的0都去除NUMERIC_CHECK:判断是否为数字SPELL_AMOUNT :将数字转化成文字TMP_GUI_FILE_OPEN_DIALOG 调用选择文件对话框ALSM_EXCEL_TO_INTERNAL_TABLE Excel数据到内部表CA TS_NUMERIC_INPUT_CHECK:数值检查sy-index:做无条件循环是的次数值.sy-subrc:系统执行后的返回值,如果为0就表示成功,否则为失败。
sy-fdpos:子字符串在源串中的位置。
sy-uzeit:获取系统时间。
sy-datum:获取系统日期。
shift string:左移字符串。
长度减1。
concatenate:连接字符串。
split:拆分字符串。
search:查询字符串。
replace:替换字符串。
condense:删除多余的空格。
translate:转换字符格式,如将'ABC'转换为'abc'convert text:创建一个可排序的字符串。
overlay:用一个字符串覆盖另一个字符串。
strlen:字符串长度。
abs:取绝对值。
cos、sin、tan:取三角函数值。
acos、asin、atan:反三角函数。
cosh、sinh、tanh:双曲函数。
exp:e的幂函数。
Log:底数为e的对数。
log10:底数为10的对数。
sqrt:平方根。
sign:返回参数符号。
trunc:返回参数的整数部分。
frac:输入参数的小数部分。
ceil:返回不小于参数的最小整数。
floor:返回不大于参数的最小整数。
函数名描述CONVERSION_EXIT_ALPHA_INPUT 料号前面补0CONVERSION_EXIT_ALPHA_OUTPUT 料号前面减0CONVERSION_EXIT_MATN1_INPUT 料号前面补0CONVERSION_EXIT_MATN1_OUTPUT 料号前面减0LAST_DAY_OF_MONTHS 查询某日期的在当月的最后一天CO_SF_CAUFVD_GET 根据工单号查询订单抬头和项目SO_NEW_DOCUMENT_ATT_SEND_API1 外发邮件VIEW_MAINTENANCE_CALL 调用数据表的维护视图SO_OBJECT_SEND 外发邮件函数名CONVERSION_EXIT_ALPHA_INPUT功能:料号前面补0,实例:CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' "料号前面加0” EXPORTINGinput = matnr_inIMPORTINGoutput = matnr_out.说明:1)数字料号入Table需要补0,不会自动产生,有字母料号却会自动补0. 2)只能用‟字符型‟CONVERSION_EXIT_MATN1_INPUT功能:料号前面补0实例:CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT' "料号前面补0” EXPORTINGinput = matnr_inIMPORTINGoutput = matnr_outEXCEPTIONSlength_error = 1OTHERS = 2.说明: 1)数字料号入Table需要补0,不会自动产生,有字母料号却会自动补0.2)只能用于料号转换CONVERSION_EXIT_ALPHA_OUTPUT功能:料号前面去0实例:CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' "料号前面去0. EXPORTINGinput = wa_ysy1-matnrIMPORTINGoutput = wa_ysy1-matnr.说明:CONVERSION_EXIT_MATN1_OUTPUT功能:料号前面去0实例:CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTINGinput = t_afpo-matnrIMPORTINGoutput = t_afpo-matnrEXCEPTIONSOTHERS = 1.说明:LAST_DAY_OF_MONTHS功能:查询某日期的在当月的最后一天CALL FUNCTION 'LAST_DAY_OF_MONTHS'EXPORTINGday_in = f_date "月任意一天类型必须为D(要完成日期## IMPORTINGlast_day_of_month = p_date "月最后一天类型必须为D(完整日期)EXCEPTIONSday_in_no_date = 1OTHERS = 2.说明:CO_SF_CAUFVD_GET功能: 根据工单号查询订单抬头和项目实例:DATA: wa_caufvd TYPE caufvd.CALL FUNCTION 'CO_SF_CAUFVD_GET'"取得订单抬头和项目EXPORTINGaufnr_imp = aufnrIMPORTINGcaufvd_exp = wa_caufvd “订单抬头和项目结构EXCEPTIONSnot_found = 1OTHERS = 2.说明:SO_NEW_DOCUMENT_ATT_SEND_API1功能:邮件发送SAPoffice: Send new document with attachments using RFC 实例:FORM email_itab. “邮件内容“WRITE: '编号' TO email_itab-line+0(3), "255个长度的文本字段:文本"'记帐日期' TO email_itab-line+3(10),ENDFORM. "email_itabFORM reset_objpack .it_packing_list-transf_bin = space. "标记将以二进制形式传输对象的标志"it_packing_list-head_start = 0."表头开始行"it_packing_list-head_num = 1. "表头行数"it_packing_list-body_start = 1."内容开始行"it_packing_list-body_num = it_message_lines. "内容行数"it_packing_list-doc_type = 'RAW'. "信息类型"APPEND it_packing_list.ENDFORM. "reset_objpackFORM reset_doc_chng .DESCRIBE TABLE email_itab LINES it_message_lines.gd_doc_data-doc_size = it_message_lines * 255 + STRLEN( email_itab ). "SAPoffice 文档的大小" gd_doc_data-obj_langu = sy-langu. "创建文档使用的语言"gd_doc_data-obj_name = 'SAPRPT'. "文档,文件夹或分配清单的名称"gd_doc_data-obj_descr = '邮件标题'. "Email标题"gd_doc_data-sensitivty = 'F'. "对象:灵敏度(个人的,功能的,...) F:功能"ENDFORM. "reset_doc_chngFORM reset_reclist .SELECT zmaaddrINTO it_receivers-receiverFROM ziebtemail.it_receivers-rec_type = 'U'. "互联网地址APPEND it_receivers.CLEAR it_receivers.ENDSELECT.ENDFORM. "reset_reclistDATA: gd_doc_data LIKE sodocchgi1,gd_sent_all(1) TYPE c,it_message_lines TYPE sy-tabix,it_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,it_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE.DATA: BEGIN OF email_itab OCCURS 10.INCLUDE STRUCTURE soli.DATA: END OF email_itab.PERFORM email_itab. "TABLES OUTPUT_TAB.PERFORM reset_doc_chng.PERFORM reset_reclist.PERFORM reset_objpack.CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'EXPORTINGdocument_data = gd_doc_data “新文档的属性”PUT_IN_OUTBOX = 'X' “标志:发送后将文档移到outbox* COMMIT_WORK = ' '* IMPORTINGSENT_TO_ALL = gd_sent_all “Flag: Document sent to all”* NEW_OBJECT_ID = ID of created object (not document!)tablespacking_l ist = it_packing_list “SAPoffice:输入对象组件描述”* OBJECT_HEADER =* CONTENTS_BIN =* CONTENTS_TXT =* CONTENTS_HEX =* OBJECT_PARA =* OBJECT_PARB =receivers = email_itab”SAPoffice:API 收件人清单的结构”* EXCEPTIONS* TOO_MANY_RECEIVERS = 1* DOCUMENT_NOT_SENT = 2* DOCUMENT_TYPE_NOT_EXIST = 3* OPERATION_NO_AUTHORIZATION = 4* PARAMETER_ERROR = 5* X_ERROR = 6* ENQUEUE_ERROR = 7* OTHERS = 8.IF sy-subrc <>0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.说明:VIEW_MAINTENANCE_CALL功能:调用数据表的维护视图实例:CALL FUNCTION 'VIEW_MAINTENANCE_CALL'EXPORTINGaction = 'U' “活动(显示/维护/传输)”* CORR_NUMBER = ' '* GENERATE_MAINT_TOOL_IF_MISSING = ' '* SHOW_SELECTION_POPUP = ' 'view_name = 'ZIEBTEMA IL' “要处理的视图/表格的名称”* NO_WARNING_FOR_CLIENTINDEP = ' '* RFC_DESTINATION_FOR_UPGRADE = ' '* CLIENT_FOR_UPGRADE = ' '* VARIANT_FOR_SELECTION = ' '* COMPLEX_SELCONDS_USED = ' '* CHECK_DDIC_MAINFLAG = ' '* SUPPRESS_WA_POPUP = ' '* TABLES* DBA_SELLIST =* EXCL_CUA_FUNCT =* EXCEPTIONS* CLIENT_REFERENCE = 1* FOREIGN_LOCK = 2* INVALID_ACTION = 3* NO_CLIENTINDEPENDENT_AUTH = 4* NO_DATABASE_FUNCTION = 5* NO_EDITOR_FUNCTION = 6* NO_SHOW_AUTH = 7* NO_TVDIR_ENTRY = 8* NO_UPD_AUTH = 9* ONLY_SHOW_ALLOWED = 10* SYSTEM_FAILURE = 11* UNKNOWN_FIELD_IN_DBA_SELLIST = 12* VIEW_NOT_FOUND = 13* MAINTENANCE_PROHIBITED = 14* OTHERS = 15.IF sy-subrc <>0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.说明:SO_OBJECT_SEND功能:外发邮件实例:REPORT ztmail02 .DATA: BEGIN OF itab OCCURS 0,pernr LIKE pa0001-pernr,ename LIKE pa0001-ename,END OF itab.DATA: message_content LIKE soli OCCURS 10 WITH HEADER LINE, receiver_list LIKE soos1 OCCURS 5 WITH HEADER LINE,packing_list LIKE soxpl OCCURS 2 WITH HEADER LINE,listobject LIKE abaplist OCCURS 10,compressed_attachment LIKE soli occurs 100 WITH HEADER LINE,w_object_hd_change LIKE sood1 occurs 100 WITH HEADER LINE, compressed_size LIKE sy-index.START-OF-SELECTION.SELECT pernr enameINTO CORRESPONDING FIELDS OF TABLE itabFROM pa0001WHERE pernr <50.LOOP AT itab.WRITE: /02 sy-vline, itab-pernr, 15 sy-vline, itab-ename, 50sy-vline.ENDLOOP.*receiversreceiver_list-recextnam = 'shuchang@'. “直接外部地址作为接收方” receiver_list-recesc = …U‟. “收件人类型的说明; U 互联网地址”receiver_list-sndart = …MAIL'. “输出设备; MAIL 邮件”receiver_list-sndpri = '1'. “发送:优先级; 1 最高优先权”APPEND receiver_list.*general dataw_object_hd_change-objla = sy-langu. “创建文档使用的语言”w_object_hd_change-objnam = 'Object name'. “文档,文件夹或分配清单的名称”w_object_hd_change-objsns = 'F'. “对象:灵敏度(个人的,功能的,...)” F: 功能w_object_hd_change -OBJDES = …Message subject‟. “Mail的标题”APPEND w_object_hd_change.*contentmessage_content-line = 'Message content'. “发送的内容”APPEND message_content.CALL FUNCTION 'SO_OBJECT_SEND'EXPORTINGobject_hd_change = w_object_hd_change “通常头数据”object_type = 'RAW' “对象类型”OUTBOX_FLAG = 'X' “标志:发送后将文档移到outboxowner = sy-uname “负责传送的用户”TABLESobjcont = message_content “发送的内容”receivers = receiver_list “接收对象属性”att_cont = compressed_attachment.。