XFProject specify all artefacts
Does anyone know if it is possible to specify all artefacts in XFProject? eg something like <xfProject topFolderPath="DEV" defaultZipFileName="DEV.Zip"> <projectItems> <projectItem projectItemType="BusinessRule" folderPath="" name="*" includeDescendants="true" /> </projectItems> </xfProject> Thanks633Views0likes2CommentsHow to get cell context?
This is the layout of my CV I'm using an XFBR in rows (and columns); the rules for each scenario are different; how do I get the context from the columns? In other words, when the scenario is Budget I want to apply specific rules for that scenario, same thing for Actual. This would be the script: Namespace Workspace.__WsNamespacePrefix.__WsAssemblyName.BusinessRule.DashboardStringFunction.REP_ParamHelper Public Class MainClass Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As DashboardStringFunctionArgs) As Object Try If args.FunctionName.XFEqualsIgnoreCase("GetAccount") Then //Do something End If End Function End Class End Namespace12Views0likes1CommentEnhancing User Management in Security Groups
Hi, We are currently using a Dashboard that allows admin to remove users from Security groups. I would like to enhance this functionality so that approvers, rather than admins, have the ability to remove users from security groups. Currently, the system security roles under the " System tab" are set to "ADMIN" by default for the "Manage System Security Groups" setting. Unfortunately, we cannot make changes to these System Security roles due to the large number of approvers across various groups. Could you offer suggestions or guidance on how we can implement this enhancement effectively? Thanks in advance.25Views0likes1CommentHelp Needed with Confirmation Rule to Validate Annotations for Thresholds
Hello OS Community. I'm working on a confirmation rule that is supposed to check for the presence of annotations when thresholds are defined. The intended behavior is: If thresholds are present, but no annotation/comment is provided, the rule should fail validation. However, the logic isn't working as expected. Even when no comment is given, the rule still passes and acts as if a comment is provided. Here’s what I need help with Ensuring that the rule correctly identifies missing comments and fails as intended. Identifying what might be wrong in my current logic it seems to incorrectly detect comments even when none exist. Any insights or examples of similar logic would be much appreciated!Solved109Views0likes13CommentsCombining/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 NamespaceSolved73Views0likes9CommentsRead 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 object14Views0likes0CommentsInteractive 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 youSolved2.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,Solved69Views0likes2Comments