Software AG / IBM webMethods: Integration Server & Flow Services
Master webMethods Integration Server (IS) core architecture, packages, the in-memory IData pipeline, and structured Flow service development in Designer.
Key Takeaways
- webMethods Integration Server (IS) uses Packages and Folders as the foundational namespace and deployment unit
- The Pipeline is an in-memory `IData` object passed sequentially between Flow steps, containing all variables and documents
- Flow steps (`MAP`, `BRANCH`, `LOOP`, `REPEAT`, `SEQUENCE`, `EXIT`) provide visual, declarative programming without compiling Java code
- Standard error handling uses a parent SEQUENCE (Exit on SUCCESS) containing Try (Exit on FAILURE) and Catch (Exit on DONE with `pub.flow:getLastError`)
The Diagnostic Context
webMethods (originally developed by Software AG, now part of IBM) is one of the most mature and widely adopted enterprise integration platforms in the world. Its graphical Flow language and high-performance Integration Server runtime power mission-critical supply chains and banking networks.
The Core Technique
The webMethods Package Architecture
Everything in Integration Server is organized into modular Packages:
- CODE / PROMPT
IntegrationServer/packages/<PackageName>/
- : Package metadata, version, dependencies, and startup/shutdown services.CODE / PROMPT
manifest.v3
- : Namespace folders containing Flow services, Java services, IS Document Types, and Schemas.CODE / PROMPT
ns/
- &CODE / PROMPT
code/classes/
: Compiled Java classes and external third-party JAR libraries.CODE / PROMPTcode/jars/
- : Package-specific properties and adapter connections.CODE / PROMPT
config/
The webMethods Pipeline & Flow Steps
graph TD
subgraph FlowService["OrderProcessingFlowService (Flow Execution)"]
Step1["MAP: Initialize Defaults & Drop Temp Vars"]
Step2["BRANCH: Evaluate Label (%orderTotal% > 1000)"]
Step3["LOOP: Iterate over /lineItems"]
Step4["SEQUENCE (Try/Catch Error Handling Block)"]
end
Pipeline[("IData Pipeline (In-Memory Heap)<br/>- /customerInfo (Document)<br/>- /orderTotal (String)<br/>- /lineItems (Document List)")]
Pipeline <-->|Reads & Mutates Variables| Step1
Pipeline <-->|Reads & Mutates Variables| Step2
Pipeline <-->|Reads & Mutates Variables| Step3
Pipeline <-->|Reads & Mutates Variables| Step4
The Canonical Try-Catch Sequence Pattern in Flow
To build resilient Flow services that catch runtime errors and execute rollback or alerting logic:
- Parent SEQUENCE (Exit on SUCCESS):
- Try SEQUENCE (Exit on FAILURE):
- Contains all normal business logic steps (adapter calls, transformations).
- If any step fails, execution halts and jumps directly to the Catch block.
- Catch SEQUENCE (Exit on DONE):
- Invokes to retrieve error diagnostics, stack trace, and pipeline dump.CODE / PROMPT
pub.flow:getLastError
- Executes compensation (e.g., publishes error event, logs failure, and signals clean exit or failure).
- Invokes
- Try SEQUENCE (Exit on FAILURE):
Try This Right Now
In Software AG Designer, model a Flow service containing the Try-Catch sequence structure. In the Try block, invoke an HTTP client call to an external service; in the Catch block, invoke `pub.flow:getLastError` and map `lastError/error` to an email notification service.
Tip: Knowledge only becomes capability once you run the prompt yourself.