Quick actions for the SAP Cloud Integration message mapping editor.
CI Mapping Toolkit is a small Chrome extension that makes the graphical message mapping editor in SAP Integration Suite / SAP Cloud Integration (CPI) faster to work with. It brings back the kind of quick, keyboard-driven editing many developers were used to from the SAP PI/PO 7.31 mapping editor: select a target field, press Space, type a few letters and the function is there – already connected.
The goal is simple: spend less time dragging boxes and hunting through the function palette, and more time on the actual integration. It takes care of the things that are tedious in the standard editor – adding constants, reusing the same logic in many fields, tidying up a messy expression, copying mappings between message mappings, or getting a read-only mapping into Edit mode.
A short walkthrough of the toolkit in a real message mapping: youtu.be/SU1wsei3DT4
Looking for more? CI Mapping Toolkit is a free helper for one part of the job. For managing, testing, documenting and transporting your integrations end to end, have a look at the Figaf Tool, which gives you far more productivity across SAP Integration Suite and SAP PI/PO.
- Features
- Installation
- Getting started
- Keyboard shortcuts
- Feature guide
- How it works and limitations
- Roadmap
- Contributing
- License
| Quick functions | Select a target field, press Space, type part of a function name (conc, fbe for formatByExample …) and press Enter. Standard functions, UDFs and imported function libraries are all included. Functions already used in the mapping are listed first. |
| Instant mapping | If the target field is not mapped yet, the mapping is created and the function is connected to the field right away – no dragging. |
| Constants in one step | Choose constant, type the value, press Enter: Constant "ABC" → field. |
| Templates | Save the mapping of a field – or just one function and everything feeding it – as a template, for this mapping (local) or for all mappings on all tenants (global). Insert it again later, connected or not, with or without its source fields. |
| Format | Arrange a mapping's steps in order, left to right, with one keystroke (Ctrl+Shift+F) or for all fields at once. |
| Export / import | Download all field mappings of a message mapping as JSON and load them into another mapping. |
| Edit mode switch | Opened a mapping while the integration flow was read-only? Press Space and switch the flow to Edit mode without leaving the mapping. |
The toolkit is not in the Chrome Web Store (yet). You load it into Chrome yourself as an "unpacked" extension. That also means you have the full source and can adapt it to your own needs.
- Get the code – either
- download the repository as a ZIP file (Code → Download ZIP) and unzip it, or
- clone it:
git clone <repository-url>
- Open
chrome://extensionsin Chrome (oredge://extensionsin Microsoft Edge). - Turn on Developer mode (top right).
- Click Load unpacked and select the folder that contains
manifest.json. - Open (or reload) your SAP Integration Suite tab.
The extension runs on https://*.hana.ondemand.com/* and https://*.cloud.sap/* and only becomes active
in the message mapping editor.
Updating: replace the files (or git pull), then click the reload icon on the extension in
chrome://extensions and reload the Integration Suite tab.
- Open an integration flow in SAP Integration Suite and open one of its message mappings.
- If it is read-only, press Space and choose Switch the integration flow to Edit mode.
- Click a field in the target structure.
- Press Space – or click Mapping Toolkit next to Simulate.
- Type
const, press Enter, type a value and press Enter again. The field is now mapped to that constant. - Try a function: select another field, press Space, type
concatand press Enter. - When you are done, click OK and Save as usual. Nothing the toolkit does is stored until you save in CPI – Cancel discards it.
| Key | Where | What it does |
|---|---|---|
| Space | Mapping editor, not typing in a field | Open the search box for the selected target field |
| Ctrl+Space | Mapping editor | Open the search box (always works) |
| Alt+S | Mapping editor, target field selected | Add a source field: type to filter, ↑ / ↓ to choose, Enter; then move the selection box on the canvas with ← ↑ ↓ → / Tab to the input it connects to (the target field or a free input of a function) or to the not connected spot at the bottom, and press Enter (Esc cancels) |
| Tab / Shift+Tab | Mapping editor, focus in source, target or expression | Jump between the source structure, the target structure and the mapping expression only; the active one is outlined in blue |
| Ctrl+Shift+F | Mapping editor, mapped field selected | Format the mapping of the selected field |
| ↑ / ↓, PgUp / PgDn | Search box | Move through the list |
| Enter | Search box | Insert / choose |
| Del | Search box, on a template | Delete the template |
| Del | Mapping canvas, after clicking a box | Delete that function, constant or source field (not the target field) |
| F1 | Search box | Show this list of shortcuts inside the tool |
| Esc | Search box | Close |
Plain Space never interferes with typing: in a text field (a constant's value, a search field, the script editor) or on a focused button it keeps its normal meaning.
- With a target field selected, the first entry in the empty box is constant, so Space, Enter, value, Enter maps a constant.
- The list matches by prefix, substring, camelCase initials (
fbe→ formatByExample) and description. - Order: functions used in this mapping (with a usage count), your recently used functions, then all functions A–Z.
- A new function is placed at the mouse position when the mouse is over the Mapping Expression canvas, otherwise next to the target field.
- For an unmapped field the function is connected to the field. For a mapped field a selection box appears on the canvas: move it with ← ↑ ↓ → / Tab to the input the function should feed (the target field or a free input of another function) and press Enter, or choose not connected (the last stop) to wire it yourself. Esc cancels.
- Save the whole field: select a mapped field, open the box and choose Save mapping of … as template…. Everything that leads up to the field is saved: functions, constants, parameters and source fields.
- Save part of it: open the ••• menu of a function on the canvas and choose Save as template…. That function and everything feeding it is saved.
- Local or global: local templates are offered only in the mapping they were saved in; global templates in every message mapping on every tenant.
- Insert: templates appear under Templates in the box. By default a template is added to the mapping without being connected, below what is already there – so you can combine several templates and wire them together. You can also connect it to the field directly (replacing its mapping). In the mapping it came from you choose with or without source mappings; elsewhere it is always inserted without them.
- Delete: select the template in the box and press Del.
- Ctrl+Shift+F, Format mapping of … in the box, or Format mapping in a box's ••• menu.
- Sources and constants on the left, each function one column left of what it feeds, the target field on the right, inputs in pin order, about one box of space between columns.
- Format all mappings in … tidies every field of the message mapping.
- Export mappings of … downloads every field mapping as
<mapping>.mappings.json. - Import mappings from a file… loads such a file. Fields are matched by their path in the target structure. Choose to overwrite fields that are already mapped, or to fill only fields that are not mapped yet. The result tells you how many fields were added, overwritten, left unchanged, not found in this structure, or use source fields that are missing here.
If the mapping is read-only, the box offers Switch the integration flow to Edit mode. It presses Edit on the integration flow and opens the same mapping again in Edit mode – you stay where you are. If CPI asks something first (for example to take over an older session of yours), answer it and the toolkit continues.
- The extension runs inside the SAP Integration Suite page and uses the SAPUI5 controls of the mapping editor (the same functions the editor uses itself, e.g. to create a constant mapping or open a resource). These are internal, undocumented parts of SAP's UI and can change with any CPI release. If something stops working after an SAP update, please open an issue.
- Nothing is sent anywhere. Templates are stored in the browser (
chrome.storage.local) on your computer; other settings in the tenant's local storage. - Changes are only saved when you save in CPI. Try new features on a copy or a test flow first.
- Not affiliated with or endorsed by SAP. SAP, SAP Integration Suite and SAP Cloud Integration are trademarks of SAP SE.
| File | Purpose |
|---|---|
manifest.json |
Chrome extension manifest (Manifest V3) |
quickfunction.js |
Everything that runs in the mapping editor: search box, templates, format, export/import |
bridge.js |
Gives the page script access to chrome.storage for templates |
icons/ |
Extension icons |
The toolkit is shared as source so users can try it and improve it. Ideas being considered:
- Publishing it in the Chrome Web Store, or as a plugin for another CPI browser extension.
- More quick actions in the mapping editor.
- Sharing templates within a team.
Suggestions are welcome – open an issue.
Issues and pull requests are welcome. Load the folder as an unpacked extension (see Installation), make your change, click reload on the extension and reload the Integration Suite tab to try it.






