sap-sac-planning

SAP Analytics Cloud Planning Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "sap-sac-planning" with this command: npx skills add secondsky/sap-skills/secondsky-sap-skills-sap-sac-planning

SAP Analytics Cloud Planning Skill

Comprehensive skill for building enterprise planning applications with SAP Analytics Cloud.

Reference Add-Ons (2025.25)

  • Execution guides: references/data-actions.md , references/multi-actions.md , references/allocations.md , references/scheduling-calendar.md , references/data-locking.md

  • Modeling & governance: references/modeling-basics.md , references/version-management.md , references/version-edit-modes.md , references/version-publishing-notes.md

  • Calculations & intelligence: references/advanced-formulas.md , references/predictive-conversion.md , references/ai-planning-analytics.md , references/api-snippets.md

  • Workflow aids: references/input-tasks.md , references/job-monitoring.md

  • New in 2025: references/seamless-planning-datasphere.md , references/bpc-live-connection.md , references/value-driver-trees.md , references/data-action-tracing.md

  • Ready-to-use templates: templates/data-action-checklist.md , templates/multi-action-checklist.md , templates/parameter-table.md

Use these to keep instructions concise in this file while deep-dives remain one click away.

Table of Contents

  • When to Use This Skill

  • Quick Start

  • Core Concepts

  • Data Actions

  • Seamless Planning with Datasphere

  • BPC Live Connection

  • Value Driver Trees

  • Data Action Tracing

  • Bundled Resources

When to Use This Skill

Use this skill when working on tasks involving:

Planning Application Development:

  • Creating planning-enabled stories with data entry

  • Building analytics designer applications for planning

  • Implementing input forms and planning tables

  • Configuring planning models with Version and Date dimensions

  • Setting up data sources for planning scenarios

Data Actions & Multi Actions:

  • Creating data actions for copy, allocation, and calculations

  • Building multi actions to orchestrate planning operations

  • Configuring parameters (member, number, string, datetime types)

  • Implementing embedded data actions

  • Setting up API steps for external integrations

Version Management:

  • Managing public and private versions

  • Publishing workflows (Publish As, Publish Private Data)

  • Sharing private versions with collaborators

  • Version creation and deletion via API

Planning Workflows:

  • Setting up calendar-based planning processes

  • Creating general tasks, review tasks, and composite tasks

  • Implementing multi-level approval workflows

  • Configuring data locking tasks

  • Managing task dependencies

JavaScript Planning APIs:

  • Using getPlanning() API for data entry

  • Working with PlanningModel API for master data

  • Implementing DataSource API for filtering and querying

  • Writing scripts for planning automation

  • Handling version management via API

Data Entry & Allocation:

  • Implementing spreading (to child members)

  • Configuring distribution (between siblings)

  • Setting up rule-based allocations

  • Copy/paste operations in planning tables

  • Using advanced formulas for calculations

Data Locking:

  • Configuring data locking on models

  • Setting up lock states (locked, restricted, open)

  • Creating data locking tasks in calendar

  • Implementing event-based data locking

  • Integrating data locking in multi actions

Seamless Planning with Datasphere (2025):

  • Planning models with Datasphere storage

  • Cross-model planning with unified data

  • Direct persistence to Datasphere

  • Enterprise data governance for planning

BPC Live Connection:

  • Planning with BPC Embedded on S/4HANA

  • Running BPC planning sequences from SAC

  • Master data planning via BPC

  • Live data connection configuration

Value Driver Trees:

  • Building business value chain visualizations

  • What-if analysis and scenario simulation

  • Driver-based planning

  • Interactive planning dashboards

Data Action Debugging:

  • Tracing data action execution

  • Adding tracepoints for debugging

  • Analyzing intermediate results

  • Troubleshooting allocation issues

Quick Start

Creating a Planning-Enabled Story

Create Planning Model with required dimensions:

  • Version dimension (required)

  • Date dimension (required)

  • Account dimension (recommended)

  • Other business dimensions

Add Table Widget to story and link to planning model

Enable Planning on the table:

  • Select table → Planning panel → Enable Planning

  • Configure version selection (public or private)

Configure Data Entry:

  • Set editable measures/accounts

  • Configure spreading behavior

  • Set up validation rules

