前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ABAP使用AMDP调用HANA存储过程

ABAP使用AMDP调用HANA存储过程

作者头像
matinal
发布2020-11-27 12:23:54
1.3K0
发布2020-11-27 12:23:54
举报
文章被收录于专栏:SAP Technical

数据建模在SAP HANA视图中完成,需要读取视图的输出并将其保留在HANA表中。编写存储过程以从HANA视图读取数据并将数据插入HANA表。

存储库存储过程'DATA_PERSIST'是在TEST包下通过HANA开发透视图创建的。此存储过程从HANA视图读取数据,并将数据进入“XYZ”模式下的表中。

我们创建的view都会在_SYS_BIC模式中创建存储过程。在该过程中,可以给出默认模式。这里,给出的默认模式是“XYZ”,因为Table1和Table2是在此模式下创建的。

在Calmonth上创建了一个输入参数。在这里,将传递calmonth值,然后基于此计算HANA视图结果。

这是读写过程,如下面的脚本所示。只读语句已被删除。

在该过程的第一部分中,'STARTIME'变量用于将当前时间戳值保存为'YYYYMMDD HH24:MI:SS'格式。创建第二个变量以保存值'COMMIT'。

注 - AMDP(Abap托管数据库过程)不支持Commit,rollback等语句。因此,通过解决方法实现同样的目的。

在第二部分中,数据插入table1中。Table1用于记录和跟踪过程的运行日期,程序运行所花费的时间。

稍后,我们将根据将传递给存储过程的calmonth从HANA视图ABC_CV中读取数据。(这将在步骤2中的Abap类中显示)。结果插入表2中。表1和表2在XYZ模式下。

在存储过程结束时,使用过程的结束时间戳更新Table1(日志记录表)。这有助于跟踪存储过程的每次运行。

2.在此步骤中,将创建一个Abap类来调用存储过程。这是通过Abap视角在HANA工作室中创建的。

在方法“Datapersist”类下,声明了游标C_DATE,它保存最后15个月的calmonth。这里的要求是仅存储最近15个月的数据。该数据每天被删除,每天加载15个月的数据。没有实施增量/变更记录机制。

另一个存储过程“_SYS_BIC”。调用“TEST :: DATA_TRUNCATE”,删除Table2中的数据。这会丢弃table2中的数据。

使用For循环,calmonth逐个传递给存储过程。因此,使用此方法,通过逐个传递calmonth来调用存储过程15次。这是因为HANA视图非常复杂并且生成了大量数据。在运行时,HANA视图可能会占用大量内存和CPU,因此运行会根据每个月进行拆分,而不是同时运行15个月。

加载数据后,调用另一个存储过程“_SYS_BIC”。“TEST :: DATA_MERGE”。这是合并表2的增量,以按照SAP的建议将数据从增量存储移动到HANA中的主存储。

下面是用Abap类编写的代码。在Abap类中,可以调用存储过程,也可以在Abap类中编写整个代码。

3.一个Abap程序Z_Data_daily是在BW开发人员的角度下开发的,用于调用Abap类/方法,如下所示。现在,Abap程序可以调用上面创建的类。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/12/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档