Skip to content
flowon.com

Logic Composer

Logic steps

Reference for the steps that run other logic from a flow, such as logic blocks, sub-flows, business processes, Dataverse actions, classic workflows and SDK messages.

Logic steps let a flow reuse logic that lives elsewhere: your own logic blocks and flows, business processes, Dataverse actions and classic workflows, or any platform message. Calling reusable pieces keeps each flow short and each rule in one place.

Runs a logic block and makes its outputs available.

Setting What it does Required
Logic Block Type The block to run, listed by name and project. Fixed once the step is saved. The + button next to the picker creates a new block in a dialog. Yes
Inputs tab A value for each of the block’s inputs. Required inputs must be set
Outputs tab Shows each output’s name and type (read-only). No

Outputs: <Step>.Output.<output name> for each output of the block. A formula, validation or validation set has fixed output names (for example result, or isValid for a validation set).

Behavior: the block’s precondition is checked when it runs. If the block fails (for example, a decision table that reaches no decision), the step fails.

Example: run the “Discount Matrix” decision table with GetAccount.customertypecode and GetOrder.totalamount as inputs, then use DiscountMatrix.Output.Discount in the next step.

Runs another logic flow as a sub-flow and makes its outputs available.

Setting What it does Required
Logic Flow The flow to run. Fixed once the step is saved. The + button creates a new flow. Yes
Inputs tab A value for each of the flow’s inputs. The editor shows “Required arguments are not set.” while required inputs are missing. Required inputs must be set
Outputs tab Shows each output’s name and type. No

Outputs: <Step>.Output.<output name> for each output of the called flow.

Behavior:

  • The called flow’s precondition is checked too.
  • If the called flow fails with an unexpected error, this step fails too. Inside a Try / Catch, that error can be caught.
  • If the called flow ends with Raise Error, or its precondition fails, the calling flow is not stopped, but it does not receive the error code, the message or any outputs. If the called flow declares outputs, this step fails with a technical error instead. End sub-flows that can refuse their work with Halt after setting a status output, and check that output. See Errors in sub-flows.

Example: for each approved Order, call the “Create Invoice” sub-flow with the order id and use CreateInvoice.Output.InvoiceId.

Starts a business process on a row. This step is offered only when Logic Process Orchestrator is installed.

Setting What it does Required
Business Process The process to start. The list shows active processes as “Name (Project)”. Yes
Entity Id The row of the process’s table to start it on. Yes

Outputs: none.

Behavior: the process needs an active version, or the step fails (“… does not have an active version.”). The process’s own “Who can start” and “Start only when” precondition applies; when it refuses the start, the step fails with the precondition’s code and message (CODE: message), which a Try / Catch can handle within the usual limits. See Starting processes.

Example: start the “Order Fulfilment” process on the new Order.

Runs a Dataverse action (custom process action) and makes its outputs available.

Setting What it does Required
Process The action to run, listed by unique name. Yes
Entity The table an action is bound to. Shown read-only for bound actions. No
Entity Id The row to run a bound action on. For bound actions
Inputs tab A value for each of the action’s inputs. Required inputs must be set
Outputs tab Each output’s name and type. Choice outputs ask for their choice. No

Outputs: <Step>.Output.<output name>.

Dynamics 365 CE on-premisesWordingApplies to the other edition

On-premises, the step description reads “Run an Action and use its results.” and choices are called option sets.

Example: run the custom action new_CalculateCommission on the Order and use CalcCommission.Output.CommissionAmount.

Runs a classic workflow on a row.

Setting What it does Required
Process The workflow to run. The list shows classic workflows. Yes
Entity The workflow’s table, shown read-only. No
Entity Id The row to run the workflow on. Yes

Outputs: none.

Behavior: background workflows are queued as system jobs. The step continues as soon as the request is accepted; it does not wait for the workflow to finish.

Example: run the existing “Account Approval” workflow on a new Account while you migrate its logic to Logic Fabric.

Calls any platform message by name, for example QualifyLead, WinOpportunity, CloseIncident, or a custom API. Works on Dataverse and on-premises. Use it for operations no other step covers.

Setting What it does Required
Message Name The message to call. Yes
Parameters tab Each request parameter: New Parameter Name and New Parameter Value (an expression of any type). As the message needs
Outputs tab Each response property you want to use: New Output Name and its type, then Add Output. No

Parameter and output names must start with a letter or underscore and contain only letters, digits and underscores. An output that later steps use cannot be removed: “This output is used by other steps and cannot be removed or changed.”

Outputs: <Step>.Output.<output name> for each output you added. A property missing from the response gives the type’s default value.

Limits: the editor does not check parameter types. A value the message cannot accept, such as a list, an object, or a complex SDK-only value (column sets, queries, access masks), makes the step fail when it runs. Use Share / Unshare Record for sharing and Run Process Action for custom actions.

Example: close a Case with CloseIncident, passing a parameter IncidentResolution (a Row of Case Resolution with Subject and Case set) and Status (the Problem Solved status reason).