Creating an Analytics Designer Planning Application

  • Create Analytic Application (not Optimized Story)

  • Add Planning Model as data source

  • Add Table Widget and enable planning

  • Write Scripts for:

  • Version selection

  • Data submission

  • Custom validation

  • Workflow triggers

Core Concepts

Model Types

Planning Model:

  • Supports data write-back

  • Requires Version and Date dimensions

  • Enables spreading, distribution, allocation

  • Supports data locking

  • Used for budgeting, forecasting, planning

Analytic Model:

  • Read-only (no write-back)

  • No required dimensions

  • Better performance for reporting

  • Use when planning not needed

Version Management

Public Versions:

  • Visible to all users with access

  • Shared across the organization

  • Require publish to update

Private Versions:

  • Visible only to creator (unless shared)

  • Used for simulation and what-if analysis

  • Can be published to public or new version

Edit Mode:

  • Temporary private copy when editing public version

  • Changes visible only to editor until published

  • Automatic validation on publish

Reference: See references/version-management.md for detailed workflows.

Planning API Overview

getPlanning() API - Table planning operations:

// Check if planning is enabled var isEnabled = Table_1.getPlanning().isEnabled();

// Get public versions var publicVersions = Table_1.getPlanning().getPublicVersions();

// Get private version var privateVersion = Table_1.getPlanning().getPrivateVersion();

// Set user input (data entry) Table_1.getPlanning().setUserInput(selection, value);

// Submit data changes Table_1.getPlanning().submitData();

PlanningModel API - Master data operations:

// Get dimension members with properties var members = PlanningModel_1.getMembers("CostCenter");

// Create new members PlanningModel_1.createMembers("CostCenter", [ {id: "CC100", description: "Marketing"} ]);

// Update existing members PlanningModel_1.updateMembers("CostCenter", [ {id: "CC100", description: "Marketing Dept"} ]);

// Delete members PlanningModel_1.deleteMembers("CostCenter", ["CC100"]);

DataSource API - Filtering and querying:

// Set dimension filter Table_1.getDataSource().setDimensionFilter("Version", "[Version].[parentId].&[public.Actual]");

// Get members with booked values only var members = Table_1.getDataSource().getMembers("Account", {accessMode: MemberAccessMode.BookedValues});

// Remove filter Table_1.getDataSource().removeDimensionFilter("Version");

Reference: See references/api-reference.md for complete API documentation.

Data Actions

Data actions perform calculations and data manipulation on planning models.

Step Types

Step Type Purpose

Copy Move data between dimensions/versions

Advanced Formula Complex calculations

Allocation Rule-based distribution

Currency Conversion Convert currencies

Embedded Data Action Run another data action

Creating a Copy Step

Source: Version = Actual Year = 2024

Target: Version = Budget Year = 2025

Mapping: Account = Account (same) CostCenter = CostCenter (same)

Advanced Formula Example

// Calculate forecast = Actual + (Budget - Actual) * 0.5 [Version].[Forecast] = [Version].[Actual] + ([Version].[Budget] - [Version].[Actual]) * 0.5

Parameters

Add parameters to make data actions reusable:

  • Member Parameter: Select dimension member

  • Number Parameter: Enter numeric value

  • String Parameter: Enter text (2025+)

  • Datetime Parameter: Select date/time (2025+)

Reference: See references/data-actions.md for complete configuration guide.

Multi Actions

Multi actions orchestrate multiple planning operations across models and versions.

Available Step Types

  • Data Action Step: Run data action with parameters

  • Version Management Step: Publish versions

  • Predictive Step: Run forecasting scenarios

  • Data Import Step: Import from SAP sources

  • API Step: Call external HTTP APIs

  • Data Locking Step: Lock/unlock data slices

  • PaPM Step: Run Profitability and Performance Management

Example Multi Action Flow

  1. Clean target version (Data Action)
  2. Import actuals (Data Import)
  3. Run forecast (Predictive)
  4. Calculate allocations (Data Action)
  5. Publish to public version (Version Management)
  6. Lock published data (Data Locking)

Cross-Model Parameters

When using public dimensions, create cross-model parameters to share values across steps in different models.

Reference: See references/data-actions.md for multi action configuration.

S/4HANA ACDOCP Export

Export native planning data from SAC to SAP S/4HANA's ACDOCP table (central ERP plan data storage).

Architecture

