从HANA内存脚本执行卸载以获取BW信息多维数据集列表

2020-09-27 13:59发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我们需要从ABAP执行HANA从内存脚本中卸载。 为了测试这一点,我们在ABAP中实现了一个简单的单行代码,以从内存中卸载表(BW多维数据集)。 在ADT中获取以下错误。 是否可以通过AMDP过程从ABAP执行HANA卸载脚本。 如果是,请提供帮助以解决以下错误。 谢谢。

error.jpg (74.1 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我们需要从ABAP执行HANA从内存脚本中卸载。 为了测试这一点,我们在ABAP中实现了一个简单的单行代码,以从内存中卸载表(BW多维数据集)。 在ADT中获取以下错误。 是否可以通过AMDP过程从ABAP执行HANA卸载脚本。 如果是,请提供帮助以解决以下错误。 谢谢。

error.jpg (74.1 kB)
付费偷看设置
发送
2条回答
浮生未央
1楼-- · 2020-09-27 14:36

是的,可以调用卸载脚本。 该方法与任何其他AMDP相同。 您可以搜索示例并根据需要对其进行修改,但是对于简单的卸载,建议您使用ABAP中的cl_sql_statement和execute_query方法。

首先,您需要进入SQL控制台并正确设置SQL。 显然,它不喜欢您指定架构。 使用此FM获取您可能应该使用的架构名称。

呼叫功能'RSAN_SYSTEM_PARAMETER_READ'
       出口
         i_name = CONV pfeparname(| dbs/hdb/schema |)
       输入
         e_value = _schema_name
       例外情况
         read_error = 1
         其他= 2。
 
宇峰Kouji
2楼-- · 2020-09-27 14:17

如果在SQL脚本中引用数据库表,则必须在METHOD语句中的USING关键字之后添加表名。

例如,

用于HDB语言SQLSCRIPT的按数据库过程进行的方法卸载
           使用/BIC/FZA1_AL301。  

但是由于您可能直到运行时才知道该表是哪张表,所以您遇到了AMDP的局限性,因此必须使用Matthew提到的ADBC类。

拥有一个程序进行管理,查找多维数据集/dsos的列表并将其对象名称转换为表名称并生成SQL字符串(如在控制台中使用的那样)非常有用:卸载模式。" tablename"

实例化该类并执行您的SQL:

 lo_connection =新的cl_sql_statement(con_ref = cl_sql_connection => get_connection())。
 lo_connection-> execute_ddl(yourSQLstring)。  

捕获cx_sql_exception以检查db_error,sql_code和sql_message是一个好主意。

一周热门 更多>