• Projects
  • Service
  • About
  • branding.bz
  • Podcast
  • Tips
  • FAQ
  • Recruit
  • Download
  • Contact
  • branding.bz(ブランド構築SaaS)
  • DESIGN NOW(デザインメディア)
  • X
  • LinkedIn
  • Spotify
  • Facebook

213-0011 神奈川県川崎市高津区久本3-6-7-303

© 2026 ID INC. All rights reserved

claude-skills/スキル
SKILLOfficialdevelopment

sap-fiori-analytical-chart

プラグイン
sap-fiori-mcp-server
引数
Entity, dimension, measure, aggregation
ソース
GitHub で見る ↗
説明

SAP Fiori Elements のリスト画面(List Report)に、集計データを使った分析チャート(グラフとテーブルの組み合わせ)を追加できます。CAP と ABAP RAP(OData V4)に対応しています。

原文を表示

Add analytical chart (chart + table hybrid) to SAP Fiori Elements List Report using aggregated data. Supports CAP and ABAP RAP (OData V4).

ユースケース
  • リスト画面に分析チャートを追加したい
  • 集計データを可視化する
  • グラフとテーブルで分析する
本文(日本語訳)

SAP Fiori 分析グラフ

目的

集計データを可視化するために、分析グラフ+テーブル(ハイブリッド表示) を追加します。


必須: まず必要な情報を集める

プロンプトに以下の情報が不足している場合は、すべてをユーザーに確認してから先に進んでください:

  1. エンティティ - 分析グラフを追加するエンティティはどれか
  2. ディメンション(グループ化)フィールド - グループ分けする項目(例:カテゴリ、ステータス、目的地)
  3. メジャー(集計)フィールド - 集計対象の数値項目(例:金額、合計価格、予約価格)
  4. 集計方法 - どのように集計するか(以下の有効な値を参照)
  5. グラフタイプ - 棒グラフ、縦棒グラフ、折れ線グラフ、円グラフ、ヒートマップ、滝グラフ、横滝グラフ
  6. 表示モード - グラフの表示方法:
    • 別々のタブ(手法2)
    • ハイブリッド表示(手法1)

すべての入力が確認されるまで、実装を進めないでください。


CAP実装

集計機能を有効化

@Aggregation.ApplySupported: {
  Transformations: ['aggregate','groupby'],
  AggregatableProperties: [{Property: Amount}],
  GroupableProperties: [Category]
}

集計済みプロパティ

Analytics.AggregatedProperty #Amount_avg: {
  Name: 'Amount_avg',
  AggregatableProperty: Amount,
  AggregationMethod: 'average',
  ![@Common.Label]: 'Average Amount'
}

有効なAggregationMethodの値(小文字の文字列):

  • sum - ヌル以外の値の合計
  • min - ヌル以外の値の最小値
  • max - ヌル以外の値の最大値
  • average - ヌル以外の値の合計をヌル以外の値の個数で割ったもの
  • countdistinct - ヌル値を除いた異なる値の個数

⚠️ 重要: 小文字の文字列(例:'sum')である必要があり、列挙型(例:#SUM)ではいけません。列挙型を使用するとSQL生成エラーが発生します。

グラフ

UI.Chart #AnalyticalChart: {
  $Type: 'UI.ChartDefinitionType',
  Title: 'Chart Title',
  ChartType: #Column,
  Dimensions: [Category],
  DynamicMeasures: ['@Analytics.AggregatedProperty#Amount_avg'],
  MeasureAttributes: [{
    $Type: 'UI.ChartMeasureAttributeType',
    DynamicMeasure: '@Analytics.AggregatedProperty#Amount_avg',
    Role: #Axis1
  }],
  DimensionAttributes: [{
    $Type: 'UI.ChartDimensionAttributeType',
    Dimension: Category,
    Role: #Category
  }]
},
UI.PresentationVariant #ChartView: {
  $Type: 'UI.PresentationVariantType',
  Text: 'Chart View',
  Visualizations: ['@UI.Chart#AnalyticalChart']
},
UI.PresentationVariant #TableView: {
  $Type: 'UI.PresentationVariantType',
  Text: 'Table View',
  Visualizations: ['@UI.LineItem']
}

✅ DynamicMeasuresを使用しています


ABAP RAP実装(2ステップ+マニフェスト設定)

重要: metadata.xmlを編集しないでください - 読み取り専用です!