SAC Planning Model → Data Export Service → Cloud Connector → API_PLPACDOCPDATA_SRV → ACDOCP

Prerequisites

Requirement Details

Legacy Mode Must be enabled on planning model

OData Service Activate API_PLPACDOCPDATA_SRV in /IWFND/MAINT_SERVICE

Cloud Connector Required for on-premise S/4HANA

Required Dimensions for Export

  • Version (Plan Category): Only public versions can be exported

  • FiscalYearPeriod: Mandatory in export scope

  • Measure: Only ONE target measure per export job

  • G/L Account: Required for ACDOCP mapping

Export Behavior

  • Exported data overwrites existing data within scope

  • S/4HANA generates delta records for changes

  • Deletions don't propagate: Set values to 0 and re-export to clear ACDOCP data

  • Filters cannot be changed after export job creation—name jobs descriptively

Quick Setup

  • Enable Legacy Mode on planning model

  • Create S/4HANA connection with Cloud Connector

  • Data Management → Create Data Export Job

  • Map dimensions to ACDOCP fields

  • Define export scope (FiscalYearPeriod + PlanningCategory mandatory)

  • Schedule or run export

Reference: See references/s4hana-acdocp-export.md for complete configuration guide, troubleshooting, and SAP documentation links.

Seamless Planning with Datasphere

Seamless Planning unifies SAC planning with SAP Datasphere, enabling enterprise-grade storage and governance for plan data.

Architecture Overview

SAC (Planning Logic & UX) ──Direct Persistence──► Datasphere (Data Storage & Governance)

What stays in SAC: Planning calculations, version management, data actions, calendar workflows What moves to Datasphere: Fact data, public dimensions, physical storage, data governance

Key Benefits

Benefit Description

Unified Data Centralized storage ensures consistency

Direct Persistence Changes in SAC instantly reflect in Datasphere

Optimized Resources Reduces SAC memory and storage footprint

Enterprise Reusability Datasphere modeling extends to planning data

Prerequisites

  • SAC tenant on SAP HANA Cloud - Verify in System → About

  • Co-located tenants - Same SAP data center region

  • 1:1 tenant linkage - One SAC tenant to one Datasphere tenant

  • Consistent IdP - Same SAML identity provider

  • Datasphere space roles - DW Modeler, DW Integrator, or DW Space Administrator

Quick Setup

  • Create new Planning Model

  • Select SAP Datasphere Space as Data Storage Location

  • Configure dimensions (public dimensions stored in Datasphere)

  • Enable Expose to Datasphere in Model Details

  • Plan normally in SAC - changes persist automatically

Cross-Model Planning

All models for cross-model operations (data actions, multi actions) must be in the same Datasphere space.

Reference: See references/seamless-planning-datasphere.md for detailed architecture, configuration, and troubleshooting.

BPC Live Connection

SAC supports live data connections to BPC Embedded on S/4HANA, enabling planning with the BPC engine while using SAC's modern interface.

Supported BPC Versions

Version Planning Support

BPC Embedded (S/4HANA) Full planning features

BPC for NetWeaver Limited (read-only)

BPC Standard Export to BPC required

Planning Features via BPC Live

  • Data Entry: Direct input to BPC models

  • Planning Sequences: Execute FOX scripts from SAC

  • Version Management: BPC-controlled categories

  • Master Data Planning: Update dimension properties

  • Data Locking: BPC locks integration

Running BPC Planning Sequences

// Execute BPC planning sequence PlanningSequence_1.setParameterValue("FISCAL_YEAR", "2025"); PlanningSequence_1.setParameterValue("VERSION", "PLAN"); PlanningSequence_1.execute().then(function() { Table_1.getDataSource().refreshData(); });

When to Use BPC Live vs Native SAC

Use BPC Live when: Existing BPC investment, complex FOX scripts, integrated with BW reporting Use Native SAC when: New implementation, simpler requirements, mobile-first applications

Reference: See references/bpc-live-connection.md for setup, prerequisites, and troubleshooting.

Value Driver Trees

Value Driver Trees (VDT) visualize how values flow through a planning model, enabling driver-based planning and what-if analysis.

Use Cases

Scenario Example

Driver-Based Planning Model how prices, headcount impact revenue

What-If Analysis Simulate scenarios, see cascading effects

