JSON Datenexport
Überblick
Der JSON-Export ermöglicht es, sämtliche Prüfmitteldaten aus memida in einem offenen, maschinenlesbaren Format herunterzuladen. Der Export enthält alle Prüfmittel (Apparate), deren Prüfungen (Inspektionen) und Prüfpläne (Testpläne) inklusive der zugehörigen Dokumente – gebündelt als komprimiertes ZIP-Archiv.
Export starten
- Navigieren Sie im memida-Menü zum Bereich Datenexport.
- Klicken Sie auf die Schaltfläche „JSON Export".
- Der Export wird im Hintergrund erstellt. Je nach Datenvolumen kann dies einige Minuten dauern.
- Nach Abschluss wird die ZIP-Datei automatisch zum Download bereitgestellt.
Hinweis: Pro Tag ist ein JSON-Export möglich. Ein bereits laufender Export muss abgeschlossen sein, bevor ein neuer gestartet werden kann.
Inhalt des Exports
Nach dem Entpacken der .zip-Datei finden Sie folgende Struktur:
Memida_export_json_<uuid>_<datum>.zip
│
├── manifest.json Export-Metadaten
├── apparatuses.json Alle Prüfmittel (Apparate)
├── inspections.json Alle Prüfberichte / Kalibrierungen
├── testplans.json Alle Prüfpläne / Prüfanweisungen
│
└── documents/ Zugehörige Dokumente
├── inspection/
│ └── <uuid>/
│ └── Kalibrierschein.pdf
└── testplan/
└── <uuid>/
└── Pruefanweisung.pdf
Dateibeschreibung
| Datei | Beschreibung |
|---|---|
manifest.json | Metadaten über den Export selbst (Version, Zeitstempel, Dateizähler). Dient der Verifizierung. |
apparatuses.json | Vollständige Liste aller Prüfmittel mit Stammdaten, Standort, Kostenstelle und Benutzerdaten. |
inspections.json | Alle Prüfungen/Kalibrierungen mit Ergebnis, Prüfungstyp und Verknüpfung zum Prüfmittel. |
testplans.json | Alle Prüfpläne/Prüfanweisungen mit Kalibrierprozedur und Verknüpfung zum Prüfmittel. |
documents/ | Binärdateien (PDFs, Bilder etc.) – organisiert nach Typ und Entitäts-UUID. |
Datenstrukturen im Detail
manifest.json
Die Manifest-Datei enthält Metadaten über den Export und dient der Nachvollziehbarkeit und Integritätsprüfung.
{
"export_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"schema_version": "1.0.0",
"product": "memida",
"version": "3f7a2b1",
"created_at": "2026-02-11T14:30:00+01:00",
"created_by_user_id": "f8e7d6c5-b4a3-2190-fedc-ba0987654321",
"snapshot_consistency": "best_effort",
"binary_files_count": 42,
"binary_bytes_total": 15728640
}
| Feld | Typ | Beschreibung |
|---|---|---|
export_id | string | Eindeutige UUID dieses Exports. Identifiziert den Export-Vorgang. |
schema_version | string | Version des JSON-Schemas (aktuell 1.0.0). Bei zukünftigen Strukturänderungen wird diese Version erhöht. |
product | string | Quellsystem – immer memida. |
version | string | Build-Version (Git-Hash) der memida-Instanz zum Zeitpunkt des Exports. |
created_at | string | Zeitstempel der Export-Erstellung im ISO 8601 Format (YYYY-MM-DDTHH:MM:SS±HH:MM). |
created_by_user_id | string | UUID des Benutzers, der den Export ausgelöst hat. |
snapshot_consistency | string | Konsistenzmodell: best_effort – die Daten bilden den Stand zum Exportzeitpunkt bestmöglich ab. |
binary_files_count | integer | Anzahl der im documents/-Ordner enthaltenen Binärdateien (PDFs, Bilder etc.). |
binary_bytes_total | integer | Gesamtgröße aller Binärdateien in Bytes (unkomprimiert). |
apparatuses.json
Enthält ein JSON-Array mit allen Prüfmitteln des Mandanten.
[
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"apparatus_basedata_id": "7bc12e98-3a45-4f01-8d2e-1a2b3c4d5e6f",
"apparatuses_locations_bases_id": "9de34f10-5b67-4a23-9e4f-2b3c4d5e6f70",
"user_id": "f8e7d6c5-b4a3-2190-fedc-ba0987654321",
"costcenter_id": "1ab23c45-6d78-9e01-f234-567890abcdef",
"status": "operational",
"identno": "PM-2024-001",
"serial_number": "SN-123456",
"checkup": true,
"next_check_at": "2026-06-15",
"is_one_time_next_check_at": false,
"import_id": null,
"created": "2024-03-15T10:30:00+01:00",
"modified": "2026-01-20T08:45:00+01:00",
"manufactor_id": "2bc34d56-7e89-0f12-a345-678901bcdef0",
"model": "DPI 620",
"costcenter_name": "Fertigung Halle 3",
"manufacturer_name": "Druck",
"latest_checked": "2025-06-14T09:00:00+02:00",
"interval_unit": "months",
"check_interval": 12,
"apparatus_basedata": {
"id": "7bc12e98-3a45-4f01-8d2e-1a2b3c4d5e6f",
"manufactor_id": "2bc34d56-7e89-0f12-a345-678901bcdef0",
"model": "DPI 620",
"description": "Multifunktions-Druckkalibrator",
"apparatus_basedata_types": [
{
"id": "4de56f78-9a01-2b34-c567-890123def456",
"name": "Druckkalibrator"
}
],
"name": "DPI 620"
},
"custom_fields": {
"1": {
"title": "Raumnummer",
"value": "R-301",
"view_value": "R-301"
}
},
"apparatus_fullname": "Druck DPI 620 Multifunktions-Druckkalibrator",
"apparatus_type_names": "Druckkalibrator"
}
]
| Feld | Typ | Beschreibung |
|---|---|---|
id | string (UUID) | Eindeutige ID des Prüfmittels. |
apparatus_basedata_id | string (UUID) | Verknüpfung zu den Stammdaten (Gerätetyp). |
apparatuses_locations_bases_id | string? (UUID) | Verknüpfung zum Standort. null wenn kein Standort zugewiesen. |
user_id | string? (UUID) | Verantwortlicher Benutzer. |
costcenter_id | string? (UUID) | Verknüpfte Kostenstelle. null wenn nicht zugewiesen. |
status | string | Betriebsstatus: operational, not_operational, decommissioned u. a. |
identno | string | Identifikationsnummer / Inventarnummer des Prüfmittels. |
serial_number | string? | Seriennummer des Geräts. |
checkup | boolean | Gibt an, ob das Prüfmittel überwachungspflichtig ist. |
next_check_at | string? (Date) | Nächster Prüftermin im Format YYYY-MM-DD. null wenn kein Termin geplant. |
is_one_time_next_check_at | boolean | true wenn der nächste Prüftermin einmalig (manuell) gesetzt wurde. |
import_id | string? | Referenz-ID aus einem früheren Datenimport. null bei nativ angelegten Datensätzen. |
created | string (ISO 8601) | Erstellungszeitpunkt. |
modified | string (ISO 8601) | Letzter Änderungszeitpunkt. |
manufactor_id | string? (UUID) | UUID des Herstellers. |
model | string? | Modellbezeichnung. |
costcenter_name | string? | Name der zugewiesenen Kostenstelle (denormalisiert). |
manufacturer_name | string? | Name des Herstellers (denormalisiert). |
latest_checked | string? (ISO 8601) | Zeitpunkt der letzten durchgeführten Prüfung. |
interval_unit | string? | Einheit des Prüfintervalls: days, weeks, months, years. |
check_interval | integer? | Numerischer Wert des Prüfintervalls (z. B. 12 bei months = jährlich). |
apparatus_basedata | object | Eingebettete Stammdaten des Gerätetyps (siehe unten). |
custom_fields | object? | Benutzerdefinierte Felder als Key-Value-Objekt. null wenn keine definiert. |
apparatus_fullname | string | Berechneter Volltitel: Hersteller + Modell + Beschreibung. |
apparatus_type_names | string? | Kommagetrennte Typbezeichnungen. |
Eingebettetes Objekt: apparatus_basedata
| Feld | Typ | Beschreibung |
|---|---|---|
id | string (UUID) | UUID der Stammdaten. |
manufactor_id | string? (UUID) | UUID des Herstellers. |
model | string? | Modellbezeichnung. |
description | string? | Beschreibung des Gerätetyps. |
apparatus_basedata_types | array | Array von Typen (Kategorien) mit id und name. |
name | string? | Kurzname des Stammdatensatzes. |
inspections.json
Enthält ein JSON-Array mit allen Prüfungen / Kalibrierungen.
[
{
"id": "b2c34d56-7e89-0f12-a345-678901bcdef0",
"apparatus_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"user_id": "f8e7d6c5-b4a3-2190-fedc-ba0987654321",
"type": "calibration",
"report": "Kalibrierung erfolgreich durchgeführt. Alle Messwerte innerhalb der Toleranz.",
"inspection_result_id": 1,
"checked_at": "2025-06-14T09:00:00+02:00",
"created": "2025-06-14T09:15:00+02:00",
"modified": "2025-06-14T09:15:00+02:00",
"deleted": null,
"inspection_type": {
"id": "c3d45e67-8f90-1a23-b456-789012cdef01",
"parent_type": "calibration",
"name": "DAkkS-Kalibrierung"
},
"inspection_result": {
"id": 1,
"name": "operational"
},
"files": [
{
"id": "d4e56f78-9a01-2b34-c567-890123def456",
"file_type": "application/pdf",
"created": "2025-06-14T09:16:00+02:00",
"name": "Kalibrierschein_2025.pdf"
}
],
"custom_fields": null
}
]
| Feld | Typ | Beschreibung |
|---|---|---|
id | string (UUID) | Eindeutige ID der Prüfung. |
apparatus_id | string (UUID) | UUID des zugehörigen Prüfmittels (Fremdschlüssel zu apparatuses.json). |
user_id | string? (UUID) | UUID des Prüfers / durchführenden Benutzers. |
type | string | Prüfungstyp-Kategorie: calibration, inspection, maintenance, other. |
report | string? | Freitext-Prüfbericht / Bemerkungen zur Prüfung. |
inspection_result_id | integer | Numerische ID des Prüfergebnisses (siehe inspection_result). |
checked_at | string (ISO 8601) | Zeitpunkt der Prüfung. |
created | string (ISO 8601) | Erstellungszeitpunkt des Datensatzes. |
modified | string (ISO 8601) | Letzter Änderungszeitpunkt. |
deleted | string? (ISO 8601) | Soft-Delete-Zeitstempel. null wenn nicht gelöscht. |
inspection_type | object | Eingebetteter Prüfungstyp mit id, parent_type und name. |
inspection_result | object | Eingebettetes Prüfergebnis mit id und name (z. B. operational, not_operational). |
files | array | Liste der zugehörigen Dokumente (siehe Dateistruktur unten). |
custom_fields | object? | Benutzerdefinierte Felder. null wenn keine definiert. |
Prüfergebnis (inspection_result.name)
| Wert | Bedeutung |
|---|---|
operational | Prüfmittel ist betriebsbereit |
not_operational | Prüfmittel ist nicht einsatzfähig |
limited | Eingeschränkt einsatzfähig |
testplans.json
Enthält ein JSON-Array mit allen Prüfplänen / Prüfanweisungen.
[
{
"id": "e5f67890-ab12-3c45-d678-901234ef5678",
"apparatus_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"user_id": "f8e7d6c5-b4a3-2190-fedc-ba0987654321",
"inspection_plan": "Druckkalibrierung gemäß interner Prüfanweisung PA-2024-003.",
"created": "2024-03-20T11:00:00+01:00",
"modified": "2025-01-10T14:30:00+01:00",
"deleted": null,
"calibration_procedure": "PA-2024-003: Vergleich gegen Referenznormal, 5 Messpunkte aufsteigend/absteigend",
"files": [
{
"id": "f6789012-bc34-5d67-e890-123456f78901",
"file_type": "application/pdf",
"created": "2024-03-20T11:05:00+01:00",
"name": "Pruefanweisung_PA-2024-003.pdf"
}
],
"custom_fields": null
}
]
| Feld | Typ | Beschreibung |
|---|---|---|
id | string (UUID) | Eindeutige ID des Prüfplans. |
apparatus_id | string (UUID) | UUID des zugehörigen Prüfmittels (Fremdschlüssel zu apparatuses.json). |
user_id | string? (UUID) | UUID des Erstellers. |
inspection_plan | string? | Textuelle Beschreibung des Prüfplans. |
created | string (ISO 8601) | Erstellungszeitpunkt. |
modified | string (ISO 8601) | Letzter Änderungszeitpunkt. |
deleted | string? (ISO 8601) | Soft-Delete-Zeitstempel. null wenn nicht gelöscht. |
calibration_procedure | string? | Beschreibung der Kalibrier- / Prüfprozedur. |
files | array | Liste der zugehörigen Dokumente. |
custom_fields | object? | Benutzerdefinierte Felder. null wenn keine definiert. |
Datei-Referenzen (files)
Jede Prüfung und jeder Prüfplan kann Dokumente enthalten. Die Metadaten stehen im JSON, die eigentliche Datei liegt im documents/-Ordner der ZIP-Datei.
{
"id": "d4e56f78-9a01-2b34-c567-890123def456",
"file_type": "application/pdf",
"created": "2025-06-14T09:16:00+02:00",
"name": "Kalibrierschein_2025.pdf"
}
| Feld | Typ | Beschreibung |
|---|---|---|
id | string (UUID) | Eindeutige ID der Datei. |
file_type | string | MIME-Type der Datei (z. B. application/pdf). |
created | string (ISO 8601) | Upload-Zeitpunkt. |
name | string | Originaler Dateiname. |
Pfad im ZIP-Archiv:
Die zugehörige Binärdatei liegt unter documents/<typ>/<entitäts-uuid>/<dateiname>, wobei:
<typ>=inspectionodertestplan<entitäts-uuid>= UUID der Prüfung bzw. des Prüfplans<dateiname>= Originaler Dateiname
Benutzerdefinierte Felder (custom_fields)
Benutzerdefinierte Felder (Custom Fields) werden als Objekt exportiert, sofern für den jeweiligen Datensatz welche konfiguriert und befüllt sind. Sind keine benutzerdefinierten Felder vorhanden, ist der Wert null.
{
"1": {
"title": "Raumnummer",
"value": "R-301",
"view_value": "R-301"
},
"2": {
"title": "Prüfstatus",
"value": "active",
"view_value": "Aktiv"
}
}
| Feld | Typ | Beschreibung |
|---|---|---|
title | string | Bezeichnung des Feldes (wie in der memida-Oberfläche angezeigt). |
value | string | Technischer / gespeicherter Wert. |
view_value | string | Anzeige-Wert (z. B. bei Auswahlfeldern der lesbare Text statt des internen Werts). |
Der Schlüssel (z. B.
"1","2") entspricht der internen ID des zusätzlichen Feldes.
Hinweise
- Encoding: Alle JSON-Dateien sind in UTF-8 kodiert. Sonderzeichen (Umlaute, Sonderzeichen) werden direkt ausgegeben, nicht als Unicode-Escape-Sequenzen.
- Konsistenz: Der Export bildet eine Momentaufnahme zum Zeitpunkt der Erstellung ab (
snapshot_consistency: best_effort). Änderungen, die während der Export-Erstellung vorgenommen werden, können teilweise enthalten sein. - Dateigröße: Die Größe der ZIP-Datei hängt maßgeblich von der Anzahl und Größe der angehängten Dokumente ab. Die JSON-Daten selbst sind in der Regel kompakt.
- Kompatibilität: Der Export folgt einem versionierten Schema (
schema_versioninmanifest.json). Bei zukünftigen Änderungen an der Datenstruktur wird die Schema-Version erhöht und die Änderungen dokumentiert.
Häufig gestellte Fragen (FAQ)
Warum kann ich nur einmal pro Tag exportieren? Das tägliche Limit verhindert unnötige Systemlast und stellt sicher, dass Exporte bewusst angefordert werden. Bei besonderem Bedarf wenden Sie sich bitte an den Support.
Werden gelöschte Prüfmittel exportiert? Nein. Es werden nur aktive Prüfmittel des Unternehmens exportiert.
Welche Dokumente werden exportiert? Alle zum Zeitpunkt des Exports mit einem Prüfmittel oder einer Prüfung verknüpften Dateien werden in das ZIP-Archiv aufgenommen. Die Dateien werden in ihrer Originalform (ohne Konvertierung) exportiert.