CDS-BOPF-更新表-仅选定字段

2020-09-06 16:02发布

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

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


大家好,

我已经成功创建了带有注释的CDS视图并使其成为BOPF证明。
我仅从Z_TABLE中选择了几条记录,并向该表添加了writeActivePersistence。

现在,当我保存编辑的数据时,它将清除CDS未选择的所有其他字段。

是否可以仅保存已更改的数据? 就像您可以在"确定"中一样。

 io_modify-> update(
         出口
           iv_node = is_ctx-node_key
           iv_key = -键
           iv_root_key =  -root_key
           is_data = REF#( -node_data)
           it_changed_fields = VALUE#(
             (FIELD1)
             (FIELD2)
             (...)
           )
         )。
 

第二个选项是选择我的2个CDS中的所有字段("我和消费CDS"),但是如果将新字段添加到Z表中并且开发人员忘记将其也添加到CDS中,该怎么办? fiori应用程序始终清除该字段。
是否可以使用注释选择所有(*)选项? " @ Search.defaultSearchElement:true

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

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


大家好,

我已经成功创建了带有注释的CDS视图并使其成为BOPF证明。
我仅从Z_TABLE中选择了几条记录,并向该表添加了writeActivePersistence。

现在,当我保存编辑的数据时,它将清除CDS未选择的所有其他字段。

是否可以仅保存已更改的数据? 就像您可以在"确定"中一样。

 io_modify-> update(
         出口
           iv_node = is_ctx-node_key
           iv_key = -键
           iv_root_key =  -root_key
           is_data = REF#( -node_data)
           it_changed_fields = VALUE#(
             (FIELD1)
             (FIELD2)
             (...)
           )
         )。
 

第二个选项是选择我的2个CDS中的所有字段("我和消费CDS"),但是如果将新字段添加到Z表中并且开发人员忘记将其也添加到CDS中,该怎么办? fiori应用程序始终清除该字段。
是否可以使用注释选择所有(*)选项? " @ Search.defaultSearchElement:true

付费偷看设置
发送
2条回答
葫芦娃快救爷爷
1楼-- · 2020-09-06 16:12

我认为确定似乎将为您解决。.您只需选择该完整记录,并执行从传入数据到db记录的对应操作,然后更新api。 这将消除您每次在每次更新时通过cd手动添加字段的情况。.
仍然想知道BOPF api为什么清除了其他字段。.可能您是旧版本? 还是这样的设计??

嗨,

BOPF逻辑是这样的。

考虑一个包含3个字段A,B和C的表。

在BOPF(CDS)中,您已经暴露了A和B。

现在,保存时,BOPF将具有表类型的结构。 这意味着将存在一个具有字段A,B,C的结构。 让我们将此结构称为"表结构"。

将存在另一个表示BOPF的结构,由于BOPF仅知道这两个字段,因此该结构将仅具有字段A和B。 我们称其为"组合结构"。

在保存期间,BOPF将执行从组合结构到表结构的移动对应。 在这里,它仅将字段A和B移动到表结构,字段C现在为空。

此表结构然后用于保存到数据库。

因此,C将被清除

一种方法是重新定义保存,然后您在不使BOPF执行的情况下处理保存。

或带上所有字段,或使用草稿框架更好地控制"保存"。

此致

Pratheek

一周热门 更多>