coalesce returns the first non-null source from a list of sources. This function is useful for providing a default value in case function returns a null value.
syntax: coalesce(source1, source2,...)
example: coalesce(cell(step1.selection, 0, "column1"), "green")
output: the output is the result returned by cell(step1.selection, 0, "column1"). However, if cell(step1.selection, 0, "column1") returns null, then the output is "green".
We can use cell, row and column function for binding, let's see them below:
cell
returns a single cell of data as a scalar, like "This salesperson rocks", 2, or null.
cell
returns a single cell of data as a scalar, like "This salesperson rocks", 2, or null.
syntax: cell(source, rowIndex, columnName)
An error occurs if the rowIndex is not an integer, the columnName is not a string, or the cell doesn’t exist in the table.
example: assume that following rows from the step.
[
{stateName: ‘CA’, Amount:100},
{stateName: ‘TX’, Amount:200},
{stateName: ‘OR’, Amount:300},
{stateName: ‘AL’, Amount:400},
]
Although Einstein Analytics doesn’t store this data as a table, let’s show the data in this format to make it easier to understand the example
(row index) | stateName | Amount |
0 | CA | 100 |
1 | TX | 120 |
2 | OR | 115 |
3 | AL | 105 |
sample function: cell(myStep.selection, 1, "stateName")
result: "TX"
column
returns one column of data (as a one-dimensional array) or multiple columns of data (as a two-dimensional array) -- allow users to select multiple values.
Syntax: column(source), [columnNames...])
Let's use a similar step with cell functions above
[
{stateName: ‘CA’, Amount:100},
{stateName: ‘TX’, Amount:200},
{stateName: ‘OR’, Amount:300},
{stateName: ‘AL’, Amount:400},
]
(row index) | stateName | Amount |
0 | CA | 100 |
1 | TX | 120 |
2 | OR | 115 |
3 | AL | 105 |
sample function: column(myStep.selection, "stateName")
result: ["CA", "TX", "OR", "AL"]
Let us continue with binding. There are two types of bindings: selection binding and results binding, the selection or results of one step triggers updates in other steps in the dashboard.
Let us continue with binding. There are two types of bindings: selection binding and results binding, the selection or results of one step triggers updates in other steps in the dashboard.
Selection binding is a method used to update a step based on the selection in another step. Selection bindings are interaction-driven, where it’s evaluated each time the user selects something in a widget.
Results binding is a method used to update a step based on the results of another step.
Results binding is a method used to update a step based on the results of another step.
syntax: {{ cell(<stepName>.<result|selection>, <rowIndex>, columnName>).<asString()|asObject()> }}
example: {{ cell(Static_Step_1.selection, 0, \"value\").asString() }}
--> 0 from above is from 1st row
--> {{ }} = binding
syntax: {{ column(<stepName>.<result|selection>, columnName>).asObject() }}
example: {{ column(Static_Step_1.selection, [\"value\"]).asObject() }}
If you saw that coalesce function is to return the first not null function, we can combine it in our cell binding.
{{ coalesce(cell(Static_Step_1.selection, 0, \"value\"), cell(Static_Step_1.result, 0, \"value\")).asString() }}
From the above samples, notice there are 2 other functions always used in binding: asString() and asObject().
asString() function serializes a scalar, one-dimensional array, or two-dimensional array as a string, escapes double quotes in strings.
syntax: <input data>.asString()
example: cell(stepOpportunity.selection, 1, \"measure\").asString()
--> 1 from above is from 2nd row
{{ cell(color_1.result, 0, \"color\").asString() }}
syntax: <input data>.asObject()
example:
{{column(static_1.selection, [\"value\"]).asObject()}}
{{column(static_1.selection, [\"value\"]).asObject()}}
{{cell(static_1.selection, 0, \"value\").asObject()}}
Reference:
No comments:
Post a Comment