Boomi · Arazzo Workflow

Boomi Execute and Monitor a Process

Version 1.0.0

Trigger a process run on an Atom and poll execution records until it finishes.

1 workflow 1 source API 1 provider
View Spec View on GitHub AI AgentsAutomationB2BData IntegrationEDIIntegrationsManagementMFTPlatformWorkflowsArazzoWorkflows

Provider

boomi

Workflows

execute-and-monitor-process
Execute a process on an Atom and poll execution records until it reaches a terminal status.
Submits an execution request for the supplied process and Atom, then queries the execution records and branches on status to either re-poll while the job is in process or finish once it completes.
2 steps inputs: atomId, processId outputs: executionId, requestId, runStatus
1
triggerExecution
executeProcess
Submit an execution request to run the process on the chosen Atom and capture the returned tracking request id.
2
pollExecutionRecords
queryExecutionRecords
Query the execution records for this process to find the most recent run and inspect its status.

Source API Descriptions

Arazzo Workflow Specification

boomi-execute-and-monitor-process-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Boomi Execute and Monitor a Process
  summary: Trigger a process run on an Atom and poll execution records until it finishes.
  description: >-
    The standard run-and-watch pattern for Boomi integration jobs. The workflow
    submits an execution request for a process on a chosen Atom, then queries the
    execution records for that process and branches on the final status: when the
    run is still in process it loops back to poll again, and when it reaches a
    terminal state it ends. Every step spells out its request inline so the run
    can be read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: platformApi
  url: ../openapi/boomi-platform-rest-api-openapi.yml
  type: openapi
workflows:
- workflowId: execute-and-monitor-process
  summary: Execute a process on an Atom and poll execution records until it reaches a terminal status.
  description: >-
    Submits an execution request for the supplied process and Atom, then queries
    the execution records and branches on status to either re-poll while the job
    is in process or finish once it completes.
  inputs:
    type: object
    required:
    - processId
    - atomId
    properties:
      processId:
        type: string
        description: The ID of the integration process to execute.
      atomId:
        type: string
        description: The ID of the Atom on which to run the process.
  steps:
  - stepId: triggerExecution
    description: >-
      Submit an execution request to run the process on the chosen Atom and
      capture the returned tracking request id.
    operationId: executeProcess
    requestBody:
      contentType: application/json
      payload:
        atomId: $inputs.atomId
        processId: $inputs.processId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      requestId: $response.body#/requestId
      status: $response.body#/status
  - stepId: pollExecutionRecords
    description: >-
      Query the execution records for this process to find the most recent run
      and inspect its status.
    operationId: queryExecutionRecords
    requestBody:
      contentType: application/json
      payload:
        QueryFilter:
          expression:
            operator: AND
            nestedExpression:
            - property: processId
              operator: EQUALS
              argument:
              - $inputs.processId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      executionId: $response.body#/result/0/executionId
      runStatus: $response.body#/result/0/status
      message: $response.body#/result/0/message
    onSuccess:
    - name: stillRunning
      type: goto
      stepId: pollExecutionRecords
      criteria:
      - context: $response.body
        condition: $.result[0].status == "INPROCESS"
        type: jsonpath
    - name: finished
      type: end
      criteria:
      - context: $response.body
        condition: $.result[0].status != "INPROCESS"
        type: jsonpath
  outputs:
    requestId: $steps.triggerExecution.outputs.requestId
    executionId: $steps.pollExecutionRecords.outputs.executionId
    runStatus: $steps.pollExecutionRecords.outputs.runStatus