⚠️ 実装前の確認チェックリスト

これらが不足するとアプリが起動しません:

  • [ ] 投影ビュー(ZC_*)に@OData.applySupportedForAggregation: #FULLがある
  • [ ] メジャーフィールドに@Aggregation.default: #AVG(または#SUM、#MIN、#MAX)がある
  • [ ] メタデータ拡張に正しい修飾子を持つ@UI.chart注釈がある
  • [ ] マニフェストのtargets.<ListReport>.options.settings.views.paths設定がある
  • [ ] すべてのCDSオブジェクトがアクティベートされている

1. バックエンド投影ビュー(必須)- 集計サポートを有効化

⚠️ 重要: @OData.applySupportedForAggregation注釈は必須です

この注釈がない場合:

  • ODataサービスが集計をサポートしません
  • アプリが起動に失敗します(空白画面やエラーが出ます)
  • グラフ注釈が無視されます

配置場所:

  • ✅ 必ず投影ビュー(ZC_またはZZZC_)に配置し、TRANSACTIONAL_QUERY契約を指定
  • ❌ インターフェースビュー(ZR_またはZZZR_)には配置しない

正しい例:

@OData.applySupportedForAggregation: #FULL  ← 必須! 必ず記入!
define root view entity ZC_ENTITY
  provider contract TRANSACTIONAL_QUERY
  as projection on ZR_ENTITY
{
  @Aggregation.default: #AVG  ← メジャーの集計方法を指定
  Amount;
  Category;  ← ディメンションフィールド(集計注釈は不要)
}

間違った例:

// ❌ 間違い - インターフェースビューに配置しない
@OData.applySupportedForAggregation: #FULL  ← 間違った場所!
define root view entity ZR_ENTITY
  as select from TABLE

2. バックエンドメタデータ拡張(必須)- グラフと表示バリアント注釈を追加

@UI.chart: [{
  qualifier: 'AnalyticalChart',
  title: 'Chart Title',
  description: 'Chart description',
  chartType: #COLUMN,
  dimensions: ['Category'],
  measures: ['Amount'],
  dimensionAttributes: [{
    dimension: 'Category',
    role: #CATEGORY
  }],
  measureAttributes: [{
    measure: 'Amount',
    role: #AXIS_1
  }]
}]
@UI.presentationVariant: [{
  qualifier: 'ChartView',
  text: 'Chart View',
  visualizations: [{
    type: #AS_CHART,
    qualifier: 'AnalyticalChart'
  }]
},
{
  qualifier: 'TableView',
  text: 'Table View',
  visualizations: [{
    type: #AS_LINEITEM
  }]
}]
annotate view ZC_ENTITY with
{
  // その他のフィールド注釈...
  @EndUserText.label: 'Amount'
  Amount;
  
  @EndUserText.label: 'Category'
  Category;
}

マニフェスト設定(CAPとRAP共通)

手法1: ハイブリッド表示(グラフ+テーブルが一緒に表示)

マニフェスト:

"targets": {
  "<ListReport>": {  // 実際のリストレポートターゲット名に置き換え
    "type": "Component",
    "name": "sap.fe.templates.ListReport",
    "options": {
      "settings": {
        "contextPath": "/<YourEntity>",  // エンティティセットパスに置き換え
        "views": {
          "paths": [
            {
              "primary": [
                { "annotationPath": "com.sap.vocabularies.UI.v1.Chart#AnalyticalChart" }
              ],
              "secondary": [
                { "annotationPath": "com.sap.vocabularies.UI.v1.LineItem" }
              ],
              "defaultPath": "both"
            }
          ]
        }
      }
    }
  }
}

手法2: 複数の表示タブ(表示バリアント使用)

マニフェスト:

"targets": {
  "<ListReport>": {  // 実際のリストレポートターゲット名に置き換え
    "type": "Component",
    "name": "sap.fe.templates.ListReport",
    "options": {
      "settings": {
        "contextPath": "/<YourEntity>",  // エンティティセットパスに置き換え
        "views": {
          "paths": [
            {
              "key": "ChartView",
              "annotationPath": "com.sap.vocabularies.UI.v1.PresentationVariant#ChartView"
            },
            {
              "key": "TableView",
              "annotationPath": "com.sap.vocabularies.UI.v1.PresentationVariant#TableView"
            }
          ]
        }
      }
    }
  }
}

