Release Notes
This page documents all functionally relevant changes and new features per version of Xchange. Internal technical changes with no effect on the application's behavior are not listed.
The version number denotes the Xchange product release. Each section additionally lists the contained service and UI versions, exactly as shown in the application's Overview.
0.15 Current · 2026-09-07
Included components: Service v0.15.0 · UI v0.15.0
New
Configuration
- SAP Business One as a connection — a second SAP system is connected over the Service Layer.
- Field structure from OpenAPI — no longer only from OData.
- Fetch endpoint and target from a list on import routes too — previously only on the SAP side.
- Fetch result structure per connection — the prerequisite for the incremental fetch.
- Additional data for rows of a list — a query loads a value for each row.
- Parent row as a source field — a row of a sub-list reaches the fields of the row it sits in.
- Declaring a filter condition's field type where the field structure carries none.
- A missing field type is filled from the reference data, a contradicting one reported.
- Today as a filter value — in source data, change filter and event filter.
- Parked draft — a system reset parks the open draft instead of discarding it.
Operation
- Incremental fetch over REST — only what changed, resuming on the next run.
- All of a route's runs are visible — those currently running and the last five finished.
- Retention periods under Settings — five periods for events, operations, clarification cases, usage records and the log.
- An event filter can be corrected while halted — where it references a field that no longer exists, the configuration stays reachable.
Changed
- Field structure on the system status page instead of per route — once for the whole installation, and per connection as well.
- No change filter where the source keeps its own bookmark.
- Operational information names what the next incremental run does — the date it reads from, or the position it resumes at.
- Start run opens on Incremental where the route can run one — previously on Full.
- The single-fetch endpoint is freely editable where the connection does not derive it.
- A route's pause states its cause — paused by hand or after an error.
- Counter removed from the navigation — the number of open clarifications stays in Action required, the header and the screen title.
Fixed
- A date condition compared the time of day as well — "is equal to" matched only records written at midnight; the comparison is now by day.
- A condition on a joined object counted as faulty.
- The additional-data fetch demanded a check that had just run.
- An older route showed neither mapping nor steps — steps from an earlier version are completed instead of deleted.
- The import reported every object as a conflict — a bundle from an earlier version counts as unchanged again.
- A date condition stopped the trigger on SQL Server.
- An unreadable date value split the event from the data filter — it is now refused at check time.
- A route stayed blocked after an abort.
- A faulty additional-data query demanded a Service Layer restart — the halt now states its reason and the structure affected.
- An unreadable additional-data query failed without a message — it is reported with its identifier.
- The import discarded the draft before checking — the decisions are validated before the draft is replaced.
- The SAP error was missing from the response — a failed step shows the Service Layer's message.
- A renamed endpoint blocked the connection.
- A correct schedule counted as faulty on the Automation tab.
- The originating operation and its repetition were not linked — the cross-link now sits on both sides.
- A search for a correlation ID returned the whole run — it leads to the operation it belongs to.
- Permissions did not reach the source and target fields or the mapping.
- Switching the connection left derived details standing — they now follow the save.
- Picking the same value again triggered a save.
- Pausing a route reached open screens only on reload.
- Configuration lists lost the selection and the scroll position on saving.
- A corrected field was flagged again after the save.
- Labels sat offset from their fields — in read-only views.
- Fields in the Start run dialog sat further from the edge than the text beside them.
- The hourly chart hid two thirds of the day — a narrow window squeezes the 24 columns instead of cutting them off.
- The comparison showed technical values — conditions and transformations appear the way their editor spells them.
0.14 · 2026-09-01
Included components: Service v0.14.0 · UI v0.14.0
New
Configuration
- Field structure of the counterpart — a connection states where its field structure lives and in which format, fetches it at the press of a button, and fills the source and target field pickers from it.
- Compare configuration snapshots — a draft can be compared against the active state, and two archived states against each other; the result is grouped by object and field.
- Restore the previous state — the most recently archived configuration snapshot becomes active again; the list marks which one that is.
- Cleanup — after a full synchronization a route reports the records that have left the data filter; where the count exceeds a threshold, the run waits for release.
- External key — the key assigned by the target system comes either from a marked mapping row or from the response, there from the response data or from a header.
- Event type as a source field — for SAP events, whether the event was a creation, a change or a deletion is available under "Header".
- Set membership operators — "is one of" and "is none of" are available in conditions, with an editable value list.
- Four text transformations — "Replace", "Trim", "To upper case" and "To lower case".
- Environment identifier — a transformation yields the identifier of the licensed environment without a source field.
- Sorted selection lists — value tables and object types are offered in alphabetical order.
- The source picker names the step — beside the identifier, the field picker shows which preceding step the value comes from.
Operation
- History: filters and progress — the list filters by status, connection and free text, and shows the progress of running runs.
- History detail — the detail shows the message received and, per step, the request sent and the status the target system answered with.
- Cancel and reprocess an operation — a running operation can be cancelled and a completed one reprocessed; the history points back to the originating operation.
- Action required on the Overview — instead of a single message it carries a list of open items sorted by urgency, each with its own jump target.
- Operations of the last 24 hours — a bar chart shows the outcome of the operations per hour; a click opens the history for that hour.
- Action required in the header — the number of open items is shown in the header on every screen.
- Event backlog — the route view and the operational information show how many SAP events are still waiting to be processed.
- Object ordering — where a record is changed several times in quick succession, the overtaken operation is discarded instead of being transmitted afterwards.
- Superseded clarifications — a clarification replaced by a newer one takes the status "Superseded" instead of "Closed" and can be filtered on its own.
- Filters in the address — History, Clarification and the configuration lists carry their filters and search term in the address bar, so a view can be passed on.
- Deviating database procedure — where a procedure or the permission state deviates from the shipped state, this is reported and the update offered.
- Response status code on SAP steps — a successful step names the status code SAP Business One answered with.
Changed
- Addresses survive an activation — a bookmark or a jump out of the history still leads to the same record afterwards.
- Connection test in the authentication form — the test sits directly with the credentials instead of in a section of its own.
- Service Layer restart after provisioning — where a run created structures, the restart is awaited visibly and reachability is checked afterwards.
Fixed
- Changes were lost on save — a value typed while a save was running and the current selection did not survive it; merely viewing a configuration created a draft.
- An empty source field ignored the fallback value — where a source field was empty, the mapping skipped the entire transformation; value table and fallback value now take effect in that case too.
- Conditions evaluated differently per database — text comparisons distinguish upper and lower case identically everywhere, and "is not equal" includes empty values everywhere.
- Import of an Xchange export — a bundle written by Xchange itself was rejected over its format version; the import now goes by the content and takes older states as well.
- Schedule after a skipped run — the point in time is carried forward on a skip as well, so the route no longer starts a full synchronization straight afterwards.
- Open steps after a failure — they are closed when an operation completes, even where the write to SAP Business One failed.
- Unknown database state — where the database records an update step the service does not know, it halts instead of working against it.
- Waiting runs appeared under "Running now" — a run parked behind a paused route no longer shows there and no longer pushes the history aside.
- API address after a halt — the UI still finds the service after it has halted on a fault.
- The read-only clamp took effect late — navigation, configuration and operations screens adopt it without a reload.
- Sum and count were lost on a field change — the aggregation is carried over to the path.
- A picker closed by itself — automatic saving no longer closes an open field picker, and closing without a change no longer triggers a save.
- "Fetch all" during a running fetch — the button is disabled while additional data is being fetched.
- "Fetch field structure" gave no feedback — the fetch now shows that it is running, the way "Test connection" does.
- Mapping editor — the row list refreshes after a row has been edited, a stored path is displayed as it was written, and the toolbar stays operable with no step selected.
- A completed review stayed marked as a failure — a completed manual review is shown neutrally in the history, like a closed clarification.
- Duplicate route reported permanently — the note now appears only when the connection is changed, no longer every time a route is opened.
- Notice about a changed configuration — it states what happened, disappears by itself, and appears only on an actual change made elsewhere.
- Draft status in the header — it shows every status and no longer calls an edited draft validated.
- A stale field-structure result stayed — where the field structure source is changed, the stored result and its timestamp expire.
- A target route was truncated when reopened — a dispatch rule shows its target routes in full again.
- Lists jumped to the top — grouped lists keep their scroll position when refreshing in the background.
- History kept loading without a limit — the running refresh is bounded and idles in the background.
0.13 · 2026-08-19
Included components: Service v0.13.0 · UI v0.13.0
New
Configuration
- Import values — a value table takes source/target pairs from a file or from pasted text; the delimiter is detected automatically and the existing list is either replaced or extended.
- Search in the lists — value tables, connections and routes can be searched by name and description.
- Usage in routes — a value table and a connection show which routes use them, and link there.
- Description of a connection — a connection carries a description, which is searched as well.
- Reload the field structure — where a field has been created in SAP Business One, the mapping fetches the field structure again.
- Filters on sub-lists and across relationships — a data filter or event condition addresses a field on a sub-list or on a linked object; the relationship is picked in the field tree.
- Multiply — a value is multiplied by a factor. Numbers are entered and displayed in the company setting's decimal separator.
- Subtract — a value is reduced by a second value.
- Add — a value is raised by a second value.
- Sum over a list — a mapping sums a field across all rows of a list instead of reading only one row.
- Count over a list — a mapping counts the rows of a list.
- List from a text value — a target list is filled by splitting a single text field.
- Negating operators — "does not start with" and "does not contain" are available in the data filter and in event conditions.
- Jump to the target route — a dispatch rule leads from its target column straight into the target route.
Operation
- Operational information per route — Execution shows the last run with its duration and composition, the last still-failing operation together with its clarification case, the number of open clarifications, and a note when the automation is paused.
- Key figures per route — four values over the selected period, or a note when nothing ran in that period.
- Progress of a running run — progress and elapsed time update without a reload.
- Control the automation from Execution — a route's automation is paused and resumed where its operational state is shown.
- Filter History by route — the filter spans the route's entire lifetime and is kept when a detail is closed.
- Time limit per operation — an operation is ended after a configurable deadline and carried as a clarification case instead of running indefinitely.
- One action for the schema update — repair and update sit behind a single action that lists beforehand what it would do.
Changed
- Validation messages — every message leads straight to the place at fault.
- Reference data — pasted reference data creates no draft and needs no activation.
- Saving without a change — a record that was only opened is not saved.
- Update history — the table in System Status is readable at a glance.
- German texts — spelling, dashes and quotation marks are consistent throughout the UI and the Service Hub.
- Generate mappings automatically — from 50 mapping rows onwards, a warning with the count appears beforehand.
Fixed
- List and detail drifted apart — the list scrolls to the selected row and marks it, in Routes, Connections, Value Tables, Execution, History and Clarification.
- Status display lost its connection — the monitor restores its connection itself.
- Error when loading the operations — a failed credential renewal is reported in its own words, and only once.
- First cycle after the service starts — it waits until the checks have completed instead of running into nothing.
- Jump to a validation message — it also reaches a field on a nested tab.
- A validation message disappeared too early — it clears once its own field is corrected.
- Duplicate value in a mapping — the whole group is shown, not one cell at a time.
- Dialogs without input focus — a dialog opens on the field you start with.
- Fetching large data volumes — the next page is requested even when the target server states it relative to the root.
- Closed clarification case — it is called "closed", not "rejected".
- Permission check — three controls wrote route configuration without a permission check: the AND/OR match of an event condition, the event mode and the schedule run type. All three now follow the editing permission.
0.12 · 2026-08-06
Included components: Service v0.12.0 · UI v0.12.0
New
Configuration
- Multiple transformations per mapping — a source value can be converted through several transformations applied in order.
- Comparison with the current day — a condition on a date field can compare against "Today".
- Fallback value from a field — when a source value is empty, the fallback value can come from another field instead of only a fixed value.
Fixed
- Status display behind a reverse proxy — the connection no longer drops after five minutes of inactivity.
- Editing conflict behind a reverse proxy — saving no longer reports a conflict that does not exist.
- Appearance in SAP Business One 2605 — the mapping toolbars are no longer tinted turquoise and the navigation entries carry no icons.
- Concurrent editing — the second save no longer overwrites the first without notice.
- Leaving the editor — pending changes are saved and the editing marker is released.
- Apparently successful transfer — a transfer redirected to a login page no longer counts as successful.
- Imported records — carry the timestamp and user of the target environment.
- Mapping with many rows — the table shows every row; it previously stopped at 500 without notice. The tab opens within seconds instead of after more than a minute.
- Operators in conditions — only the operators matching the selected field's type are offered.
- Draft validation messages — the marker and list show the current state, and jumping to a message lands in the right place.
0.11 · 2026-07-25
Included components: Service v0.11.1 · UI v0.11.0
New
Configuration
- Data origin — a route's data origin is chosen explicitly on creation and stored, instead of inferred from the trigger.
- Conditional value mapping — a target value can be derived from several condition cases; the first matching case supplies the value.
- Unified value selection — everywhere a value is entered (mapping, conditions, concatenation, additional-data filters), a leading icon toggle now switches uniformly between a field and a fixed value. As a result, a condition can compare two fields and a concatenation can include fixed text parts.
- Lists from fixed rows — a target list is filled either from a source list or from explicitly added rows.
- Create target route inline — a dispatch target route can be created directly from the dispatch rule, without leaving the editor.
- SAP reference check — source and additional-data objects as well as target and filter fields are checked against the SAP field structure already at draft validation; activation only proceeds once the check passes.
Changed
- Route editor restructured — the tabs follow the data flow (General, Source data, Mapping, Automation). The data source moved out of the former Trigger tab into Source data; the remaining trigger part (when the route runs) is now called Automation.
- Mapping row in a dialog — the row editor opens as a dialog with tabs for transformation, condition and options, plus previous/next navigation.
- Additional data — the technical query preview was removed.
- Dedicated runtime store — runtime-critical operation and coordination data now live in a dedicated storage area, which relieves the SAP Business One Service Layer and makes concurrent processing more robust. ⚠️ On update, a guided schema change migrates to it.
Fixed
- Offline help in the Configurator — the administration documentation is back in the shipped package, so the help link no longer leads nowhere.
- Cross-entity data filter — a route whose filter matches a user table or user-defined object on a standard field (e.g. Code) against another entity can be activated again. (Service v0.11.1)
0.10 · 2026-07-21
Included components: Service v0.10.0 · UI v0.10.0
New
Configuration
- User-defined objects (UDOs) as trigger — besides user tables, UDOs can now raise an event.
- Cross-entity data filter — source records can be filtered by a reference held in another entity.
- Step configuration — processing steps can be reordered and given a condition on whether they run.
- Per-row mapping condition — conditions can now be set per row, not only at list level.
- Route editor — description field, cron expert mode, and duplicating a dispatch rule.
Operation
- Parallel processing — multiple transfers are processed concurrently.
- Runtime-tunable concurrency — the number of concurrent transfers can be adjusted without restarting the service.
- Guided schema update — structural changes on update run with a progress indicator and guided recovery.
- Connection paused on authentication failure — if a connection's authentication fails, it is paused automatically (with a lock marker and a notice banner); transfers against it are rejected.
Changed
- Formal address (Sie form) — throughout the UI.
- Confirmation dialogs — default to "Cancel" to avoid accidental confirmation.
- Mapping test — now takes the results of preceding steps into account.
- Fetch-endpoint picker — endpoints without the technical prefix, sorted alphabetically.
- Match count — shown with a thousands separator, with a loading indicator while counting.
Fixed
- Draft check — the checklist now names concrete errors instead of just a count and jumps correctly to the affected field.
- History sorting — no longer erratic; sorting is now traceable via a visible column.
- Steadier execution view — the list no longer flickers during a running transfer.
- Minor UI fixes — for sign-in notices, button visibility, and input focus.
0.9 Pre-Release · 2026-07-01
Included components: Service v0.9.1 · UI v0.9.1
New
Setup & operation
- Windows service — Xchange runs as a service on a Windows server.
- Web Client tile — Xchange opens directly in the SAP Business One Web Client.
- Automatic setup — the service creates its database structure on first start.
- UNIORG Service Hub — guided setup of Xchange's settings (database connection, Service Layer, service parameters).
- System Status — view operating state and versions, repair the installation.
Security
- Single sign-on — sign in via the SAP Business One identity provider.
- Permissions — access rights via the familiar SAP Business One authorization system.
Configuration
- Connections — create and edit REST connections and test the connection.
- Routes — create and configure export and import routes.
- Dispatch rules — route incoming documents to the responsible route by rule.
- Mapping — map source fields to target fields: direct values, transformations (incl. date and concatenation), fixed values, additional lines, value-table and object-type lookups, list fields with filtering, merge lists, multi-step documents; reorder mapping rows freely.
- Enrichment — add further data from SAP Business One to documents during transfer.
- Value tables — create and maintain.
- Triggers — manual, scheduled, by event, or by dispatch.
- Configuration snapshots — validate, activate, export, and import.
Testing
- Execution — transfer routes manually for selected records or test them against a pasted sample document.
- History — follow running and completed transfers, always up to date.
- Automatic retry — transient issues are retried on their own; only after a final failure does a transfer land in Clarification.
- Clarification — review failed transfers and reprocess or dismiss them.