Skip to main contentA-REX Core

Diagramas · 04

Linaje a través de transform

transform es la única forma de crear un lote a partir de un lote. Quema las entradas, acuña las salidas y registra los progenitores; BatchTransformed se corresponde uno a uno con un TransformationEvent de EPCIS 2.0.

La división, la fusión y el procesamiento son una misma operación

flowchart LR
    subgraph SPLIT["Reagrupación (división) · no requiere rol · mismo producto básico y misma unidad · cantidad conservada"]
        W1["#1 trigo 250 t"] --> W2["#2 trigo 60 t"]
        W1 --> W3["#3 trigo 40 t"]
    end
    subgraph MERGE["Reagrupación (fusión)"]
        M1["#4 café 10 t"] --> M3["#6 café 25 t"]
        M2["#5 café 15 t"] --> M3
    end
    subgraph PROC["Procesamiento · TRANSFORMER_ROLE · cambia el producto básico o la cantidad"]
        P1["#2 trigo 60 t"] --> P2["#7 harina 45 t"]
    end

Los progenitores pueden consultarse en la cadena

flowchart TB
    F7["parentsOf(7) → [2]"] --> F2["parentsOf(2) → [1]"] --> F1["parentsOf(1) → []"]

Una retirada de producto recorre parentsOf hacia atrás hasta el origen y los eventos BatchTransformed hacia adelante hasta cada lote derivado. Una auditoría de balance de masas compara las cantidades de entrada y de salida de cada paso de procesamiento con la proporción certificada.

Reglas que aplica la referencia

ReglaDónde
Las entradas deben existir, no estar retiradas y estar en poder de from (o de quien llama, aprobado por from)transform, _update
La reagrupación (mismo producto básico, misma unidad, Σ entradas = Σ salidas) no necesita rolcomprobación isRebatch
Cualquier otro caso necesita TRANSFORMER_ROLEtransform
Cada salida registra parents = inputIds y issuer = msg.senderalmacenamiento
Los hooks ven OP_TRANSFORM para las entradas y las salidascontexto de _update