Strategic Planning Visualize value chain impacts

Executive Presentations Touchscreen-friendly boardroom displays

Creating a Value Driver Tree

  • Add Value Driver Tree widget to story or application

  • Select planning model with Date dimension

  • Add nodes (auto-create from model or manual)

  • Configure measures and structures per node

  • Link nodes (drivers right, outcomes left)

  • Set presentation date range

Node Configuration

Setup Description

1 Account + 1 Structure Single row of values

Multiple Accounts Row per account (e.g., sales + quantity)

Multiple Structures Compare scenarios/currencies

JavaScript API

// Get VDT reference var vdt = ValueDriverTree_1;

// Get selected node value var value = vdt.getSelectedNode().getValue("Revenue", "2025Q1");

// Collapse/expand nodes vdt.collapseNode("Node_Revenue"); vdt.expandNode("Node_Revenue");

Reference: See references/value-driver-trees.md for detailed setup and best practices.

Data Action Tracing

Data Action Tracing is a debugging tool for inspecting intermediate results during data action execution.

When to Use Tracing

Scenario How Tracing Helps

New Development Validate each step produces expected results

Debugging Failures Identify which step causes incorrect data

Performance Investigation See which steps process most data

Allocation Debugging Validate driver ratios and distributions

Adding Tracepoints

  • Open data action in Data Action Designer

  • Navigate to step where you want to trace

  • Click Add Tracepoint (or right-click → Add Tracepoint)

  • Name descriptively (e.g., "After Copy Step", "Before Allocation")

Running Trace Mode

  • Open data action in designer

  • Click Run with Tracing

  • Set required parameters

  • Execute - data captured at each tracepoint

  • Review results in Tracing Results Panel

Analyzing Results

View Description

Data at Tracepoint All values at that point

Changes Since Previous Delta between tracepoints

Filtered View Focus on specific data

TRACE() in Advanced Formulas

// Add tracepoints in script [Revenue] = [Quantity] * [Price] TRACE("After_Revenue_Calc")

[Final] = [Revenue] * (1 + [Tax]) TRACE("After_Tax")

Reference: See references/data-action-tracing.md for complete debugging guide.

Planning Workflows (Calendar)

The SAP Analytics Cloud calendar organizes collaborative planning processes.

Task Types

General Task: Data entry by assignees

  • Attach work file (story/application)

  • Set due dates and notifications

  • Track completion status

Review Task: Approval workflow

  • Review results of general tasks

  • Approve or reject submissions

  • Automatic notification on status change

Composite Task: Combined entry and review

  • Simplified approval for single-level workflows

  • Driving dimension support for regional planning

Data Locking Task: Schedule lock changes

  • Specify data slice to lock/unlock

  • Set target lock state

  • Event-based triggering

Multi-Level Approval

Round 1: Regional Managers review regional plans ↓ (on approval) Round 2: Finance Director reviews consolidated plan ↓ (on approval) Round 3: CFO final approval ↓ (on approval) Data Locking: Lock approved plan data

Task Dependencies

Configure predecessor tasks to create sequential workflows:

  • Review tasks automatically start when predecessor completes

  • Data locking tasks trigger on approval events

Reference: See references/planning-workflows.md for calendar configuration.

Spreading & Distribution

Spreading (Vertical)

Distributes values from parent to child members:

  • Equal Spread: Divide equally among children

  • Proportional Spread: Maintain existing ratios

  • Automatic: SAC determines best method

// Spreading happens automatically when entering at aggregate level // Example: Enter 1000 at "Total Regions" spreads to child regions

Distribution (Horizontal)

Moves values between members at same hierarchy level:

  • Select source and target cells

  • Choose distribution method

  • Apply via context menu or script

Allocation by Rules

Configure structured allocations in data actions:

  • Define driver accounts for percentage distribution

  • Set allocation targets

  • Execute via data action or multi action

Data Locking

Protect planning data during and after planning cycles.

Lock States

State Data Entry Owner Can Edit

Open Yes Yes

Restricted No (except owner) Yes

Locked No No

Mixed Varies Varies (selection contains multiple states)

Configuration

  • Enable Data Locking on planning model

  • Define Driving Dimensions (e.g., Region, Version)

  • Assign Owners to data slices

  • Configure Lock Regions via model settings

Script Example

