The examples below are what you can expect the ttData2EPCIS.xsl stylesheeet to produce as output when transforming a ttData import file into a EPCIS import file. As observed by readers of the wiki, this will not always produce the most compact import file, it can look pretty verbose and hard to read. The reason for this is that we have a very flexible schema for defining import files in the ttData format, where timestamps can be defined at several levels, with inheritance. We wanted to create a sufficient enough translation from the old to the new import file format, and that's the reason for the verbosity. The generated EPCIS import files are not primarily made for human consumption.

Notes about EPCIS:

  • Order of the elements in EPCIS is defined, so if you create EPCIS manually, you have to follow the order!

  • eventTimeZoneOffset - If it's not found, defaults to +00:00.

  • A recordTime element will be added to every EPCIS event

Notes on the examples:

Create => Batch
  • EPCIS: ObjectEvent (ADD)
  • Description: One ObjectEvent with action ADD is created for the Create
Example ttData
<Create>
<Batch type="Hatchery_batch" itemRef="urn:gtnet:070100000001.hatch.*"
id="urn:gtnet:070100000001.hatch.0001" timestamp="2001-01-01T12:00:00.0Z">
<Property prop-ref="ProjectNumber">hatch</Property>
<Property prop-ref="CageNumber">1</Property>
<Property prop-ref="Temperature" unit="celsius">8</Property>
<Property prop-ref="HatchingDate">2001-01-01T12:00:00.0Z</Property>
<Property prop-ref="Treatments">a</Property>
<Property prop-ref="Mortality">5%</Property>
</Batch>
</Create>
Example EPCIS
<ObjectEvent>
<eventTime>2001-01-01T12:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<epcList>
<epc>urn:gtnet:070100000001.hatch.0001</epc>
</epcList>
<action>ADD</action>
<bizStep>urn:epcglobal:cbv:bizstep:commissioning</bizStep>
<disposition>urn:epcglobal:cbv:disp:active</disposition>
<gtnet:itemRef>urn:gtnet:070100000001.hatch.*</gtnet:itemRef>
<ttdata:ProjectNumber>hatch</ttdata:ProjectNumber>
<ttdata:CageNumber>1</ttdata:CageNumber>
<ttdata:Temperature unit="celsius">8</ttdata:Temperature>
<ttdata:HatchingDate>2001-01-01T12:00:00.0Z</ttdata:HatchingDate>
<ttdata:Treatments>a</ttdata:Treatments>
<ttdata:Mortality>5%</ttdata:Mortality>
<gtnet:entityClass>Batch</gtnet:entityClass>
<gtnet:trdType>Hatchery_batch</gtnet:trdType>
</ObjectEvent>
Create => TradeUnit with SentTo
  • EPCIS: ObjectEvent (ADD and OBSERVE)
  • Description: One ObjectEvent with action ADD is created for the Create. In addition, for each SentTo/ReceivedFrom a new ObjectEvent(OBSERVE) is created
