Discuss formulas and business rules for your application.
Recently active
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 Experts,I am trying to read the member ID in data buffer to assign some values accordingly, But it is giving in correct ID seemsin the log file i can see ID as "-1" , Generally Member ID was different in the dimension library if this is readying correctly - Kindly confirmDim vSrcUD2Split As String() = Split(sText2,":")Dim GetUD1Ac As String = Trim(vSrcUD2Split(0)):Dim GetUD1Mvt As String = Trim(vSrcUD2Split(1))Dim vTgtActID As Integer = api.Members.GetMember(DimType.Account.Id,GetUD1Ac).MemberPk.MemberIDapi.LogMessage(vTgtActID) Outcome is : -1
Hi,I'm using a Derivative Check Rule for the first time - using the sample available in GolfStream (HoustonSalesDetailOffset > ValidateCheckSum) - the Rule itself is working fine, I am getting the correct Pass/Fail Status. My question is where can I expect to see the CheckRuleMessage displayed?GolfStream Sample: My Result (partial screenshot only as from Client App):It feels like there's a column missing from the screen? Or perhaps it should be a pop-up window on the right like with other Validation/Intersection errors?Thanks in advance for any help!
I have a case where the client needs to add members to a dimension regularly and the ADM, Add Dimension Members, dashboard is idea as found in GolfStream. However, there is a problem in the ADM_SolutionHelper rule that stops this from running. It doesn't compile properly. Error compiling Business Rule 'ADM_SolutionHelper'. 1) Error at line 136: Property 'Name' is 'ReadOnly'. 2) Error at line 137: Property 'DimId' is 'ReadOnly'. Can someone explain how to resolve this please.
Hi, I'm trying to copy data from Actuals into Forecast, but it seems to only work for Input and Forms Origin members, and not for Adj. Here is my formula, which I put on the Forecast Scenario: 'Copy data from Source Scenario for months 1-5 Dim currMonthNum As Integer = api.Time.GetPeriodNumFromId(api.Pov.Time.MemberId) Dim sScenario As String Dim ScenarioSource As String = api.Scenario.Text(api.Pov.Scenario.MemberId, 1) If ScenarioSource = "" Then sScenario = api.Pov.Scenario.Name Else sScenario = ScenarioSource End If If currMonthNum = 1 Or currMonthNum = 2 Or currMonthNum = 3 Or currMonthNum = 4 Or currMonthNum = 5 Then If api.Cons.IsLocalCurrencyforEntity() And Not api.Entity.HasChildren() Then api.Data.Calculate("S#Forecast2:A#All = S#" & sScenario & ":A#All") api.Data.Calculate("S#Forecast2:A#All:O#AdjInput = S#" & sScenario & ":A#All:O#AdjInput") End If End If Not sure what I'm doing wrong. Any ideas? Thanks!
Does anyone know if it's possible to access XFStrings through Business Rules? We are adding other languages to our application and we are using XFStrings for Cube Views and Dashboards. We want to present our custom BR error messages in the user's chosen language so we thought XFStrings would be a good place to keep them. However we don't know if it's possible and if it is possible, how to do it. We are currently using Transformation Rules for some other areas but we want to have a single place where the translations can be managed. Thanks
Hi,I have a data management step which runs an extensibility rule. In the rule I am using the “Throw New XFUserMsgException” command to return error messages.For example:Throw New XFUserMsgException(si,"","","Error: Copy cannot be completed. Source Scenario/Year must be different from target Scenario/Year")Gives the following result when conditions are met: When the step completes without error a box message appears, like the following one: How can I control the message shown when the step is successfully completed? I.e., how do I return a message in a box message without throwing an error?
Hi All,We have a requirement where we need to write a custom consolidation rule for Subsidiary(Method) entities.Kindly provide us with a sample business rule along with the functions to be used. so that we can modify as per the business need.Requirement:1) Subsidiary: Entity owned at = 57%.2) The Subsidiaries financial statements are consolidated and eliminated. 3) The Equity associated with the subs financial statements are eliminated against the Holding companies Investment in the sub. 4) The owned portion of Equity is eliminated and the unowned portion is reclassed to Minority Interestregards,BCG
Got a task to copy certain file from FileShare to Documents\Public because users security settings. Wanted to go with the standard System.IO.File.Copy(strSourceFile,strTargetFile) where source and targets are sting. Can get full source file path using the FileShareFolderHelper. However can't get full path to the target, that is under FileSystemLocation.ApplicationDatabase. Any suggestions how can I get the target path or otherwise copy the file in question?
Within the Extender business rule used to integrate with our ERP system I would like to loop through all the "Import" steps within a specific node of workflow hierarchy and to read the values of the "TextX" properties. I've heard that this is possible but have no idea where to start. Any guidance would be greatly appreciated. Yan
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.
Hi guys,I coudn't find the proper hint in OneStream.In my dashboards, I'm using several XFBR string rules or Dashboard extender rules. I would like to move some of them to Workspace assemblies, available starting version 7.4. If I do so, does anybody know how to call a function in there?Stupid example, I'm defining the position of a temporary file to download with an XFBR rule called MyXFBR, function CleanUsername.UrlOrFullFileName=[Internal/Users/XFBR(MyXFBR, CleanUsername)/Temp/FileToDownload.csv] Now I've created the same function CleanUsername in a Workspace assembly named MyAssembly, in a file named FolderManagement.vb. How this should be amended?XFBR(MyXFBR, CleanUsername)?? XFBR(MyAssembly, FolderManagement, CleanUsername) ?? it doesn't look very good.... That's pretty new, but I hope a few guys in this community have used it already.
Hello, did anyone find the OneStream Foundation Handbook useful for learning the software? the copy I see on amazon is from 2021. Are there different editions available? thank you.
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:
An allocation business rule is not allocating the rates properly . Hence we would like to debug the business rule and also figure out which intersections are passed and what is the value and allocation rate used in allocation calculation . This allocation process involves a formula in UD7 member . Please advise how to see the messages used in api.logmessage . Should we need to create a dashboard to capture the messages that are logged while running the allocations. Again, we are looking for which members used and the value / rate used to allocate.
Every dimension needs to be defined in each Transformation Rule Profile created. Question Credit: Chul Smith Is this statement fact or fiction? Comment your best guess below! Answers will be revealed in one week. * This question is applicable to Platform 7.3.0 and may not be relevant to future releases
I am trying to write a parser business rule to pull out the middle portion of a date string from a data source. The file has the date as "1-Jan-23" and I want to pull out the Jan. On the data source, I have the time dimension assigned to the proper column in the file. The month is always 3 characters, and the year is always 2 characters. I am getting an error that I am unable to execute the BR. Can I not use args.value for the starting point of my parser rule ? Dim filetime As String = args.Value Dim filetimelen As Integer = filetime.LengthDim startpos As Integer = filetimelen - 6Dim month As String = filetime.Substring(startpos, 3) Return month
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
Based on the XML, it looks like I need a reference to the OneStream.Shared.Wcf.CubeViewItem object that contains the CubeView. The CubeView object doesn't seem to have a property for it's Name.Does anyone know how to get the name of the Cube View currently calling a Cube View Extender from within the extender rule?
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")
Hello Experts, I have a requirement of calculating Cash_ADJ based a sum value of 2 different buffers. If the sum value is Positive I have to post a cash_adj with value from bufSrc2. Is it possible to filter Buffer 1 and write corresponding buffer 2 value to result buffer? Or the approach has to be completely changed for this requirement? If ((Not api.Entity.HasChildren()) And (api.Cons.IsLocalCurrencyForEntity())) Then Dim destInfo As ExpressionDestinationInfo = api.Data.GetExpressionDestinationInfo("A#Cash_ADJ") Dim bufSrc1 As DataBuffer = api.Data.GetDataBufferUsingFormula("A#Cash") Dim bufSrc2 As DataBuffer = api.Data.GetDataBufferUsingFormula("A#Loan") Dim bufSrc3 As DataBuffer = bufSrc1 - bufSrc2 Dim resultBuf As New DataBuffer () For Each newCell As DataBufferCell In bufSrc3.DataBufferCells.Values If Not NewCell.CellAmount > 0 Then Dim resultCell As New DataBufferCell(newCell) resultBuf.SetCell(si, resultCell, True) End If Next
Hi EveryOne!!!! Dim resultDataBuffer As DataBuffer = New DataBufferDim destinationInfo As ExpressionDestinationInfo = api.Data.GetExpressionDestinationInfo("")Dim dataBuffSource As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(F#myF,A#XYZ.Base)") For Each sourceCell As DataBufferCell In dataBuffSource.DataBufferCells.Values BRApi.ErrorLog.LogMessage(si,$">> {sourceCell.GetAccountName(api).ToString} {sourceCell.GetFlowName(api).ToString}" ) Executing the code above I would expect to get base level accounts of node XYZ with Flow Member myF. However, I am getting the base level accounts but the Flow member is XFCommon. XFCommon is not even a Flow dimension member! Any ideas what I am doing wrong !? Thanks!
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.