Workfing with Records
The section outlines some tips and tricks you can use when working with records.
Checking for existence
In case where you wish to perform some task depending on the existence of records, you can use either of the following approaches.
Both approaches are valid and there is no benefit between using one or the other. Decide based on your preferences/context.
Approach A
When searching for records, tick the incTotal
option and assign the total
result value to a variable.
Inside the gateway, check if the total
value is greater then 0
.
You can find the source code for the workflow here.
Approach B
Inside the gateway, check if the count(items)
value is greater then 0
.
You can find the source code for the workflow here.
Create or update
When creating the record you need to call the compose record create
function, and when updating the record, you need to call the compose record update
function.
Only the highlighted portion performs the create/update check; the rest is boilerplate to get it to the desired state. |
If you need to call one or the other on-the-fyly, you can use the following approach.
You can use the record.recordID != "0"
to determine if the record needs to be updated — the default recordID
value is "0"
.
You can find the source code for the workflow here.
Removing the value
To remove some record value, use an expression step to set the value in question to an empty Any
.
You can find the source code for the workflow here.
Handling missing values
To use the default value in case the record value does not exist, you need to use the ??
operator.
To exemplify, using a ?? b
will return a
if it exists or b
if it does not.
The below example uses a variable as the default value.
You can use a constant such as |
You can find the source code for the workflow here.