How DataLotse works
Set up DataLotse and run your first copy — on your own. Pick a topic on the left.
The agent runs inside your network, connects outbound to DataLotse,
and runs every copy locally — so your SAP credentials and business data never leave your landscape.
Only the job request and a status summary cross the internet.
- SAP setup — your Basis team installs 3 ABAP function modules (ABAP function modules) and a dedicated RFC user.
- Agent setup — install + register the agent and point it at your systems.
- Use DataLotse — add Source/Target systems, run a copy, optionally clean up the target.
ABAP function modules (RFMs)
DataLotse moves data through three generic, remote-enabled function modules your
Basis/ABAP team installs once. There is no per-object ABAP — these handle every table.
Where to install: ZDATALOTSE_TABLE_READ on every source system ·
ZDATALOTSE_TABLE_WRITE + ZDATALOTSE_TABLE_DELETE on every target system
(install DELETE on non-production targets only). After installing, use Systems → Check RFMs to verify.
Install (transaction SE37)
- Create a function group (e.g. ZDATALOTSE) in SE80/SE37.
- SE37 → create the function module → on Attributes, set the processing type to Remote-Enabled Module.
- On the Import/Export tabs, define the parameters exactly as the tables below (each pass by value).
- Paste the source into Source code, then activate.
- Grant the RFC user authorization to call them (S_RFC) and table access.
Prefer a transport? Your Basis team can request a transport request from DataLotse support instead of keying these in.
1 · ZDATALOTSE_TABLE_READ source
Reads the selected rows of a table and returns them encoded for transport.
| Parameter | Kind | Type | Description |
| IV_TABNAME | Import | TABNAME | Table to read |
| IV_WHERE | Import | STRINGTAB | Dynamic WHERE conditions (one per line); empty = all rows |
| IV_MAXROWS | Import | I | Max rows to return (0 = no limit) |
| EV_SUBRC | Export | SYSUBRC | Return code (0 = success) |
| EV_MESSAGE | Export | STRING | Error text when subrc ≠ 0 |
| ET_ROWS | Export | STRINGTAB | Encoded result rows |
Show ABAP source
Loading…
2 · ZDATALOTSE_TABLE_WRITE target
Upserts (MODIFY) the transported rows into the target table.
| Parameter | Kind | Type | Description |
| IV_TABNAME | Import | TABNAME | Target table |
| IV_COMMIT | Import | FLAG | 'X' = commit work |
| IV_TEST | Import | FLAG | 'X' = validate then roll back (writes nothing) |
| IT_ROWS | Import | STRINGTAB | Encoded rows to upsert |
| EV_ROWS | Export | I | Rows written |
| EV_SUBRC | Export | SYSUBRC | Return code (0 = success) |
| EV_MESSAGE | Export | STRING | Message |
Show ABAP source
Loading…
3 · ZDATALOTSE_TABLE_DELETE target · non-prod
Deletes rows by key — used by Cleanup. Install on non-production targets only.
| Parameter | Kind | Type | Description |
| IV_TABNAME | Import | TABNAME | Target table |
| IV_COMMIT | Import | FLAG | 'X' = commit work |
| IV_TEST | Import | FLAG | 'X' = validate then roll back |
| IT_ROWS | Import | STRINGTAB | Encoded key rows to delete |
| EV_ROWS | Export | I | Rows deleted |
| EV_SUBRC | Export | SYSUBRC | Return code (0 = success) |
| EV_MESSAGE | Export | STRING | Message |
Show ABAP source
Loading…
RFC user
A dedicated SAP user the agent uses to connect — its credentials stay on your machine.
- Create a system/communication RFC user (e.g. DATALOTSE_RFC) on each system the agent connects to.
- Grant authorization to call RFC function modules (S_RFC) and to read/write the tables involved in your copies.
- Put this user + password in agent.yaml — they stay on your machine, never in the cloud.
Install the on-prem agent
A Linux host with Docker, outbound HTTPS to app.datalotse.com, network access to
your SAP, an RFC user, and your SAP NW RFC SDK (under your own SAP licence). The agent is a
compiled image — you just pull and run it; no build, no source.
DataLotse gives you a package with the compiled image
and simple run scripts — no Docker commands to type, no build, no source.
- Unpack the package, then unpack your SAP NW RFC SDK inside it (a wrong SDK path is the most common failure):
mkdir datalotse-agent && tar xzf datalotse-agent-package.tar.gz -C datalotse-agent && cd datalotse-agent
unzip nwrfc750P_17-70002752.zip # your SAP SDK → creates nwrfcsdk/
ls nwrfcsdk/lib/libsapnwrfc.so # this file MUST exist
- Create your config from the example and fill it in (see Configure agent.yaml):
cp agent.yaml.example agent.yaml
- Install and start the agent:
./install.sh
- That's it — the agent appears in the Agents tab. Day-to-day:
./logs.sh (watch the log) ·
./restart.sh (after editing agent.yaml) ·
./stop.sh
The image is a compiled binary with no SAP SDK and no Python source inside
— nothing to build, and you never handle the agent's source code.
Register an agent
- Open the Agents tab → enter a name (e.g. landscape-agent-01) → Register agent.
- Copy the token shown — it is displayed only once. It goes in agent.yaml as agent_token.
- Your plan allows one agent; it can serve multiple systems.
Configure the agent (agent.yaml)
Your SAP credentials live here on your own machine — never in the cloud.
cloud_url: "https://app.datalotse.com"
agent_token: "<token from the Agents tab>"
poll_seconds: 5
dry_run: false
systems:
PROD:
ashost: "<sap-host>"
sysnr: "00"
client: "100"
user: "<RFCUSER>"
passwd: "<password>"
TEST:
ashost: "<sap-host>"
sysnr: "00"
client: "500"
user: "<RFCUSER>"
passwd: "<password>"
- The names (PROD, TEST) are what you'll pick in the Systems form.
- After editing, restart the agent: docker restart datalotse-agent
- The agent reports these system names to the portal — they appear as suggestions in the Systems form.
Add a system
- Systems tab → Add system. Pick the connection type first.
- On-prem Agent (recommended): set Display name to a system your agent reports — host, user and password live in the agent, not here.
- Or Direct / SAProuter / VPN: enter app server, system no., client, user and password.
- Set the role (Source / Target) and SAP release (ECC or S/4HANA), then save.
- Add a Source and a Target, and run Test connection before using them.
Copies are only allowed between systems of the same release. The number
of systems (landscapes) you can add is set by your subscription.
Run a data copy
- Data Copy tab → choose an object (e.g. MM_PURCHASE_ORDER).
- Select Source → Target, and enter at least one filter (company code, year, or a document range).
- Click Run. DataLotse resolves dependencies, referenced master data and follow-on documents automatically; PII is scrambled for non-production.
- Track progress and document counts in Monitor; click a job for per-table detail and number-range guidance.
Objects available to copy are limited to the modules in your plan. A selection
filter is always required — DataLotse never copies a whole table.
Run a cleanup
- Cleanup tab → choose an object and enter a filter (a selection is required — cleanup never targets a whole table).
- Click Preview to see exactly what would be deleted.
- Review carefully, then Delete. Use this only on non-production targets.
Cleanup is available on Professional and Enterprise plans.