// Get data locking object var dataLocking = Table_1.getPlanning().getDataLocking();

// Get lock state for selection var selection = Table_1.getSelections()[0]; var lockState = dataLocking.getState(selection);

// Check if locked if (lockState === DataLockingState.Locked) { Application.showMessage("This data is locked."); }

Reference: See references/planning-workflows.md for data locking patterns.

Members on the Fly

Create, update, and delete dimension members dynamically at runtime.

Supported Operations

// Create new member PlanningModel_1.createMembers("CostCenter", { id: "CC_NEW", description: "New Cost Center" });

// Update existing member PlanningModel_1.updateMembers("CostCenter", { id: "CC_NEW", description: "Updated Description" });

// Get single member var member = PlanningModel_1.getMember("CostCenter", "CC_NEW");

// Get members with pagination var members = PlanningModel_1.getMembers("CostCenter", { offset: "0", limit: "100" });

Important Restrictions

  • Dimension Type: Only "Generic" dimensions supported (NOT Account, Version, Time, Organization)

  • Refresh Required: Call Application.refreshData() after member changes

  • Custom Properties: Use prefixes to avoid naming conflicts (e.g., "CUSTOM_Region")

Reference: See references/analytics-designer-planning.md for complete API documentation.

Common JavaScript Patterns

Finding Active Version by Attribute

var allVersions = PlanningModel_1.getMembers("Version"); var activeVersion = "";

for (var i = 0; i < allVersions.length; i++) { if (allVersions[i].properties.Active === "X") { activeVersion = allVersions[i].id; break; } } console.log("Active Version: " + activeVersion);

Setting Filter from Planning Cycle

Application.showBusyIndicator(); Table_1.setVisible(false);

// Find active planning cycle var cycles = PlanningModel_1.getMembers("PlanningCycle"); var activeCycle = "";

for (var i = 0; i < cycles.length; i++) { if (cycles[i].properties.Flag === "ACTIVE") { activeCycle = cycles[i].id; break; } }

// Apply MDX filter Table_1.getDataSource().setDimensionFilter("Date", "[Date].[YQM].&[" + activeCycle + "]");

Table_1.setVisible(true); Application.hideBusyIndicator();

Version Publishing

// Get forecast version var forecastVersion = Table_1.getPlanning().getPublicVersion("Forecast2025");

// Check if changes need publishing if (forecastVersion.isDirty()) { forecastVersion.publish(); Application.showMessage("Version published successfully."); }

Data Action Execution

// Execute data action with parameters DataAction_1.setParameterValue("Version", "Budget"); DataAction_1.setParameterValue("Year", "2025");

DataAction_1.execute();

// Or execute in background DataAction_1.executeInBackground();

Reference: See references/javascript-patterns.md for more examples.

Performance Best Practices

Data Action Optimization

  • Use Input Controls: Link to parameters to reduce data scope

  • Embed Related Actions: Combine actions on same model/version

  • Minimize Cross-Model Operations: Keep data in single model when possible

  • Use Batch Processing: Group operations in single transaction

Story Performance

  • Enable Data Locking Selectively: Only on models that need it

  • Use Growing Mode: For large tables with pagination

  • Limit Visible Dimensions: Reduce data cells displayed

  • Optimize Filters: Apply story filters before data entry

API Performance

  • Use Booked Values Filter: Retrieve only posted data

  • Limit getMembers() Results: Set limit parameter

  • Cache Member Lists: Store in script variables when reusing

  • Use Busy Indicator: Improve perceived performance

Troubleshooting

Issue: Data not saving

Check:

  • Planning enabled on table?

  • User has planning permissions?

  • Data locked?

  • Validation rules failing?

Debug:

console.log("Planning enabled: " + Table_1.getPlanning().isEnabled()); var lockState = Table_1.getPlanning().getDataLocking().getState(selection); console.log("Lock state: " + lockState);

Issue: Version not publishing

Check:

  • Valid changes only? (Invalid changes discarded)

  • Data access control allowing write?

  • Version not already published?

Issue: Data action failing

Check:

  • Source data exists?

  • Target version writable?

  • Dimension mappings correct?

  • Parameters set correctly?

Debug: Use data action tracing table with "Show Only Leaves" option.

Issue: getMembers() returns empty

