Discuss formulas and business rules for your application.
Recently active
Hi Team, I have tried to make a simple task - if user in not in group I would like to change a certification status to rejected.This code is in DataQualityEventHandler:Case Is = BREventOperationType.DataQuality.Certify.FinalizeSetQuestionairreStateDim sGuid As String = "419eeb3d-eaec-43fc-bc0a-cab5862323f10"Dim Guid_1 As New Guid(sGuid)If BRApi.Security.Authorization.IsUserInGroup(si, si.UserName, "GROUP",False) = False ThenBRApi.DataQuality.Process.ExecuteQuestionnaireSignOff(si,si.WorkflowClusterPk,Guid_1,CertSignOffStates.ProfileRejected,"Comments")End If It always returns "Certified", but should "Rejected": Any ideas what am I missing?
Is it possible to change the orientation of a report using a business rule?I can't see any options for it when creating a custom report task in a cube view.
We have several parser rules that are running on our connector to d365. Is there a way to see what the affect on run time is from each of these rules? Do these rules run on all data that is queried from our connection or just new data?
Hi, Is there any way to get DataManagement step failure email notifications? I have one sequence which use some DM steps to perform Clear and Consolidations. I do not want use a business rule to call in a Custom calculation.Thanks for your help in advance.
Hello, I have a sub folder that is being populated each month with a variety of files, it is different from month to month. The naming convention of the subfolder is consistent. It is always the fiscal period. However when I try to zip the files in the folder I am unable to define a path. The folder is "Application Database/Documents/Public/" then the fiscal period. However my code is never able to find it. I think it is because we are on the cloud. Any insight on how to define the process for zipping all the files in that folder into one document so it can be sent out through parcel service would be appreciated.Thanks,Tom
I have a process that builds a data buffer using Data Buffer Cell Loop logic. I need to check the cell status on each record and perform certain actions based on the status. Specifically, I want to make sure all 12 Account-Type dimensions are referencing a base member and correct them if they aren't.However, I'm not getting the correct Cell Status when the cell is in a data buffer. For example this code creates two data cells and logs their status. (In this case, I'm looking at DataCells, but the behavior is identical on DataBufferCell objects). Metadata is from GolfStream.: Dim baseMemberFilter As String = "A#50200:O#Import:U2#None:U8#Test" Dim cellPk As DataCellPk = api.Data.ParseDataCellScript(baseMemberFilter) Dim cell As DataCell = api.Data.CreateDataCellObject(cellPk, True, 100, False, False) api.LogMessage("Base UD2 GetMemberScript: " & cell.DataCellPk.GetMemberScript(api)) api.LogMessage("Base UD2 CellStatus.UD2HasChildren: " & cell.CellStatus.UD2HasChildren) Dim
Hi All,I am using FdxExecuteDataUnitTimePivot to export data from onestream cube, everything working as expected except one issue. i.e., I am using consolidation member C#Aggregated beacuse i want to export data for C#aggregated, but FdxExecuteDataUnitTimePivot is exporting data from C#CAD. All our users input data at C#CAD, also default currency on entity is CAD. Just want to know is this the known issue, or FDX designed to export only base currency? Is there any way to pull only C#aggregated with FdxExecuteDataUnitTimePivot.
Are there any resources for building an external library? I'm looking to build a dll and getting an ambiguous namespace issue for DbConnInfo. It appears to be an issue between the OneStream.ClientWindowsBRApi.dll and OneStream.SharedDatabaseTables.dll.
I have a complex expression on the amount field in a data source used to convert any non-local currencies to the local currency (see below). That complex expression currently runs on tabular data with the time period (CurTime) I reference to pull the FX rate in one field. I am now wanting to have this same complex expression used on a Matrix data source with time across 24 fields. Any thoughts on how this could be done? Is there a Column Number api I could use to define CurTime? 'This is to look to see if the entity is a non local USD entity and convert the USD data to Local Dim fields As List(Of String) = StringHelper.Splitstring(args.Line,",") Dim curEntity As String = fields(2) Dim UKEntityDim As OneStream.Shared.Wcf.Dim = BRApi.Finance.Dim.GetDim(si, "iFinDept") Dim UKEntityDimTypeID As Integer = UKEntityDim.DimPk.DimTypeId Dim CurEntityID As Integer = BRApi.Finance.Members.GetMemberId(si,UKEntityDimTypeID , curEntity) Dim CurEntityLocCur As String = BRApi.Finance.
Does anyone do regression testing when upgrading to a new version of OneStream or upgrading to a new version of a MarketPlace solution? I'm looking for best practices, industry standards, etc. to more formalize this process for internal controls.
Hello,we're trying to paralellize datamanagement jobs over years with this call QueueDataMgmtSequenceBut it seems the task called by this function is not running.Should we have missed something ?myTask1 = BRApi.Utilities.QueueDataMgmtSequence(si, sSequenceName,VarBR1)myTask2 = BRApi.Utilities.QueueDataMgmtSequence(si, sSequenceName,VarBR2)myTask3 = BRApi.Utilities.QueueDataMgmtSequence(si, sSequenceName,VarBR3)myTask4 = BRApi.Utilities.QueueDataMgmtSequence(si, sSequenceName,VarBR4)myTask5 = BRApi.Utilities.QueueDataMgmtSequence(si, sSequenceName,VarBR5)myTask6 = BRApi.Utilities.QueueDataMgmtSequence(si, sSequenceName,VarBR6)
Hi all.We have a spreadsheet rule that needs to pull a value from another database table.The lookup runs successfully in an existing Dashboard Extender, and I was initially requesting the amount by calling the Extender from the spreadsheet rule, but that only ever returned the default value, even though the lookup does have a valid value.Because that failed to return a value, I tried making the call directly, as shown:sOperational_Capacity = BRApi.Database.LookupRowFieldValue(si, "ExternalDB", "XFC_STEP3_DEV2_OperationalCapacity", objDbwheres, "Operational_Capacity", 9876).XFConvertToDecimalLocalNB: The 9876 is just a default value that is different to zero, so that I recognise it, and we use the ConvertToDecimalLocal to deal with French culture users.Basically, when I run the call from the spreadsheet rule (either directly or by calling the Extender rule), I receive the default value every time.This same code runs perfectly from the Extender BR, returning the correct value.I have also
Is there any way to format a number for the FORMULA DRILL DOWN to show as more than two decimal places or format the output as a percentage? I have some factors that are applied against another account that need 4 or more decimal places to look like they calculate correctly. In the example below, the number should be .0588.
Hi all,I need to make a calculate icon in a dashboard visible based on the form status. Based on another post in the forum to check the workflow status, tried below script to first check the workflow status and return true if completed and false if not completed.It throws error message as "The given key is not present in the dictionary".Kindly enlighten on the reason for this error message and on how the form status can be checked. Thanks
Hi all,I'm working on a Dashboard Extender BR where different processes will be triggered depending on the button selected by the user on the dashboard.The BR is structured this way:The two parameters shown above (p_scenario and p_yearmonth) retrieve the value for Scenario and Period from the WF.Every time the user clicks on a different button, two variables are assigned the value of WF Period and WF Scenario as shown above. The process works fine for all of the dashboard buttons except one. When that one is clicked, the values of WF Period and Scenario are not retrieved. The two variables shown above are left as empty strings. Any idea what might be causing this? I'm using the same formula for all of the buttons:Dim Scenario As String = args.SelectionChangedTaskInfo.CustomSubstVars.XFGetValue("p_scenario")it works fine on all buttons except that one Thanks in advance for any help on this!
Hi Experts,I have subsidiary entity where it needs to be consolidated 100% but with other line of adjustments as belowNCI calculation on equity portion/Share capital elimination.in HFM, We used to write on default consolidation rule first and then method specific rule on top of thisif same thing is to be applied in Onestream, can i follow as below ?If entity method is subs thenStep1 api.ExecuteDefaultShare() to consolidate every account 100% firstlyUser defined tagging=> Text tagging to Equity related accounts to pull accounts for NCI portion calculation.Step2 Text specific Source accounts are reversed with Minority portion(%) into Elimination member and same writing to offset NCI account into the Elimination member like HFM ??
Hi Experts,can you please suggest/advise what kind of consolidation Algorithm type rule we need to write generallyours is orgbyperiod application, we have subsidiary entities(75%) for this NCI/Goodwill and also other part of side holding company - Investment elimination is to be taken care along with ICP elimination in standard.
Hi Experts, I would like to store existing cell destination value to temp variable so as to write back to destination by appending of source cell value using databuffer - with the following script i have written can only copy source cell to destination, but it does not append if the value is already exist in destination prior to write from source cell amounts.( I need because multiple source values are writing up to same destination then each time it is getting replaced already existing value- which is not correct as per the business case) Dim ResulDataBuf As DataBuffer = New DataBuffer() Dim DestinationInfo As ExpressionDestinationInfo = api.Data.GetExpressionDestinationInfo("V#Periodic") Dim DataBufFilter As DataBuffer = Api.Data.GetDataBufferUsingFormula("FilterMembers(V#Periodic),[A#[root].base.Where((Text1 <> "")And (Text2 <> ""))]") DataBufFilter.LogDataBuffer(api, "records", 100) For Each sourceCell As DataBuffercell In DataBufFilter.DataBufferCells.Values Di
Hi All, I have written below rule where, I am not able to see the results, But rule is executed without any errors. Rule is about : Writing up the source values based on the Tex1 and Tex2 assigned in the source Accounts. where Text1 & Text2 are target Intersections to to actually be written to... Kindly help me if something is missing in the code. Dim ResulDataBuf As DataBuffer = New DataBuffer() Dim DestinationInfo As ExpressionDestinationInfo = api.Data.GetExpressionDestinationInfo("V#Periodic") Dim DataBufFilter As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(V#Periodic,[A#[BS].Base.Where(Text1 <> vbnullstring And Text2 <> vbnullstring)])") For Each sourceCell As DataBuffercell In DataBufFilter.DataBufferCells.Values Dim cashflowCell As New DataBufferCell(sourceCell) 'Temp buffercell within the loop to copy my cashflow cell Dim sText1 As String = api.Account.Text(cashflowCell.DataBufferCellPk.AccountId, 1) 'Source Mvmt Dim sText2 As String = a
Hi All, Is there a possibility to update WFScenario for all users of the application from back end through a Business Rule? When moving the app from one quarter to another for Financial Regional planning, some of the not so tech savvy Sales users are forgetting to change their WFScenario and triggering the calculations which are erroring out due to older scenarios being locked. We would like to have Admin update WFScenario for all the users of the application as a maintenance task. Please let me know if the below would work for all the users. Or any other leads would also be appreciated.
This is OS v7.4.1It is running in a Cube View Extender Rule.I've tried both CubeViewGrid.ExpandedRowHeaders and CubeViewGrid.AllExpandedRowHeaders expandedRowHeaders = cubeViewGrid.AllExpandedRowHeaders; int rowNum = 0; StringBuilder sb = new StringBuilder(); foreach(CVGHeader cVGHeader in expandedRowHeaders) { List<CVGHeaderItem> headerItems = cVGHeader.HeaderItems; sb.Append($"Row[{++rowNum}]:"); foreach(CVGHeaderItem cVGHeaderItem in headerItems) { if(cVGHeaderItem.MemberInfo.NameAndDescription.Length>0) sb.Append($"{cVGHeaderItem.MemberInfo.NameAndDescription}|"); } sb.AppendLine(); } Using cubeViewGrid.ExpandedRowHeaders yeilds :Using cubeViewGrid.AllExpandedRowHeaders yeilds (ironically none of the nested members on Column2): I'm not getting the members shown in the green boxes:
Im trying to create a workflow Event Handler that kicks off when lets say a period is locked April 2023 will then kick off a stored procedure that copies data from a table leveraging the wtk of the locked period.
Summary Is there any documentation and/or sample code showing how to use the new "dbWheres" argument in a LookupRowFieldValue() function? Detail In version 6.8 (maybe earlier), if you use .LookupRowFieldValue() with your criteriaExpression (i.e. - your where clause) as a string you get a warning that this syntax is obsolete. It still runs, but obviously we shouldn't use it going forward. So, something like this now throws an warning: .LookupRowFieldValue(si, dbLocation, tableName, criteriaExpression, fieldToReturn, defaultValue) .LookupRowFieldValue(si, dbLocation.Framework, "SecUser", Name = 'Phil Brosnan', "Email", String.Empty) OneStream wants you to use a new Syntax that replaces the criteriaExpression with a list of where clauses in a dbWheres object. .LookupRowFieldValue(si, dbLocation, tableName, dbWheres, fieldToReturn, defaultValue) Unfortunately, there is no documentation or examples on what a dbWhere object is, how to create one, or how to pass that dbWhere object into your
I have a BR that copies Actuals scenario data to a planning scenario (Mgmt_Actual). It copies Post close adjustments that only exist for USD->AdjInput in Actuals from/to the USD->AdjInput and like Actuals there is no local data in the Mgmt_actual scenario. I then try to copy the same data from the Mgmt_Actual to a forecast scenario. But the calculate data writes to the Local->AdjInput (consolidation/Origin) member, not USD. And when I run a consolidation it calculates USD with the Origin member AdjConsolidated. I'm using the exact same code to copy (calculate) the two scenarios. Any ideas why one calculates USD->AdjInput, yet the other lands at Local->AdjInput?
Does the api.Data.GetDataBufferUsingFormula("FilterMembers(...)") only get cells that have values? Is there a way to create a data buffer with empty cells? Use case: We need to to cycle through an account hierarchy and populate each base account with data from an intersection of a specific Account, UD2, UD3, and UD4 that are defined in the text fields of the particular account that is being populated. The other dimensions of the data buffer are limited to a single member (i.e.":V#YTD:F#End_Bal:O#Import:U2#000:U3#0000:U4#0:U5#None:U6#None:U7#None:U8#None")
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.