Recent Content
Learn About the Updated OneStream Foundation Handbook on the Latest Episode of The OneStream Podcast
On this edition of the OneStream Podcast, Chul Smith joins Peter Fugere to discuss the newly released Second Edition of the OneStream Foundation Handbook. They'll discuss how this edition reflects platform updates, along with the ongoing development of the OneStream landscape. Listen now!OneStream 9.0 Stage Schema Changes
Introduction As part of our ongoing commitment to improving functionality and performance, the 9.0 OneStream release includes significant changes to the database schema related to Stage operations and Cube data storage. These changes are designed to enhance data management, streamline processes, and provide increased flexibility for future developments. Overview of Changes The following tables have been replaced by views: StageSourceData StageSummaryTargetData StageTargetData The following tables have been added, to increase normalization of Stage-related data structures: StageDataName StageSourceDataSlim StageSummaryTargetDataSlim StageTargetDataSlim The following views have been added: vStageSourceAndAttributeData vStageSourceAndAttributeDataSlim vStageSourceAndTargetDataR vStageSourceAndTargetDataSlim vStageSourceAndTargetDataWithAttributesR vStageSourceAndTargetDataWithAttributesSlim vStageSourceData vStageTargetData vStageTargetDataR The StageRules table now has an additional RuleIdentityId column, which can be leveraged in joins with the new “Slim” tables. StageRulesHistory and AuditStageRules also contain the new column. Indexing and partitioning strategies on BinaryData*, CalcStatus, DataUnitCacheTimestamp , DataRecord*, Stage*, and Taskflow* tables have been streamlined and optimized. See the Appendix for details of modified indexes. Impact on Existing Applications The following advice applies only to custom queries that developers, partners, or administrators might implement in their applications. Internal operations (e.g. standard Import/Validate/Load workflows) are unaffected. The changes to the database schema in OneStream 9.0 might require small modifications to existing applications. Although we tried to maintain compatibility as much as possible, it is suggested to review and update SQL queries and application logic that interact with tables StageSourceData, StageSummaryTargetData, and StageTargetData. In most cases no change should be necessary, as SQL statements will typically retrieve data from a named object regardless of whether it is a table or a view, and the old table names are now aliases for views. However, if the query or api is explicitly looking for one of the removed tables (rather than a table or view), it will be necessary to change it so that the query can accept a view as well as a table. Note that performance of such queries might differ from previous releases. Impact on New Development The following advice applies only to custom queries that developers, partners, or administrators might implement in their applications. Internal operations (e.g. standard Import/Validate/Load workflows) are unaffected. Member names are now stored only once, in the StageDataName table, and referred to from “Slim” tables and views via IDs. In future development, in a few cases it might be more performant to move from operating on the old Stage tables to working with the new “Slim” counterparts, joining on StageDataName only where necessary. Note that these members are not necessarily related to Metadata members; they represent any type of item name involved in stage loads (source members, etc.) These JOINs should be done sparingly; in most cases, leveraging views will likely be preferable, since they already do that work for you (returning actual member names as strings) and allow for better caching. Unless there is a clear and significant performance difference, queries should be performed on views. In these new “Slim” tables, the string and uniqueidentifier columns have been replaced with integer types that reference the “NameId” column in the StageDataName table. When querying “Slim” tables, the integer values in columns are used to join with the “NameId” table of the StageDataName table to retrieve the actual names. As an example, if we wanted to obtain the text value of the “CnId” column in the StageSourceDataSlim table, we would now need to perform a SQL join to the StageDataName on the NameId column. SELECT TOP (100) Slim.Wfk, Slim.Wsk, Slim.Wtk, Slim.CnId, Sdn.[Name] FROM [dbo].[StageSourceDataSlim] AS Slim LEFT OUTER JOIN [dbo].[StageDataName] AS Sdn ON Sdn.NameId = Slim.CnId IMPORTANT! The collation of the “Name” column in the StageDataName table has been set to “Latin1_General_100_BIN2”. The “Latin1_General_100_BIN2” collation allows us to compare string values properly between Unicode and non-unicode values. If you need to perform a join to the StageDataName table on the “Name” column, you will need to force the source column in the join to use this collation. An example of this is below where a string column using the default database collation is joined with the [Name] column of the StageDataName table. The “COLLATE” clause is added to the join to force a binary comparison of the two column values. SELECT Src.Et, Sdn.NameId FROM [dbo].[StageSourceDataSlim] AS Src LEFT OUTER JOIN [dbo].[StageDataName] AS Sdn ON Sdn.Name = Src.Et COLLATE Latin1_General_100_BIN2 Failure to add this collate clause when joining on the [Name] column of the StageDataName table will result in an error like the one below. Msg 468, Level 16, State 9, Line 4 Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_100_BIN2" in the equal to operation. There is no requirement to use COLLATE when operating on the prebuilt views. Conclusion The database schema changes in OneStream 9.0 represent a significant step forward in our data management capabilities. By optimizing table structures and improving indexing, we are laying the groundwork for more robust and scalable applications. We appreciate your cooperation during this transition and are confident that these improvements will provide substantial benefits to our operations. Appendix Modified Indexes The following changes to indexes have been implemented: Table Name Index Name Comment Member IX_Member1 New nonclustered index on Name, DimTypeId, DimId StageArchivesInformation IX_StageArchivesInformation0 Index is now a unique clustered index. The “UniqueID” column has been added to this index. StageAttributeData IX_StageAttributeData0 This index has been removed. StateBiBlendInformation IX_StageBiBlendInformation0 New unique nonclustered index added using the column “BlendTableName” in ascending order. StageRuleGroupsHistory IX_StageRuleGroupsHistory0 Index has been removed. StageRuleProfileMembersHistory IX_StargeRuleProfileMembersHistory0 Index has been removed. StageRuleProfilesHistory IX_ StageRuleProfilesHistory0 Index has been removed. StageRules IX_StageRules1 New index on the “RuleIdentityId” column in ascending order was created. StageRulesHistory IX_StageRulesHistory0 Column “RuleIdentityId” added to index. Index changed to a unique nonclustered index. StageToFinanceDataUnit IX_StageToFinanceDataUnit0 Index is now nonclustered. “WorkflowProfileKey” column has been removed. “FillFactor” has been removed. StageToFinanceDataUnit IX_StageToFinanceDataUnit1 The “WorkflowProfileKey”, “WorkflowScenarioKey” and “WorkflowTimeKey” have been replaced with the “ScenarioId”, “TimeId”, “CubeId” and “EntityId” columns. StageToFinanceDataUnit IX_StageToFinanceDataUnit2 Index has been removed. StageToFinanceLoadResult IX_StageToFinanceLoadResult0 Index is now a unique clustered index. The “SummaryRowID” column has been added and the “FillFactor” has been removed. StageToFinanceLoadResult IX_StageToFinanceLoadResult1 The “WorkflowProfileKey” column has been removed. StageToFinanceValidationError IX_StageToFinanceValidationError0 Now a unique clustered index with “FillFactor” removed. StageToFinanceValidationError IX_StageToFinanceValidationError1 Index has been removed. TaskflowStepInstances IX_TaskflowStepInstances0 “FillFactor” increased from 80 to 95. TaskflowStepLog IX_TaskflowStepLog0 Now a unique clustered index. “UniqueID” column has been added. “FillFactor” increased from 80 to 95.36Views3likes0CommentsA focus on Developer Education is coming to OneStream, and your feedback is needed!
OneStream is creating a Developer Education (DevEd) program tailored specifically at creating a dynamic learning experience for you, our amazing developer community. We know that building applications with OneStream can be a rewarding experience, and we want to make it even easier, faster, and better for you. And that's why we need your feedback! Please comment below with your answers. What Topics Would You Like to See Covered? Is there a particular area of development you're passionate about? Let us know so we can include it in our program! Some examples include Building Solutions with OneStream , From Concept to Code – Show Me the Map, and Defining and Gathering Requirements. Comment below with any topic suggestions. What Ideas Do You Have for the Program? We believe the best programs are built with collaboration. Share your innovative ideas and let's build something fantastic together! 💡 We’re considering things like subject-matter expert recognition, advocacy programs, credentials and badges. What ideas do you have for this program? Let us know with your comments below. How Do You Prefer to Learn? Do you thrive with hands-on learning, video tutorials, or detailed documentation? Your feedback is crucial in shaping a program that truly meets your needs. 📚 Comment below with your thoughts and suggestions. We’re excited to create an engaging and comprehensive Developer learning experience with your input. 🌟 Stay tuned for more updates!116Views5likes4CommentsNew Passport Exclusive Tech Talks After Hours Now Available
Tech Talks After Hours: Exploring Transaction Matching Use Cases is now available exclusively as part of a Passport subscription. The Transaction Matching solution, part of the OneStream Financial Close solution, provides a configurable rules-driven approach for automated matching of transactional-level data. Stacey Bye joins Tom Linton as they review and explore an Intercompany Receivable/Payable use case with help from Transaction Matching! https://onestream.thoughtindustries.com/learn/video/tech-talks-after-hours-exploring-transaction-matching-use-casesNew Episode of Tech Talks now Available!
Tech Talks: Dynamic Dashboards via Rules in Assemblies is now available for viewing! Explore the ultimate in dynamic dashboards as Jerome Marcq and Sam Eburn join Tom Linton and Matt Kerslake to demonstrate how to convert embedded dynamic repeater dashboards into fully dynamic dashboards for lights out flexibility. Infinitely extensible! You can watch it, and all other episodes of Tech Talks, as part of your Passport subscription.Floor's Lava—Time to Branch Out: Building Your Tree
8 MIN READ Welcome to the blog! In today's post, we're diving deep into the world of hierarchical data visualization—Mission Tree-Ting style. If you’ve ever needed to see your organization’s structure at a glance or wanted a smart, efficient way to visualize complex relationships like employee-manager hierarchies, you're in the right place. Objective: We’ll show you how to build a robust tree structure using VB.NET that transforms raw data into an intuitive, expandable TreeView. By leveraging a custom DataAdapter and binding it to a dashboard component, you'll learn to effortlessly bring your data to life—no messy code left behind! Use Case: Imagine managing an organizational chart where each node represents an employee and their reporting relationships. Whether you're in HR, IT, or any department that thrives on clear, visual insights, this solution provides a reusable method to: Parse and filter your data via dynamic SQL queries. Construct a hierarchical tree with unique nodes and child collections. Seamlessly embed this TreeView into your OneStream dashboard, allowing for interactive exploration of your organizational structure. So, grab your coding toolkit and get ready to transform your data into a dynamic tree that not only meets everyday business needs but also adds a touch of Mission Impossible flair to your projects. Let's get started on turning the impossible into possible—tree style! Although this example demonstrates a use case from People Planning, the same approach can be applied to any dataset with a Parent/Child hierarchy — such as product hierarchies, organizational structures, Capital Planning or cost centers. Note: The method described in this blog is one of many possible ways to visualize and manage hierarchical data in OneStream. Depending on your business requirements, alternate implementations may better suit your needs. Please refer below Blogs related to the Tree View Introduction To Tree Views | OneStream Community How to build a Multi-Select TreeView | OneStream Community Overview What is Tree View? The TreeView is primarily used for intuitive navigation and visualization of hierarchical relationships. It helps users quickly identify structural paths and validate lineage, making it useful for both data review and administrative control. Generating Tree View Our function, GetTreeViewEmpMgr, performs the following steps: Constructs an SQL Query: The query selects employee data along with manager names. A NULL value for the manager indicates that the employee is at the top level (a root node). Executes the Query and Retrieves a DataTable: Using a database connection, the function executes the SQL query and stores the result in a DataTable named "Employee". Builds the Tree Structure: The function uses custom classes—XFTreeItem and XFTreeItemCollection—along with a dictionary called nodesByName to construct the tree: XFTreeItem represents each node in the tree. It holds properties such as the display text (HeaderText), state information (bold, selected, expanded), visual properties (colors and images), and a list of child nodes. XFTreeItemCollection is a container for the tree’s nodes (typically the root nodes) and provides methods for creating a DataSet from the entire tree. The nodesByName dictionary is used to quickly look up and manage nodes by their unique identifier (in this case, by name), ensuring that each node is only created once and can easily have children added later. Returns the Tree as a DataSet: Finally, the tree is converted into a DataSet using treeItems.CreateDataSet(si) and returned for UI rendering. Constructs an SQL Query The data is retrieved from the XFW_PLP_Register (People Planning Register) based on the current Workflow Profile, Time, and Scenario — all passed as parameters to ensure contextual relevance. Select CASE WHEN M.RegisterID = E.RegisterID THEN NULL Else Concat(M.FirstName,' ',M.LastName) End as 'Parent' , Concat(E.FirstName,' ',E.LastName) as 'Child' FROM XFW_PLP_Register E LEFT JOIN XFW_PLP_Register M ON E.Code11 = M.RegisterID Where E.Status <> 'NewHire' And E.WFScenarioName = '" & WFScenarioName & "' And E.WFTimeName = '" & WFTimeName & "' And E.WFProfileName = '" & WFProfileName & "' And (M.WFScenarioName = '" & WFScenarioName & "' And M.WFTimeName = '" & WFTimeName & "' And M.WFProfileName = '" & WFProfileName & "' OR M.RegisterID IS NULL) For each employee, we extract the First Name and Last Name, along with their manager’s corresponding First Name and Last Name. In this configuration, the manager's Employee ID is stored in the Code11 field. By performing a self-join on the XFW_PLP_Register table using this reference, we can resolve and display the appropriate manager name for every employee. Emphasis on Key Components XFTreeItem The XFTreeItem class is the building block of our tree structure. Each XFTreeItem represents a node that can have: HeaderText: The display text for the node. Visual Properties: Such as text color, images (using properties like imageSource and imageName), and formatting (bold, enabled, selected, expanded). Children Collection: A list that holds any child nodes, making the node hierarchical. Additional Data: You can attach other metadata as needed, making XFTreeItem flexible for various applications. ' Common visual properties. Dim textColour As String = XFColors.Black.Name Dim imageSource As String = XFImageFileSourceType.ClientImage Dim imageName As String = XFClientImageTypes.StatusGrayBall.Name Dim isBold As Boolean = False Dim isEnabled As Boolean = True Dim isSelected As Boolean = False Dim isExpanded As Boolean = False In our code, we create new XFTreeItem objects for every child and parent as needed, ensuring that each node correctly reflects its employee or manager data. Initializing the node with default properties ' Create a node for the child. Dim childNode As New XFTreeItem(childName, childName, textColour, isBold, isEnabled, isSelected, isExpanded, imageSource, imageName, childName, Nothing) updating the parent node properties ' Create a new parent node if it doesn't exist. parentNode = New XFTreeItem(parentName, parentName, textColour, isBold, isEnabled, isSelected, True, imageSource, imageName, parentName, Nothing) 'Updating the properties of parent node If parentNode.Children Is Nothing Then parentNode.IsBold = True parentNode.IsExpanded =True parentNode.Children = New List(Of XFTreeItem) End If parentNode.HeaderText = parentName+ " ("+(parentNode.Children.Count+1).ToString+")" 'Adding the child node to the parent's children collection parentNode.Children.Add(childNode) XFTreeItemCollection The XFTreeItemCollection class serves as the container for the entire tree. It typically holds the collection of root nodes and offers helper functions to manipulate or output the tree. In our function, after building the tree, we call: Return treeItems.CreateDataSet(si) This method converts the tree structure into a DataSet, making it easier to bind to UI controls like a TreeView. By using a dedicated collection class, we encapsulate all tree-related functionality, keeping the code modular and maintainable. Item Table holds the detailed data for each node. Relationship Table captures how these nodes relate to each other (i.e., which node is the parent of which). Note: These are random names not any Org data nodesByName Dictionary The nodesByName dictionary is a crucial element in building the tree. Its main purposes are: Ensuring Uniqueness: It prevents duplicate creation of nodes by keeping track of every node by its unique name (or identifier). Facilitating Lookup: When processing a new row, the dictionary is quickly checked to see if a node already exists for the given parent or child. This way, if a parent node is referenced later, it is easily found and updated. Simplifying Tree Building: By centralizing node management, it simplifies the process of attaching children to the correct parent nodes. ' If there is a parent, check if the parent node already exists. Dim parentNode As XFTreeItem = Nothing If nodesByName.ContainsKey(parentName) Then parentNode = nodesByName(parentName) BRApi.ErrorLog.LogMessage(si,"Parent is there: "+parentNode.HeaderText) Else ' Parent does not exist yet; create it as a root node. parentNode = New XFTreeItem(parentName, parentName, textColour, isBold, isEnabled, isSelected, True, imageSource, imageName, parentName,Nothing) treeItems.TreeItems.Add(parentNode) nodesByName(parentName) = parentNode End If This approach avoids the overhead of scanning a list for a matching node each time and guarantees that each node appears only once in the tree. The Complete Code Below is the complete VB.NET code for the GetTreeViewEmpMgr function with detailed comments explaining the use of XFTreeItem, XFTreeItemCollection, and nodesByName. Public Function GetTreeViewEmpMgr(ByVal si As SessionInfo, ByVal args As DashboardDataSetArgs) As DataSet Try Dim sql As New Text.StringBuilder() Dim WFProfileName As String = args.NameValuePairs.XFGetValue("WFProfileName") Dim WFScenarioName As String = args.NameValuePairs.XFGetValue("WFScenarioName") Dim WFTimeName As String = args.NameValuePairs.XFGetValue("WFTimeName") sql.append("Select") sql.Append(" CASE WHEN M.RegisterID = E.RegisterID THEN NULL ") sql.append(" Else Concat(M.FirstName,' ',M.LastName) End as 'Parent'") sql.append(", Concat(E.FirstName,' ',E.LastName) as 'Child'") sql.append(" FROM XFW_PLP_Register E ") sql.append("LEFT JOIN XFW_PLP_Register M ON E.Code11 = M.RegisterID ") sql.append("Where ") sql.Append("E.Status <> 'NewHire' And") sql.append(" E.WFScenarioName = '" & WFScenarioName & "' And E.WFTimeName = '" & WFTimeName & "' And E.WFProfileName = '" & WFProfileName & "' And ") sql.append(" (M.WFScenarioName = '" & WFScenarioName & "' And M.WFTimeName = '" & WFTimeName & "' And M.WFProfileName = '" & WFProfileName & "' OR M.RegisterID IS NULL)") BRApi.ErrorLog.LogMessage(si,sql.ToString) Dim dt As DataTable 'Execute the query Using dbConnApp As DbConnInfo = BRApi.Database.CreateApplicationDbConnInfo(si) dt = BRApi.Database.ExecuteSql(dbConnApp, sql.ToString(), False) dt.TableName = "Employee" End Using ' Create the main tree collection. Dim treeItems As New XFTreeItemCollection ' Dictionary to keep track of nodes by name. Dim nodesByName As New Dictionary(Of String, XFTreeItem)() ' Common visual properties. Dim textColour As String = XFColors.Black.Name Dim imageSource As String = XFImageFileSourceType.ClientImage Dim imageName As String = XFClientImageTypes.StatusGrayBall.Name Dim isBold As Boolean = False Dim isEnabled As Boolean = True Dim isSelected As Boolean = False Dim isExpanded As Boolean = False #Region "Buid Tree" ' Process each row from the DataTable. Dim i As Integer = 0 For Each row As DataRow In dt.Rows Dim parentName As String = "" If Not IsDBNull(row("Parent")) Then parentName = row("Parent").ToString().Trim() End If Dim childName As String = row("Child").ToString().Trim() ' Create a node for the child. Dim childNode As New XFTreeItem(childName, childName, textColour, isBold, isEnabled, isSelected, isExpanded, imageSource, imageName, childName, Nothing) BRApi.ErrorLog.LogMessage(si,"Adding to Child Node: "+childNode.HeaderText) If String.IsNullOrEmpty(parentName) Then ' If there is no parent, then this is a root node. treeItems.TreeItems.Add(childNode) nodesByName(childName) = childNode Else ' If there is a parent, check if the parent node already exists. Dim parentNode As XFTreeItem = Nothing If nodesByName.ContainsKey(parentName) Then parentNode = nodesByName(parentName) Else ' Parent does not exist yet; create it as a root node. parentNode = New XFTreeItem(parentName, parentName, textColour, isBold, isEnabled, isSelected, True, imageSource, imageName, parentName,Nothing) treeItems.TreeItems.Add(parentNode) nodesByName(parentName) = parentNode End If ' Add the child node to the parent's children collection. If parentNode.Children Is Nothing Then parentNode.IsBold = True parentNode.IsExpanded =True parentNode.Children = New List(Of XFTreeItem) End If parentNode.HeaderText = parentName+ " ("+(parentNode.Children.Count+1).ToString+")" parentNode.Children.Add(childNode) ' Also add the child node to the dictionary. If Not nodesByName.ContainsKey(childName) Then nodesByName.Add(childName, childNode) End If End If Next #End Region Return treeItems.CreateDataSet(si) Catch ex As Exception Throw ErrorHandler.LogWrite(si, New XFException(si, ex)) End Try End Function How to Call the Employee-Manager Tree Code via DataAdapter The code in the GetTreeViewEmpMgr function is designed to be invoked from the DataAdapter layer using a parameterized string. This allows you to easily pass in filtering values and trigger the building of the hierarchical tree structure based on the specified employee-manager relationships. {TreeView}{EmpMgr}{WFProfileName= [PLP_US.PeoplePlanning],WFScenarioName=|WFScenario|,WFTimeName=|WFTime|} Attach the DataAdapter to the TreeView and Embed it into the Dashboard: Attach and Bind: Create a TreeView component in your application and bind the DataSet produced by the GetTreeViewEmpMgr function directly to this TreeView. This binding ensures that the hierarchical data is rendered correctly in the TreeView control Embed into the Dashboard: Once the TreeView is populated, embed it into your dashboard. This integration allows end-users to interact with and explore the employee-manager hierarchy in a visually intuitive manner. Together, these steps transform raw data into a dynamic, interactive component that sits proudly on your dashboard—just like a successful mission from Mission Impossible. Your organizational structure is now displayed in a neat, expandable tree format, and your mission is accomplished! For Complete Code and Detailed Setup Instructions, Please Refer to the GitHub Repository: https://github.com/Sudha8990AI/TreeView95Views0likes0CommentsGovernment Community Cloud v9 Upgrade
OneStream is preparing to release version v9 for our Government Community Cloud customers. This document is a guide to the v9 upgrade process. A v9 upgrade is identified as an upgrade from a pre-v9 version to a v9 version. The designated FedRAMP authorized platform release will be v9 which will be made available to GCC customers later this year. Process Overview: The v9 upgrade has infrastructure and software changes that impact applications and integrations. We will migrate from your existing infrastructure to the new v9 architecture. To prepare our customers for this process, we are providing the pre-requisites for upgrade in advance of the release. See Pre-requisites heading below. In the coming months, GCC customers will be asked to submit a Software Upgrade request in ServiceNow. When the upgrade request is submitted, it will open a Support Case to capture the outputs of the items in the Pre-requisites section below. You will be notified when this is available. Once the pre-requisites are submitted, a OneStream project manager will meet with you to plan a timeline of activities. They will be assigned to the Case, available to meet and assist throughout the process. We will provide a mirrored v9 instance for configuration and testing before your go-live. An application copy is made from your pre-v9 instance to your mirrored v9 instance. The configuration and testing period is timeboxed to 2-3 weeks. The scope of work for the test instance is configuration (for example, SIC setup or business rule compilation updates) and functional testing. We will have you compile your business rules in v9 to determine if there are any new errors resulting from the more stringent .NET 8 compiler. Experts from OneStream will be available via the Case to assist. You should also test all functionality that may not be discovered via business rule compilation. During testing, keep a log of any updates you made to the v9 test instance to remediate issues. When testing is completed, we will schedule your go-live. This is a 4–48-hour process (you will be given a more precise estimate following a database size analysis) of downtime where we copy your live databases to the v9 instances. Weekends and evenings are available. As a final step, you will re-apply the updates discovered during testing, referencing the list you generated. After go-live, your pre-v9 instances are no longer accessible; you will be live in v9. Further information: Book time with our GCC v9 upgrade team for a presentation and discussion on the v9 upgrade process by using this link. We kindly request that you submit your Software Upgrade a week before the booking time so that we can prepare by reviewing your specific pre-requisites. Pre-requisites When a v9 Software Upgrade request is submitted, it will open a Case called Cloud Migration Readiness that includes intake forms for the pre-requisite action items described below. We have attempted to put together a comprehensive list of all impacts, but given the customizable nature of OneStream, there may be additional impacts uncovered in testing. We recommend you begin work on these pre-requisite items now. If additional assistance is required before the Cloud Migration Readiness Case can be opened, please open a Case. Please note that these pre-requisites are based on expected approvals for our GCC program. The 3PAO assessment is pending. Important: We recommend customers submit their v8+ Software Upgrade in the Service Catalog to review their specific pre-requisites on the Action items tab of the Cloud Migration Readiness Case prior to reviewing this document. Pre-requisites #1 and #2 will appear as ‘Authentication’ and ‘Data Connections’ Action Items only if they apply to you. Pre-requisites #3, #5, and #6 are referenced in the ‘Customer Specifications’ Action Item. Pre-requisite #4 should be reviewed by all customers. 1. OneStream IdentityServer Customers upgrading to Platform v9 will be migrated to OneStream’s modern IdentityServer OIS authentication technology. Your identity provider continues to be supported, but a change on our side requires that your IT create or edit (depending on identity provider – see Configuration Guides below) the authentication configuration for each OneStream instance. You are impacted by this pre-requisite if you see the ‘Authentication’ item on the Action Items tab of your Cloud Migration Readiness Case. (Opened when customers submit v8+ Software Upgrade.) Pre-requisite steps: Complete any necessary technical reviews by your IT Have your IT configure the new authentication configuration for each of your OneStream instances, referencing the Configuration Guide below per your identity provider and protocol. (See Configuration Process Detail below.) Submit the values gathered in the form of the last page of the Configuration Guide to us via the ‘Authentication’ action item in your v9 Cloud Migration Readiness Case. Configuration details: Provide your IT with the Configuration guide and sitenames listed in your Authentication item. Your site name is [sitename].onestreamcloud.com, per instance. For DoD customers, your sitename is [sitename].onestream.mil. Additionally, because we are providing you with a duplicated instance for testing, configure [sitename-temp].onestreamcloud.com for each instance. This will ensure you are prepared to access both your testing instances and your final instances after go-live. Example: Your site names are ‘govcustomer’ and ‘govcustomer-test’. The sitenames to configure for v9 are ‘govcustomer’, ‘govcustomer-test’, ‘govcustomer-temp’, and ‘govcustomer-test-temp'. We recommend taking a screenshot of each redirect URL and attaching it to Authentication action item submission. This reduces the risk of error and aids troubleshooting. NIPR NET customers will also require a new CSR to be generated for the duplicate Production. This will be provided on your Cloud Migration Readiness Case. Configuration Guides: Open ID Connect OIS Entra ID OIS Okta OIS PingFed OIS SAML (with any identity provider) Reference: General documentation Identity and Access Management Guide Note: disregard the section about configuring within OneStream; for our upgrade purposes, we require it in advance of the instance creation. Use the appropriate Configuration Guide below.) For further consultation, open a Conversation on the Cloud Migration Readiness Case with the Authentication team. 2. Smart Integration Connector Smart Integration Connector (SIC) establishes secure connectivity between OneStream Cloud and data sources in your network without a VPN connection. With SIC, you can create and manage network data source integration using OneStream administration interfaces and locally manage database credentials and ancillary files. SIC transition is a requirement for v9 upgrades for several use cases. You are potentially impacted by this pre-requisite if you see the Data Connections item on the Action Items tab of your Cloud Migration Readiness Case. (Opened when customers submit v8+ Software Upgrade.) Use cases for SIC Transition: Customers who are using a Virtual Private Network (VPN) to establish data connectivity between a OneStream cloud instance and a local data source. VPN’s will not be supported with v9 or higher. Customers referencing drivers hosted by OneStream. Drivers being hosted on OneStream servers will not be supported with v9. Examples: ODBC, OLEDB (Oracle), Snowflake, Teradata, Netsuite, SAP, JD Edwards Customers who are utilizing DLL’s. DLL’s being hosted on OneStream servers will not be supported with v9. Pre-requisite steps: Complete any necessary technical reviews by your IT Create the SIC Server (or be ready to deploy it in short order) Install the SIC v9 Local Gateway on the server. You can open a Case to request it securely. Ensure you request the OneStream version that your business users are intending to upgrade to. Submit the ‘Data Connections’ action item in your v9 Cloud Migration Readiness Case. Reference: Smart Integration Connector Guide For further consultation, open a Conversation on the Cloud Migration Readiness Case with the Data Connections team. 3. Solutions & Business Rule Changes There are several substantial changes in v9 that impact business rules and Solutions. To prepare for these changes, we recommend that you upgrade to v9 compatible Solutions in advance of migration testing. The process includes multiple application copies from your pre-v9 instance (at initial data load and go-live.) If they are not upgraded in the pre-v9 instance, you will need to upgrade them each time your application is copied to v9. Upgrading in advance reduces risk and complexity. You will compile your business rules in the v9 testing instance to uncover errors, if any. We will have OneStream experts available via the Conversation feature on the Case to assist. Many customers choose to leverage a consultant for this work. Pre-requisite steps: Review Impacted Solutions List, below. Upgrade to any compatible versions in your pre-v9 instance, ahead of the v9 upgrade. Compile your business rules in your pre-v9 instance. We will ask for this on the ‘Customer Specifications’ item of the upgrade Case, when available. The purpose is to rule out any existing errors; we want to focus our efforts on v9. Prepare a list of your Solutions and their current versions. We will ask for this on the ‘Customer Specifications’ item of the upgrade Case, when available. Once the list has been provided, OneStream will return a list of Solutions that you can upgrade in your pre-v9 instance. Reference: Impacted Solutions List (note: may need its own community post as right now it’s an Excel doc) Business Rules & Workspace Changes in v8+ For further consultation, contact the v9 upgrade team via the Activity tab of the Cloud Migration Readiness Case. 4. OneStream IP Address Changes The IP addresses of your instance will change with v9. This has potential impacts you can prepare for. We have attempted to put together a comprehensive list of all impacts, but given the customizable nature of OneStream, there may be additional impacts uncovered in testing. Pre-requisite steps: If you have non-VPN web integrations such as API or SFTP, you may need to account for new additional OneStream IP’s in the relevant system. If you can allow your domains in the relevant system instead ([sitename].onestreamcloud.com), we recommend this. Otherwise, we will provide the new Application Gateway IP once the v9 instances are built at the start of the active migration process. If your IT has a strict outbound allow list, for example Cisco Umbrella, ZScaler, or similar products, you may not be able to access the new v9 test instance until they allow it. To prepare for this, review with your IT and ensure for all your site names ([sitename].onestreamcloud.com) that sitename and sitename-temp have been allowed in relevant systems. This will help to ensure that you can access all test instances and live instances. Cloud Note: Integrations using VPN’s are not accounted for here as they will be replaced by Smart Integration Connector. Reference: For further consultation, open a Conversation on the Cloud Migration Readiness Case with the Data Connections team. 5. .NET 8 Desktop Runtime .NET is the development platform used by OneStream to build the Platform. Prior to v9, OneStream used versions of .NET referred to as .NET Framework versions. The v7.x Platform release used .NET 4.8. OneStream Platform Release v9 or later requires Microsoft .NET 8. Pre-requisite steps: Install .NET 8 Desktop Runtime for all users who will be using the Windows Client*, or prepare to install it in short order https://dotnet.microsoft.com/en-us/download/dotnet/8.0 * v9 provides a browser client for end user functionality. Users working solely with the browser client do not need the .NET Desktop Runtime installed. Reference: For further consultation, contact the v9 upgrade team via the Activity tab of the Cloud Migration Readiness Case. 6. REST API There is a potential impact to REST API, but the scope has not been determined yet. For now, determine whether you utilize the REST API as your preparedness item. We will share more information when we have it. Reference: For further consultation, contact the v9 upgrade team via the Activity tab of the Cloud Migration Readiness Case.275Views1like0CommentsNew Episode of The OneStream Podcast Now Available!
On this edition of The OneStream Podcast, Alex Ladd and Tommy Smith from MindStream Analytics join Peter Fugere to discuss the 606 Accrual Manager Solution and how it is helping companies with recurring revenue enter and store contracts, performance obligations and invoices; and accurately calculate accruals over the life of the contract based on ASC606.Question: Is it possible to filter the list of members returned in a parameter/drop-down box based on a user’s cube data cell (“slice”) security access?
Answer One approach would be to use a bound list parameter together with a dashboard dataset business rule. Source: Office Hours 2021-04-29 - Partner EnablementRegistration for the April Edition of Tech Talks Open Now!
It's a Return to Admin's Paradise as Teresa Kress makes an encore appearance on Tech Talks to highlight and demonstrate OneStream solutions available for administrators that will increase productivity and efficiency and make your workflow a paradise! Register Now! Tech Talks - Return to Admin’s Paradise