Announcement
ABCFeatured Content
Recent Activity
Environment Application Count Dashboard
Our users are wanting to know how many applications are in each environment, then show the applications under each environment by clicking on the environment, plus the ability to enter a comment next to the application. Similar to the Cloud Admin Tool, Applications on top, user would click the environment, the grid would then show the applications. A text field next to the application name where they could input a comment. Any thoughts on how this could be done? Appreciate it in advance!jayaleck49 minutes agoNew Contributor III21Views1like1CommentIssue in Web Content and File Viewer component to directly open a HTML file in a browser
Dear community, I currently have an html document which is located in the file Explorer under "Documents/Public" folder. I am trying to get this HTML document to be presented into the components, embedded in a dashboard. However, with either a Web Content component or a File Viewer component (which will pinpoint to this specific file in Application Database File, as soon as I open the dashboard, it will load the html page into my default browser... I am using OS v8.1 ... is it a known bug or the expected behaviour ? What is even more strange, directing the Full File Name to a URL will correctly open a document in a dashboard ... Regards,Sergey1 hour agoOneStream Employee3.3KViews0likes14CommentsCourse Announcement: Workforce Planning with Line Item Modeling
1 MIN READ Course Description: This course covers a complete, end‑to‑end introduction to Workforce Planning within the Line Item Modeling (LIM) solution. You will explore how to install and configure the solution, define and manage the Register, load and govern workforce data, build and use global/cube/lookup drivers, create formulas, manage filter groups, construct and calculate plans, apply security settings, and process results for reporting and dashboard analysis. Through guided examples and use cases, the course enables you to model, maintain, and analyze workforce plans. Delivery Types: On-Demand (OD) Duration: 8 hours Availability: This course is fee based/for purchase a la carte. This course is available via Passport Access. Course Link: Workforce Planning with LIMagoralewski3 hours agoCommunity Manager19Views0likes0CommentsAutomating LIM Process to Cube Step
DISCLAIMER: It should be noted that the focus of this technical guide is to provide general information, considerations, and guidelines for an identified topic. It is NOT to be interpreted as the ONLY approach nor a guarantee that there will not be any issues encountered by using this approach as a customer’s requirements or application configuration may render this guidance as not applicable.In addition, statements that “we believe” and similar statements reflect our beliefs and opinions on the relevant subject. These statements are based upon information available to us as of the date of this article, and while we believe such information forms a reasonable basis for such statements, such information may be limited or incomplete, and our statements should not be read to indicate that we have conducted an exhaustive inquiry into, or review of, all potentially available relevant information. OneStream does not warrant as to the accuracy of this guidance, which is provided on an as-is basis. Any forward-looking statements contained herein are based on information available at the time those statements are made and/or good faith beliefs and assumptions as of that time with respect to future events and are subject to risks and uncertainties that could cause actual performance or results to differ materially from those expressed in or suggested by the forward-looking statements. Considering these risks and uncertainties, the forward-looking events and circumstances discussed in this guide may not occur and actual results could differ materially from those anticipated or implied in the forward-looking statements. VERSION: PV900 SV200 PLATFORM: 9.2.0 USE CASE: You want to automate or schedule the “Process” to Cube step for your calculated LIM plan data PURPOSE: to provide an example that you can leverage as part of your build. RESOLUTION: Below are the steps needed to automate the “Process” step for a specific LIM instance (e.g., Workforce Planning 1 as an example) First, locate the “Process” button in the workspace for which you are wanting to automate the push of data to the cube. In this example, search your components for “process” and locate the button shown below: Next, go into “Selection Changed Server Task Arguments” to find the DM sequence and parameters leveraged in the out-of-the-box “Process” step: {ExecuteWorkflow_LIM}{PlanID=|!SelectedPlanID_LIM!|, SelectedWorkflows=[|!SelectedWorkflowName_LIM!|], SelectedPeriods=[|!PlanSelectedPeriodsToProcess_LIM!|]} Keep those 3 parameters and DM sequence name in mind as they will be referenced later. In the workspace instance for the one you are trying to automate (e.g. Workforce Planning 1) go into the custom event handler you created (see other OC post for how to set this up: LIM: Example of Setting up my Customizations Outside of LIM’s Workspace(s) for Future Upgrades | OneStream Community), e.g. Workforce Planning 1 > Code Only (LIM) > CustomEventHandler_LIM > WsAssemblyFactory.cs ensure you have the following line of code (e.g. line 40): In the custom workspace you set up for your custom code (e.g. Workforce Planning Custom 1) go into the custom event handler you created (see other OC posts for how to set this up), e.g. Workforce Planning Custom 1 > Custom > CustomCode_LIMB1 > WsAssemblyFactory.cs ensure you have the following line of code (e.g. line 40): Staying in your custom workspace, e.g. Workforce Planning Custom 1 > Custom > CustomCode_LIMB1 right click on Services in the Custom assembly and add a file. In the Source Code Type drop down, choose Extensibility Business Rule and give it a name like LIM_Extender.cs as shown below: Click on that newly created LIM_Extender.cs service and in the section shown below Case ExtenderFunctionType.ExecuteDataMgmtBusinessRuleStep: Add the following code: var sqlBuilder = new StringBuilder(); string workspaceName = args.NameValuePairs.XFGetValue("workspaceName"); string schemaName = string.Empty; string tableName = "XFW_LIM_Plans"; string plnName = args.NameValuePairs.XFGetValue("plnName"); string tgtWorkflow = args.NameValuePairs.XFGetValue("tgtWorkflow"); string tgtPeriods = args.NameValuePairs.XFGetValue("tgtPeriods"); string tgtSequenceName = "ExecuteWorkflow_LIM"; //this is the DM sequence used in all LIM-related workspaces bool isSystemLevel = false; // Compute workspace ID ONCE (outside loops) Guid workspaceId = BRApi.Dashboards.Workspaces.GetWorkspaceIDFromName(si, isSystemLevel, workspaceName); string safePlanName = plnName.Replace("'", "''"); switch (workspaceName) { case "Workforce Planning 1": schemaName = "limb1"; break; case "Workforce Planning 2": schemaName = "limb2"; break; case "Workforce Planning 3": schemaName = "limb3"; break; case "Workforce Planning 4": schemaName = "limb4"; break; case "Workforce Planning 5": schemaName = "limb5"; break; case "Workforce Planning 6": schemaName = "limb6"; break; default: schemaName = "limb1"; break; } // Build SQL (dynamic table name) sqlBuilder.AppendLine($@" DECLARE @sql NVARCHAR(MAX); SET @sql = N' SELECT DISTINCT PlanID FROM ' + QUOTENAME('{schemaName}') + '.' + QUOTENAME('{tableName}') + ' WHERE PlanName = ''{safePlanName}'' '; EXEC(@sql); "); // Execute SQL ONCE and CAPTURE the output (DataTable) DataTable planDt; using (DbConnInfo dbconnApp = BRApi.Database.CreateApplicationDbConnInfo(si)) { planDt = BRApi.Database.ExecuteSql(dbconnApp, sqlBuilder.ToString(), true); } // Extract PlanIDs (trim, remove empty, distinct) var planIds = planDt? .AsEnumerable() .Select(r => Convert.ToString(r["PlanID"])?.Trim()) .Where(pid => !string.IsNullOrEmpty(pid)) .Distinct(StringComparer.OrdinalIgnoreCase) .ToList() ?? new List<string>(); // Parse periods (trim, remove empty, distinct) var periods = tgtPeriods? .Split(new[] { ',', '|', ';' }, StringSplitOptions.RemoveEmptyEntries) .Select(p => p.Trim()) .Where(p => !string.IsNullOrEmpty(p)) .Distinct(StringComparer.OrdinalIgnoreCase) .ToList() ?? new List<string>(); // Optional guardrails (prevents silent "do nothing") if (planIds.Count == 0 || periods.Count == 0) { BRApi.ErrorLog.LogMessage(si, $"ExecuteWorkflow_LIM skipped: PlanIDs={planIds.Count}, Periods={periods.Count}"); return null; // or return obj / status based on your extender signature } // Execute DM sequence for each PlanID + Period foreach (var planId in planIds) { foreach (var period in periods) { var limvars = new Dictionary<string, string>(3) { ["PlanID"] = planId, ["SelectedWorkflows"] = tgtWorkflow, ["SelectedPeriods"] = period }; BRApi.Utilities.ExecuteDataMgmtSequence( si, workspaceId, tgtSequenceName, limvars ); } } break; Staying in your custom workspace, e.g. Workforce Planning Custom 1 > Custom > Data Management Groups > set up a new DM sequence called AutomateExecuteWorkflow_LIM as shown below: Next set up a new DM step called AutomateExecuteWorkflow_LIM and put the step into the newly created sequence below: Staying in your custom workspace, e.g. Workforce Planning Custom 1 > Custom > Parameters > set up 3 new parameters called prm_SelectPeriods prm_SelectWorkFlow prm_SelectWorkspace As shown below: Once you have tested your DM sequence is running as desired, set up a scheduled task as follows:T_Kress4 hours agoOneStream Employee27Views0likes0CommentsHeadcount calc in LIM WF Model
Is there any way to calculate Headcount where I will use start Data and end date of Current period. If the difference is more than 1 then my HC is 1, I cannot use current period end date in Formula, I tried IIF (DateDiff(month, start date, Current Period)>1,1,0) but it is not giving me any resultYogesh00711 hours agoNew Contributor20Views0likes2CommentsList of User Default Home Pages
Hi Folks, Wondering if anyone has built a BR or query to compile a list of Users and their Default Home Page. I know its in the UserAppSettings.xml File within File Explorer under Internal/User, and you can set individuals through the Admin Solution Tools, however I have not found a good way to See what is already set without going to each user individually (that would not be very practical). Appreciate any help! Stephaniesmarshall22 days agoNew Contributor II23Views0likes2CommentsProduct Support and Maintenance Policy
3 MIN READ OneStream is committed to continually developing and enhancing our SaaS offering and software, providing customers with innovative solutions to meet ever-growing requirements. As new versions are introduced, OneStream actively plans to retire older versions. To support this, OneStream has implemented a Product Support and Maintenance Policy which is available at: https://www.onestream.com/saas-terms-and-conditions. As per the Product Support and Maintenance Policy and the terms, General Support ends 30 months after release. In 2025, this policy will be further implemented by giving customers the option to upgrade to the latest version or transitioning customers on unsupported versions to a limited support model. In this model, only upgrades and Contact changes are permitted. When a customer upgrades to a supported version, General Support will continue to be provided as per the Product Support and Maintenance policy. Support During Upgrades Customers with an active Upgrade Case will be provided with support during the upgrade Upgrade Cases will continue to be available after General Support and prepaid support end. Informational Banners To ensure our customers are aware of their upcoming End of General Support date, we have released informational banners in the Support portal. They will appear 6 months before the End of Support date. The banner will contain a countdown of months remaining before End of General Support. ‘0 months remaining’ means thatGeneral Support will end on the 1 st of the next month. After this, a new banner will appear explaining that General Support has now ended, and that an upgrade is required. Customers on older contracts may see an End of Support banner without a specific date or a countdown of months remaining. In this case, the End of General Support enforcement will begin at contract renewal. For customers actively upgrading, the banner may disappear. If the upgrade becomes blocked due to lack of response or significant planned delay, the banner may re-appear. FAQ How can I tell what my End of General Support date is? For most, the End of General Support date is 30 months after the release date of that version. To locate your release date, review our Release Notes. Navigate to documentation.onestream.com -> release notes -> Platform -> End of Support Dates For customers who are on versions that are already out of General Support, upgrade dates are in staggered batches based on release dates and contract terms. These customers will receive a banner with a specific date or a countdown towards that date. Lastly, for some customers on older contract terms, the Product Support and Maintenance Policy will apply from contract renewal. They will receive a 6 month grace period upon renewal. How are release dates calculated? The Product Support and Maintenance Policy establishes End of Support dates from the major and minor versions. Hotfixes do not reset End of Support dates. For example, the End of Support date calculation for all v7.4.x versions is based on the release date of v7.4.0. My End of General Support date is coming up, but I need more time to upgrade. What are my options? You may submit a Software Upgrade for v8+ to begin a 3 month grace period. You may also purchase Prepaid Support for 6 months after your End of General Support date. My version is already older than 30 months. Will I lose access to the Support portal immediately? We have staggered upgrade dates based on your release date. There will be an informational banner in the Support portal to advise on your End of Support date. If you do not see a specific date, General Support will end at your contract renewal. Where can I find the full Product Support and Maintenance Policy? https://www.onestream.com/saas-terms-and-conditions, then look for ‘Product Support and Maintenance Policy.’agoralewski3 days agoCommunity Manager1.8KViews1like2CommentsUpdated Golfstream app?
Hi, is there a way to download an updated GolfStream version? I like to use it to reference different formulas, dashboards, features etc. but things break every time we upgrade our version....Rather than filing a ticket and modifying rules manually behind the scenes, I think it would be helpful to have an updated one issued by OneStream. I reviewed this forum and checked the Solution Exchange to no avail. Sometimes I just need help "getting started" with an idea that I've seen in a demo or solution and using Golfstream is a solid reference.m_b_b_153 days agoNew Contributor III29Views1like0CommentsModifying SQL Editor component in Dynamic Dashboards not working
Hi there, I'm working on a client using the version 8.5.2 and I'm trying to use the Dynamic Dashboards functionallity to modify a property from a SQL Editor Component. The purpose of this logic is to set a dashboard in "ReadOnly" mode when the parameter is set, and in this case, the read only mode I want to achieve is by setting "ShowDataManipulationButtons = False". The BR logic used is the following: If Component.DashboardComponentType = DashboardComponentType.SqlTableEditor Then Dim sqlDefinition = XFSqlTableEditorDefinition.ReadXmlString(si,Component.XmlData) sqlDefinition.ShowDataManipulationButtons = False Component.XmlData = sqlDefinition.WriteXmlString(si) End If I have checked that after this point the component XmlData has changed, however, despite returning the modified component, the changes as not being displayed in the dashboard. If instead of modifying an SqlEditor component, I change any property on a Button component, the changes are being displayed correctly. Is this a known issue for the version 8.5.2 or is there any specific thing I might be missing for the SqlEditor component? PD: I know I can achieve creating a copy of the component, but it doesn't makes sense to do something twice (or ten times) when there is a way to solve it dynamically once for all. Thank you in advance!ogonzalez3 days agoNew Contributor II40Views0likes2Comments
Getting Started
Learn more about the OneStream Community with the links below.