Quick Link.gif
1.在Consumption view中我们可以通过annotation:@Consumption.semanticObject来为指定字段设置Navigation Link
@Consumption.semanticObject: 'CompanyCode'
CompanyCode,
上述代码的行为便是文章开始GIF的效果(图中展示的是Object page,在List report中的Company Code也enable相同操作),点击Link,会弹出一个popover,其上会列出所有该用户可访问的semanticObject为'CompanyCode' 的APP,可以在annotations.xml中将不想显示的action的列入黑名单,如下:
<Annotations Target="OData_Service_SRV.C_Entity/CompanyCode">
<Annotation Term="Common.SemanticObject" String="AccountingDocument" Qualifier="qualifier"/>
<Annotation Term="Common.SemanticObjectUnavailableActions">
<Collection>
<String>Unavailable Action</String>
</Collection>
</Annotation>
<Annotation Term="Common.SemanticObjectUnavailableActions" Qualifier="qualifier">
<Collection>
<String>Unavailable Action</String>
</Collection>
</Annotation>
</Annotations>
2.也可以在metedata view中这样设置
该方法为intent based,注意semanticObjectAction限定了action1
结果是,点击Link会直接navigate到指定的APP,与方式1相比,适合只有一种选择的定向跳转
@UI.fieldGroup: [{ qualifier: 'qualifier',
position: 10,
type: #WITH_INTENT_BASED_NAVIGATION,
semanticObject:'semanticObject',
semanticObjectAction: 'action1'}]
@UI.lineItem: [{ qualifier: 'qualifier',
position: 10,
type: #WITH_INTENT_BASED_NAVIGATION,
semanticObject:'semanticObject',
semanticObjectAction: 'semanticObjectAction'}]
CompanyCode,
fieldGroup for object page
lineItem for list report
将@UI.lineItem 中的type: #WITH_INTENT_BASED_NAVIGATION 替换为type: #FOR_INTENT_BASED_NAVIGATION,字段上便不会再有Navigation Link,不过List report上的 Toolbar上便会增加一个button来实现对应功能(下图Button描述有误)
FOR_INTENT_BASED_NAVIGATION
More detailed about FOR_INTENT_BASED_NAVIGATION and other Metadata-Driven navigation,please refer to https://help.sap.com/docs/BTP/923180ddb98240829d935862025004d6/25f37dc4567f4287b9bfbdd0040270f1.html?version=Cloud