Recent Discussions
TransformationEventHandler - Adding new member to main and Alternate hierarchy
Is it possible to add members to both main and alternate hierarchies using EventHandler from source. Was not able to achieve using existing code. Below code is being used to add new members from source to the Flow dimension which works for main hierarchy but not adding under Alternate hierarchy, any help is appreciated. The new member needs to get added under both parents below Dim flowDimName As String = "Product_Attributes" Dim flowMF As String = "F#TopProductAttributes.Base" Dim flowLookup As Dictionary(Of String, MemberInfo) = Me.CreateMemberLookupUsingFilter(si, flowDimName, flowMF) Dim ExistflowLookup As List(Of MemberInfo) = BRApi.Finance.Metadata.GetMembersUsingFilter(si, flowDimName, flowMF, True) Dim flowAddedMembers As New Dictionary (Of String, String) 'Set the parent to add new FLOW Members under Dim tFlowColIndex As Integer = (objTransformer.TransformerDimensions(StageConstants.MasterDimensionNames.Flow).DataTableColumnIndex) + StageConstants.TransformationColumnIncrements.Target '****************Start adding new members********************************************* 'Loop over all pages in the cache If objTransformer.DataCache.Pages.Count > 0 Then 'Move to the first page objTransformer.DataCache.MoveFirstPage(si) 'BRAPI.ErrorLog.LogMessage(si,"Add member Yes: Line 223") 'Process All pages in the data cache For intPageNo As Integer = 0 To objTransformer.DataCache.Pages.Count - 1 'Set the current data page objTransformer.DataCache.ActivatePage(si, intPageNo) 'Process each row in the data table on this page for each dimension we are checking For Each row As DataRow In objTransformer.DataCache.CurrentPage.PageDataTable.Rows ' BRApi.ErrorLog.LogMessage(si, "Line 123") 'Check the target Flow Value Dim targetFlow As String = row(tFlowColIndex) Dim flowDesc As String = "" '*** Product Attribute Description *** Dim flowMember As String = row(tFlowColIndex) 'Determine Flow Parent member Dim flowParent As String = "NA_RELEASE_STATUS" 'Determine Flow Parent member Dim flowParent As String = "NA_RELEASE_STATUS" If (Not row(tFlowColIndex) Is Nothing) Then If flowMember.XFContainsIgnoreCase("NOT_RELEASED~AUTOMOTIVE") Or flowMember.XFContainsIgnoreCase("NOTRELEASED~AUTOMOTIVE") Then flowParent = "NOT_RELEASED" ElseIF flowMember.XFContainsIgnoreCase("NOT_RELEASED~AUTOMOTIVE") Or flowMember.XFContainsIgnoreCase("NOT_RELEASED~AUTOMOTIVE") Then flowParent = "AUTOMOTIVE" End If End Iffellow_Ones6 days agoNew Contributor III19Views0likes0CommentsUse Data Adapter in a Different Workspace
I'm looking copy an existing data adapter (screenshot below) from the RCM solution into a different workspace and use it within BI Viewer for custom dashboards. I believe the 'GetReconsWithStatusGridView' function is stored within the 'Services' assembly folder and 'ReconService.cs' is the file within the folder that needs called. I have 'Is Shareable Workspace' set to True. Since the method query references WSMU, I need to update that in order to properly call the underlying business rule. That's the part I'm having trouble with. I've tried a wide variety of syntax to no avail. Examples: {Workspace.OFC.RCM}{GetReconsWithStatusGridView}{AccountFilter=...} {Workspace.OFC.RCM.Services}{GetReconsWithStatusGridView}{AccountFilter=...} {Workspace.OFC.RCM.Services.ReconService}{GetReconsWithStatusGridView}{AccountFilter=...} Does anyone know the proper syntax to place in my copied data adapter? Are there any other steps I need to take to properly reference this business rule? Thanks!aricgresko13 days agoContributor III33Views0likes0Comments- AtharvaKabade17 days agoNew Contributor62Views0likes3Comments
Show Plug Account property for an Account on UD
The below code returns the Plug Account name for an Account, taken from the Plug Account property on the Account It is a DynamicCalc on UD8. Set up a U8 member, f.ex. "YourName" Api.Account.GetPlugAccount returns a long string that contains the Plug Account Name For each Account that has a Plug Account, the string will contain "DimId: 22", so this can be used as filter. The Plug Account name will be stated directly after "Name: ", so this can be extracted from the string. In the below example, "NA" is returned where there is no Plug Account. The Plug Account Name will be shown when using V#Annotation:U8#YourName on Accounts ---------------------------------------------- Dim AccPlugAccName As String = "" ' Fetch the Plug Account property Dim fetchedValue As String = Api.Account.GetPlugAccount(Api.Pov.Account.MemberId)?.ToString() ' Check if the fetched string is not null/empty and contains "DimId: 22" If Not String.IsNullOrEmpty(fetchedValue) AndAlso fetchedValue.Contains("DimId: 22") Then ' Extract only the value after "Name: " and before the next comma Dim startIndex As Integer = fetchedValue.IndexOf("Name: ") + "Name: ".Length Dim endIndex As Integer = fetchedValue.IndexOf(",", startIndex) AccPlugAccName = fetchedValue.Substring(startIndex, endIndex - startIndex).Trim() Else ' Assign "NA" if the condition is not met AccPlugAccName = "NA" End If ' Return the result Return AccPlugAccNameDJ22 days agoNew Contributor13Views0likes0CommentsFDX filter not working
I am trying to extract cube data using FdxExecuteDataUnit however, the filter does not seem to be filtering any data. Any ideas what the issue could be? I am seeing multiple flow members in the data table. Is there also a way to do all base members for a dimension? Dim dt As DataTable Dim cbName As String = "FinConsol" Dim ent As String = "E#124" Dim cons As String = "C#Local" Dim scen As String = "S#Actual" Dim time As String = "T#2025M1" Dim view As String = "V#YTD" Dim filter As String = "Origin='Import' AND Flow='EndBalInp' AND Account = 'NetInc' AND UD7 = 'GL_Load'" dt = BRApi.Import.Data.FdxExecuteDataUnit(si, cbName, ent, cons, ScenarioTypeId.Actual, scen, time, view, True, filter, 1, False)Samwise24 days agoNew Contributor II24Views0likes2Commentsaccount is not translating
Good afternoon, I need help with translating a balance account. We set it up to calculate job to date and load its local currency value, then I wanted to translate it using a job to date rate (also setup as the balance account). The formula attached to the account is for every foreign base entity executes this: api.Data.Calculate("A#JTD_COST:V#YTD:F#EndBalLoad:U8#None:C#USD = RemoveZeros(A#JTD_COST:V#YTD:F#EndBalLoad:U8#None:C#Local * A#JTD_FX_RATE:V#YTD:F#EndBalLoad:U8#None:C#Local)",,,,,"U1#Active.base") The problem is that when I set the original account with Formula Pass then I get an error during the consolidation suggesting the invalid destination data unit in script. When I don't attach any Formula Pass then nothing happens at all. Any suggestions what I miss or how else balance accounts can be translated? Thank you, OlaOlaWidera25 days agoNew Contributor II65Views0likes4CommentsCall Assembly Business Rule from another Workspace in a Data Management Step
I'm looking to call a business rule that is located in a different workspace within Assemblies but am unsuccessful. The first screenshot below shows my DM step configuration. The business rule I'm trying to call is an out-of-the-box rule within the Financial Close solution. The second screenshot shows the workspace (namespace prefix = OFC), the assembly (RCM) and the business rule (DiscoverRecons). The third screenshot shows the tool tip when you hover over "Business Rules" on the DM step. I've attempted many variations of the yellow highlighted syntax, always returning an invalid business rule error. The fourth screenshot shows the out-of-the-box DM step I'm emulating. I used this to verify the parameters I'm passing in work which they do. I've ensured that both the current workspace and OFC workspaces are sharable and include the shared workspace names. Does anyone know the correct syntax to call this rule into my DM step?aricgresko2 months agoContributor III109Views0likes7CommentsProcess Cube automation
We have a business rule that, after loading data, runs a Process Cube. When using this with the batch harvest API, it behaves pretty much as expected in that, after the process is complete, it returns a status and execution time and all that. However, I have grown to dislike the file clutter that results from years and years of harvest file processing and I'm updating the code to use the BRApi.DataQuality.Process functions. Both ExecuteProcessCube and StartProcessCube can be used for this with the main difference being the objects needed to kick them off and the object types they return: Start returns a TaskActivityItem and Execute returns ProcessCubeProcessInfo. Superficially, I could walk away from this effort right now and it would work but I've noticed one really annoying issue: neither returns a real status of the process itself. This appears to be because our Process also runs a Calc. Both Start and Process "succeed" nigh-instantly while the Calc continues to run for five more minutes. I'd rather prefer to wait, monitor the calc, and only send the notification of the full load/calc being complete when it's... actually complete, you know, the way it already works with the harvest automation method. So, am I using these tools incorrectly? Have I missed an obvious feature? The fact that they both seem to have effectively the same behavior actually makes me think one of them should behave differently than the other by stopping, waiting, and observing before returning a status and its failure to do so is a bug. Could I perhaps use one of these returned objects to sniff out the calc and monitor it manually?photon2 months agoContributor72Views0likes8CommentsHow to call a workspace assembly service from another workspace assembly service ?
Dear community, One of my use case is to create a function that I would commonly use in any other workspace. I haven't seen a community message about it, and the documentations does not specify how to do so, so here's the use case : I have a Workspace A (name: WorkspaceA), with an assembly named WA_Assembly, and in it are my services & functions that I want to reference and use. I have a Workspace B, where I need to call the functions from Workspace A. SOLUTION : Create a new dependency in Workspace B : Dependency Type : "Workspace Assembly" Shared Workspace Name : WorkspaceA Dependency Name : WA_Assembly Then, in a given Workspace B service, use Imports Workspace.WorkspaceA.WA_Assembly (vb.net) or using Workspace.WorkspaceA.WA_Assembly (C#) for referencing the Shared Public Functions. Then you will be able to use these functions in another workspace ! Just adding this message for future references :)Sergey2 months agoOneStream Employee47Views2likes1Comment