テスト

CAPプロジェクト

npm run watch-<app-name>  # 例: npm run watch-manage-travel
# または利用可能なジェネリックウォッチスクリプトを使用
cds watch

RAPプロジェクト

npm run start-mock # メタデータ更新が必要

npm start          # 更新不要 - 実行時にライブバックエンドからメタデータを取得
  • SAP/クラウドシステムのRAPでメタデータを更新する方法については、fiori MCPサーバーがあれば参照してください

実装順序(RAP)

エラーを避けるため、この順序に従ってください:

  1. 投影ビューを修正(ZC_ENTITY)

    • 最上部に@OData.applySupportedForAggregation: #FULLを追加
    • メジャーフィールドに@Aggregation.default: #AVGを追加
    • 投影ビューをアクティベート
  2. メタデータ拡張を修正

    • @UI.chart注釈を追加
    • @UI.presentationVariant注釈を追加
    • メタデータ拡張をアクティベート
  3. Fioriアプリマニフェストを更新

    • targets.<ListReport>.options.settingsの下にviews.pathsを追加(controlConfigurationの内側ではなく)
    • manifest.jsonを保存
  4. テスト

    • npm startを実行(ライブメタデータを取得 - 再発行不要)
    • サービスバインディングの再発行は不要

トラブルシューティング

症状: アプリが起動しない/空白画面/グラフが表示されない

原因1: @OData.applySupportedForAggregation: #FULLが不足している

  • 解決策: 投影ビュー(ZC_*)に追加し、アクティベートしてアプリを再起動

原因2: 注釈が間違ったビューに記述されている

  • 解決策: インターフェースビュー(ZR_)から投影ビュー(ZC_)に移す

原因3: メジャーフィールドが数値型ではない

  • 解決策: フィールドが数値型(金額、数量、小数型、整数型)であることを確認

原因4: マニフェスト内の修飾子が間違っている

  • 解決策: マニフェストの修飾子が@UI.chart: [{ qualifier: 'AnalyticalChart' }]と一致することを確認

原因5: メジャーに@Aggregation.defaultが不足している

  • 解決策: メジャーフィールドに@Aggregation.default: #AVG(または#SUM、#MIN、#MAX)を追加

症状: グラフが表示されたがデータが間違っている

原因: 集計方法が間違っている

  • 解決策: @Aggregation.defaultの値を変更(#AVG、#SUM、#MIN、#MAX)

主な違い

CAP:

  • CDSで集計とメジャーを定義
  • DynamicMeasuresを使用

RAP:

  • バックエンドCDSでのみ集計を定義
  • Measuresを使用

よくある間違い

共通:

  • マニフェスト設定が間違っている
  • 手法1と手法2の設定を混ぜている
  • メジャーフィールドが数値ではない
  • 修飾子が一致していない(マニフェストと注釈)

RAP特有:

  • ❌ 最も一般的: @OData.applySupportedForAggregation: #FULLが不足 → アプリが起動しない
  • ❌ インターフェースビューではなく投影ビューに集計注釈を配置していない
  • ❌ メジャーフィールドに@Aggregation.defaultがない
  • ❌ 変更後にCDSオブジェクトをアクティベートし忘れている
  • ❌ 間違ったビュー契約を使用(TRANSACTIONAL_QUERYである必要がある)

ベストプラクティス

  • ディメンション1個+メジャー1~2個を使用
  • 縦棒グラフまたは棒グラフを推奨
  • 手法1: "defaultPath": "both"を使用して、グラフとテーブルを同じビューに並べて表示
  • 手法2: PresentationVariantを使用して、グラフまたはテーブルの個別ビューをタブで表示

参考資料

  • **AB
原文(English)を表示

SAP Fiori Analytical Chart

Purpose

Add analytical chart + table (hybrid view) to visualize aggregated data.


Prerequisites

CAP Projects:

  • ✅ VS Code or SAP Business Application Studio (BAS) - Both environments supported
  • ✅ Fiori MCP Server - Required for Fiori app modification (VS Code only)

ABAP RAP Projects:

  • ✅ VS Code only - ABAP Development Tools extension is VS Code-specific
  • ✅ Fiori MCP Server - Required for Fiori app modification
  • ✅ ABAP Development Tools for VS Code extension - Required for backend development (includes ADT MCP server for RAP operations)

MANDATORY: Gather Required Inputs First

STOP and ASK the user for ALL of these inputs if ANY are missing from the prompt:

  1. Entity - Which entity to add the analytical chart to
  2. Dimension field - The field to group by (e.g., Category, Status, Destination)
  3. Measure field - The numeric field to aggregate (e.g., Amount, TotalPrice, ReservationPrice)
  4. Aggregation method - How to aggregate (see valid values below)
  5. Chart type - Bar, Column, Line, Pie, HeatMap, Waterfall, HorizontalWaterfall
  6. Display mode - How the chart should be shown:
    • Separate tabs (Approach 2)
    • Hybrid view (Approach 1)

DO NOT proceed with implementation until all inputs are confirmed.


CAP Implementation

Enable Aggregation

@Aggregation.ApplySupported: {
  Transformations: ['aggregate','groupby'],
  AggregatableProperties: [{Property: Amount}],
  GroupableProperties: [Category]
}

Aggregated Property

Analytics.AggregatedProperty #Amount_avg: {
  Name: 'Amount_avg',
  AggregatableProperty: Amount,
  AggregationMethod: 'average',
  ![@Common.Label]: 'Average Amount'
}

