# SAP Analytics Cloud - Data Actions and Multi Actions Reference **Source**: [https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/00f68c2e08b941f081002fd3691d86a7/69a370e6cfd84315973101389baacde0.html](https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/00f68c2e08b941f081002fd3691d86a7/69a370e6cfd84315973101389baacde0.html) **Last Updated**: 2025-11-22 --- ## Table of Contents 1. [Data Actions Overview](#data-actions-overview) 2. [Data Action Step Types](#data-action-step-types) 3. [Multi Actions Overview](#multi-actions-overview) 4. [Multi Action Step Types](#multi-action-step-types) 5. [Parameters Configuration](#parameters-configuration) 6. [Execution Methods](#execution-methods) 7. [Performance Best Practices](#performance-best-practices) 8. [Troubleshooting](#troubleshooting) --- ## Data Actions Overview Data actions perform calculations and data manipulation on planning models. All steps within a data action run on a single transaction - if any step fails, all changes roll back. ### Key Characteristics - **Single Model**: Data actions operate on one target model - **Single Version**: All steps target one version - **Transaction**: All-or-nothing execution - **Rollback**: Automatic rollback on failure ### Creating a Data Action (020-create-data-action.md) 1. Files → Create New → Data Action; choose target planning model. 2. Add steps (copy/cross-copy/allocation/embedded/conversion/advanced formulas) in needed order. 3. Set parameters (member/number/measure); enable sorting if many prompts. 4. Choose write mode per step (append vs overwrite); validate mappings to leaf members. 5. Save, test on small slice, then schedule/run via starter or calendar. --- ## Data Action Step Types ### 1. Copy Step Copies data from source to target with dimension mapping. **Configuration**: ``` Source Scope: Version: Actual Year: 2024 Account: All Target Scope: Version: Budget Year: 2025 Account: All Dimension Mapping: Account → Account (same member) CostCenter → CostCenter (same member) Year: 2024 → 2025 (fixed mapping) ``` **Use Cases**: - Copy actuals to forecast - Seed budget from prior year - Copy between models ### 2. Advanced Formula Step Write custom formulas using SAP Analytics Cloud formula syntax. **Formula Syntax**: ``` // Basic assignment [Account].[Revenue] = 1000000 // Reference other members [Account].[Gross_Profit] = [Account].[Revenue] - [Account].[COGS] // Conditional logic IF [Account].[Revenue] > 0 THEN [Account].[Margin] = [Account].[Gross_Profit] / [Account].[Revenue] ELSE [Account].[Margin] = 0 ENDIF // Cross-version reference [Version].[Forecast] = [Version].[Actual] * 1.05 // Time-based calculations [Date].[2025.Q1] = [Date].[2024.Q1] * (1 + [Account].[Growth_Rate]) // RESULTLOOKUP for unmatched dimensions [Account].[Allocation] = RESULTLOOKUP([Account].[Driver], [CostCenter].[TOTAL]) ``` **Operators Available**: - Arithmetic: `+`, `-`, `*`, `/` - Comparison: `=`, `<>`, `<`, `>`, `<=`, `>=` - Logical: `AND`, `OR`, `NOT` - Functions: `IF/THEN/ELSE/ENDIF`, `RESULTLOOKUP`, `MEMBERSET` ### 3. Allocation Step Distribute values based on driver data. **Configuration**: ``` Source: Account: Overhead_Costs CostCenter: CORPORATE Target: Account: Allocated_Overhead CostCenter: All leaf members Driver: Account: Headcount CostCenter: All leaf members Method: Proportional ``` **Allocation Methods**: - **Proportional**: Based on driver ratios - **Equal**: Divide equally - **Fixed Percentage**: User-defined % ### 4. Currency Conversion Step Convert values between currencies. **Configuration**: ``` Source Currency: Local Target Currency: Reporting (USD) Rate Type: Average Rate Date: Current Period ``` ### 5. Embedded Data Action Step Call another data action from within this action. **Use Cases**: - Reuse common calculation logic - Break complex processes into modules - Maintain single source of truth **Important**: Parameters from embedded action must be mapped or set. --- ## Multi Actions Overview Multi actions orchestrate multiple planning operations across models and versions. Unlike data actions, multi actions can span multiple models and don't run in a single transaction. ### Key Characteristics - **Multiple Models**: Can operate across models - **Multiple Versions**: Can target different versions - **Independent Steps**: Each step is separate transaction - **Partial Success**: Earlier steps persist if later steps fail ### Creating a Multi Action 1. Navigate to **Files** → **Create New** → **Multi Action** 2. Add steps in desired sequence 3. Configure parameters 4. Link parameters to steps 5. Save and test --- ## Multi Action Step Types ### 1. Data Action Step Executes a data action with specified parameters. **Configuration**: - Select data action - Map parameters from multi action to data action parameters - Or set fixed values ### 2. Version Management Step Publishes a planning version. **Configuration**: - Select model - Select version to publish - Use parameter or fixed value **Actions**: - Publish (merge private to public) - Publish As (create new public version) ### 3. Predictive Step Runs predictive forecasting scenario. **Configuration**: - Select predictive scenario - Set forecast periods - Configure target version **Predictive Types**: - Auto (automatic algorithm selection) - Triple Exponential Smoothing - Linear Regression ### 4. Data Import Step Import data from SAP sources. **Supported Sources**: - SAP S/4HANA - SAP BW - SAP Datasphere - Other configured connections ### 5. API Step Call external HTTP APIs. **Configuration**: ``` URL: [https://api.example.com/endpoint](https://api.example.com/endpoint) Method: POST Headers: Content-Type: application/json Authorization: Bearer {{token}} Body: { "planningCycle": "{{PlanningCycle}}", "region": "{{Region}}" } ``` **Use Cases**: - Trigger external workflows - Send notifications - Integrate with third-party systems ### 6. Data Locking Step Lock or unlock data slices. **Configuration**: - Select model - Define data slice (dimensions/members) - Set target lock state (Locked, Restricted, Open) ### 7. PaPM Step (2025+) Run Profitability and Performance Management calculations. **Configuration**: - Select PaPM function - Set input parameters - Configure output mapping --- ## Parameters Configuration ### Parameter Types | Type | Description | Available In | |------|-------------|--------------| | Member | Select dimension member | Data Actions, Multi Actions | | Number | Enter numeric value | Data Actions, Multi Actions | | String | Enter text value | Multi Actions (2025+) | | Datetime | Select date/time | Multi Actions (2025+) | ### Creating Parameters **In Data Action**: 1. Open data action 2. Click **Parameters** in toolbar 3. Add parameter with name and type 4. Reference in steps: `{{ParameterName}}` **In Multi Action**: 1. Open multi action 2. Click **(Available Parameters)** 3. Select **Create Parameter** 4. Configure and use in steps ### Cross-Model Parameters When using **public dimensions** shared across models: 1. Create parameter based on public dimension 2. Check **Cross-Model Parameter** option 3. Parameter value applies to all steps using that dimension ### Parameter Assignment **Member Selection**: User picks from dimension **Default Value**: Pre-set value **Story Filter**: Uses current story filter **Input Control**: Links to story input control --- ## Execution Methods ### From Story/Application **Button Trigger**: ```javascript // In button onClick event DataAction_Budget.setParameterValue("Year", "2025"); DataAction_Budget.execute(); ``` **On Data Change**: ```javascript // In onResultChanged event (use carefully) if (shouldRecalculate) { DataAction_Calc.execute(); } ``` ### From Calendar 1. Create **Data Action Task** or **Multi Action Task** 2. Attach to planning process 3. Schedule execution date/time 4. Assign responsible user ### Scheduled (Background) 1. Open Calendar 2. Create **Scheduled Task** 3. Select data action or multi action 4. Set recurring schedule (daily, weekly, etc.) ### API Execution ```javascript // Execute synchronously DataAction_1.execute(); // Execute in background (non-blocking) DataAction_1.executeInBackground(); // With status callback (in onExecutionStatusUpdate event) // Handle: Running, Success, Failed, Cancelled ``` --- ## Performance Best Practices ### 1. Scope Reduction ``` // BAD: Process all data Source: All Years, All CostCenters, All Accounts // GOOD: Use parameters to limit scope Source: Year = {{SelectedYear}}, CostCenter = {{SelectedCC}} ``` ### 2. Input Control Linking Link data action parameters to story input controls: - Reduces processed data volume - Improves execution time - Better user experience ### 3. Embedding for Same Model When multiple data actions target same model/version: 1. Create container data action 2. Embed related actions as steps 3. Runs as single transaction (faster) ### 4. Multi Action Optimization ``` // Instead of: Multi Action with 5 separate data action steps on same model // Use: Embedded data action containing 5 steps + Multi Action with 1 data action step ``` ### 5. Avoid Unnecessary Steps - Remove debugging steps before production - Consolidate similar calculations - Use RESULTLOOKUP instead of multiple copy steps ### 6. Tracing for Debugging Enable **Tracing Table** during development: 1. Run data action 2. Check "Show Only Leaves" option 3. Review cell-by-cell results 4. Disable before production deployment --- ## Troubleshooting ### Common Errors **"No data to process"** - Source scope returns no data - Check dimension filters - Verify source version has data **"Target version is locked"** - Data locking preventing writes - Check lock state and owners - Use appropriate version **"Parameter value required"** - Missing parameter value - Set default or make optional - Check parameter mapping **"Formula syntax error"** - Check operator syntax - Verify member IDs - Use dimension/member browser **"Timeout exceeded"** - Scope too large - Add filters to reduce data - Consider background execution ### Debugging Steps 1. **Check Source Data** - Verify data exists in source scope - Test with smaller scope first 2. **Review Tracing** - Enable tracing table - Check intermediate results - Identify failing step 3. **Test Parameters** - Run with hardcoded values first - Then add parameters one by one 4. **Check Permissions** - User must have write access to target - Version must be writable 5. **Review Logs** - Check browser console for errors - Review data action execution log --- ## Example: Complete Planning Workflow ### Scenario Annual budget planning: Copy actuals, apply growth rate, allocate overhead ### Data Action: Budget_Calculation **Step 1: Copy Actuals to Budget** ``` Type: Copy Source: Version=Actual, Year=2024 Target: Version=Budget, Year=2025 Mapping: All dimensions same ``` **Step 2: Apply Growth Rate** ``` Type: Advanced Formula Formula: [Account].[Revenue] = [Account].[Revenue] * (1 + {{GrowthRate}}) [Account].[COGS] = [Account].[COGS] * (1 + {{GrowthRate}} * 0.8) ``` **Step 3: Calculate Gross Profit** ``` Type: Advanced Formula Formula: [Account].[Gross_Profit] = [Account].[Revenue] - [Account].[COGS] ``` ### Multi Action: Annual_Planning_Workflow **Step 1: Data Action** - Action: Budget_Calculation - Parameters: GrowthRate = {{GrowthRate}} **Step 2: Predictive** - Scenario: Sales_Forecast - Periods: 12 - Target: Version=Forecast **Step 3: Version Management** - Action: Publish - Version: Budget - Model: Finance_Model **Step 4: Data Locking** - State: Locked - Slice: Version=Budget, Year=2025 --- **Documentation Links**: - Data Actions: [https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/00f68c2e08b941f081002fd3691d86a7/69a370e6cfd84315973101389baacde0.html](https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/00f68c2e08b941f081002fd3691d86a7/69a370e6cfd84315973101389baacde0.html) - Multi Actions: [https://learning.sap.com/learning-journeys/leveraging-sap-analytics-cloud-functionality-for-enterprise-planning/configuring-multi-actions](https://learning.sap.com/learning-journeys/leveraging-sap-analytics-cloud-functionality-for-enterprise-planning/configuring-multi-actions) - Parameters: [https://help.sap.com/doc/00f68c2e08b941f081002fd3691d86a7/2023.20/en-US/4835429d35534add875bae17e93b12e1.html](https://help.sap.com/doc/00f68c2e08b941f081002fd3691d86a7/2023.20/en-US/4835429d35534add875bae17e93b12e1.html)