AMDP中的Opencypher

2020-09-01 16:04发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)因为HANA现在也直接在数据库过...

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

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


因为HANA现在也直接在数据库过程中支持Opencypher(请参阅我的博客文章" #sitPOTT:HANA和BEER的某些东西"从2019年8月开始的更新 https://blogs.sap.com/2019/06/05/sitpott-something-with-hana-and-beer /),我想测试在SAP Cloud Platform,ABAP环境(Steampunk)中的AMDP中是否也可以使用Opencypher。

前提条件

1。)我能够直接在AMDP中读取边缘表(或更好的CDS视图)

方法read_edge_table
     通过HDB的数据库过程
     语言SQLSCRIPT
     选项只读
     使用zse38_spfli_edge。

     et_path =从zse38_spfli_edge中选择airport_from_id,airport_to_id;
   终结法。
 

2。)我可以在AMDP中调用图形函数

 METHOD get_shortest
     通过HDB的数据库过程
     语言图
     选项只读
     使用zcl_se38_graph => graph。

     图g =图(" ZCL_SE38_GRAPH => GRAPH");
     顶点v_from =顶点(:g,:i_airport_from_id);
     顶点v_to =顶点(:g,:i_airport_to_id);

     WeightedPath  p_path =最短路径(:g,:v_from,:v_to);

     et_path =选择:part.airport_from_id,:part.airport_to_id
                 边缘中的foreach部分(:p_path);

   终结法。
 

现在有趣的部分:我可以在AMDP中输入Opencypher,甚至可以正确检查Cypher语法,但是一旦语句完成(并且在语法上正确),我就会收到一个语法错误,指出" SAPABAP"无法明确指定。

 METHOD call_cypher
     通过HDB的数据库过程
     语言SQLSCRIPT
     选项为只读。

     et_path =从opencypher_table中选择*(GRAPH WORKSPACE" ZCL_SE38_GRAPH => GRAPH"
                 QUERY'match(from)-[e]->(to)从.AIRPORT_ID作为AIRPORT_FROM_ID返回,到.AIRPORT_ID作为AIRPORT_TO_ID');

   终结法。
 

如果我直接在常规的HANA SQL语句中调用模式(正确),则会引发相同的错误:

 et_path =从" SAPABAP"中选择airport_from_id和airport_to_id。zse38_spfli_edge; 

但是在我的Opencypher示例中,我仅将模式称为隐式。

这是编译器/内核错误吗? 是否仅在Steampunk或S/4HANA上也会发生此错误? 有没有可能的解决方法?

opencypher.jpg (33.9 kB)