ABAP使用AMDP调用HANA存储过程

更多内容关注公众号:SAP Technical

欢迎关注微信公众号: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程序可以调用上面创建的类。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值