Discuss formulas and business rules for your application.
Recently active
Hi, I'm trying to get the amount of an objDataCellInfoUsingMemberScript but I couldn't get the data, I'm trying this:objDataCellInfoUsingMemberScript = BRApi.Finance.Data.GetDataCellUsingMemberScript(si,"KemetFinRptg", "E#LEGAL_Y:C#Local:S#Actual_YAGEO_Fx:T#2022M1:V#MTD:A#702006:F#Top:O#Top:I #Top:UD1#0021:U2#Top:U3#Top:U4#Top:U5#Top:U6#None:U7#None:U8#None" )'String to convertDim stringToConvert As String = objDataCellInfoUsingMemberScript.DataCellEx '<-- Update string to be converted'Convert to double. Set to 0 if string if not able to be convertedDim dblValue As Double = stringToConvert.XFConvertToDouble(0)
Hi OS Community,We have custom business rule to manage Data cell access security (Slice security). We have created new row category(DHRStat_Fcst)select group and it should have Read access only to PLP register but issue is it also have write access to add or make changes to register (screenshot below highlight in yellow) which we are trying to retrict through BR. Custom BR code: Line 253-259 is it is for data cell read access for PLP registerLine 263- 264 is the code for write access for PLP register and we try to restrict by category, but it is still not working. If Not itemAccess.Category = "DHRStat_Fcst" AndAlso itemAccess.MemberFilters.Scenario.IndexOf(wfscenarioname) > -1 AndAlso brapi.Security.Authorization.IsUserInGroup(si, groupID) ThendashSet = "3b2b1w_RegisterMaint_PLP"End If Data access:I need help with the BR code change to restrict the write access to the particular Data cell category .Let me know if you need any more details.Appreciate your help!!
Hi All - I am trying to create a View using a Extender BR and It is compainling without any issue but when I try to execute it am getting the below error. Any help would be appreciated. Dim vSQL As New Text.StringBuilder() vSQL.AppendLine("CREATE View dbo.v_stageData AS SELECT WFP.ProfileName As WorkFLowProfileName, S.Sn AS SrcScenario, T.SnT AS TgtScenario, S.Tm AS SrcTime, T.TmT AS TgtTime, S.Et AS SrcEntity, T.EtT AS TgtEntity, S.Ac AS SrcAccount, T.AcT AS TgtAccount, S.Fw AS SrcFlow, T.FwT AS TgtFlow, S.Og AS SrcOrgin, T.OgT AS TgtOrgin, S.Cn AS SrcConsol, T.CnT AS TgtConsol, S.Ic AS SrcICP, T.IcT AS TgtICP, S.U1 AS SrcU1, T.U1T AS TgtU1, S.U2 AS SrcU2, T.U2T AS TgtU2, S.U3 AS SrcU3, T.U3T AS TgtU3, CAST(S.Am AS DECIMAL(18,2)) AS Amount FROM StageSourceData S INNER JOIN StageTargetData T ON S.Wfk=T.Wfk AND S.WtK = T.WtK AND S.Ri = T.Ri INNER JOIN WorkflowProfileHierarchy WFP ON WFP.ProfileKey = S.Wfk WHERE T.SnT = 'Actual' AND T.TmT = '2023M1' AND WFP.ProfileN
I have UD8 DynamicCalc members that calculate various Growth %s. These work as expected when the Account dimension member referenced in the formula has a normal Account Type (e.g., Revenue or Expense). It doesn't work when the Account Dimension member's Account Type is a DynamicCalc.Any tips on how to solve for this? We can workaround this with some math in Cube Views, but would love to have a workaround for XFGetCell and Quick Views.
Hi, I am currently working on creating a ParamHelper business rule to be used in a CubeView. The goal is to have the S#scenario driven by the time dimension parameter selected by the user, rather than by the workflow time. For example, if T# contains M1, the scenario that should be returned is S#Projection. I would appreciate any pointers or guidance. Thanks in advance for your help!
Is there an easy way, to copy data from one cube to another (with different dimensionality)
Hello communityI have quite a stupid question. We have two functiont types for Member Lists, MemberListHeaders, MemberList.I couldn't figure out what the purpose of MemberListHeaders is. If I define a list in "MemberList" without having it in "MemberListHeaders", everything works fine. And if I add a list to "MemberListHeaders", it's not popping up anywhere in the application, as far as I saw.I was expecting something like in HFM: the Headers was used to display the list in a dropdown from which the user was able to select it, while the "List" was the place where the list was defined.I'm sure there's a use for MemberListHeaders, but I haven't gotten yet.Marco
Hello,I'm trying to create a transformation rule for a specific entity that if it's a specific account (6189) it would go into a specific UD3. I'm not sure how to do this because there's 2 specific criteria needed, instead of being a 1:1. I'm new to OS, so all the tips and tricks help!Thanks,Will
Hi,I have a custom SQL table for people planning and want an ID field as my primary key. (The existing fields that would be good for a primary key need to editable (e.g. entry date) so I cannot use a set of existing fields as my primary key. Setting a field as a primary key makes that field not editable.) My question is how to set a field's default with a SQL code, "select NEWID()" which generates a unique code? I tried creating a parameter as a Bound List and SQL code with this query but when the dashboard with the SQL table editor is opened I get a pop up window asking for an input for this parameter. How are primary keys normally handled in this case? Thanks.
Hi all,I'm developing a dashboard that will likely be used by 10 different people. I'd like to lock the access to other users if one user has the dashboard already open (and maybe until he/she clicks on a button to unlock it?)Does anyone have a reliable approach to do this?Thanks in advance!
Hi I have created a member list on Account dimension members to pull accounts with Account type "Balance Recurring". Now I need to use this member list in Finance BR - Calculate Function Type to loop through this member list and copy data from December to Jan.I would like assistance on the syntax to filter by this member list on a data buffer function to pull the December data. Also I would like to know whether the member list will be executed one time and stored in the memory and used across all entities OR will it be executed for each entity when it runs through the consolidation process?I want to make sure using member list to achieve this data copy is performance efficient than directly filtering the members within the Finance Calculate BR using api.Data.GetDataBufferUsingFormula("RemoveNoData(FilterMembers(A#Root.Base.Where(AccountType = 'BalanceRecurring')
Hi ! I want to confirm a data management behaviour... Right now I have data in a driver on Entity 9999, that I need in order to calculate data on entity 1032. The output should be on entity 1032. I am using a data management job where the DUCS are set for Entity 1032. However when I run the DM, my data buffer is not getting any data for Entity 9999. I think somewhere someone mentioned that using SetDataBufferVariable you can retain data in the whole Data Management sequence, so I tried to change the Data Management DUCS to "E#9999, E#1032". But the variable seem to be cleared when cycling to the second entity. Then my question is : How can I get my data buffer to "read" data from another entity (E#9999) when my data management job run on E#1032 ? Here's my code which obviously doesn't work at the moment. The goal is simply to have databuffer1 get data from Entity 9999, and databuffer2 to get data from current entity 1032: Dim dbr1 As DataBuffer = NothingIf api.Pov.Enti
Hi all,I'm working on a Business rule that will be triggered as soon as a user clicks on a button within a dashboard.Is there a way to retrieve the Username of the user that clicks on the button? Thanks in ad
Hello - is there a way to make the below work inside GetDataBufferUsingFormula .Getting Error processing script 'V#Periodic:F#EndBal_Input:A#:U1#USF02'.Dim SrcDataBuffer As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(V#Periodic:F#EndBal_Input:S#Actual:T#" & sLastActMth & ":U1#" & mCostCenter.Member.name & ",[A#[PNL].Base.Where((Name StartsWith '4') or (Name StartsWith '5') or (Name StartsWith '7') or (Name StartsWith 'X'))], [U3#[TopUD3].Base],[U2#[TopUD2].Base])").Looks like not recognizing filter with 'or' inside where clause. Below works fine without an 'or' condition.Dim SrcDataBuffer As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(V#Periodic:F#EndBal_Input:S#Actual:T#" & sLastActMth & ":U1#" & mCostCenter.Member.name & ",[A#[PNL].Base.Where(Name StartsWith '4')], [U3#[TopUD3].Base],[U2#[TopUD2].Base])").
Hey all, I'm struggling to figure out how to define a TableViewColumn to be of type Decimal instead of the default type being Text. I'm in the section where I create a TableViewRowHeader and adding TableViewColumns to it. I can create a new column: Dim myTableViewColumn As New TableViewColumn myTableViewColumn.Name = "Col1" But when I try to set the type to this column, I get an error " Input string was not in a correct format." when trying to retrieve the table: myTableViewColumn.DataType = XFDataType.Decimal Is this syntax correct? I'm assuming that it's in the column definition where I should be defining the datatype but now not so sure. Hopefully someone can point me in the right direction. As a side note, page 15 in the Table Views User Guide makes reference to a function called CreateTableViewColumn. Is this a custom function or part of the OS library. The compiler doesn't recognize this function.
Is there any way we can use the transformation profile one to one mappings in a data table. Preferable to use in a connecter Drill back code. Is there any Data base table for the same.If not, we have a create a custom XFC table in application DB to refer the same that replicates the transformation profile.
Hi all,the SetDataCell command I am trying to use is behaving in a strange way and I would like to check if that is a bug, if it is by design, or if I may be doing something wrong.I am trying to use the SetDataCell command to clear data on the Origin=Forms. The command looks like this (it is part of a custom calc rule):'Clear data on the Form memberapi.Data.SetDataCell("Cb#Main:E#" & MainPovEntity & ":S#" & MainPovScenario & ":A#AC410000:U1#None:U2#None:U3#" & UD3Name & ":U4#None:U5#Local_GAAP:U6#None:U7#None:U8#None:O#Forms", 0, True)Now, if the UD3 member which I am trying to clear has data on the Origin=Import member, the Forms member is correctly set to zero by the rule. However, if the UD3 member has no data on the Origin=Import member (on that specific Pov intersection defined by the rule above), the Forms member retains its value. Anyone else experienced this behavior? Thank you
Hi, I'd like to use the ClearStageData function within a business rule. I am already successfully using other similar functions like ExecuteParseAndTransform or LoadCube. This is the sample given within OneStream: Dim objLoadTransformProcessInfo As LoadTransformProcessInfo = BRApi.Import.Process.ClearStageData(si, wfClusterPk, sourceId) The issue I have with the ClearStageData function is that I don't understand what I should pass as sourceId. Can any of you clarify it or point me to any relevant documentation? Thank you
The below code copy the Prior Period FX Rates from one Type to Another. This will read the currency from the application properties. I have hard coded the Period but you can use WF or Global or Param and call in the DM/Dashboard. 'Get the Period Dim CurrentPeriod As String = "2021M1" Dim PriorPeriod As String = "2020M12" 'Get Currency from properties Dim objAppProperties As AppProperties = BRApi.Utilities.GetApplicationProperties(si) Dim currency() As String = objAppProperties.CurrencyFilter.Split(",") 'Add FX rates For Each c As String In currency Dim fxRatePkUsingNames As New FxRatePkUsingNames("AverageRate", PriorPeriod, c.ToString, "USD") Dim objFxRateUsingNames As FxRateUsingNames = BRApi.Finance.Data.GetStoredFxRate(si, fxRatePkUsingNames) If objFxRateUsingNames.Amount > 0 Then Dim fxTargetRatePkUsingNames As New FxRatePkUsingNames("ActPriorMon", CurrentPeriod, c.ToString, "USD") Di
We have a dashboard with a button that displays a dialog for user entry. The base dashboard has a cubeview that needs to refresh based on the values modified via BRApi.Finance.Data.SetDataCellsUsingMemberScript() calls. We are using a XFSelectionChangedUIActionType.CloseDialog task result to close the user entry dialog. Is there a way to programmatically refresh the base dashboard?
I need to test if a workflow channel is locked in a BR before performing the BR actions. Can I test if the channel is locked? How?
The display of the parameter shows 2 Accounts selected but when retrieving the parameter in the business rule only the first one is passed.If I display the list box selections on the dashboard it shows the correct selections, comma separated.If a comma is in the string that is passed to the Business rule, only the information before the comma is recognized. If there is no comma, the whole string is recognized. Label:Copy '|!Prm_SourceScenario_QMC!|' To '|!Prm_TargetScenario_QMC!| ' For A# '|!Prm_SourceAccount_QMC!|' , T#'|!Prm_SourceTime_QMC!|' , V#'|!Prm_SourceView_QMC!|' , F#'|!Prm_SourceFlow_QMC!|' Button:{CopyQuorumToForecast_QMC}{Prm_SourceScenario_QMC=[|!Prm_SourceScenario_QMC!|], Prm_TargetScenario_QMC=[|!Prm_TargetScenario_QMC!|], Prm_SourceAccount_QMC=[|!Prm_SourceAccount_QMC!|], Prm_SourceTime_QMC=[|!Prm_SourceTime_QMC!|], Prm_SourceView_QMC=[|!Prm_SourceView_QMC!|], Prm_SourceFlow_QMC=[|!Prm_SourceFlow_QMC!|]} &n
Hi Experts,I want to limit my cons member only to "Elimination". can I use "api.pov.cons.Name.XFEqualsIgnoreCase("Elimination")"
Hi Experts,When do we exactly use DataBuffer1, DataBuffer2 in rules. while we have databuffer in api.much appreciate if one example can be provided atleast
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
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.