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
chris_rothermel
OneStream Employee
3 years agoUsing standard substitution variables in Business Rules; Example: |CVYear|
How can we reference substitution variables like |CVYear| in a Business Rule? These variables are great for Cube Views, but now I'd like to access it directly in a Business Rule (custom calculat...
- 3 years ago
Hey Chris,
How I would use something like |CVYear| or |WFYear| that is in the data unit in a custom calculate would be to use it in the Data unit section in the Data Managment job. Then in the rule all you need to do is use a api.pov.time.name call for example and you now know what year you are processing. If you want to use a variable that isn't in the data unit then you can pass it through in via parameters section in the Data Mangement job and say somthing like CVUD1=|CVUD1| then in the rule is it just the standard args.CustomCalculateArgs.NameValuePairs("CVUD1") to pull that through into the rule.
I will add I would be careful using say CVUD1 becuase if the CV doesn't have a UD1 defined it in then you run the risk that it will pull it from the Cube POV on the right and that could vary from user to user.Thanks,
Sam
- 3 years ago
Hi Sam,
I do not want |CVYear| to be in the Data Unit portion of the Data Management Job. I will want to compare the Data Unit Time to the variable |CVYear| and calculate depending on the comparison.
I like your idea of passing |CVYear| as a parameter, but it would be nice to access this standard variable directly in the business rule. That give me something good to try -- I've not passed parameters in before. Thank you!
Anyone have any thoughts on accessing the value of |CVYear| directly in a business rule?
Thanks,
Chris
chris_rothermel
OneStream Employee
3 years agoHi Sam,
Thanks for your help. I added this parameter to the Custom Calculate Business Rule.
CVYear = |CVYear|
Then coded the BR to display it: api.LogMessage("|CVYear| " & args.CustomCalculateArgs.NameValuePairs("CVYear") )
And I got the correct result:
Description: |CVYear| 2023
Error Time: 11/3/2022 6:14:30 PM
Error Level: Information
Tier: AppServer
I can move along today with the custom calculate. But I won't be able to do this with a regular calculate function because that doesn't have parameters sent in. 😞 I'll create a new thread on that.
Thanks,
Chris
WernerN
1 year agoContributor II
This solution came just in time for a problem that baffled me in dataset rules. So obvious now after reading your post. Much appreciated.
Related Content
- 1 year ago