Diagramme · 04
Abstammung durch transform
transform ist der einzige Weg, aus einer Charge eine Charge zu erzeugen. Es verbrennt Eingaben, mintet Ausgaben und erfasst die Eltern; BatchTransformed entspricht eins zu eins einem TransformationEvent aus EPCIS 2.0.
Teilen, Zusammenführen und Verarbeiten sind eine Operation
flowchart LR
subgraph SPLIT["Re-Batch (Teilen) · keine Rolle erforderlich · gleicher Rohstoff und gleiche Einheit · Menge erhalten"]
W1["#1 Weizen 250 t"] --> W2["#2 Weizen 60 t"]
W1 --> W3["#3 Weizen 40 t"]
end
subgraph MERGE["Re-Batch (Zusammenführen)"]
M1["#4 Kaffee 10 t"] --> M3["#6 Kaffee 25 t"]
M2["#5 Kaffee 15 t"] --> M3
end
subgraph PROC["Verarbeitung · TRANSFORMER_ROLE · Rohstoff oder Menge ändert sich"]
P1["#2 Weizen 60 t"] --> P2["#7 Mehl 45 t"]
endEltern sind On-Chain abfragbar
flowchart TB
F7["parentsOf(7) → [2]"] --> F2["parentsOf(2) → [1]"] --> F1["parentsOf(1) → []"]Ein Rückruf folgt parentsOf rückwärts bis zum Ursprung und den BatchTransformed-Ereignissen vorwärts bis zu jeder abgeleiteten Charge. Ein Massenbilanz-Audit vergleicht die Eingabe- und Ausgabemengen jedes Verarbeitungsschritts mit dem zertifizierten Verhältnis.
Regeln, die die Referenz durchsetzt
| Regel | Wo |
|---|---|
Eingaben müssen existieren, dürfen nicht stillgelegt sein und müssen von from gehalten werden (oder von dem Aufrufer, der von from freigegeben wurde) | transform, _update |
| Re-Batch (gleicher Rohstoff, gleiche Einheit, Σ ein = Σ aus) erfordert keine Rolle | Prüfung isRebatch |
Alles andere erfordert TRANSFORMER_ROLE | transform |
Jede Ausgabe erfasst parents = inputIds und issuer = msg.sender | Speicher |
Hooks sehen OP_TRANSFORM für Eingaben und Ausgaben | _update-Kontext |