使用关联使用输入参数调用CDS视图

2020-09-01 11:49发布

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

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


专家们,

我需要使用关联调用带有输入参数的CDS视图。

我知道可以使用以下语法使用输入参数调用CDS视图:

从TestView中选择(startDate ='20150101')

但是如何为带有输入参数的CDS视图编写关联?

谢谢

Ja那教

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

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


专家们,

我需要使用关联调用带有输入参数的CDS视图。

我知道可以使用以下语法使用输入参数调用CDS视图:

从TestView中选择(startDate ='20150101')

但是如何为带有输入参数的CDS视图编写关联?

谢谢

Ja那教

付费偷看设置
发送
5条回答
Haoba3210
1楼 · 2020-09-01 12:30.采纳回答

嗨,Puneet,

您是否要在Open SQL中使用路径表达式来访问关联的CDS视图? 如果是,则不能将输入参数传递给关联的CDS视图。

不能将实际参数传递给关联的CDS视图的输入参数。 没有可选的输入参数,这意味着这些视图当前无法在Open SQL路径表达式中使用。

问候,

Panneer

spaceman01
2楼-- · 2020-09-01 12:09

嗨 Puneet,

感谢代码示例。

好的。 可以通过CDS本身通过关联来调用CDS。

该限制目前仅来自如上所述的Open SQL。

如果您认为已经找到答案,请 正确标记。

关于

Panneer

SAP小菜
3楼-- · 2020-09-01 12:11

Hello Punit

请检查以下代码,然后尝试根据您的要求进行修改。

定义视图zcds_p_assc

带有参数p_distance_l:S_DISTANCE,

p_distance_o:S_DISTANCE,

p_unit:S_DISTID

从spfli中选择

将[1..1]关联为spfli_scarr

在$ projection.carrid = spfli_scarr.carrid

{键spfli.carrid,

键spfli.connid,

spfli_scarr.carrname,

spfli.cityfrom,

spfli.cityto,

spfli.distance

spfli.distid}

其中spfli.distid =:p_unit和

:p_distance_l

之间的spfli.distance

和:p_distance_o;

此致

Lokeswar。

Doze时光
4楼-- · 2020-09-01 12:30

嗨,Puneet,

您可以使用多种方式,因为不能在关联目标的定义中直接使用"参数"。 相反,您可以在关联的目标CDS视图中显示字段,如下例所示。

具有参数的CDS(用作关联目标)

@ AbapCatalog.sqlViewName:'ZYX_SQL'

@ AbapCatalog.compiler.compareFilter:true

@ AbapCatalog.preserveKey:true

@ AccessControl.authorizationCheck:#CHECK

@ EndUserText.label:"带参数的销售订单商品"

defineview ZC_ZYX

withparameters p_matkl: matkl

从vbap中选择{

密钥vbeln,

关键位置,

matnr,

matkl,

zmeng,

记忆

}

其中matkl =:p_matkl

然后在最终CDS视图中我们要在其中使用-

@ AbapCatalog.sqlViewName:'ZZZYX'

@ AbapCatalog.compiler.compareFilter:true

@ AbapCatalog.preserveKey:true

@ AccessControl.authorizationCheck:#CHECK

@ OData.publish:true

@ EndUserText.label:"具有关联和参数的销售订单标题"

defineview ZC_ZZYX

带参数

p_matkl1: matkl ,

p_vbeln1: vbeln

从vbak中选择

与_item关联到ZC_ZYX [0 .. *]

on $ projection.vbeln = _item.vbeln

{

密钥vbeln,

_item (p_matkl :: p_matkl1).posnr,

_item (p_matkl :: p_matkl1).matkl,

_item (p_matkl :: p_matkl1).matnr,

_item (p_matkl :: p_matkl1).zmeng,

_item (p_matkl :: p_matkl1)。意味着

}

其中vbeln =:p_vbeln1

这将类似于"右"外部联接。 或者,您可以使用CDS" ZC_ZYX"视图作为Final CDS中的主要数据源。

此致

Abhijeet Kankani

落灬小鱼
5楼-- · 2020-09-01 12:14

嗨,普尼特,

您可以使用多种方式,因为不能在关联目标的定义中直接使用"参数"。 相反,您可以在关联的目标CDS视图中显示字段,如下例所示。

具有参数的CDS(用作关联目标)

@ AbapCatalog.sqlViewName:'ZYX_SQL'

@ AbapCatalog.compiler.compareFilter:true

@ AbapCatalog.preserveKey:true

@ AccessControl.authorizationCheck:#CHECK

@ EndUserText.label:"带参数的销售订单商品"

defineview ZC_ZYX

withparameters p_matkl: matkl

从vbap中选择{

密钥vbeln,

关键位置,

matnr,

matkl,

zmeng

含义

}

其中matkl =:p_matkl

然后在最终CDS视图中使用关联-

@ AbapCatalog.sqlViewName:'ZZZYX'

@ AbapCatalog.compiler.compareFilter:true

@ AbapCatalog.preserveKey:true

@ AccessControl.authorizationCheck:#CHECK

@ OData.publish:true

@ EndUserText.label:"具有关联和参数的销售订单标题"

defineview ZC_ZZYX

带参数

p_matkl1: matkl ,

p_vbeln1: vbeln

从vbak中选择

与ZC_ZYXas _item关联[0 .. *]

on $ projection.vbeln = _item.vbeln

{

密钥vbeln,

_item (p_matkl :: p_matkl1).posnr,

_item (p_matkl :: p_matkl1).matkl,

_item (p_matkl :: p_matkl1).matnr,

_item (p_matkl :: p_matkl1).zmeng,

_item (p_matkl :: p_matkl1)。意味着

}

其中vbeln =:p_vbeln1

这将类似于"右"外部联接。 或者,您可以使用CDS" ZC_ZYX"视图作为Final CDS中的主要数据源。

此致

Abhijeet Kankani

一周热门 更多>