XOR: check that an order is either delivered or collected
Medium
At checkout a customer chooses how to get their order: home delivery, or collection from the store. It has to be exactly one. Return the message the checkout shows:
- exactly one chosen —
"OK" - both chosen —
"Choose delivery or collection, not both" - neither chosen —
"Choose delivery or collection"
Appian has no xor() function. Build "exactly one" from what it does have, then tell the two problems apart.
Inputs
ri!delivery— Booleanri!collection— Boolean
ri! Rule Inputs
ri!deliveryBooleantrue
ri!collectionBooleanfalse
Example 1 — Delivery only
Input: ri!delivery
true
Input: ri!collection
false
Output:
"OK"
Example 2 — Collection only
Input: ri!delivery
false
Input: ri!collection
true
Output:
"OK"
Example 3 — Both chosen
Input: ri!delivery
true
Input: ri!collection
true
Output:
"Choose delivery or collection, not both"
Example 4 — Neither chosen
Input: ri!delivery
false
Input: ri!collection
false
Output:
"Choose delivery or collection"
Appian Expression Tips
- • Use
ri!variableNamefor rule inputs - • Use
a!localVariables(local!x: …, body)for locals - • Use
a!forEach(items: …, expression: fv!item)to iterate - • Use
where()/reject(fn!isnull, list)to filter