Valid AggregationMethod values (lowercase string):

  • sum - Sum of the non-null values
  • min - Smallest of the non-null values
  • max - Largest of the non-null values
  • average - Sum of non-null values divided by count of non-null values
  • countdistinct - Count of distinct values, omitting null values

⚠️ CRITICAL: Must be a lowercase string (e.g., 'sum'), NOT an enum (e.g., #SUM). Using an enum will cause SQL generation errors.

Chart

UI.Chart #AnalyticalChart: {
  $Type: 'UI.ChartDefinitionType',
  Title: 'Chart Title',
  ChartType: #Column,
  Dimensions: [Category],
  DynamicMeasures: ['@Analytics.AggregatedProperty#Amount_avg'],
  MeasureAttributes: [{
    $Type: 'UI.ChartMeasureAttributeType',
    DynamicMeasure: '@Analytics.AggregatedProperty#Amount_avg',
    Role: #Axis1
  }],
  DimensionAttributes: [{
    $Type: 'UI.ChartDimensionAttributeType',
    Dimension: Category,
    Role: #Category
  }]
},
UI.PresentationVariant #ChartView: {
  $Type: 'UI.PresentationVariantType',
  Text: 'Chart View',
  Visualizations: ['@UI.Chart#AnalyticalChart']
},
UI.PresentationVariant #TableView: {
  $Type: 'UI.PresentationVariantType',
  Text: 'Table View',
  Visualizations: ['@UI.LineItem']
}

✅ Uses DynamicMeasures


ABAP RAP Implementation (3 Steps + Manifest Configuration)

CRITICAL: NEVER EDIT metadata.xml - IT IS READ-ONLY!

⚠️ PRE-FLIGHT CHECKLIST - Verify BEFORE Implementation

Missing ANY of these will cause the app to fail/not load:

  • [ ] @OData.applySupportedForAggregation: #FULL on projection view (ZC_*)
  • [ ] @Aggregation.default: #AVG (or #SUM, #MIN, #MAX) on measure field
  • [ ] @UI.chart annotation with correct qualifier in metadata extension
  • [ ] Manifest targets.<ListReport>.options.settings.views.paths configuration
  • [ ] All CDS objects activated

1. Backend Projection View (MANDATORY) - Enable Aggregation Support

⚠️ CRITICAL: @OData.applySupportedForAggregation annotation is MANDATORY

WITHOUT this annotation:

  • OData service will NOT support aggregation
  • App will FAIL TO LOAD (blank screen/errors)
  • Chart annotations will be ignored

Placement:

  • ✅ MUST be on PROJECTION view (ZC_* or ZZZC_*) with TRANSACTIONAL_QUERY contract
  • ❌ NOT on interface view (ZR_* or ZZZR_*)

CORRECT Example:

@OData.applySupportedForAggregation: #FULL  ← MANDATORY! Must be present!
define root view entity ZC_ENTITY
  provider contract TRANSACTIONAL_QUERY
  as projection on ZR_ENTITY
{
  @Aggregation.default: #AVG  ← Specify aggregation method for measure
  Amount;
  Category;  ← Dimension field (no aggregation annotation needed)
}

WRONG Example:

// ❌ WRONG - Don't put on interface view
@OData.applySupportedForAggregation: #FULL  ← WRONG PLACE!
define root view entity ZR_ENTITY
  as select from TABLE

2. Backend Metadata Extension (MANDATORY) - Add Chart, PresentationVariant Annotations

@UI.chart: [{
  qualifier: 'AnalyticalChart',
  title: 'Chart Title',
  description: 'Chart description',
  chartType: #COLUMN,
  dimensions: ['Category'],
  measures: ['Amount'],
  dimensionAttributes: [{
    dimension: 'Category',
    role: #CATEGORY
  }],
  measureAttributes: [{
    measure: 'Amount',
    role: #AXIS_1
  }]
}]
@UI.presentationVariant: [{
  qualifier: 'ChartView',
  text: 'Chart View',
  visualizations: [{
    type: #AS_CHART,
    qualifier: 'AnalyticalChart'
  }]
},
{
  qualifier: 'TableView',
  text: 'Table View',
  visualizations: [{
    type: #AS_LINEITEM
  }]
}]
annotate view ZC_ENTITY with
{
  // Other field annotations...
  @EndUserText.label: 'Amount'
  Amount;
  
  @EndUserText.label: 'Category'
  Category;
}

3. Verify Active Annotations (MANDATORY)

After activating both DDLS and DDLX, verify the changes are live:

⚠️ IMPORTANT: DDLS and DDLX are Separate Objects

The projection view (DDLS file) and metadata extension (DDLX file) are separate ABAP development objects that happen to share the same entity name.

Key points:

  • DDLS = Data Definition (projection view) - contains entity definition, associations, fields, and data annotations
  • DDLX = Metadata Extension - contains UI annotations (@UI.chart, @UI.presentationVariant, field labels, etc.)
  • Both must be activated individually - activating one does NOT activate the other
  • Both must exist for the analytical chart to work

Activation:

  • Use ABAP ADT MCP to activate ABAP objects
  • Activate the DDLS file separately from the DDLX file

Verification Steps:

  1. Verify Activation Status:

    • Check the activation tool output for success messages
    • Verify no errors were reported during activation
    • Both DDLS and DDLX must show successful activation
  2. Check OData $metadata:

    • Open your service URL in browser: <service-url>/$metadata
    • Search for: <Annotation Term="UI.Chart" Qualifier="AnalyticalChart">
    • Also verify: <Annotation Term="UI.PresentationVariant" Qualifier="ChartView">
    • If these annotations are missing from $metadata, the DDLX is not active OR the service binding needs republishing

Manifest Configuration (Common for CAP and RAP)

Approach 1: Hybrid View (Chart + Table Together)

Manifest:

"targets": {
  "<ListReport>": {  // Replace with your actual List Report target name
    "type": "Component",
    "name": "sap.fe.templates.ListReport",
    "options": {
      "settings": {
        "contextPath": "/<YourEntity>",  // Replace with your entity set path
        "views": {
          "paths": [
            {
              "primary": [
                { "annotationPath": "com.sap.vocabularies.UI.v1.Chart#AnalyticalChart" }
              ],
              "secondary": [
                { "annotationPath": "com.sap.vocabularies.UI.v1.LineItem" }
              ],
              "defaultPath": "both"
            }
          ]
        }
      }
    }
  }
}

Approach 2: Multiple View Tabs with PresentationVariant

Manifest:

"targets": {
  "<ListReport>": {  // Replace with your actual List Report target name
    "type": "Component",
    "name": "sap.fe.templates.ListReport",
    "options": {
      "settings": {
        "contextPath": "/<YourEntity>",  // Replace with your entity set path
        "views": {
          "paths": [
            {
              "key": "ChartView",
              "annotationPath": "com.sap.vocabularies.UI.v1.PresentationVariant#ChartView"
            },
            {
              "key": "TableView",
              "annotationPath": "com.sap.vocabularies.UI.v1.PresentationVariant#TableView"
            }
          ]
        }
      }
    }
  }
}

Testing

CAP Projects

npm run watch-<app-name>  # e.g., npm run watch-manage-travel
# or use generic watch script if available
cds watch

RAP Projects

npm run start-mock # Needs metadata refresh - see below

npm start          # No refresh needed - fetches metadata from live backend at runtime

