在CAP中使用数组进行过程调用

2020-08-20 01:44发布

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

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


嗨,

我需要使用对象数组作为输入来调用HANA过程。现在,我需要转换为逗号分隔的字符串并像下面这样作为Array传递。

是否有更好的方法,例如将pass作为表参数? 请提出。

输入

 {" id":" 1","材料":[{" MATNR":" 10025"},{" MATNR":" 10026"}]} 

我目前正在这样做,将输入数组转换为字符串并传递给它。

 materialString = input.materials.map(x =>"'" + x +"'").toString()
  const tx = cds.transaction(req)
  让vProc =等待tx.run(`call" proc"('$ {input.id}',ARRAY($ {materialstring}))`)

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

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


嗨,

我需要使用对象数组作为输入来调用HANA过程。现在,我需要转换为逗号分隔的字符串并像下面这样作为Array传递。

是否有更好的方法,例如将pass作为表参数? 请提出。

输入

 {" id":" 1","材料":[{" MATNR":" 10025"},{" MATNR":" 10026"}]} 

我目前正在这样做,将输入数组转换为字符串并传递给它。

 materialString = input.materials.map(x =>"'" + x +"'").toString()
  const tx = cds.transaction(req)
  让vProc =等待tx.run(`call" proc"('$ {input.id}',ARRAY($ {materialstring}))`)
付费偷看设置
发送
2条回答
me_for_i
1楼 · 2020-08-20 02:26.采纳回答

当前没有支持直接输入ARRAY参数的HANA客户端。

ARRAY SQLScript数据类型实际上仅在SQL/SQLScript上下文中可用。 例如,它没有映射到JDBC/Java数组(或与此相关的JavaScript字典)。

因此,您可以继续将动态SQL与ARRAY()函数一起使用以构造数组,也可以重新考虑 将"数组"传输到数据库上下文的方法。

一种常见的替代方法是-如果数组结构允许这样做,即实际上有点像"内部表",则创建一个临时表, 将要传输到该表中的数据,并将临时表用作过程中的输入参数。

jovirus
2楼-- · 2020-08-20 02:14

文档仅讨论带参数的视图,而不是过程。 期待具有HANA专家解答的SAP CAP。

一周热门 更多>