Skip to main contentA-REX Foundation

Diagramas · 04

Linaje con transform

transform es la única forma de crear un lote a partir de otro. Quema las entradas, acuña las salidas y registra los lotes padre; cada BatchTransformed equivale a un TransformationEvent de EPCIS 2.0.

Dividir, fusionar y procesar son una misma operación

flowchart LR
    subgraph SPLIT["Reagrupación (división) · no requiere rol · mismo producto y unidad · se conserva la cantidad"]
        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 o la cantidad"]
        P1["#2 trigo 60 t"] --> P2["#7 harina 45 t"]
    end

Los lotes padre se consultan en la cadena

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

Un retiro del mercado recorre parentsOf hacia atrás, hasta el origen, y los eventos BatchTransformed hacia adelante, hasta cada lote derivado. Una auditoría de balance de masa compara las cantidades de entrada y salida de cada etapa de procesamiento con la proporción certificada.

Reglas que aplica la implementación de referencia

ReglaDónde
Las entradas deben existir, no estar dadas de baja y pertenecer a from (o quien llama debe tener la aprobación de from)transform, _update
La reagrupación (mismo producto, misma unidad, Σ entradas = Σ salidas) no requiere rolverificación isRebatch
Cualquier otro caso requiere TRANSFORMER_ROLEtransform
Cada salida registra parents = inputIds y issuer = msg.senderalmacenamiento
Los hooks ven OP_TRANSFORM para las entradas y las salidascontexto de _update