The OneStream Community is temporarily frozen until June 29th due to the ongoing maintenance. Please read the blog post here to learn more.
Forum Discussion
Sergey
OneStream Employee
4 years agoBusiness Rule debug
Hello,
I'm new to Business Rule, and I'm struggling with the execution of a data management step with type "custom calculate".
Currently, the execution of this script is giving me the message...
- 4 years ago
To expand on what Marc said, my understanding is that you can't have any of these dimensions on the left hand side of an equals sign in a custom calculate business rule:
Cube, Entity, Parent, Scenario, Consolidation, and Time
These dimensions comprise the data unit. When you run a business rule from data management, it re-runs the rule multiple times each of the data units you have specified in the data management job. So when you're inside the rule, you can't choose to send data across to another data unit; you work within the current data unit that is executing for that pass.
You can use conditions in the rule e.g. if you put multiple entities in the data management filter then you can say "if api.pov.entity.name = "HeadOffice" then" in the business rule to focus a piece of logic on one entity.
The odd one out is Scenario for which you can only specify one item in data management. If you wanted to have a process which modified data for Forecast and also for Budget, then you need to have two data management rules, one which specifies Forecast and one for Budget, they could potentially run the same rule / function and do the same thing, but if in the Forecast data management job you said "A#RetainedEarnings = A#xxxx" then it would modify data in the Forecast scenario.
Note that it is possible to cross over to other data units on the _other_ side of the equals sign, e.g.:
V#YTD = V#YTD:S#Actual
Cheers
MarcR
4 years agoContributor II
Hi Segey,
the error message is saying it cannot write data to the dimensions specified from the current data unit. It’s important to know that OneStream ‘pulls’ data. So if you have selected e.g s#actual in you do job you cannot write to budget. The same applies to time and cons. So if you want to write to budget 2022m1 those must be in your dm job. You can pull data from other data buffers.
hope that helps
- MarkMatson4 years agoNew Contributor III
To expand on what Marc said, my understanding is that you can't have any of these dimensions on the left hand side of an equals sign in a custom calculate business rule:
Cube, Entity, Parent, Scenario, Consolidation, and Time
These dimensions comprise the data unit. When you run a business rule from data management, it re-runs the rule multiple times each of the data units you have specified in the data management job. So when you're inside the rule, you can't choose to send data across to another data unit; you work within the current data unit that is executing for that pass.
You can use conditions in the rule e.g. if you put multiple entities in the data management filter then you can say "if api.pov.entity.name = "HeadOffice" then" in the business rule to focus a piece of logic on one entity.
The odd one out is Scenario for which you can only specify one item in data management. If you wanted to have a process which modified data for Forecast and also for Budget, then you need to have two data management rules, one which specifies Forecast and one for Budget, they could potentially run the same rule / function and do the same thing, but if in the Forecast data management job you said "A#RetainedEarnings = A#xxxx" then it would modify data in the Forecast scenario.
Note that it is possible to cross over to other data units on the _other_ side of the equals sign, e.g.:
V#YTD = V#YTD:S#Actual
Cheers
Related Content
- 3 years ago
- 2 years ago
- 2 years ago
- 3 years ago