Appfarm Documentation
Getting startedDocumentationCommunityAppfarm Create
  • Overview
  • Getting Started
    • What is Appfarm?
    • Key concepts
    • Quickstart
      • Speed intro
      • Step-by-step guide
    • Appfarm Showroom
    • FAQ
  • Appcademy
    • Learning paths
    • Appfarm Fundamentals
      • Intro Course
        • 1. Intro to No-Code and Appfarm
        • 2. Navigation in Appfarm Create
        • 3. What is Apps?
        • 4. Intro to UI Editor
        • 5. Data Model
        • 6. App Data
        • 7. Actions
        • 8. Tips and Tricks
        • 9. Intro to practical walkthrough
        • 10. Create a details view of a Project
        • 11. Create a Custom List
        • 12. Swipe and Delete
        • 13. Functionality for simple Create of Data
        • 14. Upload and Download Photos
        • 15. Input Dialog with Validation and Save
        • 16. Dashboard
        • 17. Summary
        • Quiz
      • User Interface Fundamentals
        • Container - Sectioning, Styling and Repeating
        • Conditional Styles
        • Motions
        • Responsive Design
        • Step-by-step workflow
        • Featured UI Components
        • Quiz
      • App Data Fundamentals
        • Data Source Filtering
        • App Variables and Runtime Properties
        • URL Parameters
        • Quiz
      • Actions & Logic Fundamentals
        • Event Handlers
        • Featured Action Nodes
        • Context Parameters
        • Quiz
      • Services Fundamentals
        • Introduction to Services
        • Setting up a Service
        • Scheduling a Service
      • Integration Fundamentals
        • The web request action node
        • Fetch data from an endpoint
        • Map data to a data source
        • Modify the response
        • Nested data mapping
        • Path parameters
        • Authentication
        • Send data to an endpoint
        • Quiz
      • User handling and permissions
        • Users and roles
        • Permissions
        • Creating users
        • Extending the User object class
        • Updating and deleting users
        • Unauthenticated access
        • Quiz
    • Appfarm Professional
      • User Interfaces
        • Featured UI Components
        • Concepts and Use Cases
      • Data Structures & Data Handling
        • Data Features
        • Search & Filters
        • Featured Action Nodes
        • GraphQL
      • Logic & Flow
        • Logical Concepts
        • Date and Time Handling
        • Featured Action Nodes
        • Exception Handling
      • Login & Configuration
        • Login and Authentication
        • Settings, Configuration and Languages
      • Security & Operations
        • Security and Permissions
        • Deployment
        • Schedules and Logs
        • Debugging and App Health
      • Performance & Optimization
        • Optimizing Performance
        • Enhancing Functionality
    • Appfarm Sales Representative
    • Appfarm Developer Forum
      • Session 1: Data Modeling in Appfarm Create
      • Session 2: App Data in Appfarm Create
      • Session 3: Services in Appfarm Create
      • Session 4: Optimizing Performance
    • Background
      • Databases
        • Data modeling 101
        • Database normalization
  • Library
    • UI components
      • Advanced bar chart
      • Advanced bubble chart
      • Advanced combined chart
      • Advanced gantt chart
      • Advanced heatmap chart
      • Advanced line/area chart
      • Advanced pie chart
      • Advanced scatter plot chart
      • Advanced solid gauge chart
      • Animated component
      • Avatar
      • Avatar group
      • Basic bar chart
      • Basic gauge chart
      • Basic line chart
      • Basic pie chart
      • Bottom navigation
      • Button
      • Checkbox
      • Chip group
      • Circular progress
      • Coded component
      • Container
      • Date & time picker
      • Drawable canvas
      • Floating action button
      • Icon
      • Icon button
      • Iframe
      • Image
      • Linear progress
      • List
      • Map
      • Menu list
      • Multi select
      • PDF reader
      • Popover
      • Radio buttons
      • Rich text editor
      • Rich text
      • Select
      • Slider
      • Speed dial
      • Switch
      • Table
      • Tabs
      • Text
      • Text edit
      • View container
      • Visibility group
    • Action nodes
      • Aggregate data
      • Advanced search
      • Auth operations
      • Block
      • Catch exception
      • Copy to clipboard
      • Create file archive
      • Create file object
      • Create object
      • Create user account
      • Delete objects
      • Delete user account
      • Duplicate objects
      • End execution
      • Exit block
      • Exit loop
      • Export data
      • Foreach
      • Generate document
      • If
      • Import data
      • Invalidate cache
      • Log in
      • Log to console
      • Log out
      • Next iteration
      • Navigate
      • Open/close popover
      • Open confirm dialog
      • Open print dialog
      • Open snackbar
      • Open Unsplash dialog
      • Open URL
      • Persist objects
      • Push notifications
      • Read objects
      • Request permissions
      • Run code
      • Run other action
      • Run service
      • Scan barcode/QR code
      • Send email
      • Send SMS
      • Set client language
      • Set data source attributes
      • Set selection
      • Set theme
      • Set user account image
      • Show install app prompt
      • Sleep
      • Sort objects
      • Throw exception
      • Toggle drawer
      • Update object
      • Update secret
      • Update user account
      • Web request
      • While
  • Reference
    • Appfarm Create
      • Appfarm Commander
      • Blue dots
      • Copy & Paste
      • Farmer's Market
      • Find references
      • Find usage
      • Keyboard shortcuts
      • Undo/Redo
      • User preferences
    • Platform concepts
      • Conditions
      • Data bindings
      • Date and time
      • Event handlers
      • Filters
      • Functions
      • Markdown
      • Objects
      • Operators
      • Value processor
    • Dashboard
    • Apps
      • UI
        • Views
          • Dialog
          • Drawer
        • Layout designer
        • Component properties
        • Shareable UI components
      • Data
        • App variables
        • Data sources
        • Calendar data sources
      • Actions
      • App settings
      • App size
      • App health
    • Services
      • Service Endpoints
      • Service settings
      • Service health
      • API explorer
    • Data model
      • Object classes
      • Object class properties
      • Enumerated types
      • GraphQL
        • Queries
        • Mutations
      • Data Extract API
      • Time series data
    • Operations
      • Deploy
      • Schedules
      • Logs
    • Resources
      • Themes
      • Files
      • Fonts
      • Internationalization
    • Configuration
      • Environments
      • Login
        • Custom auth providers
    • Security
      • Users
      • Service accounts
      • Roles
      • Secrets
      • Permissions
        • Conditional Permissions
    • Appfarm Client
      • Developer tools for Apps
      • Developer tools for Services
      • Warnings and errors
  • How to
    • Data modeling
      • Many-to-many relationships
      • Use naming conventions
      • Offline data handling
      • Data silos and White labelling
    • User interface
      • Manage a many-to-many relationship with a Chip group
      • Configure drag and drop
      • Build a drag-and-drop calendar
      • Design a responsive layout
      • Work with flexbox
      • Use Mapbox as a map layer
      • Understand charts
    • Logic and flow
      • Event Log Design
      • Configure advanced search
    • Themes and styling
      • Change the active theme
      • Add custom email templates
    • Enhance your app
      • Add deep links
      • Add keyboard shortcuts
      • Add link previews for social media
      • Apply SEO best practices
      • Change the active language
      • Generate a PDF from a Container
    • Integrations
      • Integrate with external systems
      • Integrate with OpenAI
      • Integrate with Google Analytics (GA4)
      • Configure a custom email account
      • Integrate with a payment provider
      • Integrate with Signicat
      • Integrate directly with an external database
      • Retrieve a Bearer token from Google Cloud
      • Fetch data from BigQuery
      • Retrieve access token from Microsoft Entra ID
    • Workflow automation
      • Update an OAuth 2.0 access token from a service
    • Authentication and access control
      • Add users and assign roles
      • Configure unauthenticated access
      • Implement third-party authentication
    • Security, testing and deployment
      • Add a custom domain
      • Install an app on a device
      • Get ready for Production
      • Optimize performance
      • Security checklist
      • Test and debug
    • Example apps
      • Create an Instagram clone
        • The end result
        • Designing the feed
        • Create new post
        • Add a like-button
        • Add comment-functionality
  • Solution administration
    • Subscription and billing
    • Dedicated tier benefits
    • Guide to GDPR
      • Key principles
      • How Appfarm protects personal data
      • How you can protect your clients’ data
      • Glossary
    • Appfarm and the EU AI Act
  • Policies
    • Appfarm Policies
    • Data Processors
    • Privacy Policy
