SAP CDS VIEW实现行列转换

文章描述了在SAP系统中,当销售订单上的业务伙伴数据复杂筛选(如售达方和送达方条件)时,如何通过SQL查询无法满足需求,需进行数据的行列转置处理,以ZPRSDT_VBPA_CONV视图为例,展示了如何使用ABAP代码实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:

销售订单上的业务伙伴数据都在VBPA存储,根据PARVW来区分是售达方或者是送达方等等,有时候一些报表取数时有一些条件,比如售达方等于xxxxx并且送达方等于xxxxx,这时候就不是简单的一条sql就能搞定的事了,如果想通过一条sql就搞定这件事,我们就需要将数据做行列转置处理,常见的需求还多见于物料批次特性值这个场景,也可以按照如下方式实现行转列。

 

实现方式:

@AbapCatalog.sqlViewName: 'ZPRSDVVBPA'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Sales Document: Partner Sold-to&Ship-to'
define view ZPRSDT_VBPA_CONV
  as select from vbpa
{
  key vbeln,
  key posnr,
      @EndUserText.label: 'Sold-to'
      max( case parvw when 'AG' then kunnr else '' end ) as kunnr_sold, //sold to SP
      @EndUserText.label: 'Ship-to'
      max( case parvw when 'WE' then kunnr else '' end ) as kunnr_ship  //ship to SH
}
group by
  vbeln,
  posnr

实现效果:

以上。 

<think>好的,我需要帮助用户找到关于SAP CDS视图用户界面相关的资料或教程。首先,我应该回忆一下用户提供的引用内容。引用[1]提到了SAP CDS开发和Fiori App生成的笔记,包括安装ADT和abapGit插件,创建ABAP项目以及CDS代码资料。引用[2]则是关于Go语言的命令行解析和文档分享,看起来和用户的问题关联不大。 接下来,我需要确定用户的需求。他们想查找SAP CDS视图的用户界面文档或教程,可能是指如何通过CDS视图创建Fiori应用,或者使用ADT工具来设计和管理CDS视图的UI部分。根据引用[1],可以推测SAP CDS视图通常与Fiori应用集成,因此需要引导用户到相关的开发工具和官方教程。 我应该检查是否有直接的教程链接或者文档说明如何操作。例如,SAP官方开发者教程可能有创建CDS视图并通过它们生成Fiori应用的步骤。此外,ADT中的CDS数据模型设计可能涉及UI注解,这些注解会影响Fiori应用的界面显示,所以这也是需要提到的部分。 另外,用户可能需要了解如何通过注解(如@UI)来配置UI行为,这部分内容可能在SAP的官方文档中有详细说明。同时,社区资源如SAP Community、博客和GitHub上的示例代码也是重要的参考资料,应该推荐给用户。 最后,要确保回答结构清晰,分步骤说明,引用正确的来源,并生成相关问题。需要避免使用Markdown格式,保持自然的中文口语化,同时遵循用户提供的系统级指令,比如使用正确的LaTeX格式和内联引用标识。</think>关于SAP CDS视图用户界面(UI)相关的资料和教程,以下是分步骤的详细说明: ### 1. **官方开发者教程** SAP开发者官网提供完整的CDS视图与Fiori应用集成教程。例如《Create a CDS-Based Fiori App》系列教程详细演示如何通过CDS视图的UI注解生成列表报表应用: - 使用注解`@UI`定义字段显示属性(如`identification`、`lineItem`) - 通过`@Consumption.valueHelp`配置值帮助 - 使用ADT工具自动生成Fiori Elements模板应用 建议访问[SAP Tutorial Center](https://developers.sap.com/)搜索关键词"CDS Fiori UI"[^1]。 ### 2. **ABAP Development Tools (ADT) 实践** 在ADT中创建CDS视图时,可通过以下步骤配置UI相关属性: ```abap @UI: { headerInfo: { typeName: 'Product', typeNamePlural: 'Products' }, presentationVariant: [{ sortOrder: [ { by: 'ProductID', direction: ASC } ] }] } define view Z_Product_UI as select from sflight { key carrid as ProductID, @UI: { lineItem: [ { position: 10 } ], identification: [ { position: 20 } ] } connid as ProductName } ``` 这段代码通过`@UI`注解定义了列表页的排序规则和字段显示顺序[^1]。 ### 3. **UI注解规范** SAP帮助文档中《ABAP CDS Annotation Guidelines》包含完整的UI注解说明: - `@UI.fieldGroup`:定义字段分组 - `@UI.selectionField`:配置筛选条件 - `@UI.chart`:定义分析图表 访问[SAP Help Portal](https://help.sap.com/)搜索文档编号"ABAP CDS UI Annotations"[^1]。 ### 4. **社区资源** - **SAP Community**:搜索关键词"CDS view UI annotations"可找到案例分享,例如《How to Add Custom Actions in Fiori List Report via CDS Annotations》 - **GitHub**:参考开源项目[SAP-samples/abap-platform-rap-workshops](https://github.com/SAP-samples)中的UI注解示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeveloperMrMeng

觉得有用的佛系投币哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值