Refreshing metadata for start-mock:

  • When using npm run start-mock, the app uses locally cached metadata.xml
  • After backend changes (DDLS/DDLX activation), refresh the local metadata
  • For full details on testing and metadata refresh, consult the sap-fiori-app-development skill

Implementation Order (RAP)

Follow this sequence to avoid errors:

  1. Modify Projection View (ZC_ENTITY) - DDLS file

    • Add @OData.applySupportedForAggregation: #FULL at top
    • Add @Aggregation.default: #AVG to measure field
    • Activate using ABAP ADT MCP
    • Verify activation succeeded
  2. Modify Metadata Extension (ZC_ENTITY) - DDLX file

    • Add @UI.chart annotation with qualifier
    • Add @UI.presentationVariant annotations
    • Activate using ABAP ADT MCP
    • Verify activation succeeded
  3. Verify Annotations are Active (see Step 3 in ABAP RAP Implementation section above)

  4. Update Fiori App Manifest

    • Add views.paths under targets.<ListReport>.options.settings (NOT inside controlConfiguration)
    • Save manifest.json
  5. Test

    • Run npm start (fetches live metadata - no republishing needed)
    • Service binding does NOT need to be republished
    • If chart doesn't appear, check browser console for "Annotation Path ... not found" error

Troubleshooting

Symptom: Console error "Annotation Path for the primary visualization ... not found"

Full error message:

Annotation Path for the primary visualization com.sap.vocabularies.UI.v1.Chart#AnalyticalChart not found

Cause: The metadata extension (DDLX) is NOT active, so the @UI.chart annotation is not exposed in the OData $metadata.

Solution:

  1. Activate the DDLX file using ABAP ADT MCP
  2. Verify activation succeeded (check tool output for errors)
  3. Verify the annotation appears in $metadata: <service-url>/$metadata (search for Chart#AnalyticalChart)
  4. Restart the Fiori app: npm start

Note: Even if you edited the DDLX, it won't take effect until explicitly activated. The DDLS and DDLX are separate objects.


Symptom: App doesn't load / Blank screen / Chart not visible

Cause 1: Missing @OData.applySupportedForAggregation: #FULL

  • Solution: Add to projection view (ZC_*), activate, restart app

Cause 2: Annotation on wrong view

  • Solution: Move from interface view (ZR_) to projection view (ZC_)

Cause 3: Measure field not numeric

  • Solution: Verify field is numeric type (Amount, Quantity, Decimal, Integer)

Cause 4: Wrong qualifier in manifest

  • Solution: Verify qualifier in manifest matches @UI.chart: [{ qualifier: 'AnalyticalChart' }]

Cause 5: Missing @Aggregation.default on measure

  • Solution: Add @Aggregation.default: #AVG (or #SUM, #MIN, #MAX) to measure field

Cause 6: DDLX not activated (see console error above)

  • Solution: Activate the metadata extension (DDLX) file using ABAP ADT MCP

Symptom: Chart shows but with wrong data

Cause: Wrong aggregation method

  • Solution: Change @Aggregation.default value (#AVG, #SUM, #MIN, #MAX)

Key Differences

CAP:

  • Aggregation + measures defined in CDS
  • Uses DynamicMeasures

RAP:

  • Aggregation defined in backend CDS only
  • Uses Measures

Common Mistakes

General:

  • Wrong manifest config
  • Mixing Approach 1 and Approach 2 configurations
  • Non-numeric measure field
  • Wrong qualifier (manifest doesn't match annotation)

RAP-Specific:

  • ❌ MOST COMMON: Missing @OData.applySupportedForAggregation: #FULL → App won't load
  • ❌ Placing aggregation annotation on interface view instead of projection view
  • ❌ Missing @Aggregation.default on measure field
  • ❌ Forgetting to activate CDS objects after changes
  • ❌ Using wrong view contract (must be TRANSACTIONAL_QUERY)

Best Practices

  • Use 1 dimension + 1–2 measures
  • Prefer Column/Bar charts
  • Approach 1: Use "defaultPath": "both" for chart + table side-by-side in same view
  • Approach 2: Use PresentationVariant for separate view tabs (chart or table)

References

  • SAP Fiori Elements Analytical List Report: https://ui5.sap.com/test-resources/sap/fe/core/fpmExplorer/index.html#/topic/floorplanListReport/analyticalListReport
  • ABAP RAP Aggregation support: https://help.sap.com/docs/abap-cloud/abap-rap/projection-view

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。