为什么密钥不是唯一的?

2020-08-17 21:43发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好 我已经创建了如下的CD...

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

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


大家好

我已经创建了如下的CDS视图:

定义视图YGAC_I_SINGLE_COMPOSITE_ROLE
   带参数
    pm_role2:grac_roleid
   从YGAC_I_ROLE_RS中选择
   关联[1..1]与_Connection.RefRoleId = $ projection.RoleId2上的_Connection到YGAC_I_ROLE_CONNECTION
   关联[1..1]到YGAC_I_ROLE,作为_Role.RoleId = $ projection.RoleId2上的_Role
 {
    关键RoleId2,
    RelationType,
    _Connection [inner] .Connector,
    _Role [inner] .RoleName,
    _Role [inner] .RoleId,
    _连接,
    _角色
 },其中YGAC_I_ROLE_RS.RoleId2 = $ parameters.pm_role2 

编译器显示警告:

关联_CONNECTION的基数1与打开条件ygac_i_single_composite_role.asddls/DA4_010_i0000168_en/.adt/ddic/ddlsources/ygac_i_single_composite_role/ygac_i_single_APposittaxs不匹配。

 YGAC_I_SINGLE_COMPOSITE_ROLE的键定义和YGAC_I_ROLE_RS的键定义是不同的,YGAC_I_SINGLE_COMPOSITE_ROLE的键中缺少ROLEID1 ygac_i_single_composite_role.asddls/DA4_010_i0000__y_ro_single_posite_roys_posite_roys_acle_posite_role_acly_posite_role_ac_yle_ac_yle_ac_yle_ac_yle_posite_acro_posite_role_ac_yle_ac_yle_acly_a_lei_roy_aclys_a_leed_a_leed_a_leed_a_leed_a_e_leas_a_leed_a_e_leas_a_lede_a
 

当我启动数据预览编辑器时,它显示:

如您所见,我在RoleId2列上有键重复尽管 列RoleId2定义为您的主键。

所以也许YGAC_I_ROLE_CONNECTION视图是造成该问题的原因,因为该关联

将[1..1]与YGAC_I_ROLE_CONNECTION关联为_Connection.RefRoleId = $ projection.RoleId2上的_Connection 

与YGAC_I_ROLE_CONNECTION上的主键无关:

定义视图YGAC_I_ROLE_CONNECTION
   从gracrlconn中选择
 {
   关键role_id作为RoleId,
       连接器作为连接器,
       将role_name作为RoleName,
       ac_ref_role_id作为RefRoleId,
       Updated_on为UpdatedOn,
       排除为排除
 } 

如何强制列RoleId2唯一?

谢谢

(32.8 kB)
4条回答
昵称总是被占用
2020-08-17 22:13

您好阿尼吉特·马蒂

我认为在这种情况下会出现此警告,您可以忽略它

原因是:您已将view1的键与非关键字段view2联接在一起,从逻辑上讲,它将为0..n基数,因为此联接与view2的非关键字段将导致多个数据。

也许view2表将数据1..1 wrt存储到view1表中,但是系统不知道该信息正确,因此警告消息。

因此,如果您遇到问题,可以放心地忽略它 有信心,这种关系不会与view2中的多个数据匹配,因为view1中的一个键值不存在

-Mahesh

一周热门 更多>