Using OneStream to Track Inflation and Related Metrics
Hi everyone, I’m interested in learning how other organizations are leveraging OneStream to track inflation and other account-related metrics. Currently, our approach involves using the Account dimension to explicitly separate inflation impacts for specific expense categories. For example: FOOD_BEV – Food & Beverage Expense INFL_FOOD_BEV – Inflation related to Food & Beverage Expense These inflation rates are externally calculated and loaded via XFD uploads. To support different reporting views, we load the data into three separate accounts: _PER – Monthly _QTR – Quarterly _ANN – Annual We also use a view dynamic account without a suffix, which adjusts based on the selected view. Exploring Alternative Approaches I’m considering whether using a User Defined (UD) dimension might offer more flexibility. For instance: Keep the account as FOOD_BEV Use the UD to switch between metrics like: "Dollars" (actuals/estimate) "Inflation" (loaded via XFD) "Per Guest" (dynamically calculated) "Pricing" (potentially another loaded or calculated metric) This method could streamline the structure and allow for more dynamic reporting, especially if inflation rates are only loaded monthly and calculated for QTD/YTD using weighted averages. Open to Ideas I’d love to hear how others are handling similar use cases. Are you using UD dimensions for this type of analysis? Are there better ways to structure inflation tracking in OneStream? Thanks in advance for sharing your insights! — Jeremy Morgan20Views0likes0CommentsBest practices for handling overlays with varying dimensionality in OneStream
We are designing a planning solution where overlays will be used across accounts with very different levels of dimensionality. For example: Some accounts have minimal dimensionality (straightforward base members for input). Others require navigating through multiple UDs before reaching the base intersection. Ideally, I’d like users to be able to choose their drill-down path until they reach the correct base intersection for data entry. Has anyone implemented a design pattern or approach that balances these differences effectively?36Views0likes1CommentBI Viewer / Calculated Fields
Hi all, is there some documentation about BIViever's Calculated Fields ? I cannot find info/examples about: aggr filter joinRule I need to compare values against the value of a specific row, but I'm not able to find a solution. Do someone faced the same challenge ? Do someone have more info about the above mentioned functions ? TIA regards FabioG46Views0likes1CommentGet Strings from other MU/WS
Hi, through XFString I am able to get a string defined in the same Maintenance Unit (or in another MU of the same WS). Looks like is not possibile to grab the String from another WorkSpace, even if it's marked as "Shared". Am I right or am I missing a clue ? Thanks FabioGSolved28Views0likes2CommentsData Management Export configuration
Hi all, I'm working on a Data Management to "Export Data", launching it from a Dashboard. Everything works fine, since filters (Cube, Entity, Account, Flow, etc) can be parametrized through Parameters. Is there a way to parametrized also the Options such as "Include Zeros", "Include Member Descriptions", etc ? I see that at UI level I can only choose between True and False, but I'd like to manage them from my dashboard. Thanks in Advance FabioG36Views0likes0CommentsFilter Members by Security
So we have the GetBaseMembers method (or the GetChildren, or the GetDescendant or event the GetMember) that would return instances of the Member class. What is not clear (at least to me) is how I could filter returned members based on security. I could set Nobody in all the member Security's fields of a specific member, but it keeps on being returned by (for instance) the GetBaseMembers. I'm wondering how I could get only visible members, applying a filter that won't return them from the call. Also, it would be nice to know, given a member, if it can be seen, read or written. Two ways to get the same result, for different scopes. Thanks FabioG54Views1like3CommentsExtensibility report usage
HI, OS has report to verify extensibility. I wanted to know based on exp that what happen when report has an error from technical perspective. We have some ragged hierarchy to full fill our req, but report shows an error so trying to understand if consolidation won't work if that is the case. By they are in UD.24Views0likes3CommentsCalculate values in different scenarios
Hi all, I tried to issue an api.Data:calculate with the following (fake) formula : A#ACCXXX:F:MYFLOW:S#MYSCEN = A#ACC001:F#CHI:S#ACT Of course OS complains because I'm reading from the current Scenario (ACT) but I want to write in a different Scenario that implies a different Data Unit (is it ?) While being in ACT scenario, if I would switch to DataBuffers to write in the destination Scenario (is it?) Could someone point me in the right direction ? I did this, but looks like it doesn't write a **bleep** ! Dim _srcDC As DataCell = api.Data.GetDataCell("A#ACC001:F#CHI:S#ACT") Dim _targetDB As New DataBuffer() Dim _dcNew As DataCell = New DataCell(_srcDC) _dcNew.SetScenario(api, "MYSCEN") ' This WON'T CHANGE <=================== _dcNew.SetAccount(api, "ACCXXX") ' This Change _dcNew.SetFlow(api, "MYFLOW") ' This Change _targetDB.SetCell(si, _dcNew) api.Data.SetDataBuffer(_targetDB, _destinationInfo) In the end, works fine... just doesn't change the Scenario... :-/ What am I doing wrong ? Thanks in advance for your help FabioG39Views0likes1CommentCompilation Chain issues
Hi all, I wrote a bunch of BRules and a couple of Assemblies (in different workspaces) that work together to perform calculations. So in the end I have a dependency chain like this: BR => Assembly => Assembly Things works like a charm. Sometimes, after I made changes to an Assembly, I get a weird error saying that OneStream cannot find my assembly. While this is true when it cannot compile correctly (due to errors), it doesn't make sense to me when it compiles fine. Even if I compile my assemblies before I run the BRules, sometimes it happens. I'm trying to find out an explanation and I thought that: I run the BRule and OneStream think that Assembly1 - a dependence - is "old", so.... OneStream start compiling Assembly1, and, while compiling it, OneStream think that Assembly2 - a dependence - is "old", so.... OneStream start compiling Assembly2 Maybe these compilations are running async and in parallel... And, maybe, the last compilation takes too much time, taking the first one returning the error. This is just an idea that could explain this issue, but I'm quite sure this is the right way: when I started working on OneStream, my code wasn't affected, IMHO because the assemblies were small enough to be compiled in a reasonable time. But now they are growing up, and the compilation time is growing too. In any case, I'm wondering it there's a way to solve this annoying issue: I often have to (re)launch the same BRule and, on a customer's perspective, seeing a compilation error (even if fake) doesn't make a good impression. Thanks FabioG54Views0likes2Comments