Package com.smartgwt.client.docs

# Interface ProcessIO

public interface ProcessIO

### Process Input and Output Schema

A Process can declare optional schemas for what it consumes as input and what it produces as output on successful completion. These schemas let the engine validate wiring between a parent Process and a sub-Process invoked via SubProcessTask, and give subsystems like the Workflow Editor and AI tools a precise description of the Process's interface.

#### Input schema

Declared via `Process.inputDS` (full `DataSource`) or `Process.inputFields` (shorthand Array of `DataSourceField` used to build a temporary DataSource). When a caller provides an input record (either at top-level via `Process.start()` or through a SubProcessTask), the record is validated against the schema before the Process starts. On failure the Process does not start; the caller receives a `ProcessFailure` with `code:"inputValidation"`.

#### Output schema

Declared via `Process.outputDS` or `Process.outputFields`. When the Process reaches `handleFinished` the engine computes the output value (see `Process.getOutput()`) and validates it against the schema. A mismatch becomes a `ProcessFailure` with `code:"outputValidation"`.

#### Recoverable vs infrastructure errors

Recoverable errors that are part of the Process's normal behavior belong inside the declared `outputDS` (for example as nullable `errorCode`/`errorMessage` fields). Infrastructure failures (AI unavailable, JS exceptions, input/output schema mismatches, cancellation, ancestor-cycle deadlocks) travel through the distinct `Process.failed()` channel as a `ProcessFailure` record.