Check:

  • Dimension name correct?

  • Model connected?

  • User has read access?

  • Using correct API (PlanningModel vs DataSource)?

Official Documentation Links

Essential Resources:

Planning Model & Data:

Data Actions & Multi Actions:

Version Management:

Data Locking:

Calendar & Workflows:

Allocations & Spreading:

Learning Resources:

Bundled Reference Files

This skill includes comprehensive reference documentation (24 files):

API & Scripting:

  • references/api-reference.md: Complete Analytics Designer API for planning

  • references/analytics-designer-planning.md: Planning scripting, setUserInput, versions, data locking, members on the fly

  • references/api-snippets.md: Quick API code examples and snippets

Core Planning Features: 4. references/data-actions.md: Data Actions, Multi Actions, parameters, steps 5. references/multi-actions.md: Orchestrate multiple planning operations 6. references/allocations.md: Rule-based distribution and allocations 7. references/advanced-formulas.md: Complex calculations and formulas 8. references/predictive-conversion.md: Predictive forecasting integration

Workflow & Collaboration: 9. references/planning-workflows.md: Calendar, tasks, approvals, data locking 10. references/scheduling-calendar.md: Planning calendar setup 11. references/input-tasks.md: Collaborative data entry tasks 12. references/job-monitoring.md: Track data action execution

Version Management: 13. references/version-management.md: Versions, publishing, sharing, edit mode 14. references/version-edit-modes.md: Version editing workflows 15. references/version-publishing-notes.md: Publishing best practices

Integration & Advanced: 16. references/s4hana-acdocp-export.md: S/4HANA integration, ACDOCP export, OData setup 17. references/ai-planning-analytics.md: AI-powered planning features

Development: 18. references/javascript-patterns.md: Code snippets, patterns, best practices 19. references/modeling-basics.md: Planning model fundamentals 20. references/data-locking.md: Configure and manage data locks

New in 2025: 21. references/seamless-planning-datasphere.md: Seamless Planning architecture, prerequisites, configuration with SAP Datasphere 22. references/bpc-live-connection.md: BPC Embedded live connection, planning sequences, master data planning 23. references/value-driver-trees.md: Value driver tree setup, node configuration, JavaScript API 24. references/data-action-tracing.md: Data action tracing, tracepoints, debugging techniques

Instructions for Claude

When using this skill:

  • Check model type first - Ensure planning model (not analytic) for write operations

  • Verify planning enabled - Table must have planning enabled

  • Use appropriate API - PlanningModel for master data, getPlanning() for transactions

  • Handle versions correctly - Private for drafts, publish to public when ready

  • Respect data locking - Check lock state before suggesting edits

  • Use busy indicators - For long operations to improve UX

  • Follow MDX syntax - For dimension filters: [Dim].[Hierarchy].&[Member]

  • Test data actions - Use tracing before production deployment

  • Consider performance - Apply filters to reduce data scope

  • Link to documentation - Include relevant SAP Help links in responses

For troubleshooting:

  • Check console for script errors

  • Verify model connectivity

  • Review data action logs

  • Test with simplified scenarios first

  • Check user permissions and data access

Bundled Resources

Reference Documentation

  • references/data-actions.md

  • Data actions configuration and execution

  • references/multi-actions.md

  • Multi-action orchestration

  • references/allocations.md

  • Allocation methods and spreading

  • references/scheduling-calendar.md

  • Workflow scheduling

  • references/data-locking.md

  • Data locking configuration

  • references/version-management.md

  • Version management best practices

  • references/api-reference.md

  • Planning API reference

  • references/javascript-patterns.md

  • JavaScript scripting patterns

Templates

  • templates/data-action-checklist.md

  • Data action implementation checklist

  • templates/multi-action-checklist.md

  • Multi-action setup guide

  • templates/parameter-table.md

  • Parameter table template

License: GPL-3.0 Version: 1.4.0 Maintained by: E.J. Repository: https://github.com/secondsky/sap-skills

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

sap-abap

No summary provided by upstream source.

Repository SourceNeeds Review
General

sap-fiori-tools

No summary provided by upstream source.

Repository SourceNeeds Review
General

sap-cap-capire

No summary provided by upstream source.

Repository SourceNeeds Review
General

sap-abap-cds

No summary provided by upstream source.

Repository SourceNeeds Review