首页 > 解决方案 > BPOSB 和 EBELP 在 CDS 关联中没有兼容的类型

问题描述

我是 CDS 的新手,我正在尝试制作我的第一个视图。

问题是,当我尝试以下代码时,我收到错误:

关联 _Purchase_Order:BPOSB 和 EBELP 没有兼容的类型。

是否可以在协会的任何领域进行演员表以使其发挥作用?

提前致谢

@AbapCatalog.sqlViewName: 'YMM_VFRET'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Merchandise distribution view'
define view YMM_FRET 
as select from fret as Collective_Purchase
association [1..*] to ekpo as _Stock_Transfer_Order 
on $projection.blnra = _Stock_Transfer_Order.ebeln and $projection.bposa = _Stock_Transfer_Order.ebelp
association [1] to ekpo as _Purchase_Order       
on $projection.blnrb = _Purchase_Order.ebeln and $projection.bposb = _Purchase_Order.ebelp
  {
  key Collective_Purchase.blnrb,
  key Collective_Purchase.bposb,
  key Collective_Purchase.blnra,
  key Collective_Purchase.bposa,
  _Stock_Transfer_Order,
  _Purchase_Order
}

标签: abapcds

解决方案


问题是:

BPOSB表中FRET的类型为 NUMC(6)

EBELP表中EKPO的类型为 NUMC( 5 )

根据类型比较矩阵,您应该在 RHS 和 LHS 类型长度之间进行精确匹配。

在此处输入图像描述

根据关联条款中的条件规则ON

不能指定路径表达式或其他表达式或函数调用。

所以你不能既不CAST( num1 AS NUMC( N ) ),也不SUBSTRING。RHS 和 LHS 操作数均不适用。

除了以另一种方式重建您的视图之外,我在这里看不到任何解决方案。


推荐阅读