====== Workflowübergaben ====== **B2Base · 1.0.0-draft.1 · Projektentwurf** Daten, Aufgaben und Dokumentverweise an einen Folgeworkflow, eine E-Mail-Übergabe oder einen Skriptendpunkt beschreiben. [[schemes:scheme|Bibliothek]] · [[schemes:process|Aufgaben, Dokumente und Übergaben]] · [[schemes:principles|Internationale Grundregeln]] ===== Direkt verwenden ===== [[b2schema>1.0.0-draft.1/process/handoff.schema.json|Austauschschema (JSON)]] · [[b2schema>1.0.0-draft.1/process/handoff.editor.schema.json|Schema für den Designer]] · [[b2schema>1.0.0-draft.1/process/handoff.examples.json|Beispieldaten]] **Austauschschema:** vollständige Strukturprüfung mit JSON Schema 2020-12. **Designer-Fassung:** gleiche Datenfelder mit reduzierten Strukturregeln zur Feldübernahme. [[:guidelines#im_workflowdesigner_verwenden|Anleitung und Grenzen]] ===== Felder im Überblick ===== ^ Feld ^ Typ ^ Pflicht im Modul ^ Bedeutung ^ | ''id'' | string | Ja | Eindeutige Übergabekennung; Empfänger soll Wiederholungen anhand dieser ID erkennen. | | ''kind'' | string | Ja | Art des Zielsystems. | | ''target'' | string | Ja | HTTPS-Ziel oder mailto-URI je nach kind; keine Zugangsdaten oder Tokens in der URI. | | ''sourceWorkflowId'' | string | Nein | Kennung des sendenden Workflowlaufs. | | ''payload'' | object | Ja | Explizit freigegebene Nutzdaten. | | ''createdAt'' | string | Nein | Zeitpunkt der Auftragserstellung. | | ''extensions'' | object | Nein | Vereinbarte Erweiterungen; Schlüssel als absolute URI des Herausgebers. Keine stillschweigende Änderung von Kernfeldern. | Pflichtangaben gelten für das jeweilige Objekt, wenn dieses Modul verwendet wird. Zusätzliche Alternativen und Statusregeln stehen im Austauschschema. Optionale Felder weglassen, wenn sie unbekannt oder nicht anwendbar sind; ein leeres Pflichtfeld ist kein gültiger Ersatz. ===== International richtig einsetzen ===== * Die drei Übergabearten besitzen dieselbe Datenhülle. Die Integration bestimmt Authentifizierung, Freigabe, Wiederholungsstrategie und Fehlerbehandlung. * payload.data ist absichtlich fachlich offen und wird zusätzlich gegen payload.schemaId validiert. Ein gültiger Umschlag allein reicht nicht. * Der derzeitige BPMN-Interpreter verwendet seine bisherigen Endereignisse. Dieses Schema dokumentiert ein neues Austauschformat und wird erst durch einen ausdrücklich implementierten Adapter ausgeführt. ===== Gültige Beispiele ===== Alle Beispiele sind synthetisch. Sie werden mit dem mitgelieferten Schema geprüft; daraus folgt keine fachliche Echtheit oder externe Erreichbarkeit. ==== Beispiel 1 ==== { "id": "urn:example:handoff:42", "kind": "workflow", "target": "https://example.org/workflows/review", "payload": { "schemaId": "https://b2base.eu/schemas/1.0.0-draft.1/financial/money.schema.json", "data": { "amount": "125.00", "currency": "EUR" } } } ==== Beispiel 2 ==== { "id": "urn:example:handoff:43", "kind": "email", "target": "mailto:workflow@example.org", "payload": { "schemaId": "https://b2base.eu/schemas/1.0.0-draft.1/person/nameandbirthdetails.schema.json", "data": { "name": { "preferredName": "Sukarno" } } } } ===== Umstellung aus dem bisherigen Wiki ===== Neuer Standard. Keine vorhandenen Endereignisse, Skripte oder E-Mail-Ziele werden automatisch umgestellt oder aufgerufen. [[schemes:migration|Änderungsübersicht und Migrationsregeln]] ===== Vollständiges Schema ===== Die Datei ist eigenständig: verwendete Bausteine sind unter ''$defs'' eingebettet, Referenzen bleiben lokal. ''$id'' ist die kanonische Kennung. Die Downloads oben verwenden den aktuellen Server; eine Veröffentlichung unter der kanonischen Domain ist damit nicht behauptet. { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://b2base.eu/schemas/1.0.0-draft.1/process/handoff.schema.json", "title": "Workflowübergaben", "$comment": "B2Base 1.0.0-draft.1. Projektentwurf, kein durch ISO oder andere Normungsgremien verabschiedeter Standard.", "type": "object", "description": "Ein Übergabeauftrag; keine automatische Ausführung.", "properties": { "id": { "type": "string", "minLength": 1, "description": "Eindeutige Übergabekennung; Empfänger soll Wiederholungen anhand dieser ID erkennen.", "format": "uri" }, "kind": { "type": "string", "minLength": 1, "description": "Art des Zielsystems.", "enum": [ "workflow", "email", "script" ] }, "target": { "type": "string", "minLength": 1, "description": "HTTPS-Ziel oder mailto-URI je nach kind; keine Zugangsdaten oder Tokens in der URI.", "format": "uri" }, "sourceWorkflowId": { "type": "string", "minLength": 1, "description": "Kennung des sendenden Workflowlaufs.", "format": "uri" }, "payload": { "type": "object", "description": "Explizit freigegebene Nutzdaten.", "properties": { "schemaId": { "type": "string", "minLength": 1, "description": "Schema der data-Nutzdaten.", "format": "uri" }, "data": { "type": "object", "description": "Fachdaten; gegen schemaId gesondert vollständig validieren.", "additionalProperties": true }, "taskRefs": { "type": "array", "description": "Aufgabenreferenzen.", "items": { "type": "string", "minLength": 1, "description": "Aufgaben-URI.", "format": "uri" } }, "documentRefs": { "type": "array", "description": "Dokumentreferenzen.", "items": { "type": "string", "minLength": 1, "description": "Dokument-URI.", "format": "uri" } } }, "required": [ "schemaId", "data" ], "additionalProperties": false }, "createdAt": { "type": "string", "minLength": 1, "description": "Zeitpunkt der Auftragserstellung.", "format": "date-time" }, "extensions": { "type": "object", "description": "Vereinbarte Erweiterungen; Schlüssel als absolute URI des Herausgebers. Keine stillschweigende Änderung von Kernfeldern.", "properties": {}, "additionalProperties": true, "propertyNames": { "format": "uri" } } }, "required": [ "id", "kind", "target", "payload" ], "additionalProperties": false, "allOf": [ { "if": { "properties": { "kind": { "const": "email" } }, "required": [ "kind" ] }, "then": { "properties": { "target": { "pattern": "^mailto:[^?]+" } } } }, { "if": { "properties": { "kind": { "enum": [ "workflow", "script" ] } }, "required": [ "kind" ] }, "then": { "properties": { "target": { "pattern": "^https://" } } } } ], "examples": [ { "id": "urn:example:handoff:42", "kind": "workflow", "target": "https://example.org/workflows/review", "payload": { "schemaId": "https://b2base.eu/schemas/1.0.0-draft.1/financial/money.schema.json", "data": { "amount": "125.00", "currency": "EUR" } } }, { "id": "urn:example:handoff:43", "kind": "email", "target": "mailto:workflow@example.org", "payload": { "schemaId": "https://b2base.eu/schemas/1.0.0-draft.1/person/nameandbirthdetails.schema.json", "data": { "name": { "preferredName": "Sukarno" } } } } ] } ===== Quellen und Abgrenzung ===== * [[https://json-schema.org/understanding-json-schema/structuring|JSON Schema: Aufbau und Referenzen]] * [[https://www.rfc-editor.org/rfc/rfc3339.html|IETF RFC 3339: Datum und Zeitstempel]] Quellen geprüft am 8. September 2026. Die B2Base-Felder und ihre Kombination sind ein eigener Entwurf. Code-Register, nationale Regeln, Echtheit, Zeitfolgen und Referenzziele benötigen die im jeweiligen Verfahren vereinbarten Zusatzprüfungen. [[schemes:scheme|Zur Bibliothek]] · [[:guidelines|Integration]] · [[:faq|Häufige Fragen]]