Version 1.18.2.3
Release Date: September 15, 2026
Release Type: Stable
Previously published as: 1.18.19 (image tag staging-1.18.19)
Graphical Mapping release: the new RFC Lookup function, target-only mappings, deploy-time mapping validation, designer and trace viewer improvements, and a broad set of mapping engine correctness fixes.
Backend Server
New Features
- RFC Lookup mapping function: Graphical mappings gain RFC Lookup, the first mapping function that reaches an external system. It calls an RFC on a registered RFC destination while the message is being mapped and writes the value at a result path into the target field. Identical lookups within one message are executed only once, the call is skipped when every import value is blank, and the function's on-error setting (fail, empty or pass-through) decides what happens when the call fails. During a simulation the call is only made in live-test mode.
- Target-only mappings: A mapping without a source schema now runs and builds its target entirely from functions such as Constant and RFC Lookup, so a flow with no inbound payload (for example Timer, Mapping, REST) no longer stops with "Body is empty". An incoming body is ignored for such a mapping; a mapping that declares a source schema still treats an empty body as a configuration error.
- Deploy-time validation of mapping definitions: When a flow is deployed, every Graphical Mapping node is now checked for unknown function types, cycles between functions, dangling references, missing or invalid function parameters and RFC destinations that are not registered. The behaviour is controlled by
GRAPHICAL_MAPPING_VALIDATION_MODE:WARN(default) logs each problem and never blocks the deploy,REJECTrefuses the deploy with the list of problems. - Lower CPU overhead per processing step: The logging context that travels with a message is now copied in one pass instead of being pattern-matched key by key on every step. This reduces CPU usage across all flows; log correlation is unchanged.
Bug Fixes
- Functions inside nested arrays produce correct results: A collection declared by the mapping, its schema or its sample document is now handled as a collection even when a message carries only one element, so one element and several elements follow the same rules. Three defects are fixed along the way: function results for inner elements beyond the target's slot count were silently dropped, a sibling input inside a nested iteration was always read from the first element, and an inner index could be applied to the outermost target array and create an extra element. When several results are written to the same target slot, the last one now wins for both JSON and XML targets. Mappings affected by these defects produce corrected output after the upgrade.
- Input-less functions fill every element of a target array: A Constant, or any other function without inputs, wired to a field inside a target array populated only the first element. Its result is now written to every element of that array.
- Directly mapped arrays of simple values are copied: A direct mapping whose source is an array of simple values in a JSON source (for example
"tags": ["alpha", "beta"]) produced nothing in the target. The array is now copied to the target. - Numeric functions write numbers to JSON targets: ADD, SUBTRACT, MULTIPLY and TO_NUMBER returned their result as text, so a JSON target received
"6"instead of6. Their output in JSON targets is now an unquoted number, written in plain notation without trailing zeros. - Target output follows the order of the target schema: JSON targets now take their property order from the stored JSON resource, whether it is a JSON Schema or a sample document, so properties written by functions are no longer emitted after all directly mapped ones. Targets defined by a WSDL are ordered by the schema of the selected operation instead of by mapping order, which receivers that expect a fixed element sequence require.
- XML target output fixes: A JSON null is written as an empty element (
<b/>) instead of the textnull. A mapping whose target has a repeating element at the top level no longer fails or returns an empty document; the repeated elements are wrapped in a<root>element. - SPLIT and REPLACE handle special characters safely: SPLIT now treats the configured separator as literal text, so separators such as
|,.or(split as typed instead of being read as a regular expression. REPLACE in regex mode rejects patterns longer than 512 characters and reports an invalid pattern with a clear message. - Date functions always use English month and day names: DATE_FORMAT, CURRENT_DATE, COMPARE_DATES, DATE_AFTER and DATE_BEFORE no longer depend on the server's locale, so a pattern such as
dd MMM yyyyrenders and parses the same way in every environment. - Clear errors for Test Mapping and unsupported input: Test Mapping now answers with the standard error format: mistakes in the mapping or the request return the actual message, while unexpected failures return a reference id that can be looked up in the backend log instead of internal details. A JSON source whose top level is an array is rejected up front with a message stating that top-level arrays are not supported.
- Hardened mapping lookup and schema parsing: Mappings are looked up with bound parameters, so a mapping name containing an apostrophe is found correctly and a malformed mapping id in Test Mapping is rejected cleanly. Target XSDs are parsed with a hardened XML parser that refuses DOCTYPE declarations, external entities and entity expansion; regular schemas resolve as before.
- Mapping trace survives binary values: A NUL character in any traced value caused the whole mapping trace of that message to be dropped silently. Such characters are now stripped when the trace is stored; the mapping output itself was never affected.
Frontend Server
New Features
- Mappings without a source schema: A graphical mapping can now be saved with no source schema, for flows that build the target entirely from functions; the target schema stays mandatory. An existing mapping keeps its source unless it is explicitly cleared, such mappings appear in the list and detail views, and they export and import like any other mapping.
- RFC destination usage inside graphical mappings: RFC destinations referenced by an RFC Lookup function are now included in the delete check and in Where Used. A destination that a mapping still calls can no longer be deleted unnoticed; each usage is reported with its mapping and flow.
Bug Fixes
- "Use this RFC" works on copied flows: Selecting an imported RFC on a copied flow failed with a duplicate-resource error. An existing schema resource of the flow is now reused and refreshed, and copying a flow carries the links to its imported RFC objects over to the copy.
Frontend Web
New Features
- Graphical mapping is always available: The Mappings section under Resources and the mapping pages no longer depend on the
VITE_MAPPINGsetting. The variable has been removed and can be dropped from existing configurations. - RFC Lookup function node: The function palette gains an "Other" category with RFC Lookup. Its panel lets you pick an RFC destination, browse and select the RFC, choose and order the import fields (one input handle appears per field) and select the result path. Quick Test warns that an RFC Lookup performs a real call, and in the RFC browse dialog the two panes now scroll independently and remain usable on narrow screens.
- Target-only mappings: The source schema picker offers "None", so a mapping can be built with a target produced entirely by functions. Clicking a target field opens its transformation in any mapping, whether or not a source field is connected.
- Function palette matches the engine: IF_ELSE offers all twelve comparison operators (the compare value is disabled for the empty and not-empty checks), REPLACE has a "Use regular expression" toggle, SPLIT accepts an optional numeric limit, and the date functions state that month and day names are English.
- Connections that run through a function are visible: The schema panel draws a dashed line from each source field to the target it reaches through a function, next to the solid lines of direct copies, in both the editor and the trace viewer. The editor also warns when a saved connection points to a field that cannot be found in the schema.
- Delete a transformation connection by hovering: In the transformation panel a connection can now be removed with the × shown on hover, the same gesture as in the flow designer.
- Syntax-highlighted Test Mapping panel: The Test Mapping request and response use the same code editor as the Groovy and XSLT pages. That shared editor now backs the other code fields in the application as well, so a single horizontal scrollbar and click-to-focus below the last line behave the same everywhere.
- Mapping trace: total duration and index navigation: The trace viewer shows a function's total duration in its header, including for functions that ran many times. The array index chips in both trace panels now keep the selected element in view, centred like a pagination bar, and no longer reflow while an index is typed.
Bug Fixes
- Schema tree resolves named complex types: Fields typed by a complex type declared at the schema root now show their children; previously such a field appeared as a leaf and its inner fields could not be mapped. WSDLs with several schemas resolve as well. Paths of inline types are unchanged. On schemas where an element used to be displayed under its type name (for example
HeaderType/MessageId), the fields are now addressed under the element name (Header/MessageId), and a mapping saved against such a*Type/...path has to be re-pointed. - Function inputs are saved in handle order: Inputs were saved in the order the connections were drawn, so wiring the second handle before the first swapped the arguments of functions such as CONCAT, SUBTRACT, DIVIDE and RFC Lookup. Inputs are now saved by handle position. Mappings saved earlier keep their order until they are saved again.
- Stale direct copies no longer override a function: Replacing a direct connection to a target with a function left the old direct copy in the saved mapping, so the connection was still drawn and the source value was still copied into the field before the function ran. The saved direct copies are now kept in step with the target's transformation.
- Auto Layout produces straight connections: Auto Layout in the transformation panel aligns nodes by their connection points rather than their top edges, places input-less functions next to the node they feed, and prevents overlaps.
- Failed Test Mapping runs stay on screen: A failed test showed only a short-lived notification. The error is now also shown in the response area under "Error", where it can be read and copied.
- RFC browse failures are shown as errors: Failures while browsing, loading or selecting an RFC are now displayed as error notifications with the message returned by the remote system instead of a generic status text.
1.18.2.3 is a stable release. Previous: 1.18.2.2