Example ttData
<Create>
<TradeUnit type="PackedGuttedFresh" itemRef="urn:gtnet:070100000001.gutfresh_1.*"
id="urn:gtnet:070100000001.gutfresh_1.0001" timestamp="2004-07-03T08:00:00.0Z">
<SentTo organization="Retailer" orgType="org-mapping"
timestamp="2004-07-03T08:00:00.0Z"/>
<Property prop-ref="Species">Salmon</Property>
<Property prop-ref="Treatments">Gutted</Property>
<Property prop-ref="Quality">Superior</Property>
<Property prop-ref="Size">4-5</Property>
<Property prop-ref="Pcs">5</Property>
<Property prop-ref="BoxNo">1001</Property>
<Property prop-ref="PlNo">8000</Property>
<Property prop-ref="NetWeight">21,40 kg</Property>
<Property prop-ref="UseBy">2004-07-17</Property>
<Property prop-ref="Farmer">Fish Producer</Property>
<Property prop-ref="OrderNo">1001</Property>
<Property prop-ref="Preservation">Fresh</Property>
<Property prop-ref="StorageTemp">0/ +4C</Property>
<Property prop-ref="EANNo">(01)070100000001(10)gutfresh_1(21)0001</Property>
<Property prop-ref="Exporter">Retailer</Property>
<Property prop-ref="WhereOnEarth">36° 0'4.21"N, 5°36'33.92"W</Property>
</TradeUnit>
</Create>
Example EPCIS
<!--Create->TradeUnit => ObjectEvent(ADD)-->
<ObjectEvent>
<eventTime>2004-07-03T08:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<epcList>
<epc>urn:gtnet:070100000001.gutfresh_1.0001</epc>
</epcList>
<action>ADD</action>
<bizStep>urn:epcglobal:cbv:bizstep:commissioning</bizStep>
<disposition>urn:epcglobal:cbv:disp:active</disposition>
<gtnet:itemRef>urn:gtnet:070100000001.gutfresh_1.*</gtnet:itemRef>
<ttdata:Species>Salmon</ttdata:Species>
<ttdata:Treatments>Gutted</ttdata:Treatments>
<ttdata:Quality>Superior</ttdata:Quality>
<ttdata:Size>4-5</ttdata:Size>
<ttdata:Pcs>5</ttdata:Pcs>
<ttdata:BoxNo>1001</ttdata:BoxNo>
<ttdata:PlNo>8000</ttdata:PlNo>
<ttdata:NetWeight>21,40 kg</ttdata:NetWeight>
<ttdata:UseBy>2004-07-17</ttdata:UseBy>
<ttdata:Farmer>Fish Producer</ttdata:Farmer>
<ttdata:OrderNo>1001</ttdata:OrderNo>
<ttdata:Preservation>Fresh</ttdata:Preservation>
<ttdata:StorageTemp>0/ +4C</ttdata:StorageTemp>
<ttdata:EANNo>(01)070100000001(10)gutfresh_1(21)0001</ttdata:EANNo>
<ttdata:Exporter>Retailer</ttdata:Exporter>
<ttdata:WhereOnEarth>36° 0'4.21"N, 5°36'33.92"W</ttdata:WhereOnEarth>
<gtnet:entityClass>TradeUnit</gtnet:entityClass>
<gtnet:trdType>PackedGuttedFresh</gtnet:trdType>
</ObjectEvent>
<!--SentTo => ObjectEvent(OBSERVE)-->
<ObjectEvent>
<eventTime>2004-07-03T08:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<epcList>
<epc>urn:gtnet:070100000001.gutfresh_1.0001</epc>
</epcList>
<action>OBSERVE</action>
<bizStep>urn:epcglobal:cbv:bizstep:shipping</bizStep>
<disposition>urn:epcglobal:cbv:disp:in_transit</disposition>
<gtnet:party_id>Retailer</gtnet:party_id>
<gtnet:party_id_type>org-mapping</gtnet:party_id_type>
</ObjectEvent>
Create => TradeUnitWith ReceivedFrom
  • EPCIS: ObjectEvent (ADD and OBSERVE)
  • Description:
Example ttData
<Create>
<TradeUnit type="Product" id="urn:gtnet:070306400001.Prod_1.0002"
itemRef="urn:gtnet:070306400001.Prod_1.*" timestamp="2001-01-02T13:00:00.0Z">
<ReceivedFrom organization="no.feed" orgType="org-name"
timestamp="2001-02-02T13:00:00.0Z"/>
<Property prop-ref="Supplier">Feed Company</Property>
<Property prop-ref="DeliveryDate">2001-01-02T13:00:00.0Z</Property>
<Property prop-ref="BatchNo">c</Property>
<Property prop-ref="ProdDate">2001-01-01T12:00:00.0Z</Property>
<Property prop-ref="ProductName">Feed smolt</Property>
<Property prop-ref="ProductNo">1</Property>
</TradeUnit>
</Create>
Example EPCIS
<!--Create->TradeUnit =>ObjectEvent(ADD)-->
<ObjectEvent>
<eventTime>2001-01-02T13:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<epcList>
<epc>urn:gtnet:070306400001.Prod_1.0002</epc>
</epcList>
<action>ADD</action>
<bizStep>urn:epcglobal:cbv:bizstep:commissioning</bizStep>
<disposition>urn:epcglobal:cbv:disp:active</disposition>
<gtnet:itemRef>urn:gtnet:070306400001.Prod_1.*</gtnet:itemRef>
<ttdata:Supplier>Feed Company</ttdata:Supplier>
<ttdata:DeliveryDate>2001-01-02T13:00:00.0Z</ttdata:DeliveryDate>
<ttdata:BatchNo>c</ttdata:BatchNo>
<ttdata:ProdDate>2001-01-01T12:00:00.0Z</ttdata:ProdDate>
<ttdata:ProductName>Feed smolt</ttdata:ProductName>
<ttdata:ProductNo>1</ttdata:ProductNo>
<gtnet:entityClass>TradeUnit</gtnet:entityClass>
<gtnet:trdType>Product</gtnet:trdType>
</ObjectEvent>
<!--ReceivedFrom =>ObjectEvent(OBSERVE)-->
<ObjectEvent>
<eventTime>2001-02-02T13:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<epcList>
<epc>urn:gtnet:070306400001.Prod_1.0002</epc>
</epcList>
<action>OBSERVE</action>
<bizStep>urn:epcglobal:cbv:bizstep:receiving</bizStep>
<disposition>urn:epcglobal:cbv:disp:in_transit</disposition>
<gtnet:party_id>no.feed</gtnet:party_id>
<gtnet:party_id_type>org-name</gtnet:party_id_type>
</ObjectEvent>
Message => BatchMsg
  • EPCIS: ObjectEvent (OBSERVE/DELETE)
  • Description: Each Property element is transformed to a new ObjectEvent with action OBSERVE. Each Remove element is transformed to a new ObjectEvent with action DELETE.
