Skip to content
flowon.com

Logic Composer

Run and test

Run a logic block or logic flow with your own inputs and check its outputs before anyone else depends on it.

The Run Logic Block and Run Logic Flow dialogs let you try your logic with real inputs, right from the designer. You see whether the run succeeded, how long it took and every output it returned, and you can rerun with small changes to check edge cases. Use it every time you change a block or flow.

  • Save your changes first. The Run Logic Flow dialog runs the last saved version of the flow and ignores unsaved edits without warning. The dialog refuses to run a block or flow that could not be fully read.
  • The run happens as you, against the current environment. A logic flow’s steps run for real: rows it creates, updates or deletes are changed. Test flows that change data in a development or test environment. If a run fails or ends with Raise Error, Dataverse normally rolls back the changes it made, but do not rely on that to clean up test data.
  1. Open the logic block or logic flow, or select it in its list, and select Run.
  2. Fill in the Input column. Each input shows its description and its type.
  3. Select Run, or press Ctrl+Enter.
  4. Read the result in the Result column.

Header. The name of the block or flow, a badge with its kind (Formula, Decision table, Decision tree, Validation, Validation set or Logic flow), and the Description from its Docs tab.

Input (left column). One field per input, labelled with the type names you know from the Type picker, such as Text, Yes/No, Lookup, Currency and Choice. Lists are shown as “List of …”. With no inputs, the column reads “No inputs needed”.

Result (right column). Before the first run it reads “Run the block to see its outputs. It returns:” (or “Run the flow…”) followed by the outputs to expect. Logic without outputs says it returns no outputs, so you run it only to check that it succeeds.

If inputs that must have a value are empty, the dialog says which ones (“Fill in QuoteAmount to run.”) and marks the fields.

After a run, the Result column shows:

Part What you see
Status A Succeeded or Failed banner with the time of the run and its duration in milliseconds. A failed run shows its error codes, for example a precondition’s UNAUTHORIZED_ACCESS.
Output Every output with its value. Yes and No values are coloured, and an output without a value reads (empty).
Copy value A button inside each value box that copies the value, for example to paste a long list or an ID elsewhere.

A run that throws an error is always reported as Failed with the error, never as a blank result.

Recent runs lists up to five runs from your current session, each marked Succeeded or Failed, so you can compare results while you change inputs. A run without inputs is listed as “No inputs”.

Use last inputs refills the plain values from your last run. It is remembered in this browser only.

  • Preconditions apply. The dialog runs as the signed-in user, so the block’s or flow’s precondition is checked for you. If you are an administrator, your result may differ from what an end user gets.
  • Same logic everywhere. Recipes, flows, business processes, Dataverse actions and MCP tools run the same block or flow you test here.

For each block or flow, run at least:

  1. A typical case, such as a mid-size quote for a regular customer.
  2. Each boundary, such as an amount exactly on a threshold (10000 when the rule is “10,000 or more”).
  3. Each optional input left empty. Remember that an empty number counts as 0.
  4. A case that matches no specific row or branch, to prove a decision table or tree has a catch-all.
  5. A user without the required role, if the logic has a precondition.

To keep repeatable test cases with expected results and rerun them after every change, use the Logic Assurance agent.

You test the Quote Discount decision table:

CustomerSegment QuoteAmount IsFirstOrder Expected DiscountPercent
Gold 12000 No 20
Gold 10000 No 20 (boundary)
Silver 7500 (empty) 10
Standard 500 No 0 (catch-all row)

Run each line, compare the Output, and use Recent runs to check you covered them all.