Zum Hauptinhalt springen

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

  1. Navigieren Sie im memida-Menü zum Bereich Datenexport.
  2. Klicken Sie auf die Schaltfläche „JSON Export".
  3. Der Export wird im Hintergrund erstellt. Je nach Datenvolumen kann dies einige Minuten dauern.
  4. 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

DateiBeschreibung
manifest.jsonMetadaten über den Export selbst (Version, Zeitstempel, Dateizähler). Dient der Verifizierung.
apparatuses.jsonVollständige Liste aller Prüfmittel mit Stammdaten, Standort, Kostenstelle und Benutzerdaten.
inspections.jsonAlle Prüfungen/Kalibrierungen mit Ergebnis, Prüfungstyp und Verknüpfung zum Prüfmittel.
testplans.jsonAlle 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
}
FeldTypBeschreibung
export_idstringEindeutige UUID dieses Exports. Identifiziert den Export-Vorgang.
schema_versionstringVersion des JSON-Schemas (aktuell 1.0.0). Bei zukünftigen Strukturänderungen wird diese Version erhöht.
productstringQuellsystem – immer memida.
versionstringBuild-Version (Git-Hash) der memida-Instanz zum Zeitpunkt des Exports.
created_atstringZeitstempel der Export-Erstellung im ISO 8601 Format (YYYY-MM-DDTHH:MM:SS±HH:MM).
created_by_user_idstringUUID des Benutzers, der den Export ausgelöst hat.
snapshot_consistencystringKonsistenzmodell: best_effort – die Daten bilden den Stand zum Exportzeitpunkt bestmöglich ab.
binary_files_countintegerAnzahl der im documents/-Ordner enthaltenen Binärdateien (PDFs, Bilder etc.).
binary_bytes_totalintegerGesamtgröß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"
}
]
FeldTypBeschreibung
idstring (UUID)Eindeutige ID des Prüfmittels.
apparatus_basedata_idstring (UUID)Verknüpfung zu den Stammdaten (Gerätetyp).
apparatuses_locations_bases_idstring? (UUID)Verknüpfung zum Standort. null wenn kein Standort zugewiesen.
user_idstring? (UUID)Verantwortlicher Benutzer.
costcenter_idstring? (UUID)Verknüpfte Kostenstelle. null wenn nicht zugewiesen.
statusstringBetriebsstatus: operational, not_operational, decommissioned u. a.
identnostringIdentifikationsnummer / Inventarnummer des Prüfmittels.
serial_numberstring?Seriennummer des Geräts.
checkupbooleanGibt an, ob das Prüfmittel überwachungspflichtig ist.
next_check_atstring? (Date)Nächster Prüftermin im Format YYYY-MM-DD. null wenn kein Termin geplant.
is_one_time_next_check_atbooleantrue wenn der nächste Prüftermin einmalig (manuell) gesetzt wurde.
import_idstring?Referenz-ID aus einem früheren Datenimport. null bei nativ angelegten Datensätzen.
createdstring (ISO 8601)Erstellungszeitpunkt.
modifiedstring (ISO 8601)Letzter Änderungszeitpunkt.
manufactor_idstring? (UUID)UUID des Herstellers.
modelstring?Modellbezeichnung.
costcenter_namestring?Name der zugewiesenen Kostenstelle (denormalisiert).
manufacturer_namestring?Name des Herstellers (denormalisiert).
latest_checkedstring? (ISO 8601)Zeitpunkt der letzten durchgeführten Prüfung.
interval_unitstring?Einheit des Prüfintervalls: days, weeks, months, years.
check_intervalinteger?Numerischer Wert des Prüfintervalls (z. B. 12 bei months = jährlich).
apparatus_basedataobjectEingebettete Stammdaten des Gerätetyps (siehe unten).
custom_fieldsobject?Benutzerdefinierte Felder als Key-Value-Objekt. null wenn keine definiert.
apparatus_fullnamestringBerechneter Volltitel: Hersteller + Modell + Beschreibung.
apparatus_type_namesstring?Kommagetrennte Typbezeichnungen.

Eingebettetes Objekt: apparatus_basedata

FeldTypBeschreibung
idstring (UUID)UUID der Stammdaten.
manufactor_idstring? (UUID)UUID des Herstellers.
modelstring?Modellbezeichnung.
descriptionstring?Beschreibung des Gerätetyps.
apparatus_basedata_typesarrayArray von Typen (Kategorien) mit id und name.
namestring?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
}
]
FeldTypBeschreibung
idstring (UUID)Eindeutige ID der Prüfung.
apparatus_idstring (UUID)UUID des zugehörigen Prüfmittels (Fremdschlüssel zu apparatuses.json).
user_idstring? (UUID)UUID des Prüfers / durchführenden Benutzers.
typestringPrüfungstyp-Kategorie: calibration, inspection, maintenance, other.
reportstring?Freitext-Prüfbericht / Bemerkungen zur Prüfung.
inspection_result_idintegerNumerische ID des Prüfergebnisses (siehe inspection_result).
checked_atstring (ISO 8601)Zeitpunkt der Prüfung.
createdstring (ISO 8601)Erstellungszeitpunkt des Datensatzes.
modifiedstring (ISO 8601)Letzter Änderungszeitpunkt.
deletedstring? (ISO 8601)Soft-Delete-Zeitstempel. null wenn nicht gelöscht.
inspection_typeobjectEingebetteter Prüfungstyp mit id, parent_type und name.
inspection_resultobjectEingebettetes Prüfergebnis mit id und name (z. B. operational, not_operational).
filesarrayListe der zugehörigen Dokumente (siehe Dateistruktur unten).
custom_fieldsobject?Benutzerdefinierte Felder. null wenn keine definiert.

Prüfergebnis (inspection_result.name)

WertBedeutung
operationalPrüfmittel ist betriebsbereit
not_operationalPrüfmittel ist nicht einsatzfähig
limitedEingeschrä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
}
]
FeldTypBeschreibung
idstring (UUID)Eindeutige ID des Prüfplans.
apparatus_idstring (UUID)UUID des zugehörigen Prüfmittels (Fremdschlüssel zu apparatuses.json).
user_idstring? (UUID)UUID des Erstellers.
inspection_planstring?Textuelle Beschreibung des Prüfplans.
createdstring (ISO 8601)Erstellungszeitpunkt.
modifiedstring (ISO 8601)Letzter Änderungszeitpunkt.
deletedstring? (ISO 8601)Soft-Delete-Zeitstempel. null wenn nicht gelöscht.
calibration_procedurestring?Beschreibung der Kalibrier- / Prüfprozedur.
filesarrayListe der zugehörigen Dokumente.
custom_fieldsobject?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"
}
FeldTypBeschreibung
idstring (UUID)Eindeutige ID der Datei.
file_typestringMIME-Type der Datei (z. B. application/pdf).
createdstring (ISO 8601)Upload-Zeitpunkt.
namestringOriginaler Dateiname.

Pfad im ZIP-Archiv: Die zugehörige Binärdatei liegt unter documents/<typ>/<entitäts-uuid>/<dateiname>, wobei:

  • <typ> = inspection oder testplan
  • <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"
}
}
FeldTypBeschreibung
titlestringBezeichnung des Feldes (wie in der memida-Oberfläche angezeigt).
valuestringTechnischer / gespeicherter Wert.
view_valuestringAnzeige-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_version in manifest.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.