Example ttData
<Message>
<BatchMsg id="urn:gtnet:070306400001.prod_1.0001">
<Property prop-ref="ProductName"
timestamp="2001-01-05T13:00:00.0Z" unit="powerpoint">NewSmolt</Property>
<Property prop-ref="ProductName"
timestamp="2002-02-02T13:00:00.0Z">EvenNewerSmolt</Property>
<Remove timestamp="2002-02-02T13:00:00.0Z" eventTimeZoneOffset="+02:00"/>
</BatchMsg>
</Message>
Example EPCIS
<!--BatchMsg->Property changed =>ObjectEvent(OBSERVE)-->
<ObjectEvent>
<eventTime>2001-01-05T13:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<epcList>
<epc>urn:gtnet:070306400001.prod_1.0001</epc>
</epcList>
<action>OBSERVE</action>
<ttdata:ProductName unit="powerpoint" timestamp="2001-01-05T13:00:00.0Z">NewSmolt</ttdata:ProductName>
<gtnet:entityClass>Batch</gtnet:entityClass>
</ObjectEvent>
<!--BatchMsg->Property changed =>ObjectEvent(OBSERVE)-->
<ObjectEvent>
<eventTime>2002-02-02T13:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<epcList>
<epc>urn:gtnet:070306400001.prod_1.0001</epc>
</epcList>
<action>OBSERVE</action>
<ttdata:ProductName timestamp="2002-02-02T13:00:00.0Z">EvenNewerSmolt</ttdata:ProductName>
<gtnet:entityClass>Batch</gtnet:entityClass>
</ObjectEvent>
<!--BatchMsg->Batch removed =>ObjectEvent(DELETE)-->
<ObjectEvent>
<eventTime>2002-02-02T13:00:00.0Z</eventTime>
<eventTimeZoneOffset>+02:00</eventTimeZoneOffset>
<epcList>
<epc>urn:gtnet:070306400001.prod_1.0001</epc>
</epcList>
<action>DELETE</action>
<gtnet:entityClass>Batch</gtnet:entityClass>
</ObjectEvent>
Message => TradeUnitMsg
  • EPCIS: ObjectEvent (OBSERVE)
  • Description: Each Property element is transformed to a new ObjectEvent with action OBSERVE.Each SentTo and ReceivedFrom element is transformed to a new ObjectEvent with action OBSERVE. Each External element is transformed to a new ObjectEvent with action OBSERVE where externalId becomes gtnet:alternateId and epc receivedId becomes epc.
