更改字段值后更新Fiori Elements对象页面上的文本

2020-09-12 20:02发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我已经在带注释的CDS视...

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

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


嗨,

我已经在带注释的CDS视图周围创建了Fiori Elements List Report应用程序。 此视图包含与其他(SAP标准)CDS视图的关联,以为输入的"代码"提供文本/描述,并为这些字段提供值帮助。

当我进入对象页面上的"编辑"模式时,更改字段中的"代码"值并保存,该字段上的文本不会更改,而是保留先前代码的文本。 只有当我导航回"列表"页面时,才会再次查询OData服务并更新文本。

我意识到用于更新请求的标准OData只是发送回204(无内容)以确认更新已被接受。 我不禁想到,该应用程序应该自动为更改后的对象发出Read消息,以便关联(文本)数据是最新的。

在进行编辑后(是否最好通过通过注释或BOPF进行更改,而不是在应用程序中进行扩展),是否可以"请求"应用程序从"对象"页面重新读取实体 )?

谢谢

安德鲁

1条回答
SAP砖家
2020-09-12 21:04

你好安德鲁

您可以通过注释副作用。 您可以在WebIDE或服务的MPC中使用本地注释来执行此操作。 通过编码,看起来可能像这样:

     数据:
       lo_ann_target类型参考/iwbep/if_mgw_vocan_ann_target,
       lo_annotation类型参考/iwbep/if_mgw_vocan_annotation,
       lo_record类型参考/iwbep/if_mgw_vocan_record,
       lo_collection类型参考/iwbep/if_mgw_vocan_collection,
       lo_property类型参考/iwbep/if_mgw_vocan_property。

     lo_ann_target = vocab_anno_model-> create_annotations_target(iv_target ='')。
     lo_annotation = lo_ann_target-> create_annotation(iv_term ='com.sap.vocabularies.Common.v1.SideEffects'iv_qualifier ='')## NO_TEXT。
     lo_record = lo_annotation-> create_record()。

     "副作用类型
     lo_record = lo_annotation-> create_record()## NO_TEXT。
     lo_property = lo_record-> create_property('EffectTypes')## NO_TEXT。
     lo_property-> create_simple_value()-> set_enum_member_by_name('ValueChange')。

     "来源属性
     lo_property = lo_record-> create_property('SourceProperties')## NO_TEXT。
     lo_collection = lo_property-> create_collection()。
     lo_collection-> create_simple_value()-> set_property_path('')。  "已更改的属性名称,例如您的代码值

     "也许还有更多使用相同值帮助的属性...
     " lo_collection-> create_simple_value()-> set_property_path('')。"已更改属性的名称,例如 您的代码值
 
     "目标实体
     lo_property = lo_record-> create_property('TargetEntities')## NO_TEXT。
     lo_collection = lo_property-> create_collection()。
     lo_collection-> create_simple_value()-> set_nav_property_path('')。  "关联的导航属性的名称,例如to_Code 

不幸的是,仅当控件的焦点模糊(onBlur)时,才会触发副作用。 只要光标停留在控件中(输入字段或下拉列表),就不会触发副作用。 如果将值帮助附加到输入字段或控件是下拉菜单,则这尤其烦人。 选择一个值后,用户必须"退出"控件(通过按Tab或用鼠标单击到另一个控件中)以产生副作用。 在从下拉列表或valuehelp中选择一个值的情况下,我认为此行为实际上是不正确的,因为用户已通过此先前操作更改了该值。 如果它只是一个输入字段,则可以等待用户"离开"该字段以触发副作用。 也许有一天SAP将解决此问题...

致谢
Gabriel

相关问答