المخططات · 04
النسب عبر transform
transform هي الطريقة الوحيدة لصنع دفعة من دفعة. فهي تحرق المدخلات وتسك المخرجات وتسجّل الدفعات الأم؛ ويقابل BatchTransformed الحدث TransformationEvent في EPCIS 2.0 مقابلة واحد لواحد.
التقسيم والدمج والمعالجة عملية واحدة
flowchart LR
subgraph SPLIT["إعادة تكوين الدفعة (تقسيم) · لا حاجة إلى دور · السلعة ووحدة القياس نفسهما · الكمية محفوظة"]
W1["#1 قمح 250 طن"] --> W2["#2 قمح 60 طن"]
W1 --> W3["#3 قمح 40 طن"]
end
subgraph MERGE["إعادة تكوين الدفعة (دمج)"]
M1["#4 بن 10 طن"] --> M3["#6 بن 25 طن"]
M2["#5 بن 15 طن"] --> M3
end
subgraph PROC["المعالجة · TRANSFORMER_ROLE · تتغير السلعة أو الكمية"]
P1["#2 قمح 60 طن"] --> P2["#7 دقيق 45 طن"]
endالدفعات الأم قابلة للاستعلام على السلسلة
flowchart TB
F7["parentsOf(7) → [2]"] --> F2["parentsOf(2) → [1]"] --> F1["parentsOf(1) → []"]يتتبّع سحب المنتج parentsOf رجوعًا إلى المنشأ وأحداث BatchTransformed أمامًا إلى كل دفعة مشتقة. ويقارن تدقيق موازنة الكتلة كميات المدخلات والمخرجات في كل خطوة معالجة بالنسبة المعتمدة.
القواعد التي ينفّذها المرجع
| القاعدة | الموضع |
|---|---|
يجب أن تكون المدخلات موجودة وغير مسحوبة من التداول وأن يحوزها from (أو أن يكون المستدعي معتمدًا من from) | transform، _update |
| إعادة تكوين الدفعة (السلعة نفسها، ووحدة القياس نفسها، Σ in = Σ out) لا تحتاج إلى دور | فحص isRebatch |
أي شيء آخر يحتاج إلى TRANSFORMER_ROLE | transform |
يسجّل كل مخرج parents = inputIds وissuer = msg.sender | التخزين |
ترى الخطافات OP_TRANSFORM للمدخلات والمخرجات | سياق _update |