Powered by GitBook
On this page
  • Condition editor
  • Cardinalities of left and right side operands
  • Advanced conditions

Was this helpful?

Export as PDF
  1. Reference
  2. Platform concepts

Conditions

PreviousPlatform conceptsNextData bindings

Last updated 1 year ago

Was this helpful?

Conditions are used to compare values at runtime and add dynamic behavior to your apps. They are configured in the same way as , but a condition will always return a true or false value. Conditions can be implemented when designing the (for example to set the Visibility property of a component), or building logic in (for example in an ).

To build conditions, you should also be familiar with .

Condition editor

Conditions are constructed using the condition editor. The most basic condition is a single expression made up of a left operand, an operator, and a right operand.

In the example below, the left operand is Ticket.Status, the operator is Equals and the right operand is New. The condition is evaluated at runtime and if the status of the ticket is new, the condition will return true.

A condition can also consist of multiple expressions. When you add an additional expression the new expression is compared to the previous expression with an AND operator. This means that both expressions must equate to true for the condition to return true. You can click the operator to toggle to OR and in that case, if either expression equates to true the condition will return true.

In the example below, the ticket status must be new and the description must contain a value (not empty or null) for the condition to return true.

Expressions can be combined within groups, and the result of the expressions within a group can be compared.

In the example below, the ticket status must be new and the description must contain a value (not empty or null) or the ticket must have been created prior to the start of the 2022. If either of these equate to true the condition will return true.

