Well. I’ll be a…something or other

OneStream never ceases to amaze me. Or perhaps my ignorance never ceases to amaze me (and so, so, so many others). I had zero, zip, zilch idea that the subject of this post was possible. Genius, or at least something close to that.

Just what is the month, anyway?

The use case is simple: consolidate/aggregate the current month. That’s it. But just what is the current month when run from a Data Management Step?

This is awfully dumb

Just hard code it. Oh sure, it’ll work, but it’s…I don’t know, ugly.

Graphical user interface, text, application, email

Description automatically generated

It works just fine, however. But are there other ways?

A literal parameter is probably the most common approach, but is it as cool as the next?

Create a literal parameter and value it:

Graphical user interface, text, application, Word

Description automatically generated

That’s a direct edit; creating an administrator dashboard is a likely real world approach.

Put into the Data Management Step and off to the races:

Graphical user interface, text, application, email

Description automatically generated

This is really cool

I had no idea OneStream could do this. None. I saw this in an app and thought, “Heh, I’m totally stealing that idea.” And I am.

Value the Text1 property in your Scenario of choice

Graphical user interface, text, application

Description automatically generated

Use XFMemberProperty

This will pick up 2023M2 from Plan’s Text1 property:

T#XFMemberProperty(DimType=Scenario, Member=Plan, Property=Text1)

Odds bodkins, this is it:

Graphical user interface, text, application, email

Description automatically generated

So cool.

But wait there’s more

Beyond DimType, Member, and Property as used above, the function can also VaryByCubeType, VaryByScenario, VaryByTime, and even TimeDimProfile. Have a read of the Design and Reference Guide to better understand the possibilities.

So wait Cameron, why really should your so-called loyal audience care?

Think of a system that reads Text1 through 9 to identify where calculations should run, what constitutes where the planning-with-a-small-p should take place, etc. Sure, these could be stored in multiple parameters, but isn’t having it in one place a lot simpler? And if the Scenario was cloned, the properties would come along for the ride? And varying Time and Scenario functionality is supported? It’s at least worth considering.

As noted in the title of this post, there are many ways to solve a problem in OneStream. Is this really better than a parameter or even hardcoding? As we consultants like to say, “It depends”. The power and the promise of a true platform is this flexibility. The curse is you figuring out which one is optimal. Truly, it depends.

Be seeing you.