云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

百度云_消息中间件mq_免费申请

小七 141 0

ABAP 7.50/7.51/7.52是S/4 HANA 1610/1709内部部署解决方案的可用版本,它们为ABAP开发提供了新功能和新语法。

在本博客中,您可以找到Netweaver 7.5x中ABAP开发的最佳实践集,可以指导您完成这一旅程。本博客中引用了许多优秀的博客。

让我们从本版本的新功能开始:

首先,不要忘记SAP Netweaver每个版本的内核版本,请参见下表:

最佳实践:注意SAP Netweaver 7.5x每个版本的变化

1。最佳实践:从正确的类型开始开发。

从7.50版开始,因为ABAP只能作为Unicode系统运行,这意味着所有可执行的ABAP程序都是Unicode程序,不再支持非Unicode。

更新1:请阅读Joachim Rees的评论

当您在ADT中创建程序时,它会自动将类型设置为Unicode,您不需要手动执行。您也可以打开程序并按ALT+SHIFT+W或按以下顺序进行检查:

现在您可以看到"属性"选项卡,只需单击"特定"即可获得有关ABAP语言版本的信息。请参阅以下内容:

但如果您在SAP GUI中使用旧的SE80或SE38而不是新的ADT创建程序,请在"ABAP语言版本"属性中选择"Standard ABAP(Unicode)"。见下图:

2.最佳实践:注意7.50版中的新数据类型和ABAP字典

有3个重要更改:

2.1除了扩展值范围(-9.223.372.036.854.775.808到+9.223.372.036.854.775.807)之外,还有新的预定义ABAP类型int8

),新的数据类型int8与现有的4字节整数数据类型i具有相同的属性,但有以下例外:

int8类型的数据对象所需的对齐方式是一个可被8整除的地址。int8类型的数据对象的输出长度的值是20。int8引入了一种新的计算类型,物联网应用技术,位于层次结构中的i和p之间。

Horst Keller的博客中有一个很好的例子,请看以下链接:https://blogs.sap.com/2015/10/22/abap-news-for-release-7.50-fundamentals/

2.2全局临时表

全局临时表(GTT)在数据库LUW时只能填充临时数据。使用opensql填充GTT时,必须在下一次隐式数据库提交之前再次显式清空它。否则,将引发不可处理的异常。

2.3替换对象

可以将CDS(核心数据服务)作为替换对象分配给透明数据库表或经典数据库视图。在Open SQL reads中,然后访问替换对象,而不是原始对象。

3.最佳实践:了解7.50版中的表达式和函数

3.1类型检查和大小写区分的谓词表达式

此谓词表达式"is INSTANCE of"可以在它之前检查向下转换的可行性是执行。换句话说,你可以用它来检测对象引用变量的动态类型,链接:https://blogs.sap.com/2015/10/21/abap-news-for-release-750-is-instance-of/

你也应该检查这个链接关于类cl\U abap\U对应的

https://blogs.sap.com/2015/10/29/abap-news-for-release-750-corresponding-again/

下面的例子帮助您了解如何使用内部表对应的CL\u ABAP\u。有三个表,tab1、tab2和tab3。首先,我们使用匹配的名称将值从tab1移动到tab2。

在第二个赋值中,传递一个映射表。

在第三个赋值中,使用匹配的名称将值从tab1移动到tab3。只有同名的列被分配到tab3.

见结果:

4。最佳实践:在7.5x版的异常类中使用新功能改进ABAP代码中的错误处理

当您添加以下ABAP超类之一时:

CX\u STATIC\u CHECKCX\动态\检查CX\u NO\u CHECK

则自动创建一个ABAP异常类。

系统IF\u T100\u消息用于静态地将特定消息分配给定义异常语义的异常类。系统界面IF\u T100\u DYN\u MSG允许您在运行时使用语句RAISE exception…message…将消息类的任意消息分配给异常。

如果您想看到这一新功能的运行,或者您不太了解它的含义,请查看SAP NW中下面列出的演示程序7.5倍使用t代码SE38.

DEMO\U RAISE\U ERROR\U MESSAGE演示\u引发\u异常演示\u提升\u消息DEMO\u RAISE\u MESSAGE\u GLOBAL

下面的代码是DEMO\u RAISE\u MESSAGE\u错误程序,请注意红色方框内的代码:

如果您想访问文本代码,请单击此处或单击此处获取有关此主题的完整文档。

有关此主题的更多说明,请参阅Horst Keller的博客。

5。最佳实践:在7.50版中正确使用opensql

当然opensql越来越强大,换句话说,SAP在OpenSQL中增加了对SQL标准的覆盖率。

5.1最佳实践:充分利用表达式联合。

看下面的示例:

注意:这个示例可以在您的NW 7.5x中使用。

查看下面的结果:

了解结果:

从三个数据库表的结果集中得到四列相同类型的结果DEMO_JOIN1、DEMO_JOIN2和DEMO_JOIN3组合使用UNION生成多个SELECT语句。数据库表是在静态构造函数中填充的。

第一条语句显示了默认行为,添加了DISTINCT。没有从数据库表DEMO\u JOIN2插入任何行,也没有从数据库表DEMO\u JOIN3插入一行,因为这些行已经存在。

第二条语句显示了addition ALL的行为。三个结果集中的所有行合并到一个结果集中,而不删除任何行。