on 2025 Apr 24 2:12 AM
SAPでカスタムCDSビューを作成しています。
I_PurchaseOrderItemビューからPurchaseOrderItemフィールドの最大値を取得したい。
ただし、PurchaseOrderItem は文字列フィールド ("00010"、"00020" など) であり、数値フィールドではないため、MAX 関数の使用は期待どおりに機能しません。
MAX 関数または同様の集計を CDS ビューの文字列型フィールドに適用して、最大値を取得するにはどうすればよいですか?
Request clarification before answering.
Machine Translation:
你好 @えq
在SAP S/4HANA云公共版中的自定义CDS视图里,PurchaseOrderItem字段是字符串类型(例如“00010”、“00020”),因此直接使用MAX()函数会将其视为文本字符串而非数字。这导致计算出的最大值可能与预期数值不符。
解决方案:
聚合前转换为整数
在自定义CDS视图中,可使用如下表达式:
CAST( PurchaseOrderItem AS abap.int4 )
随后对转换后的数值字段应用MAX()函数。
此方式将“00020”视为20而非字符串。
使用语义数据源
若自定义CDS视图基于已发布的数据源I_PurchaseOrderItem,可创建关联或投影,通过计算字段将PurchaseOrderItem转换为整数。
随后在聚合节点中使用该计算字段。
自定义CDS视图应用程序的替代方案(关键用户)
在自定义CDS视图Fiori应用中,无法自由编写CAST语句。
替代方案:创建计算字段:
数据类型:整数
表达式:字符串转数值(如NUMC或Integer)
在聚合操作(MAX)中使用该计算字段。
此致
Chris
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 27 | |
| 13 | |
| 11 | |
| 4 | |
| 3 | |
| 3 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.