Skip to content

DaRT Reader Documentation

Welcome to the DaRT Reader documentation. DaRT Reader is a professional tool for reading, validating, and processing DaRT extracts.

What is DaRT Reader?

DaRT Reader allows you to:

  • Read DaRT extracts - Load and inspect directory files and payload data
  • Validate data integrity - Verify checksums and file sizes
  • Export to databases - Write extract data to various database systems
  • Export to CSV - Export segments to CSV files for further analysis
  • View logs - Built-in log viewer for troubleshooting

Scope

What DaRT Reader does, what it does not do, and which DaRT releases it has been tested with.

DaRT releases

DaRT Reader reads extracts written by DaRT releases 2.0 to 2.8. The record layout of each of these releases is implemented as SAP describes it in its notes on DaRT.

  • Tested: releases 2.7 and 2.8.
  • Not tested: releases 2.0 to 2.6. Extracts of these releases should be read correctly, but this has not been tested.
  • Not read: any other release. An extract of a release outside 2.0 to 2.8 is refused with a message naming its release; nothing of it is read.

What DaRT Reader does

  • Reads a DaRT extract — the directory file and its payload files, written at fixed width or compressed, in Unicode or in one of the code pages listed under Data Encoding.
  • Checks that the payload files are whole — that each is there, was written to its end, has the size it states and belongs to the same extract as the directory file.
  • Shows what the extract holds — its description of itself, its segments with their fields and number of records, and the first 1,000 records of a segment.
  • Writes the segments you choose to SQLite, H2, PostgreSQL, Microsoft SQL Server, DuckDB or Microsoft Access, or to CSV files. On the command line, any other database can be written to through its own JDBC driver.
  • Checks what it has written — that every record arrived, which values could not be read, and for each segment the byte checksum the extract states. On request, after a database write, it also reads every value back, compares sampled records one by one, and compares the totals the extract states in TXW_CHKSUM against the database.
  • Reports a write that did not complete as incomplete, naming the segments concerned.

What DaRT Reader does not do

  • It does not connect to SAP. It neither creates DaRT extracts nor changes them; it reads the files DaRT has written.
  • It does not analyse the data. It transfers the extract into a database or into CSV files and checks the transfer. Evaluating the data is left to the tools you use on the database.
  • It does not convert figures. Amounts and quantities are written as the extract holds them; no currency's decimal places or other scale are applied. See The figures are the ones the extract holds.
  • It does not create database schemas, and does not overwrite. A schema has to exist before the write. A table or a CSV file of the same name that already exists is refused, not replaced.
  • It does not work offline. Opening an extract and every write ask the licensing service over the internet.
  • It does not bundle drivers for MySQL or MariaDB, for licensing reasons. Databases other than the six above are written to through a driver of your own, on the command line; this has not been tested for any particular database.
  • It does not hold every amount exactly in SQLite. SQLite has no exact decimal type, and a figure of more than about sixteen digits loses its last places. See Amounts and quantities.
  • It does not read every code page. An extract in a code page DaRT Reader does not know is refused rather than read with the wrong one.
  • Its byte checksum assumes an extract from a Unicode SAP system. On an extract from a non-Unicode system the comparison can report a difference although the data was read correctly. See When this message is wrong.
  • It does not compare check sums it cannot scale. Where the decimal places of an amount cannot be read from the extract, the check sums of that segment are reported as not checkable rather than compared.

What is a DaRT extract?

A DaRT extract is a data archive created by SAP's Data Retention Tool (DaRT), designed for long-term storage of business data for audit, compliance, and legal retention purposes. When organizations need to archive historical SAP data while maintaining data integrity and auditability, DaRT creates extracts in a specialized flat-file format.

Extract Structure

A DaRT extract consists of two types of files:

  1. Directory File (*_DR) - An index file containing metadata about the extract
  2. Payload Files - One or more data files containing the actual business data

File Format

DaRT uses a fixed-width, byte-offset format (not XML or CSV). Each record type has predefined field positions, making it efficient for large-scale data retention.

Directory File Example

The directory file is a small file (kilobytes), typically having the _DR suffix, for example, 2025-extract_DR. The directory file uses UTF-8 encoding with fixed-position fields. Here's a simplified excerpt:

   00A1B2C3D4E5F60718293A4B5C6D7E8F002.7 DEVCLNT1000000                              201412345678    20191205222319740 Z_EXTRACT_2019                                                  000007952451000000000000080531790008054115/usr/sap/PRD                                                                                                                         00XPRD_System                    PRODDB    00000000000000000000000468982116;2000013sapserver001                                  00000000000000            00000000000000                00000000000000      310641031000

Payload File Example

Payload files are much larger than the directory file. They have an incrementing number suffix (except for the first payload file):

2025-extract
2025-extract_01
2025-extract_02
2025-extract_03

Payload files contain multiple segment types. Here's an example of a TXW_DIRSG2 segment record (segment structure metadata). The payload files typically contain many of these records:

050000000110002000000A1B2C3D4E5F60718293A4B5C6D7E8F00001BSEG      BSEG                                      11X000000000010000000008000000000000000680000000000000000000000000000000000000000000000000000          00000000000000000000000000                                                                  000000000      000000000000000000000000

Data Encoding

How a character becomes bytes. The directory record states it in two fields, and the extract overview shows both as Unicode mode and Codepage:

  • Unicode mode Yes — the payload is read as UTF-8.
  • Unicode mode No — the code page decides. DaRT Reader knows 53 of them: 1160 is windows-1252 for Western Europe, 1401 is ISO-8859-2 for Central Europe.
  • Unicode mode Selection — the mode does not say, and the code page settles it: a Unicode code page is read as UTF-8, anything else through the code page itself.

The code page is shown with the charset it stands for in brackets — 4103 (UTF-16LE). Where this version has no entry for the number it reads (unknown); where it has the name but the installation carries no such charset, it says that instead. The two look alike and are not: the first cannot be read anywhere, the second cannot be read here.

An extract that states a mode or a code page this version does not read is refused rather than read with the wrong one. See Error Messages.

Record Layout

Whether a record is written out in full width or compressed. This is a separate property from the encoding, held in its own header fields, and the two combine freely: an extract can be Unicode and compressed, non-Unicode and compressed, or neither.

  • Fixed width — every field is padded out to the width the extract's metadata gives it, and a field is found by counting bytes.
  • Compressed — trailing blanks are removed from each field and a delimiter is written between fields. The file is smaller; the values in it are the same.

DaRT's own structures — the segment directory, the metadata, the selections, the checksums — are fixed width whatever the flag says. Only the data segments follow it.

The overview shows this as Compressed and Separator used.

Available Interfaces

DaRT Reader provides two interfaces:

  • GUI Application - A window for opening a folder of extracts, looking at their segments and records, and writing them
  • CLI Tool - Command-line interface for automation and scripting

Supported Databases

DaRT Reader supports exporting to:

  • SQLite
  • H2
  • PostgreSQL
  • Microsoft SQL Server
  • DuckDB
  • Microsoft Access

and to any relational database with a JDBC driver using the CLI Tool.

Getting Help

If you encounter issues:

  1. Check the FAQ
  2. Review Common Issues
  3. Check the Error Messages reference
  4. Check the log — View > Log in the window, or the folders named in Where the settings are stored

Security

DaRT Reader handles sensitive database credentials. Please review the Security section before deploying in production.