Files
2025-11-30 08:55:30 +08:00

521 lines
12 KiB
Markdown

# 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)