← All examples

Start here

Ordering

A minimal order-to-placement workflow. Start here to see how Modeller's plain-language model source declares an entity's lifecycle, a rule, and the behaviour that moves it forward.

Lifecycle

Order placementDraftPlaced

Rule & decision

Payment is confirmedReady

RML source

model/context.modeller
rml 1.0
context Ordering
  version 1.0.0
end
model/entities/order.modeller
rml 1.0
entity Order
  lifecycle Order lifecycle
    stage Draft
    stage Placed
  end
end
model/facts/payment-confirmation.modeller
rml 1.0
fact Payment is confirmed
  type truth
  export
end
model/rules/determine-order-readiness.modeller
rml 1.0
rule Determine order readiness
  input "Payment is confirmed"
  when all
    fact "Payment is confirmed"
  end
  conclusion Ready
  end
  finding "Payment is confirmed" true order.payment-confirmed
  finding "Payment is confirmed" missing order.payment-required
  export
end
model/behaviours/place-order.modeller
rml 1.0
behaviour Place order
  for "Order"
  requires "Determine order readiness"
  outcome Order placed
  end
  outcome Order rejected
  end
  transition Order placement
    lifecycle "Order lifecycle"
    from "Draft"
    to "Placed"
    outcome "Order placed"
  end
end