Example ttData
<Message>
<TradeUnitMsg id="ReceivedRM">
<ReceivedFrom orgType="gln" timestamp="2001-01-02T13:00:00.0Z"
organization="7080000718160"/>
<SentTo orgType="gln" timestamp="2001-02-02T13:00:00.0Z"
organization="7080000701438"/>
<External externalId="101" receivedId="102"/>
<Property prop-ref="PurchasingOrderNo"
timestamp="2001-01-05T13:00:00.0Z" unit="celsius">2</Property>
</TradeUnitMsg>
</Message>
Example EPCIS
<!--TradeUnitMsg->Property changed =>ObjectEvent(OBSERVE)-->
<ObjectEvent>
<eventTime>2001-01-05T13:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<epcList>
<epc>ReceivedRM</epc>
</epcList>
<action>OBSERVE</action>
<ttdata:PurchasingOrderNo unit="celsius" timestamp="2001-01-05T13:00:00.0Z">2</ttdata:PurchasingOrderNo>
<gtnet:entityClass>TradeUnit</gtnet:entityClass>
</ObjectEvent>
<!--TradeUnitMsg->TradeUnit SentTo =>ObjectEvent(OBSERVE)-->
<ObjectEvent>
<eventTime>2001-02-02T13:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<epcList>
<epc>ReceivedRM</epc>
</epcList>
<action>OBSERVE</action>
<bizStep>urn:epcglobal:cbv:bizstep:shipping</bizStep>
<disposition>urn:epcglobal:cbv:disp:in_transit</disposition>
<gtnet:party_id>7080000701438</gtnet:party_id>
<gtnet:party_id_type>gln</gtnet:party_id_type>
</ObjectEvent>
<!--TradeUnitMsg->TradeUnit ReceivedFrom =>ObjectEvent(OBSERVE)-->
<ObjectEvent>
<eventTime>2001-01-02T13:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<epcList>
<epc>ReceivedRM</epc>
</epcList>
<action>OBSERVE</action>
<bizStep>urn:epcglobal:cbv:bizstep:receiving</bizStep>
<disposition>urn:epcglobal:cbv:disp:in_transit</disposition>
<gtnet:party_id>7080000718160</gtnet:party_id>
<gtnet:party_id_type>gln</gtnet:party_id_type>
</ObjectEvent>
<!--TradeUnitMsg->External =>ObjectEvent(OBSERVE)-->
<ObjectEvent>
<eventTime>1970-01-01T00:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<epcList>
<epc>ReceivedRM</epc>
</epcList>
<action>OBSERVE</action>
<gtnet:alternateId>101</gtnet:alternateId>
<gtnet:receivedId>102</gtnet:receivedId>
</ObjectEvent>
Message => TransMsg->Mix
  • EPCIS: AggregationEvent(ADD)
  • Description: Each From element is transformed to a new AggregationEvent with action ADD
Example ttData
<TransMsg>
<Mix into="123" timestamp="2001-01-02T13:00:00.0Z" amount="12" unit="kilogram">
<From id="Product" unit="gram" amount="11" timestamp="2001-01-02T14:00:00.0Z"/>
<From id="Production" timestamp="2001-01-02T15:00:00.0Z"/>
</Mix>
</TransMsg>
Example EPCIS
<!--Message->TransMsg->Mix =>AggregationEvent(ADD)-->
<AggregationEvent>
<eventTime>2001-01-02T14:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<parentID>123</parentID>
<childEPCs>
<epc>Product</epc>
</childEPCs>
<action>ADD</action>
<bizStep>urn:epcglobal:cbv:bizstep:transforming</bizStep>
<disposition>urn:epcglobal:cbv:disp:active</disposition>
<gtnet:transformationType>MIX</gtnet:transformationType>
<gtnet:amountUnit>gram</gtnet:amountUnit>
<gtnet:amountPerChild>11</gtnet:amountPerChild>
</AggregationEvent>
<AggregationEvent>
<eventTime>2001-01-02T15:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<parentID>123</parentID>
<childEPCs>
<epc>Production</epc>
</childEPCs>
<action>ADD</action>
<bizStep>urn:epcglobal:cbv:bizstep:transforming</bizStep>
<disposition>urn:epcglobal:cbv:disp:active</disposition>
<gtnet:transformationType>MIX</gtnet:transformationType>
<gtnet:amountUnit>kilogram</gtnet:amountUnit>
<gtnet:amountPerChild>12</gtnet:amountPerChild>
</AggregationEvent>

 

 

 

Message => TransMsg->Split
  • EPCIS: AggregationEvent(ADD)
  • Description: Each Into element is transformed to a new AggregationEvent with action DELETE.
