对Fiori Elements中隐藏字段的价值帮助

2020-08-18 20:12发布

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

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


专家们。

我目前正在处理以下问题:

我有一个视图,该视图为以UUID作为主键的表提供了Value帮助。

我们有一个使用价值帮助的事务视图。 此视图也有一个参考字段,该参考字段也是UUID。

因为没有人会在屏幕上看到UUID,所以我想在使用情况视图和值帮助中隐藏该UUID。 这是我的问题!

我找不到隐藏UUID并显示带有附加值帮助的文本的方法。
文本在表中,与消费表相关联,必须为只读->只读字段 没有价值帮助。 即使有可能,我如何告诉值帮助在文本字段中按NOT键?

有人知道我如何通过Fiori Elements注释摆脱屏幕上的UUID字段吗?

非常感谢

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

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


专家们。

我目前正在处理以下问题:

我有一个视图,该视图为以UUID作为主键的表提供了Value帮助。

我们有一个使用价值帮助的事务视图。 此视图也有一个参考字段,该参考字段也是UUID。

因为没有人会在屏幕上看到UUID,所以我想在使用情况视图和值帮助中隐藏该UUID。 这是我的问题!

我找不到隐藏UUID并显示带有附加值帮助的文本的方法。
文本在表中,与消费表相关联,必须为只读->只读字段 没有价值帮助。 即使有可能,我如何告诉值帮助在文本字段中按NOT键?

有人知道我如何通过Fiori Elements注释摆脱屏幕上的UUID字段吗?

非常感谢

付费偷看设置
发送
6条回答
代楠1984
1楼-- · 2020-08-18 20:29

你好

我们有同样的问题。 由于BOPF对象模型希望将单个UUID作为主键,因此当应用程序比SAP通常使用的销售订单应用程序复杂一些时,直到开发人员陷入这一困境只是时间问题。 )

从SAPUI5版本1.54开始,SmartField控件具有新的属性TextInEditModeSource: SAPUI5 SDK-smartfield.TextInEditModeSource
但不幸的是,Fiori Elements到目前为止尚未使用SmartField的这个新属性。

几个月前,我就该问题发出了电话。 这是我从SAP收到的答复的摘录:
请注意,该功能仍标记为实验性的。 原因如下:
对于当前的实现,在Fiori Elements之类的场景中使用该功能非常麻烦甚至无法实现。
为了改善这种情况,我们想引入某种自动模式,其中 元数据提供所有必要信息后,即会启用此功能。
在实施过程中,可能需要对现有的API进行更改,因此仍然设置了"实验性"标志。
很遗憾,我一如既往不能对增强功能何时向我们的客户发表任何声明。

所以目前我认为您有以下选择:

  1. 使用云中最新的SAPUI5版本(1.56.8)和对象页面上表单的扩展点(直到今天我都没有在我的应用程序中使用此扩展名),以便使用上述功能向表单添加自定义SmartField或替换整个表单 通过使用对象页上各部分的扩展点。/a>
  2. 使用UI.TextArrangement:#TEXT_ONLY在CDS视图中注释该字段,并等待直到SAP在Fiori Elements中实现此功能(如果您的项目足够耐心)。 这样,您至少可以使文本处于显示模式。 在编辑模式下,guid仍会显示。
  3. 使用唯一的且易于理解的替代/语义键对CDS视图中的数据模型进行归一化,并向用户提供有价值的帮助。 为该节点添加一个确定以填充相应的UUID。 (不是开发人员真正喜欢的解决方案-但是如果您被框架束缚了,您想要什么...)

目前,我们支持第二个项目,因为我们的项目是长期的,希望SAP尽快推出此功能... :-)
我对您解决该问题的方法非常感兴趣 问题。

致谢
Gabriel

DafaDDDa
2楼-- · 2020-08-18 20:26

Hello Gabriel,

我们还将数字2用作当前隔离。 同时您还能获得其他解决方案吗?

非常感谢您。
致谢

Bettina

当学会了学习
3楼-- · 2020-08-18 20:46

关于另一个问题"即使有可能,我如何告诉值帮助在文本字段中按NOT键?":

在CDS视图中使用@ Consumption.valueHelpDefinition批注的AdditionalBinding。

或者,如果您使用服务的SADL生成工具包生成的类来丰富元数据(例如,将值帮助绑定到函数导入参数),则可以使用注释" com.sap.vocabularies.Common 值帮助绑定中的" .v1.ValueListParameterOut"来将值帮助的键字段绑定到相应的属性。 像这样:

     数据:
       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_ann_target = vocab_anno_model-> create_annotations_target(iv_target =" <您的目标>")。
     lo_annotation = lo_ann_target-> create_annotation(iv_term ='com.sap.vocabularies.Common.v1.ValueList')。
     lo_record = lo_annotation-> create_record()。

     lo_record-> create_property('CollectionPath')-> create_simple_value()-> set_string(CONV#(i_valuelist_entityset))。
     lo_collection = lo_record-> create_property('Parameters')-> create_collection()## NO_TEXT。

     lo_record = lo_collection-> create_record('com.sap.vocabularies.Common.v1.ValueListParameterOut')。
     lo_record-> create_property('LocalDataProperty')-> create_simple_value()-> set_property_path(" <本地数据属性名称>")。
     lo_record-> create_property('ValueListProperty')-> create_simple_value()-> set_string(" ")。

关于
加百利

一只江湖小虾
4楼-- · 2020-08-18 20:32

非常感谢。

我们将看到对我们最好的方法。 我们正在使用GUID,所以不会那么容易。

我不明白为什么这应该是一个实验性功能,嗯... SAP常常不那么容易。

致谢

贝蒂娜

微wx笑
5楼-- · 2020-08-18 20:33

你好贝蒂娜

同时,我们使用了SmartForm扩展点来添加具有textInEditMode属性集的自定义SmartField。 另外,也可以通过使用Controller Extension并通过其id访问元素来在ObjectPage Controller的onInit方法中设置此属性。

不幸的是,当key属性的类型为Edm.Guid时,此功能存在一些缺陷:该字段尝试检索初始GUID的文本,然后生成错误消息,因为找不到初始GUID的文本。 另外,通过删除文本值初始化字段时,键属性在绑定上下文中被清除,但是当字段失去焦点时,该字段再次显示文本值-使用户认为该值尚未被清除。

我在SAP发出了一个电话,但他们的回答与另一个电话大致相同。 SAP表示此功能是试验性的,不能用于生产用途。 我不知道他们是否真的在乎这个明显的问题。 同时,SAPUI5的1.70版已可用(云版本),到目前为止仍然没有任何变化...

如果这不是适合您的解决方案,则还可以使用SmartForm扩展程序通过图标或按钮来放置文本值,以打开值帮助对话框,以便用户可以选择项目,然后设置键/绑定上下文的相应属性中的文本值。 当然,这意味着要完成很多工作。

希望这会有所帮助。

关于
Gabriel

愤怒的猪头君
6楼-- · 2020-08-18 20:25

您好,专家

我利用了两种解决方案:

  • 我使用UI.TextArrangement:#TEXT_ONLY注释了CDS视图中的字段,并修复了视图模式问题
  • 对于我在字段上使用setTextInEditModeSource(" NavigationProperty")解决的编辑模式(为此我附加了该对象,并在ObjectPage的扩展控制器的onInit方法上使用extensionAPI处理了attachPageDataLoaded事件的处理程序。

现在,我的问题是列表报告上的智能筛选器:我找不到隐藏UUID并显示更易理解的内容的方法。 有什么想法吗?

预先感谢

亚历山德罗

一周热门 更多>