Transform Events
A transform event records processing or changing inputs into outputs while preserving the traceability relationship between them. It says: these…
Start with Understanding Event-Based Traceability in Wholechain for shared concepts. To perform this event in the application, see Transform.
What a transform event represents
A transform event records processing or changing inputs into outputs while preserving the traceability relationship between them. It says: these inputs went in, and these outputs came out, here.
The classic example is physical and irreversible. A whole fish is headed, gutted, and filleted. You can't turn the fillets back into the original whole fish. The fillets are new product, but their record still points back to the whole-fish lot they came from.
Wholechain also uses transform for something that isn't physical processing. Transform is the workflow used to change a lot or serial identifier after the instance has been established. So not every transform represents an irreversible physical change. See Changing an identifier.
When and why to use it
Use transform when:
- You process, cut, cook, mix, or otherwise make new product from existing items.
- You combine several lots into one (commingling), or split one into several new lots.
- You need to give an established instance a new lot or serial identifier and keep the link to the old one.
If you only group items on a pallet without changing them, use aggregate. If you only record a measurement or a quantity adjustment, use observe. Observe does not change the Lot number; to give an established instance a new Lot number, use transform.
What it does to traceability history
A transform event consumes the affected input quantities and establishes output instances, and connects the two. Later, anyone tracing an output can find its inputs, and anyone tracing an input can find what it became.
Take care with partial quantities. You can use only part of a lot in a transform. If you transform only part of a lot, such as 800 kg of 1,000 kg, the remaining 200 kg can stay as inventory. The input lot doesn't necessarily disappear entirely. What happens to inventory depends on the amounts you enter and Wholechain's actual inventory behavior.
Input and output shapes
| Shape | Example |
|---|---|
| One input → one output | One lot of whole fish becomes one lot of fillets. |
| Many inputs → one output | Several wheat lots are milled into one flour lot. |
| One input → many outputs | One fish lot becomes fillets, trim, and bones, each a separate lot. |
| Many inputs → many outputs | Three fish lots become two fillet lots and one trim lot. |
Inputs and outputs can involve several items and several lots. Each input and output needs its item, instance identifier, and quantity.
Required information and master-data prerequisites
| Category | For transform |
|---|---|
| Location | Where the transformation occurred. |
| Item | The input items and the output items. |
| Quantity | The quantity of each input consumed and each output created, in each item's configured unit of measure. |
| Lot or serial identifier | The instance identifier of each input and each output. |
| Event date and time | When the transformation occurred. |
Set up both the input and output items before you transform. If processing creates a new product, that product needs its own item definition and unit of measure. See Trade Items. Your Location must exist in Locations.
Relationship to inventory, lots or serials, and other events
- Inventory. Input quantity leaves its inventory. Output quantity appears as inventory in the output item. If the output is the same item with a new identifier, it stays in that item's inventory under its new identifier.
- Lots or serials. Outputs get new instance identifiers. Inputs keep theirs, in the record. Output identifiers follow the usual rules: they are unique per item, and your account rejects a duplicate for the same item. See How lot and serial identifiers work.
- Containers. Transform cannot use the Containers tab. If an input is on an aggregated pallet or container, disaggregate it first.
- Other events. Transform commonly follows receive or commission and precedes aggregate and ship.
Changing an identifier and the ERP scenario
A supplier's lot identifier and your own ERP (enterprise resource planning) system's lot identifier often differ. For example, your supplier ships lot SAL-0412, but your ERP assigns every received lot its own number, ERP-77391.
If you simply replaced the supplier's identifier with yours, you would lose the link back to the supplier's lot, and with it the ability to trace upstream. Instead, Wholechain keeps both identifiers and the relationship between them: once an instance has been created, the way to change its identifier is a transform, not an edit.
For the steps, see Change the lot or serial number of a product in the Transform article.
Examples
Processing. Northline Processing transforms 800 kg of whole-salmon lot SAL-0412 into 520 kg of fillet lot FIL-0412-A and 280 kg of trim lot TRM-0412-A. The 200 kg of SAL-0412 not processed remains in inventory.
Commingling. A flour mill combines three wheat lots into one silo batch. The result is one output lot whose record lists all three inputs.
Identifier reassignment on receipt. A distributor receives lot SAL-0412, then transforms it into ERP-77391 (same item, same quantity) so its warehouse system and its trace record agree, keeping the link to the supplier's lot.
Farm harvest with upstream history. A farm that has recorded feed or hatchery history may link a harvest to those earlier records by recording them as inputs.
Common misunderstandings
- "Transform is only for physical processing." In Wholechain it is also the workflow for changing a lot or serial identifier.
- "Transforming a lot uses it all up." Only the quantity you enter is consumed.
- "I can just edit the lot number." Once an instance exists, use transform so the old identifier remains in the history.
- "Aggregation and transformation are the same." Aggregation groups items without changing them. Transformation creates new output and isn't reversible. See Aggregate Events.
- "A transform moves goods between Locations." It doesn't. For movement, use ship and receive.
Relevant restrictions
- Transform is recorded at your own Location. If a Trade Partner is Wholechain connected, your account can't run a transform at that partner's Locations. See connected trade partners.
- Inputs need inventory to consume. Quantities should be valid and in the item's configured unit.
- Transform cannot use the Containers tab. Containers must be disaggregated before you transform their contents.
Notes on standards and regulations
- GDST (Global Dialogue on Seafood Traceability): GDST treats processing and commingling as transformations, and expects a transform to represent a real change to the item. See GDST and Wholechain.
- FSMA 204 (the U.S. FDA Food Traceability Rule): The rule treats transformation as an event that creates a new traceability lot code, and it expects the item to have changed. Businesses that also keep an ERP lot number can maintain both through Wholechain's Traceability Lot Code feature. See FSMA 204 and Wholechain.
Neither choosing transform nor following this article establishes compliance with a standard or regulation.
Related documentation
- To perform this event, see Transform, including Change the lot or serial number of a product. For all event types, see the Wholechain Events Overview.
- Understanding Event-Based Traceability in Wholechain
- Commission Events · Receive Events · Aggregate Events · Disaggregate Events · Observe Events
- Event-Based Traceability FAQ
- Trade Items · Locations
- Link Trace Info · Direct Ship and Direct Receive
- GDST and Wholechain · FSMA 204 and Wholechain