आरेख · 04
transform से वंशावली
transform बैच से बैच बनाने का एकमात्र तरीका है। यह इनपुट बर्न करता है, आउटपुट मिंट करता है और पैरेंट दर्ज करता है; BatchTransformed एक-से-एक EPCIS 2.0 TransformationEvent से मैप होता है।
विभाजन, मर्ज और प्रसंस्करण एक ही ऑपरेशन हैं
flowchart LR
subgraph SPLIT["री-बैच (विभाजन) · किसी भूमिका की आवश्यकता नहीं · समान कमोडिटी और इकाई · मात्रा संरक्षित"]
W1["#1 गेहूँ 250 t"] --> W2["#2 गेहूँ 60 t"]
W1 --> W3["#3 गेहूँ 40 t"]
end
subgraph MERGE["री-बैच (मर्ज)"]
M1["#4 कॉफ़ी 10 t"] --> M3["#6 कॉफ़ी 25 t"]
M2["#5 कॉफ़ी 15 t"] --> M3
end
subgraph PROC["प्रसंस्करण · TRANSFORMER_ROLE · कमोडिटी या मात्रा बदलती है"]
P1["#2 गेहूँ 60 t"] --> P2["#7 आटा 45 t"]
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 संदर्भ |