In the blog Step by Step to create CDS view through SmartTemplate + WebIDE and Create a CRM Service Order Fiori application within a couple of minutes we get an Fiori application generated which needs several fine-tuning on appearance. For example, the status field is by default rendered as a pure input field with technical status code like “OPEN”, “PROC” displayed. It is better to render it as a drop down list with human readable text like “Open”, “In process” displayed as drop down list item.
I searched in SCN and could not find a working solution for it, so I spent some time for research and would like to share with you here.
Step1 Create a simple CDS view to hold status code and status description
@AbapCatalog.sqlViewName: 'zstatusfixed'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'fixed value'
define view Z_C_Status_Fixedvalue as select from zstatus_fixedval {
@EndUserText.label: 'status key for fixed value'
key zstatus_fixedval.status_code,
@EndUserText.label: 'status description for fixed value'
zstatus_fixedval.status_text
}
Previewed as below:
Here below is the table definition on top of which the CDS view above is created.
For demonstration purpose I create a Z table and only inserted three status items:
Step2 link the status field to the CDS view created in previous step
I have defined the consumption view Z_C_Service_Order_View with below source code:
define view Z_C_Service_Order_View as select from Z_i_Order_View
...
@UI.identification: [ { position: 50 } ]
@Consumption.valueHelp: '_statusfixedvalue'
@ObjectModel: { foreignKey.association: '_statusfixedvalue', mandatory: true }
Z_i_Order_View.txt04,
Where does the definition of “_statusfixedvalue” come from? It is defined in view Z_i_Over_View:
define view Z_i_Over_View as select from XXXX
association [0..1] to Z_C_Status_Fixedvalue as _statusfixedvalue
on $projection.txt04 = _statusfixedvalue.status_code
{
...
_status_text.txt04,
...
@ObjectModel.association.type: #TO_COMPOSITION_CHILD
_statusfixedvalue
}
So far the work on CDS side is done.
Step3 create necessary annotation in ABAP code
Prerequisite: you should first create a project using tcode SEGW and then include your CDS consumption view via the context menu as below:
Redefine method DEFINE of your MPC_EXT class with following source code:
super->define( ).
DATA lo_annotation TYPE REF TO /iwbep/if_mgw_odata_annotation.
DATA lo_property TYPE REF TO /iwbep/if_mgw_odata_property.
DATA lo_entity_set TYPE REF TO /iwbep/if_mgw_odata_entity_set.
lo_entity_set = model->get_entity_set( 'Z_C_Service_Order_View' ).
lo_annotation = lo_entity_set->create_annotation( 'sap' ).
lo_annotation->add( iv_key = 'semantics' iv_value = 'fixed-values').
DATA(lo_entitytype) = model->get_entity_type( 'Z_C_Service_Order_ViewType' ).
lo_entitytype->set_is_value_list( abap_true ).
data(lo_txt_property) = model->get_entity_type( 'Z_C_Service_Order_ViewType' )->get_property( 'txt04' ).
lo_txt_property->set_value_list( /iwbep/if_mgw_odata_property=>gcs_value_list_type_property-fixed_values ).
data(lo_text_anno) = lo_txt_property->/iwbep/if_mgw_odata_annotatabl~create_annotation( 'sap' ).
lo_text_anno->add( iv_key = 'text' iv_value = 'to_statusfixedvalue/status_text').
lo_txt_property = model->get_entity_type( 'Z_C_Status_FixedvalueType' )->get_property( 'status_code' ).
lo_txt_property->set_value_list( /iwbep/if_mgw_odata_property=>gcs_value_list_type_property-fixed_values ).
lo_text_anno = lo_txt_property->/iwbep/if_mgw_odata_annotatabl~create_annotation( 'sap' ).
lo_text_anno->add( iv_key = 'text' iv_value = 'status_text').
Note: those ABAP code is necessary, or else you will only get an ugly drop down list: only status code is displayed:
Final result
In display mode and in edit mode, the status description is displayed:
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关推荐
SAP Fiori Elements Development UX 403 SAP Fiori Elements Development UX 403 是一门关于 SAP Fiori 元素开发的高级课程,旨在帮助开发人员学习如何构建高质量的用户体验(UX)。本课程的主要目标是让开发人员...
本配置手册旨在指导用户完成SAP Fiori的设置和配置,从而实现SAP Fiori Launchpad的激活。下面是该手册中所涉及到的知识点: 1. 创建管理员账号和测试账号 在SAP Fiori的配置中,需要创建管理员账号和测试账号。...
### SAP Fiori 快速指南知识点详述 #### 一、SAP Fiori 简介 SAP Fiori 是一款由 SAP 开发的新用户体验(UX),旨在为用户提供直观、简洁的操作界面。它包含了300多个基于角色的应用程序,覆盖了人力资源、制造、...
SAP fiori的简易开发过程指南,从开发者角度出发,分后面ODATA开发环境和前端SAP UI5环境搭建,以及发布进行了讲解
- **启用自动 SAP Fiori 2.0 标题栏适应**: 通过在应用程序描述符中进行简单配置,即可实现标题栏的自动适配。 - **编写符合 SAP Fiori 2.0 规范的应用程序**: 开发者需要遵循一套新的设计准则来确保应用程序的...
【SAP Fiori 现金流案例详解】 SAP Fiori 是一款由SAP公司开发的现代化用户体验设计框架,它提供了丰富的用户界面,...通过直观的界面和动态的交互,SAP Fiori为现金管理者提供了强大的工具,以实现高效的资金管理。
本文档将详细介绍如何通过手动配置步骤或使用预定义任务列表来实现SAP Fiori应用程序的快速部署。此外,还将针对SAP Fiori的三种应用类型——交易应用程序、分析应用程序以及实况报告报表(Fact Sheets)——提供...
SAP Fiori SAP Fiori SAP Fiori Architecture Architecture Overview to Deep Overview to Deep Dive -with with focus on S/4 HANA focus on S/4 HANA
SAP Fiori是一种创新的用户界面(UI)设计和交付...综上所述,SAP Fiori是企业IT领域的一个重要里程碑,它通过重新定义用户界面,使得企业应用程序变得更加用户友好,无论是在功能上还是在用户体验上都实现了质的飞跃。
此外,熟悉SAPUI5或SAP Fiori Elements对于实现高质量的用户界面至关重要。最后,整个开发过程应遵循SAP的最佳实践和设计原则,以保证系统的性能和可维护性。 对于SAP Fiori Approve Requests 1.0,SAP NetWeaver ...
### SAP Fiori 概览与用户体验战略 #### 标题:SAP Fiori 概览 **SAP Fiori** 是 SAP 公司为改善其应用程序的用户界面(UI)和用户体验(UX)而推出的一套设计原则和技术框架。自2013年发布以来,SAP Fiori 已经...
SAP Fiori通过以下特点实现了这一目标: - **基于角色的简化**:根据不同的用户角色,将复杂的业务流程简化为直观的应用程序。 - **从单一庞大解决方案向活动导向型应用程序转变**:不再提供大而全的解决方案,而是...
### SAP Fiori Launchpad配置指南 #### 一、引言 SAP Fiori Launchpad作为移动和桌面设备上的Fiori应用程序入口,为用户提供了一种直观便捷的方式去访问各种业务流程相关的应用。为了确保Fiori Launchpad能够满足...
SAP Fiori是一个为SAP软件用户界面提供全新设计框架的用户体验。它强调简洁直观的用户界面,并能够适应不同的设备,包括桌面电脑、平板和智能手机。SAP Fiori 2.0系列视频教程涵盖了从基础到高级的内容,帮助开发者...
SAP Fiori 是 SAP 公司推出的一种全新的用户体验(UX)设计,旨在提供更加直观、高效和个性化的企业级应用程序。这个快速指南将带你了解 SAP Fiori 的基本概念、设计原则以及不同类型的 SAP Fiori 应用程序。 首先...
SAP Fiori 快速启动板使用指南 SAP Fiori 快速启动板是 SAP Fiori 应用的外壳,为应用提供导航、个性化、嵌入支持和应用程序配置等服务。它是 SAP Fiori 应用在移动和桌面设备上的入口点。 快速启动板的组成部分 ...
SAPUI5适合用于开发SAP Fiori风格的用户界面,Fiori是SAP提出的一个用户体验设计准则,旨在为所有SAP软件产品提供统一、简洁且易于使用的界面。 本教程文档介绍了如何使用SAPUI5构建类似SAP Fiori的应用程序UI,并...
SAP Fiori是SAP公司推出的一套用户界面(UI)技术框架,用于提供企业软件全新的用户体验。它是前端UI框架SAPUI5的一个重要组成部分,旨在为用户打造简洁、直观、便捷的操作界面。SAP Fiori以用户为中心,强调简洁性和...