Forum Discussion
Davy
3 years agoContributor
view the POV of the datacell executing BusinessRule.DashboardStringFunction XFBR business rule?
How do I view the POV of the datacell executing BusinessRule.DashboardStringFunction XFBR business rule? I think I can run this statement: Dim viewMember As ViewMember = ViewMember.GetItem(api.Pov....
- 3 years ago
It is an UD8 member formula and it has to be used together with a text view member like annotation:
The member formula might look like this:
' Test if the cell is a text-based dataCell. If api.View.IsAnnotationType() Then 'Has the cell a cell text or an attachement? If Not api.Data.HasDataAttachments("O#Forms:V#Periodic:Ud8#None") Then 'Retrieves the cells to test Dim amount As DataCell = api.Data.GetDataCell("O#Top:V#Periodic:UD8#None") Dim budget As DataCell = api.Data.GetDataCell("O#Top:V#Periodic:UD8#None:S#BudgetV2") 'Calculate the variance percent Dim variance As Decimal = (amount.CellAmount - budget.CellAmount ) / budget.CellAmount 'Is there a negative variance? If variance < 0 Then Return "<== Explantion Required" Else Return Nothing End If Else Return Nothing End If End If Return Nothing
ChristianW
OneStream Employee
3 years agoThe XFBR function in a cubeview, will be resolved before the system retrieves the datacells, so there is no way for the rule to get the POV of a cell (because it doesn't exist yet).
The problem are dynamic queries like A#IS.descendants, when the xfbr is executed, the query isn't resolved yet.
There are several ways to work around this limitation, can you help us to understand, what you try to achieve?
Davy
3 years agoContributor
I am asked to color a cell yellow if a user added annotation into that cell. This cell stores annotations of users who enter an explanation for why there is a variance on the row of that cell.
You just told me that I have to use a formula or a finance rule as I need the cell POV before I can retrieve the contents of the cell to see if it has text.
Koemets wrote this:
Annotations are attachments by nature, so they can't be treated as regular data cell in your code. So you need to attach them to the respective datacells> Koemets
Someone recommended the following lines of code. Do you have a better suggestion?
Dim yourText As String = api.Data.GetDataCellEx("A#variance:U8#CommentAvB").DataCellAnnotation
api.Data.SetDataAttachmentText("A#variance:U8#CommentAvB",yourText,False) ‘I don’t even know what this line does
If yourText.Equals(String.Empty) Then
' color cell pink to show that user entered text into this cell
Return "Pink"
- ChristianW3 years ago
OneStream Employee
Why are you not just showing the annotation in a column next to the data?
You solution with a pink cell is probably possible, but I need to know the dimensions in the rows and the columns. Today is a little late in Europe to start such a project, but I will try to build something this week.
- Davy3 years agoContributor
I have a very simple CubeView - cells under "Reason code" column have these dimensions:
U8#CommentAvB , V#ANNOTATION
Each row is a dept - they have to explain why there is a large variance.
Please don't bother to build something for me -if you are very busy. I learned from news that Europeans value their life-after-office hours, which I totally agree with ; so please don't work overtime for me.- ChristianW3 years ago
OneStream Employee
Would something like this work as well:
It is a dynamic calc member formula showing the message, if a required cell hasn't a comment.
Related Content
- 3 years ago
- 7 months ago
- 3 years ago
- 9 months ago