You can add a comment to a condition, and it can be useful to describe how a condition works when it contains many expressions.

Cardinalities of left and right side operands

Here are some example setups of valid conditions, given the following data sources:

  • Person (Cardinality One)

    • With a property Department (with cardinality One)

    • With a property Tags (with cardinality Many)

  • Departments (Cardinality Many)

  • Tags (Cardinality Many)

Example 1

Example 2

This example is similar to example 1, but the right side is a single property itself. App Variables is in fact a single cardinality Data Source, and we've added a variable Selected Department to it.

Example 3

In the above example, the left operand is a single value, similar to the previous examples. However, since the operator EXISTS IN is used, the right side is multiple values. In this case, the right side is a list of the IDs of the selected object in the Departments Data Source.

Example 4

Example 5

In the above condition, we check if the Person.Tags list contains some of the selected objects in the Tags data source.

Advanced conditions

The right operand may be a single value/object or a list of values/objects, whereas the left operand may only be a single value or object, except in the case where the left operand is a property with (see example 5).

In the above example, the left operand is a single value. Since the EQUALS-operator is used, the right operand must be a single value. The right operand is treated as a single value if the Departments Data Source has a single , or if the Departments Data Source has a (i.e. this condition is placed inside an iterator, such as inside a Foreach action node, looping the Departments Data Source).

In this example, the left operand is still a single value. However, since the Departments Data Source has cardinality many, the above expression is only valid if the Departments Data Source has a single , or if the Departments Data Source has a (i.e. this condition is placed inside an iterator, such as inside a Foreach action node, looping the Departments Data Source).

In this example, we have a condition towards the multi-reference property Person.Tags. You may read more about multi-references if you are new to the concept, but in general, it is just a list of IDs (referencing 0 to many Tags in this example).

You may read more about these multi-reference operators (Has All Of, Has Some Of, Has None Of) .

In some cases, it may not be possible to create the condition you need in the condition editor. If so, you can instead write a function that returns either true or false. See for examples of advanced conditions.

here
filters
UI
actions
If action node
operators
here
selected object
context object
selected object
context object
Advanced functions
Cardinality Many
A basic condition with one expression
A condition with multiple expressions.
A condition with a group of expressions
A condition with a comment
Conditions example with Single cardinality on both sides
Conditions example with Single cardinality on both sides