文章目录
- 前言
- 一、日期 时间 相关
- `a.`两个日期之间相隔多少月
- 二、数据 操作 转化 加密
- `a.`增加 去除 前导零
- `b.`将 数值类型 负号 提前
- `c.`数据加密 MD5 加密
- 三、获取 属性 定义 读取 数据
- `a.`获取函数的 出参 入参 定义
- 四、步骤四
- `a.`步骤四 a
- 五、步骤五
- `a.`步骤五 a
- NED、总结
前言
这篇文章会持续更新,先 点赞 关注 收藏
制作不易 谢谢🤞
这篇文章会持续更新,先 点赞 关注 收藏
制作不易 谢谢🤞
这篇文章会持续更新,先 点赞 关注 收藏
制作不易 谢谢🤞
这篇文章给大家介绍一下我们 >ABAP 在日常开发中最常用到的一些函数。在SAP中是有大量的标准函数的,涉及面很广很多。其实BAPI也是函数但是这篇文章不会记录介绍,只会持续更新记录我们在ABAP中常用的标准函数 例如对数据的操作转化、日期时间相关、数据属性定义获取 、上载下载、。。。。等等之类的标准函数。下面的提及记录的函数都会给出相应简单的小案例。我会对这些记录的函数 进行划分整理,大家有想查阅的直接查看目录定位到对应位置点击即可。
一、日期 时间 相关
这个标题下面的之介绍日期时间相关操作的函数。
a.
两个日期之间相隔多少月
MONTHS_BETWEEN_TWO_DATES 可以计两个日期之间相隔了多少月
1.代码示例
我们下面的示例给了两个日期,20240606 和 20230606 相差了12个月计算结果是没问题的。
DATA lv_date1 TYPE DATS VALUE '20240606'.
DATA lv_date2 TYPE DATS VALUE '20230606'.
DATA lv_subdate TYPE string.
CALL FUNCTION 'MONTHS_BETWEEN_TWO_DATES'
EXPORTING
i_datum_bis = lv_date1
i_datum_von = lv_date2
* i_kz_incl_bis = 'X'
IMPORTING
E_MONATE = lv_subdate.
WRITE lv_subdate.
2.注意事项
这个函数其实很简单传两个 YYYYMMDD 的日期就可以计算两个日期之间的月份数。但是还有一个参数 i_kz_incl_bis 需要我们注意一下。这个可以参数控制是否包括结束日期(即第二个日期)在内
, 第二个日期必须满足一个月才会计算进去,下面我们有个日期是 20240630 这个 30 已经满足一个月了当我们 i_kz_incl_bis 参数设置为 X 的时候就会多计算一个月也就是 13 个月。当不传这个值的话计算结果依然是 12 个月。
DATA lv_date1 TYPE DATS VALUE '20240630'.
DATA lv_date2 TYPE DATS VALUE '20230606'.
DATA lv_subdate TYPE string.
CALL FUNCTION 'MONTHS_BETWEEN_TWO_DATES'
EXPORTING
i_datum_bis = lv_date1
i_datum_von = lv_date2
i_kz_incl_bis = 'X'
IMPORTING
E_MONATE = lv_subdate.
WRITE lv_subdate.
二、数据 操作 转化 加密
步骤二介绍
a.
增加 去除 前导零
1.代码示例
这里不做演示了,笔者另外一篇文章有这个函数的介绍。链接在下方,具体位置在 操作 数据 >>> 增加 去除 前导零
SAP ABAP常用语法 关键字详解 (超级全面)
b.
将 数值类型 负号 提前
1.代码示例
CLOI_PUT_SIGN_IN_FRONT 可以将负号提前 但是被操作的数值得是字符类型。
DATA lv_num1 TYPE I VALUE -2.
DATA lv_res TYPE string.
lv_res = lv_num1."先把要符号提前的数值转为字符类型
CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
CHANGING
value = lv_res. "调用函数转化
"打印结果
WRITE / lv_num1.
WRITE / lv_res.
2.效果展示
负号提前也可以用ALV设置表头的 fieldcat 那个内表 可以格式化数值将负号提前再显示出来。
3.步骤二 a 3
pass
c.
数据加密 MD5 加密
MD5加密 我下面介绍两个函数,分别为 MD5_CALCULATE_HASH_FOR_CHAR 和 CALCULATE_HASH_FOR_CHAR 。他俩的主要区别是前者仅支持 MD5 算法。后者有一个参数可以控制支持多种哈希算法,如 MD5, SHA1, SHA256 等。当你明确知道只需要 MD5 算法时,可以使用前者,当你需要支持不同的哈希算法或可能在将来更改哈希算法时,使用这个通用的函数更为灵活。如果后者函数中的ALG 参数设置为 MD5 的话这两函数效果是一样的。
1.代码示例
我直接把两个函数写在一起了,让他们加密相同的值看结果就行了
DATA lv_text TYPE string. "被加密的数据
DATA lv_hashvalue TYPE hash160. "第一个函数返回值
DATA lv_md5hash TYPE md5_fields-hash."第二个函数返回值
lv_text = 'Hello World'."被加密的数据赋值
CALL FUNCTION 'CALCULATE_HASH_FOR_CHAR'
EXPORTING
alg = 'MD5' " 可以更改为 'SHA1', 'SHA256' 等
data = lv_text
IMPORTING
hash = lv_hashvalue.
CALL FUNCTION 'MD5_CALCULATE_HASH_FOR_CHAR'
EXPORTING
data = lv_text
IMPORTING
hash = lv_md5hash.
WRITE: / '第一个函数:', lv_hashvalue.
WRITE: / '第二个函数:', lv_md5hash.
2.运行效果
运行效果两个函数加密同样的数值 结果是一样的因为使用了同样的加密算法。
3.注意事项
CALCULATE_HASH_FOR_CHAR 返回的加密结果是有多种的 根据需求取就行了一般就用的是第一个。
三、获取 属性 定义 读取 数据
步骤二介绍
a.
获取函数的 出参 入参 定义
RFC_GET_FUNCTION_INTERFACE 可以获取函数的出参入参定义。
1.代码示例
xxx
2.注意事项
xxx
四、步骤四
步骤二介绍
a.
步骤四 a
1.步骤二 a 1
pass
2.步骤二 a 2
pass
3.步骤二 a 3
pass
五、步骤五
步骤二介绍
a.
步骤五 a
1.步骤二 a 1
pass
2.步骤二 a 2
pass
3.步骤二 a 3
pass
NED、总结
以上就是今天要讲的内容,本文仅仅简单介绍了SAP 中一些常用的标准函数,感觉笔者讲的好对自己有帮助的还麻烦点个免费的赞赞制作不易谢谢谢谢!!!如果有说错或者不好的地方还望大家提出来见谅。感觉笔者写的好的别忘了关注点赞加评论哦,也欢迎大家一起来讨论。谢谢!