Conditional Expressions
The Generate Documents action in PDF4me lets you use conditional expressions to populate data into templates. Based on the status of a condition, dynamic data can be added to a document. You can even combine expressions to satisfy multiple conditions before a particular data is filled.
If else condition syntax
A basic syntax of how an if-else condition can be used in a document -
<<if [condition1]>>
Add first data
<<elseif [condition2]>>
Add second data
<<else>>
Add third data
<</if>>
Let us look at an example to understand the condition better -
We can configure a template with a condition to see if an Invoice is paid or not. If it is paid, a particular data is filled, else an alternate data. If both the above conditions are not satisfied a third data can be filled.
Let us look at the below condition -
<<if [invoicePaid == false]>>
The invoice has not been paid.
<<else>>
The invoice has been paid.
<</if>>
Prepare the data for the above condition in the following way
{
"VendorName": "Ynoox GmbH",
"InvoicePaid": false,
"InvoiceDue": "15-09-2022",
"InvoiceAmount": 1200,
"InvoiceDate": "01-09-2022"
}
Advanced Conditional Structure
Now, let us look at a more advanced condition for validating the data and populating a result with a dynamic date. Prepare a templated with the following condition -
<<if [invoicePaid == false && paymentDue < generatedOn]>>
The invoice is unpaid and overdue.
<<elseif [invoicePaid == false && paymentDue > generatedOn]>>
The invoice is not paid and due on <<[invoiceDue]:"dd.MM.yyyy" >>
<<else>>
The invoice is paid.
<</if>>
The data for testing the above condition can be created in the following JSON format -
{
"companyName": "Ynoox GmbH",
"invoicePaid": false,
"paymentDue": "15-09-2022",
"generatedOn": "15-08-2022",
"invoiceValue": "$1200"
}