Recent Discussions
How can I remove empty values from GetDataBuffer and obtain the entity with Text1, Text2, Text3?
Hi Everyone. I would like to know how I can remove zero values in my GetDataBufferUsingFormula. Dim DatabufferCalc As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(E#" & strParentEntity & ".Base,E#XFMemberProperty(DimType=Entity, Member=|!PerformPnL_Entity!|, Property=Text1).Base:S#[" & strScenario & "]:T#" & strPeriod & ":O#Top:I#None:U1#ALL_DEPARTMENTS:U2#ALL_PRODUCTS:U3#CORP_RPT:U4#ALL_PROJECTS:U5#None:U6#None:U7#None:U8#None,A#411000)") And from the result, I would like to obtain the entity, and from that entity, know its Text1, Text2, and Text3. However, for now, I see that I can only obtain the account and the rest of the properties such as the UD Dim DatabufferCalc As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(E#" & strParentEntity & ".Base,E#XFMemberProperty(DimType=Entity, Member=|!PerformPnL_Entity!|, Property=Text1).Base:S#[" & strScenario & "]:T#" & strPeriod & ":O#Top:I#None:U1#ALL_DEPARTMENTS:U2#ALL_PRODUCTS:U3#CORP_RPT:U4#ALL_PROJECTS:U5#None:U6#None:U7#None:U8#None,A#411000)") api.Data.FormulaVariables.SetDataBufferVariable("DatabufferCalc", DatabufferCalc, True) For Each sourceCell As DataBufferCell In DatabufferCalc.DataBufferCells.Values 'I would like to obtain the entity and Texts Dim account As String = sourceCell.DataBufferCellPk.GetAccountName() BRApi.ErrorLog.LogMessage(si) NextMarco5 days agoContributor II29Views0likes3CommentsDerivative Transformation Rules
Hello! I need to split an entity into three separate entities using transformation rules and percentages. For example, I need to split E#50 into E#50B - 33%, E#50D - 33%, and E#50L - 33%. I've read that derivative transformation rules can be used for this purpose, but I'm unsure how to implement them. Additionally, I need to divide the amount of E#50B into two UD1s U1#2345 -50% and U1#2346 - 50%. Here's what I've attempted so far: What would be the proper way to do it? Ideally, we would like to store the percentages in UD4, so users can update them in a form. Is that possible? Thanks,CA57 days agoNew Contributor29Views0likes1CommentSchedule Financial reports to run overnight.
How can I schedule reports to run overnight during the close so we have a snapshot of financials at specific times? There are no reports in the Data Management Groups for the Task Scheduler to pick up.Danarjones7 days agoNew Contributor34Views0likes4CommentsUpdating Business Rule from WFYEAR to Global POV
Hello, I am trying to update a business rule that is currently set to WFYear to the Global Time. We use the SAP Selector Solution, but I am new to it. Currently the WFYear of the user who schedules a trial balance import impacts what data is being loaded. For example, if the user's WF POV is 2024, then data is pulling from the source for 2024. I appreciate any suggestions. Original Rule This is one idea I had, I am not sure T#|Global| will work since it is not a local variable. I also don't know if I need to change the "Dim wfYear As String = timeStr.Substring(0,4)" script. Thanks, RonnieSolvedRonnie11 days agoNew Contributor II65Views1like9CommentsMap source account to target account member and Ud4 member
Hi Everyone, I have a source file which contains multiple accounts in the columns for one month. These accounts are not there in the cube. I do not have a ud4 dimension in the source file. Each source account should be mapped to an account and Ud4 member. for ex: Account a001 has to be mapped to account A#a1 and Ud4#cost. Similarly Account b001 has to be mapped to account b#b1 and Ud4#sale. A#[a001]=A#[a1]:UD4#[cost] A#[b001]=A#[b1]:UD4#[sale] How can this be achieved in the transformation rule. Also, the data source needs to have ud4 or not. Thanks, JeevanJeevan15 days agoNew Contributor II26Views0likes2CommentsCombining/Joining DataSets
Hi Everyone. I am unable to join datasets and suing below code. Purpose: is to combine the outcome of 2 method queries WF Status and CertificationStatus to get a single table. Kindly help with your comments or guidance: Imports System Imports System.Collections.Generic Imports System.Data Imports System.Data.Common Imports System.Globalization Imports System.IO Imports System.Linq Imports System.Windows.Forms 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.GetWFStatusandCertification 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 Dim WFTable As DataTable = New DataTable("WFSTATUS") Dim CertTable As DataTable = New DataTable("WFCertSTATUS") Dim CertTable1 As DataTable = New DataTable("WFCertSTATUS1") Dim CertTable2 As DataTable = New DataTable("WFCertSTATUS2") Dim WFTime As String = "2023M12" 'args.NameValuePairs("2023M12") Dim WFScenario As String = "Actuals" 'args.NameValuePairs("Actuals") Dim WFName As String = "P1000 Group" 'args.NameValuePairs("P1000 Prudential Group") Dim methodTypeId As String Dim methodQuery As String Dim resultDataTableName As String Using dbConnApp As DBConnInfo = BRApi.Database.CreateApplicationDbConnInfo(si) 'Create Tables in Memory 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") methodTypeId = XFCommandMethodTypeId.WorkflowStatus methodQuery = "{" & WFName &"}{" & WFScenario & "}{" & WFTime & "}{AllProfiles}{Descendants}{}" resultDataTableName = "WFSTATUS" Dim customSubVars As New Dictionary(Of String, String) Dim objDataSet As DataSet = BRApi.Database.ExecuteMethodCommand(dbConnApp,methodTypeId,methodQuery, resultDataTableName,customSubVars) For Each Row As DataRow In objDataSet.Tables("WFSTATUS").Rows Dim easternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time") Dim EST = TimeZoneInfo.ConvertTimeFromUtc(Row.Item("LastExecutedStepTime"), easternZone) WFTable.Rows.Add(Row.Item("ProfileKey"),Row.Item("ProfileName"),Row.Item("ScenarioName"),Row.Item("TimeName"),Row.Item("StatusText"),Row.Item("LastExecutedStepStatus"),Row.Item("LastExecutedStepTime"),EST) Next 'Return WFTable End Using Using DBConAppForCert1 As DbConnInfo = BRApi.Database.CreateApplicationDbConnInfo(si) CertTable1.Columns.Add("ProfileName") CertTable1.Columns.Add("ProfileKey") CertTable1.Columns.Add("ScenarioKey") CertTable1.Columns.Add("ScenarioName") CertTable1.Columns.Add("TimeKey") CertTable1.Columns.Add("TimeName") methodTypeId = XFCommandMethodTypeId.CertificationForWorkflowUnit MethodQuery = "{" & WFName & "}" & "{" & WFScenario & "}" & "{" & WFTime & "}" &"{True}" &"{}" resultDataTableName = "WFCertSTATUS1" Dim CustomSubVars As New Dictionary(Of String, String) Dim ObjDataSet As DataSet = BRApi.Database.ExecuteMethodCommand(DBConAppForCert1,methodtypeid,methodQuery,resultDataTableName,CustomSubVars) For Each Row As DataRow In ObjDataSet.Tables("WFCertSTATUS1").Rows CertTable1.Rows.Add(Row.Item("ProfileName"),Row.Item("ProfileKey"),Row.Item("ScenarioKey"),Row.Item("ScenarioName"),Row.Item("TimeKey"),Row.Item("TimeName")) Next ' Return CertTable1 End Using Using DBConAppForCert2 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") methodTypeId = XFCommandMethodTypeId.CertificationForWorkflowUnit MethodQuery = "{" & WFName & "}" & "{" & WFScenario & "}" & "{" & WFTime & "}" &"{True}" &"{}" resultDataTableName = "WFCertSTATUS2" Dim CustomSubVars As New Dictionary(Of String, String) Dim ObjDataSet As DataSet = BRApi.Database.ExecuteMethodCommand(DBConAppForCert2,methodTypeId,MethodQuery,resultDataTableName,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 ' Return CertTable2 End Using ' ' Return WFTable Dim DS_CertStatus As New DataSet("DS_CertificationStatus") DS_CertStatus.Tables.Add(WFTable) ' DS_CertStatus.Tables.Add(CertTable1) DS_CertStatus.Tables.Add(CertTable2) DS_CertStatus.Relations.Add("ProfileKeyRelation",DS_CertStatus.Tables(0).Columns("ProfileKey"),DS_CertStatus.Tables(1).Columns("ProfileKey"),False) Return DS_CertStatus End If End Select Return Nothing Catch ex As Exception Throw ErrorHandler.LogWrite(si, New XFException(si, ex)) End Try End Function End Class End NamespaceSolvedSKMundra15 days agoNew Contributor III61Views0likes9CommentsRead a specific cell value from a Spreadsheet object
I have a need to read a cell value from a Spreadsheet object (Cell D3 to be specific) that will change the color of a button object in a dashboard. The cell converts color parameters to ARGB style, and I want to use this to show an example of the color in another object. Thoughts? I want the cell vale to set a literal parameter which will refresh the objectMike_Sabourin18 days agoContributor II13Views0likes0CommentsInteractive prompt
Hi all, it is pretty straight forward in an dashboard extender rule to return a message box to be displayed to the user in the dashboard (like the picture below). The question I have is: is it possible to prompt the user with what I would call an interactive prompt, a prompt having a Yes and No buttons for example, and for the dashboard extender rule code to store the result of the selection for use in the rule code itself? This would be useful when displaying a warning for example. We could prompt the user with the warning and then ask if they still want to proceed or not. Thank youSolvedAndreaF20 days agoContributor III2.5KViews0likes4CommentsComponents' Dynamic state for dynamic dashboard
Hello, I am trying to get my dynamically created buttons to execute a server task. I can create all the buttons I need in my dynamic dashboard, but as soon as I try to get them to execute a dashboard business rule, I get an error message : I have checked my services, and Everything gets validated. My WsDynamiccomponentCollection is as follow : Dim currentcomps As WsDynamiccomponentCollection = api.GetDynamicComponentsForDynamicDashboard(si, workspace, dynamicDashboardEx, string.empty, Nothing, tristatebool.TrueValue, wsdynamicitemstatetype.EntireObject) I am also using the functions SaveDynamicDashboardState and SaveDynamicComponentState : api.SaveDynamicDashboardState(si,dyncomp2,dynamicDashboardEx,wsdynamicitemstatetype.EntireObject) api.SaveDynamicComponentState(si,dynamicDashboardEx.DynamicDashboard,dyncompex2,wsdynamicitemstatetype.EntireObject) (dyncomp2 and dyncomp2ex being the button I am creating). --> It seems that it creates a list of dashboard and/or components in a new table called "wsDynamicItemState", but that's it. The ID code that I have in the error message exist in the table, under the "itemID" column: Any insights on how to resolve this issue, as well as this "component state", are welcome :) Regards,SolvedSergey20 days agoContributor III60Views0likes2Comments