ABAP CDS与参数的关联

2020-09-01 12:22发布

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

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


大家好,

我有一个CDS视图,其参数定义如下

 @ AbapCatalog.sqlViewName:'zcds_sql'
 @ AbapCatalog.compiler.CompareFilter:是
 @ AccessControl.authorizationCheck:#检查
 @ EndUserText.label:"测试"
 使用参数定义视图ZCDS_VIEW1
   p_vbeln:vbeln
   从vbak中选择
   {
    vbeln,
    埃尔达特
    }其中vbeln = $ parameters.p_vbeln;
  
 

现在我正在尝试如下创建上述与销售订单项目表的关联

 @ AbapCatalog.sqlViewName:'zdus_cds_ansql'
 @ AbapCatalog.compiler.CompareFilter:是
 @ AccessControl.authorizationCheck:#检查
 @ EndUserText.label:'测试'
 使用参数p_vbeln:vbeln定义视图Zdush_cds_annotation
  从ZDUSH_CDS_VIEW1中选择
  
 将[0 .. *]与vbap关联为__vbap
     在ZCDS_VIEW1.vbeln = __vbap.vbeln {
     vbeln,
    
     __vbap//公开关联
 }
 

我收到一个语法错误,说" ZDS_VIEW"需要参数p_vbeln。 您如何指定关联参数是我的问题。 我无法在网上找到相同的语法。 任何帮助将不胜感激。

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

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


大家好,

我有一个CDS视图,其参数定义如下

 @ AbapCatalog.sqlViewName:'zcds_sql'
 @ AbapCatalog.compiler.CompareFilter:是
 @ AccessControl.authorizationCheck:#检查
 @ EndUserText.label:"测试"
 使用参数定义视图ZCDS_VIEW1
   p_vbeln:vbeln
   从vbak中选择
   {
    vbeln,
    埃尔达特
    }其中vbeln = $ parameters.p_vbeln;
  
 

现在我正在尝试如下创建上述与销售订单项目表的关联

 @ AbapCatalog.sqlViewName:'zdus_cds_ansql'
 @ AbapCatalog.compiler.CompareFilter:是
 @ AccessControl.authorizationCheck:#检查
 @ EndUserText.label:'测试'
 使用参数p_vbeln:vbeln定义视图Zdush_cds_annotation
  从ZDUSH_CDS_VIEW1中选择
  
 将[0 .. *]与vbap关联为__vbap
     在ZCDS_VIEW1.vbeln = __vbap.vbeln {
     vbeln,
    
     __vbap//公开关联
 }
 

我收到一个语法错误,说" ZDS_VIEW"需要参数p_vbeln。 您如何指定关联参数是我的问题。 我无法在网上找到相同的语法。 任何帮助将不胜感激。

付费偷看设置
发送
2条回答
落灬小鱼
1楼-- · 2020-09-01 12:54

如果您还没有找到解决方案,那么下面是示例:

我们可以在关联的目标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

这将类似于"右"外部联接。

此致

Abhijeet Kankani

吹牛啤
2楼-- · 2020-09-01 13:08

您好 Dushyanth Kumar

首先,在" Zdush_cds_annotation" CDS视图中,如果要从" ZCDS_VIEW1"中选择它,则使用错误的CDS视图。

第二,在关联中,您不应使用数据源名称,而应使用" $ projection。"。

基本上,您的CDS视图应如下所示:

 @ AbapCatalog.sqlViewName:'zdus_cds_ansql'
 @ AbapCatalog.compiler.CompareFilter:是
 @ AccessControl.authorizationCheck:#检查
 @ EndUserText.label:'测试'
 定义视图Zdush_cds_annotation
        带参数
             p_vbeln:vbeln
  从ZCDS_VIEW1(p_vbeln::p_vbeln)中选择
 将[0 .. *]与vbap关联为__vbap
     在$ projection.vbeln = __vbap.vbeln上
 {
     vbeln,
     __vbap//公开关联
 } 

感谢与问候,

Tushar Sharma

一周热门 更多>