Example ttData
<TransMsg>
<Split from="prod_1" timestamp="2001-01-05T13:00:00.0Z">
<Into id="prod_12" amount=".56" unit="kg" timestamp="2001-01-05T13:00:00.0Z"/>
</Split>
</TransMsg>
Example EPCIS
<!--TransMsg->Split->Into =>AggregationEvent(ADD)-->
<AggregationEvent>
<eventTime>2001-01-05T13:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<parentID>prod_1</parentID>
<childEPCs>
<epc>prod_12</epc>
</childEPCs>
<action>DELETE</action>
<bizStep>urn:epcglobal:cbv:bizstep:transforming</bizStep>
<disposition>urn:epcglobal:cbv:disp:active</disposition>
<gtnet:transformationType>SPLIT</gtnet:transformationType>
<gtnet:amountUnit>kg</gtnet:amountUnit>
<gtnet:amountPerChild>.56</gtnet:amountPerChild>
</AggregationEvent>

 

 

 

Message => TransMsg->Join
  • EPCIS: AggregationEvent(ADD)
  • Description: Each From element is transformed to a new AggregationEvent with action ADD. Each From will also get a new ObjectEvent with action DELETE.
Example ttData
<TransMsg>
<Join into="prod_15" timestamp="2001-01-05T14:00:00.0Z" eventTimeZoneOffset="+03:00">
<From id="prod_101" timestamp="2001-01-05T14:10:00.0Z"/>
<From id="prod_102" timestamp="2001-01-05T14:20:00.0Z"/>
</Join>
</TransMsg>
Example EPCIS
<!--TransMsg->Join->From =>AggregationEvent(ADD)-->
<AggregationEvent>
<eventTime>2001-01-05T14:10:00.0Z</eventTime>
<eventTimeZoneOffset>+03:00</eventTimeZoneOffset>
<parentID>prod_15</parentID>
<childEPCs>
<epc>prod_101</epc>
</childEPCs>
<action>ADD</action>
<bizStep>urn:epcglobal:cbv:bizstep:transforming</bizStep>
<gtnet:transformationType>JOIN</gtnet:transformationType>
</AggregationEvent>
<AggregationEvent>
<eventTime>2001-01-05T14:20:00.0Z</eventTime>
<eventTimeZoneOffset>+03:00</eventTimeZoneOffset>
<parentID>prod_15</parentID>
<childEPCs>
<epc>prod_102</epc>
</childEPCs>
<action>ADD</action>
<bizStep>urn:epcglobal:cbv:bizstep:transforming</bizStep>
<gtnet:transformationType>JOIN</gtnet:transformationType>
</AggregationEvent>

 

 

 

Message => TransMsg->Convert
  • EPCIS: AggregationEvent (DELETE)
  • Description: Convert is transformed into an AggregationEvent with action DELETE. The from attribute is turned into parentID and id is turned into childEPC.
Example ttData
<TransMsg>
<Convert from="prod_15" timestamp="2001-01-05T15:00:00.0Z">
<Into id="finished_product" timestamp="2001-01-05T16:00:00.0Z"/>
</Convert>
</TransMsg>
Example EPCIS
<!--Message->TransMsg->Convert =>AggregationEvent(ADD)-->
<AggregationEvent>
<eventTime>2001-01-05T16:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<parentID>prod_15</parentID>
<childEPCs>
<epc>finished_product</epc>
</childEPCs>
<action>DELETE</action>
<bizStep>urn:epcglobal:cbv:bizstep:transforming</bizStep>
<gtnet:transformationType>CONVERT</gtnet:transformationType>
</AggregationEvent>

 

 

 

Message =>TransMsg->EnterCluster
  • EPCIS: AggregationEvent (ADD)
  • Description: Each From element is transformed to a new AggregationEvent with action ADD.
Example ttData
<TransMsg>
<EnterCluster into="finished_product" timestamp="2001-01-05T17:00:00.0Z">
<From id="prod_11" timestamp="2001-01-05T18:00:00.0Z"/>
<From id="prod_12"/>
</EnterCluster>
</TransMsg>
Example EPCIS
<!--Message->TransMsg->EnterCluster =>AggregationEvent(ADD)-->
<AggregationEvent>
<eventTime>2001-01-05T18:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<parentID>finished_product</parentID>
<childEPCs>
<epc>prod_11</epc>
</childEPCs>
<action>ADD</action>
<bizStep>urn:epcglobal:cbv:bizstep:packing</bizStep>
<gtnet:transformationType>ENTERCLUSTER</gtnet:transformationType>
</AggregationEvent>
<AggregationEvent>
<eventTime>2001-01-05T17:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<parentID>finished_product</parentID>
<childEPCs>
<epc>prod_12</epc>
</childEPCs>
<action>ADD</action>
<bizStep>urn:epcglobal:cbv:bizstep:packing</bizStep>
<gtnet:transformationType>ENTERCLUSTER</gtnet:transformationType>
</AggregationEvent>

 

 

 

