Workflow Certified Status with User Details
Hi Team, We have a requirement like, Finance team wants to have one report with the details of Workflow Status, who certified the respective entity (name of the user) along with certification time stamp. used the below Dash Board data set rule. followed the below steps to get the grid view Attached the Business rule to Data Adapter Attached the Data Adapter to BI Viewer. But here i am getting two certified status for the entity. we need the latest certified status. can you please help us to resolve this. Imports System Imports System.Collections.Generic Imports System.Data Imports System.Data.Common Imports System.Globalization Imports System.IO Imports System.Linq Imports Microsoft.VisualBasic Imports OneStream.Finance.Database Imports OneStream.Finance.Engine Imports OneStream.Shared.Common Imports OneStream.Shared.Database Imports OneStream.Shared.Engine Imports OneStream.Shared.Wcf Imports OneStream.Stage.Database Imports OneStream.Stage.Engine Namespace OneStream.BusinessRule.DashboardDataSet.WF_Certification_Status Public Class MainClass Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As DashboardDataSetArgs) As Object Try Select Case args.FunctionType Case Is = DashboardDataSetFunctionType.GetDataSetNames Dim DSnames As New List(Of String)() DSnames.Add("GetWFStatusandCertificationF") Return DSnames Case Is = DashboardDataSetFunctionType.GetDataSet If args.DataSetName.XFEqualsIgnoreCase("GetWFStatusandCertificationF") Then Return GetWFStatusandCertificationF(si, args) End If End Select Return Nothing Catch ex As Exception Throw ErrorHandler.LogWrite(si, New XFException(si, ex)) End Try End Function Private Function GetWFStatusandCertificationF(ByVal si As SessionInfo, ByVal args As DashboardDataSetArgs) As DataTable Dim WFTable As New DataTable("WFSTATUS") Dim CertTable2 As New DataTable("WFCertSTATUS2") Dim CombinedTable As New DataTable("CombinedWFandCertStatus") CombinedTable.Columns.Add("ProfileKey") CombinedTable.Columns.Add("ProfileName") CombinedTable.Columns.Add("ScenarioName") CombinedTable.Columns.Add("TimeName") CombinedTable.Columns.Add("StatusText") CombinedTable.Columns.Add("LastExecutedStepStatus") CombinedTable.Columns.Add("LastExecutedStepTimeUTC") CombinedTable.Columns.Add("LastExecutedStepTimeEST") CombinedTable.Columns.Add("SignOffState") CombinedTable.Columns.Add("UserName") CombinedTable.Columns.Add("TimeStamp") Dim WFName As String = "ASIA" Dim WFScenario As String = "Actual" Dim WFTime As String = "2025M1" Dim methodTypeId As String = XFCommandMethodTypeId.WorkflowStatus Dim resultDataTableName As String = "WFSTATUS" Dim methodQuery As String Dim customSubVars As New Dictionary(Of String, String) brapi.ErrorLog.LogMessage(si,"1") methodQuery = "{" & WFName & "}{" & WFScenario & "}{" & WFTime & "}{AllProfiles}{Descendants}{ProfileName like '*.Confirm*'}" 'methodQuery = "{" & WFName & "}{" & WFScenario & "}{" & WFTime & "}{'%Confirm_Certify'}{Descendants}{ProfileName like '*.Confirm*'}" Using dbConnApp As DBConnInfo = BRApi.Database.CreateApplicationDbConnInfo(si) WFTable.Columns.Add("ProfileKey") WFTable.Columns.Add("ProfileName") WFTable.Columns.Add("ScenarioName") WFTable.Columns.Add("TimeName") WFTable.Columns.Add("StatusText") WFTable.Columns.Add("LastExecutedStepStatus") WFTable.Columns.Add("LastExecutedStepTimeUTC") WFTable.Columns.Add("LastExecutedStepTimeEST") Dim objDataSet As DataSet = BRApi.Database.ExecuteMethodCommand(dbConnApp, methodTypeId, methodQuery, resultDataTableName, customSubVars) 'Dim FilterData As Datarow() = WFTable.Select("ProfileKey", "ProfileName","ScenarioName", "TimeName", "StatusText", "LastExecutedStepStatus","LastExecutedStepTimeUTC","LastExecutedStepTimeEST Desc") For Each row As DataRow In objDataSet.Tables("WFSTATUS").Rows WFTable.Rows.Add(row.Item("ProfileKey"), row.Item("ProfileName"), row.Item("ScenarioName"), row.Item("TimeName"), row.Item("StatusText"), row.Item("LastExecutedStepStatus"), row.Item("LastExecutedStepTime"), row.Item("LastExecutedStepTime")) Next ' For Each row As DataRow In FilterData ' WFTable.Rows.Add(row.Item("ProfileKey"), row.Item("ProfileName"), row.Item("ScenarioName"), row.Item("TimeName"), row.Item("StatusText"), row.Item("LastExecutedStepStatus"), row.Item("LastExecutedStepTime"), row.Item("LastExecutedStepTime")) ' Next End Using brapi.ErrorLog.LogMessage(si,"2") methodTypeId = XFCommandMethodTypeId.CertificationForWorkflowUnit methodQuery = "{" & WFName & "}" & "{" & WFScenario & "}" & "{" & WFTime & "}" & "{True}" & "{}" Using DBConnAppForCert2 As DbConnInfo = BRApi.Database.CreateApplicationDbConnInfo(si) CertTable2.Columns.Add("ProfileKey") CertTable2.Columns.Add("ScenarioKey") CertTable2.Columns.Add("TimeKey") CertTable2.Columns.Add("SignOffState") CertTable2.Columns.Add("UserName") CertTable2.Columns.Add("TimeStamp") Dim objDataSet As DataSet = BRApi.Database.ExecuteMethodCommand(DBConnAppForCert2, methodTypeId, methodQuery, "WFCertSTATUS2", customSubVars) For Each row As DataRow In objDataSet.Tables("WFCertSTATUS2_SignOffGroups").Rows CertTable2.Rows.Add(row.Item("ProfileKey"), row.Item("ScenarioKey"), row.Item("TimeKey"), row.Item("SignOffState"), row.Item("UserName"), row.Item("TimeStamp")) Next End Using brapi.ErrorLog.LogMessage(si,"3") For Each wfRow As DataRow In WFTable.Rows Dim profileKey As Object = wfRow("ProfileKey") Dim certRows As DataRow() = CertTable2.Select("ProfileKey = '" & profileKey.ToString() & "'") For Each certRow As DataRow In certRows Dim newRow As DataRow = CombinedTable.NewRow() newRow("ProfileKey") = wfRow("ProfileKey") newRow("ProfileName") = wfRow("ProfileName") newRow("ScenarioName") = wfRow("ScenarioName") newRow("TimeName") = wfRow("TimeName") newRow("StatusText") = wfRow("StatusText") newRow("LastExecutedStepStatus") = wfRow("LastExecutedStepStatus") newRow("LastExecutedStepTimeUTC") = wfRow("LastExecutedStepTimeUTC") newRow("LastExecutedStepTimeEST") = wfRow("LastExecutedStepTimeEST") newRow("SignOffState") = certRow("SignOffState") newRow("UserName") = certRow("UserName") newRow("TimeStamp") = certRow("TimeStamp") CombinedTable.Rows.Add(newRow) Next Next brapi.ErrorLog.LogMessage(si,"4") Return CombinedTable End Function End Class End Namespace48Views0likes4CommentsgetLiteralParameterValue in a KPI formula
I would like to use a parameter value in a KPI in my API_Calculate business rule. I have a literal value parameter and we will change the default value ahead of time to control which formula runs. I'm trying to pull the current default value with the following: Dim param As String = BRApi.Dashboards.Parameters.GetLiteralParameterValue(si, False, Nothing, "myFlag") When it gets to that line it throws a "Object reference not set to an instance of an object". Any ideas?21Views1like2CommentsWfTime parameter not working in SQL table editor
Hi everyone, I'm currently working on a dashboard that, through the use of a SQL table editor, will show data stored in a table. Below an example of one row from that table: The interface of the SQL table editor allows me to filter the data to show only specific rows, and I added a filter for the columns T_ENTITY and PERIOD: The first filter (T_ENTITY) works as expected. The second filter should filter out those rows in the table whose Period differs from the one selected by the user in the WF. Nevertheless, if I use |WFTime| as parameter, it doesn't show any row, even those that have the same Period as the WF. If I instead replace |WFTime| with the static period (es 'PERIOD = '2022M11'), it works fine. The conclusion I take is that |WFTime| is not equal to the current WF period. To check that out, I added the following label to the dashboard header, setting its value equal to |WFTime|: and it shows exactly the current WF period: Is it possible that the parameter |WFTime| does not work as a filter for a SQL table editor? Or am I missing something? Thanks in advance for the help!Solved114Views0likes3CommentsSQL Table Editor Dynamic Drop down
Hi Community, I have a question. I'm working with a SQL table editor and need to implement dependent dropdowns. Specifically, based on the value selected in the first column, I want the second column to display a corresponding set of dropdown options. Is this possible to achieve? If so, could you suggest any approach that can help me implement this functionality? Thank You!15Views0likes0CommentsAutomating Consolidated Financial Reporting with OneStream
Hi everyone, We currently use OneStream to prepare our consolidated financial statements in Excel, using retrieves linked to OS. But in the end, we still manually copy everything into Word to build the final report. We’d like to automate this process as much as possible to reduce errors and save time. We need to include notes and commentary under certain tables, so Word is our preferred format. Is this kind of automation possible directly in OneStream? If not, what tools are you using to produce your final reports? Any best practices or recommendations would be much appreciated! Thanks in advance for your responses!Solved83Views0likes2CommentsSupplied parameter tied to Bound List not returning value
Hi community, I have an issue where i have a member list tied to a bound list. The bound list uses a SQL query to get the top member of a given dimension. I have this bound list tied to a supplied parameter that I have attached to a dashboard. The issue is that when I run the dashboard, it is not triggering the bound list, even though i am using the supplied parameter. If I remove the supplied parameter and run the dashboard, it prompts me with the bound list parameter showing the value i want to return, and thereafter, when i put the supplied parameter back it works. It seems like the system needs to trigger the bound list first, but I haven't found a way to do so yet. Any thoughts?Solved75Views0likes3CommentsCustom Validation Before Saving Cube View Data
Hi Community, I have a dashboard that includes a Cube View and a button with the "Save Data for All Components" action. Users enter data directly in the Cube View and click the button to save. I’d like to implement a custom validation step before the data is saved. Specifically, I need to calculate the sum of four specific accounts, and if the total is not zero, I want to prevent the save operation and show an error message to the user. Is there a recommended way to intercept the save action and apply such a validation check? Any guidance or best practices would be appreciated. Thanks in advance!47Views0likes2CommentsHow can I become a Advanced User of Member Filter Builder in QuickView
I am a Financial Planner and Analyst and My Organization use OnStream. I want to understand better how to extract the data for Multiple scenarios (act, fcst, budget, py) using Member filters, variables understand workflows, and parameters?25Views0likes0CommentsGraph and Charts in OneStream
Hello I have a query regarding Graph editing in OneStream I wanted to know how we can edit the graph in OS. Eg: The client has a waterfall chart built for the EBIDTA and they have the previous 2 years comparison as well. However the October and Nov month shall start from the start point 0 similar to Sept Month whereas currently they start where the previous moth ends. Also the colour of the bar for Oct and Nov shall be Blue similar to Sept and Dec month16Views0likes0Comments