Message => TransMsg->LeaveCluster
  • EPCIS: AggregationEvent (DELETE)
  • Description: Each Into element is transformed to a new AggregationEvent with action DELETE.
Example ttData
<TransMsg>
<LeaveCluster from="finished_product" timestamp="2001-01-05T18:00:00.0Z">
<Into id="prod_11" timestamp="2001-01-05T19:00:00.0Z"/>
<Into id="prod_12"/>
</LeaveCluster>
</TransMsg>
Example EPCIS
<!--Message->TransMsg->LeaveCluster =>AggregationEvent(DELETE)-->
<AggregationEvent>
<eventTime>2001-01-05T19:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<parentID>finished_product</parentID>
<childEPCs>
<epc>prod_11</epc>
</childEPCs>
<action>DELETE</action>
<bizStep>urn:epcglobal:cbv:bizstep:unpacking</bizStep>
<gtnet:transformationType>LEAVECLUSTER</gtnet:transformationType>
</AggregationEvent>
<AggregationEvent>
<eventTime>2001-01-05T18:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<parentID>finished_product</parentID>
<childEPCs>
<epc>prod_12</epc>
</childEPCs>
<action>DELETE</action>
<bizStep>urn:epcglobal:cbv:bizstep:unpacking</bizStep>
<gtnet:transformationType>LEAVECLUSTER</gtnet:transformationType>
</AggregationEvent>

 

 

 

Message => StationMsg
  • EPCIS: ObjectEvent (OBSERVE)
  • Description: Each Property, EnterStation and LeaveStation element is transformed to a new ObjectEvent with action OBSERVE.
Example ttData
<StationMsg id="station_1">
<EnterStation timestamp="2001-01-05T19:00:00.0Z" id="prod_15"/>
<LeaveStation timestamp="2001-01-05T20:00:00.0Z" id="prod_16"/>
<Property prop-ref="temperature" timestamp="2001-01-05T19:00:00.0Z"
unit="celcius">15</Property>
</StationMsg>
Example EPCIS
<!--StationMsg->EnterStation =>ObjectEvent(OBSERVE)-->
<ObjectEvent>
<eventTime>2001-01-05T19:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<epcList>
<epc>prod_15</epc>
</epcList>
<action>OBSERVE</action>
<bizStep>urn:epcglobal:cbv:bizstep:storing</bizStep>
<bizLocation>
<id>station_1</id>
</bizLocation>
<gtnet:stationMsg>enter</gtnet:stationMsg>
<gtnet:entityClass>Location</gtnet:entityClass>
</ObjectEvent>
<!--StationMsg->LeaveStation =>ObjectEvent(OBSERVE)-->
<ObjectEvent>
<eventTime>2001-01-05T20:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<epcList>
<epc>prod_16</epc>
</epcList>
<action>OBSERVE</action>
<bizStep>urn:epcglobal:cbv:bizstep:stocking</bizStep>
<bizLocation>
<id>station_1</id>
</bizLocation>
<gtnet:stationMsg>leave</gtnet:stationMsg>
<gtnet:entityClass>Location</gtnet:entityClass>
</ObjectEvent>
<!--StationMsg->Property changed =>ObjectEvent(OBSERVE)-->
<ObjectEvent>
<eventTime>2001-01-05T19:00:00.0Z</eventTime>
<eventTimeZoneOffset>+00:00</eventTimeZoneOffset>
<epcList>
<epc>station_1</epc>
</epcList>
<action>OBSERVE</action>
<ttdata:temperature unit="celcius" timestamp="2001-01-05T19:00:00.0Z">15</ttdata:temperature>
<gtnet:entityClass>Location</gtnet:entityClass>
</ObjectEvent>

 

Rules for converting EPCIS to ttData.