Introduction to OliotEPCIS X
2021-07-16 1
Prof. Jaewook Byun, Jaehyun Ahn, Juhyeok Lee, Hyeongchan Kim
Data Frameworks and Platforms Laboratory (DFPL), Sejong University
Auto-ID Labs, Korea
jwbyun@sejong.ac.kr
https://sites.google.com/view/jack-dfpl/home
https://www.youtube.com/channel/UC988e-Y8nto0LXVae0aqaOQ
Table of Contents
• Introduction
• Installation
• Practice: Capture
• Practice: Poll
2021-07-16 2
• Prof. Jaewook Byun
• Assistant Professor, Department of Software, Sejong University
• Associate Director, Auto-ID Labs. Korea
• Contact: jwbyun@sejong.ac.kr
• GitHub: http://github.com/JaewookByun/
• Google Scholar: https://scholar.google.co.kr/citations?user=uDWxTJEAAAAJ
• YouTube: https://www.youtube.com/channel/UC988e-Y8nto0LXVae0aqaOQ
• Lab. Page: https://sites.google.com/view/jack-dfpl/home
• Mr. Juhyeok Lee
• Bachelor Student, Department of Software, Sejong University
• Entrance Date: 2020.10
• Contact: zero5.two4@gmail.com
• GitHub: https://github.com/juhyeokLee97
• Research Interest
• Spatio-temporal graph platform
• EPCIS
Introduction to EPCIS – Standard Highlight
• EPC Information Service (EPCIS)
• Current Version v1.2 (Sep. 2016)
• ISO/IEC 19987:2015 standard
• Neutral data-carrier
• Supply chain
• Healthcare, Railway,…
• Standardize data format
• 5 core event data type
• 1 vocabulary data type
• Standardize service interface
• How to capture data
• How to query data
• For details, refer:
• https://discover.gs1.org/
• EPCIS Standard
2021-07-16
Introduction to EPCIS - Standardization
• Standardization on
• Data format
• Service Interface
2021-07-16
EPCIS
Repository
EPCIS
Document
EPCIS
Document
Producer Consumer
Capture Interface:
Receiving document
Verifying document
Storing document
Query Interface:
Receiving query parameters
Sending documents
Query Parameters:
Filter
(e.g., event time
, object/loc. ID, …)
Sorting
Limiting
Introduction to EPCIS – Data Standard
• EPCIS Document
• A XML or JSON file complying with
EPCIS data standard
• Could have either Event Data or Master Data
2021-07-16
EPCIS Document
Object Event
Aggregation Event
Transaction Event
Transformation Event
Master Data
Association Event
<epcis:EPCISDocument xmlns:epcis="urn:epcglobal:epcis:xsd:1">
<EPCISHeader><extension>
<EPCISMasterData>
<VocabularyList>
<Vocabulary type="urn:epcglobal:epcis:vtype:ReadPoint" />
</VocabularyList>
</EPCISMasterData>
</extension></EPCISHeader>
<EPCISBody>
<EventList>
<ObjectEvent />
<AggregationEvent />
<TransactionEvent />
<TransformationEvent />
<AssociationEvent />
<ObjectEvent />
</EventList>
</EPCISBody>
</epcis:EPCISDocument>
[Overview of EPCIS Document (XML)]
Introduction to EPCIS – Data Standard
• Object Event
• Creation / Observation / Deletion of object(s)
• via Barcode Reader, RFID Reader, Manually, etc.
• Producers can explain an event with the following information:
• When: did this event take place?
• Where: did this occur and where are the objects thereafter?
• What: objects are the subject of event?
• Targeted Objects
• Why: did this event take place?
2021-07-16
Introduction to EPCIS – Data Standard
• Object Event
2021-07-16
<ObjectEvent>
<eventTime>2021-07-10T09:33:31.116-06:00</eventTime>
<eventTimeZoneOffset>-06:00</eventTimeZoneOffset>
<epcList>
<epc>urn:epc:id:sgtin:0614141.107346.2017</epc>
</epcList>
<action>OBSERVE</action>
<bizStep>urn:epcglobal:cbv:bizstep:inspecting</bizStep>
<readPoint>
<id>urn:epc:id:sgln:0614141.07346.1234</id>
</readPoint>
</ObjectEvent>
“The package is observed in a packaging manufacturer for inspecting
at 09:33:31 10th July 2021”
WHAT
WHY
WHERE
WHEN
Introduction to EPCIS – Data Standard
• Aggregation Event
• (un)loading object(s), (un)packing object(s)
• Users can explain an event with the following information:
• When: did this event take place?
• Where: did this occur and where are the objects thereafter?
• What: objects are the subject of event?
• Container (e.g., truck, pallet, box, etc.)
• Objects be contained
• Why: did this event take place?
2021-07-16
<parentID>urn:epc:id:sscc:0614141.1234567890</parentID>
<childEPCs>
<epc>urn:epc:id:sgtin:0614141.107346.2017</epc>
<epc>urn:epc:id:sgtin:0614141.107346.2018</epc>
</childEPCs>
Introduction to EPCIS – Data Standard
• Transformation Event
• Input object(s) → Output object(s)
• Users can explain an event with the following information:
• When: did this event take place?
• Where: did this occur and where are the objects thereafter?
• What: objects are the subject of event?
• Input object(s)
• Output object(s)
• Why: did this event take place?
2021-07-16
<inputEPCList>
<epc>urn:epc:id:sgtin:4012345.011122.25</epc>
</inputEPCList>
<outputEPCList>
<epc>urn:epc:id:sgtin:4012345.077889.25</epc>
<epc>urn:epc:id:sgtin:4012345.077889.26</epc>
<epc>urn:epc:id:sgtin:4012345.077889.27</epc>
<epc>urn:epc:id:sgtin:4012345.077889.28</epc>
</outputEPCList>
Introduction to EPCIS – Data Standard
• Object Event
2021-07-16
<ObjectEvent>
<eventTime>2021-07-10T09:33:31.116-06:00</eventTime>
<eventTimeZoneOffset>-06:00</eventTimeZoneOffset>
<epcList>
<epc>urn:epc:id:sgtin:0614141.107346.2017</epc>
</epcList>
<action>OBSERVE</action>
<bizStep>urn:epcglobal:cbv:bizstep:inspecting</bizStep>
<readPoint>
<id>urn:epc:id:sgln:0614141.07346.1234</id>
</readPoint>
</ObjectEvent> A way to capture and share the details of this location?
>> MASTER DATA (User Vocabulary)
WHERE
WHY
What does it mean?
>> CBV (Standard Vocabulary)
Introduction to EPCIS – Data Standard
• Master Data
• A static information independent from a specific time
• User Vocabularies
• ReadPoint
• BusinessLocation
• BusinessTransaction
• EPCClass
• etc.
• Standard Vocabulary
• BusinessStep
• Disposition
• BusinessTransactionType
• SourceDestType
• etc.
2021-07-16
CBV defines the vocabulary
User can use the vocabulary in an event data
Introduction to EPCIS – Data Standard
• Master Data
• A static information independent from a specific time
• User Vocabularies
• ReadPoint
• BusinessLocation
• BusinessTransaction
• EPCClass
• etc.
2021-07-16
<Vocabulary type="urn:epcglobal:epcis:vtype:BusinessLocation">
<VocabularyElementList>
<VocabularyElement id="urn:epc:id:sgln:0037000.00729.0">
<attribute id="http://example.com/mda#latitude">50° 49' 22.602"</attribute>
<attribute id="http://example.com/mda#longitude">4° 22' 7.7196" E</attribute>
<attribute id="http://example.com/mda#address">Avenue Louise 326 1050 Brussels Belgium</attribute>
<attribute id="http://example.com/mda#phone">+32 2 788 78 00</attribute>
</VocabularyElement>
</VocabularyElementList>
</Vocabulary>
Introduction to EPCIS – Data Standard
• Master Data
• A static information independent from a specific time
• Standard Vocabulary
• BusinessStep
2021-07-16
CBV defines the vocabulary
User can use the vocabulary in an event data
<ObjectEvent>
<eventTime>2021-07-10T09:33:31.116-06:00</eventTime>
<eventTimeZoneOffset>-06:00</eventTimeZoneOffset>
<epcList>
<epc>urn:epc:id:sgtin:0614141.107346.2017</epc>
</epcList>
<action>OBSERVE</action>
<bizStep>urn:epcglobal:cbv:bizstep:receiving</bizStep>
<readPoint>
<id>urn:epc:id:sgln:0614141.07346.1234</id>
</readPoint>
</ObjectEvent>
Introduction to EPCIS – Interface Standard
• Two types of service interface
• SOAP/HTTP vs. REST/HTTP (equivalent)
• The service interface defines the following methods
• capture
• getStandardVersion
• getVendorVersion
• getQueryNames
• poll
• getSubscriptionIDs
• subscribe
• unsubscribe
2021-07-16
Introduction to EPCIS – Interface Standard
Method Name Description
capture • This service allows you to store your EPCIS Document into your backend storage
Method: post
• Contents: application/xml, complying with EPCIS v2.0 XML Schema
2021-07-16
Method Name Description
Poll
Subscribe
Unsubscribe
GetSubscriptionIDs
GetStandardVersion
GetVendorVersion
GetQueryNames
• The services usable in this page allow providing query results.
• Poll: Return events/vocabularies stored in the EPCIS repository in interest immediately (For va
rious query options, see EPCIS Section 8.2.7.1 and 8.2.7.2)
• Subscribe: Register a subscriber monitoring a group of events matched with specific criteria. T
he subscriber delivers such events to a specific callback point periodically or as soon as such ev
ent is captured.
• Unsubscribe: Unregister a subscriber.
• GetSubscriptionIDs: Get all the identifiers of the registered subscriptions.
• GetStandardVersion: Return the standard version of EPCIS
• GetVendorVersion: Return the vendor specific version of EPCIS
• GetQueryNames: Return a list of all query names available
• Method: post
• Contents: application/xml, complying with EPCIS WSDL
Introduction to Oliot EPCIS X
• Specification
• Open JDK 15
• Eclipse Vertx v4.0.1
• MongoDB v4.4.6
• Java Web Service
• Maven
2021-07-16
• Current Status
• XML Capture
• JSON Capture
• SOAP/HTTP Query
• Hashed Event ID supported
• CBV for EPCClass and Location
supported
• CBV-compliant XML Capture
• REST/HTTP Query base and pagination
Installation: Openjdk15
• 1.Install Openjdk15
2021-07-16 17
Installation: Openjdk15
• 2. Setting Environment variable
https://www.youtube.com/watch?v=5DZ4EKYjh70
2021-07-16 18
Installation: MongoDB
• 1. MongoDB Community Server 4.4.6 Download
• https://www.mongodb.com/try/download/community
2021-07-16 19
Installation: MongoDB
2021-07-16 20
• 2. unzip MongoDB zip file and move to your Drive
Installation: MongoDB
2021-07-16 21
• 3. make empty folder ‘data’ and ‘datadb’ in Drive that includes MongoDB
Installation: MongoDB
2021-07-16 22
• 4. execute MongoDB/bin/mongod.exe(MongoDemon)
Etc) MongoDB Compass(MongoDB GUI Tool)
2021-07-16 23
• Intsall MongoDB Compass and execute
• https://www.mongodb.com/try/download/compass
Execute epcis-x.jar
• Download :
https://drive.google.com/file/d/1Nq93TKvcTFtB69mioMTd_JtMo1MJlHb_/view
?usp=sharing
• 1. execute CMD and move to directory that includes ‘epcis-x.jar’
• 2. ‘java –jar epcis-x.jar’in command line
• 3. now, you can access http://localhost/epcis/home/index.html
2021-07-16 24
https://drive.google.com/file/d/1Nq93TKvcTFt
B69mioMTd_JtMo1MJlHb_/view?usp=sharing
Practice: Capture
• MasterData
1. Capture MasterData with Minimal Fields
e.g., customer
2021-07-16 25
<EPCISMasterData>
<VocabularyList>
<Vocabulary type="urn:gs1:epcis:droid:delivey:system:customer:info">
<VocabularyElementList>
<VocabularyElement id="urn:epc:id:sgln:67000269.9101.0">
<attribute id="http://droid.delivey.system.com/epcis/Name">{Name}</attribute>
<attribute id="http://droid.delivey.system.com/epcis/Address">{Address}</attribute>
<attribute id="http://droid.delivey.system.com/epcis/Phone_Numbe">{Phone_Numbe}</attribute>
</VocabularyElement>
</VocabularyElementList>
</Vocabulary>
</VocabularyList>
</EPCISMasterData>
What
e.g., customer
Info
Practice: Capture
• MasterData
1. Capture MasterData with Inner hierarchy Structure Capture
e.g., customer
2021-07-16 26
<EPCISMasterData>
<VocabularyList>
<Vocabulary type="urn:gs1:epcis:droid:delivey:system:customer:info">
<VocabularyElementList>
<VocabularyElement id="urn:epc:id:sgln:67000269.9101.0">
<attribute id="http://droid.delivey.system.com/epcis/Name">{Name}</attribute>
<attribute id="http://droid.delivey.system.com/epcis/Address">
<example:Address xmlns:example="http://epcis.example.com/ns">
<Street>100 Nowhere Street</Street>
<City>Fancy</City>
<State>DC</State>
<Zip>99999</Zip>
</example:Address>
</attribute>
<attribute id="http://droid.delivey.system.com/epcis/Phone_Numbe">{Phone_Numbe}</attribute>
</VocabularyElement>
</VocabularyElementList>
</Vocabulary>
</VocabularyList>
</EPCISMasterData>
What
e.g., customer
Inner Hierarchy
Structure
Practice: Capture
• MasterData
1. Capture MasterData with Children
e.g., BusinessLocation having Sub-Location
2021-07-16 27
<EPCISMasterData>
<VocabularyList>
<Vocabulary type="urn:epcglobal:epcis:vtype:BusinessLocation">
<VocabularyElementList>
<VocabularyElement id="urn:epc:id:sgln:0037000.00729.0">
<attribute id="http://epcis.example.com/mda/latitude">+18.0000</attribute>
<attribute id="http://epcis.example.com/mda/longitude">-70.0000</attribute>
<attribute id="http://epcis.example.com/mda/address">
<example:Address xmlns:example="http://epcis.example.com/ns">
<Street>100 Nowhere Street</Street>
<City>Fancy</City>
<State>DC</State>
<Zip>99999</Zip>
</example:Address>
</attribute>
<children>
<id>urn:epc:id:sgln:0037000.00729.8201</id>
<id>urn:epc:id:sgln:0037000.00729.8202</id>
<id>urn:epc:id:sgln:0037000.00729.8203</id>
</children>
</VocabularyElement>
</VocabularyElementList>
</Vocabulary>
</VocabularyList>
</EPCISMasterData>
Children
e.g., Sub-Location
Practice: Capture
• ObjectEvent
1. Capture ObjectEvent with Minimal Fields
When, Where, What, Why
2021-07-16 28
<EPCISBody>
<EventList>
<ObjectEvent>
<eventTime>2005-04-03T20:33:31.116-06:00</eventTime>
<eventTimeZoneOffset>-06:00</eventTimeZoneOffset>
<epcList>
<epc>urn:epc:id:sgtin:0614141.107346.2018</epc>
</epcList>
<action>OBSERVE</action>
<bizLocation>
<id>urn:epc:id:sgln:0614141.07346.1234</id>
</bizLocation>
</ObjectEvent>
</EventList>
</EPCISBody>
When
What
e.g., 배송로봇
Why
Where
Practice: Capture
• ObjectEvent
2. Capture ObjectEvent with Business Step
e.g., Shipping
2021-07-16 29
Business Step
e.g., assembling
receiving
<EPCISBody>
<EventList>
<ObjectEvent>
<eventTime>2005-04-03T20:33:31.116-06:00</eventTime>
<eventTimeZoneOffset>-06:00</eventTimeZoneOffset>
<epcList>
<epc>urn:epc:id:sgtin:0614141.107346.2018</epc>
</epcList>
<action>OBSERVE</action>
<bizStep>urn:epcglobal:cbv:bizstep:shipping</bizStep>
<bizLocation>
<id>urn:epc:id:sgln:0614141.07346.1234</id>
</bizLocation>
</ObjectEvent>
</EventList>
</EPCISBody>
Practice: Capture
• ObjectEvent
3. Capture ObjectEvent with Disposition
e.g., in_progress
2021-07-16 30
Disposition
e.g., recalled
<EPCISBody>
<EventList>
<ObjectEvent>
<eventTime>2005-04-03T20:33:31.116-06:00</eventTime>
<eventTimeZoneOffset>-06:00</eventTimeZoneOffset>
<epcList>
<epc>urn:epc:id:sgtin:0614141.107346.2018</epc>
</epcList>
<action>OBSERVE</action>
<disposition>urn:epcglobal:cbv:disp:in_progress</disposition>
<bizLocation>
<id>urn:epc:id:sgln:0614141.07346.1234</id>
</bizLocation>
</ObjectEvent>
</EventList>
</EPCISBody>
Practice: Capture
• ObjectEvent
3. Capture ObjectEvent with Business Step and Disposition
use both Business Step & Disposition
2021-07-16 31
Business Step
& Disposition
<EPCISBody>
<EventList>
<ObjectEvent>
<eventTime>2005-04-03T20:33:31.116-06:00</eventTime>
<eventTimeZoneOffset>-06:00</eventTimeZoneOffset>
<epcList>
<epc>urn:epc:id:sgtin:0614141.107346.2018</epc>
</epcList>
<action>OBSERVE</action>
<bizStep>urn:epcglobal:cbv:bizstep:shipping</bizStep>
<disposition>urn:epcglobal:cbv:disp:in_progress</disposition>
<bizLocation>
<id>urn:epc:id:sgln:0614141.07346.1234</id>
</bizLocation>
</ObjectEvent>
</EventList>
</EPCISBody>
<ext1:default>stringAsDefaultValue</ext1:default>
<ext1:int xsi:type="xsd:integer">10</ext1:int>
<ext1:float xsi:type="xsd:double">20</ext1:float>
<ext1:time xsi:type="xsd:dateTime">2013-06-08T14:58:56.591Z</ext1:time>
<ext1:boolean xsi:type="xsd:boolean">true</ext1:boolean>
<ext1:string xsi:type="xsd:string">string</ext1:string>
<ext1:object>
<ext2:string xsi:type="xsd:string">stringInObject</ext2:string>
<ext2:array xsi:type="xsd:integer">11</ext2:array>
<ext2:array xsi:type="xsd:double">21</ext2:array>
<ext2:array xsi:type="xsd:string">stringInArrayInObject</ext2:array>
<ext2:object>
<ext3:string xsi:type="xsd:string">stringInObjectInObject</ext3:string>
</ext2:object>
</ext1:object>
<ext1:array xsi:type="xsd:integer">12</ext1:array>
<ext1:array xsi:type="xsd:double">22</ext1:array>`
Practice: Capture
• ObjectEvent
4. Capture ObjectEvent With Non-GS1 field
Various Data Type, Inner Hierarchy Structure
2021-07-16 32
Extension Data Type
xsd:string 문자열 (디폴트)
xsd:integer 정수형
xsd:double 실수형
xsd:boolean 불린 값
xsd:dateTime 시간
Inner Hierarchy
Structure
Practice: Capture
• ObjectEvent
4. Capture ObjectEvent With Non-GS1 field
Various Data Type, Inner Hierarchy Structure
2021-07-16 33
<epcis:EPCISDocument xmlns:epcis="urn:epcglobal:epcis:xsd:1"
xmlns:example="http://ns.example.com/epcis"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
creationDate="2005-07-11T11:30:47.0Z"
xmlns:geo="https://schema.org/geo"
schemaVersion="1.2">
<EPCISBody>
<EventList>
<ObjectEvent>
<eventTime>2005-04-03T20:33:31.116-06:00</eventTime>
<eventTimeZoneOffset>-06:00</eventTimeZoneOffset>
<epcList>
<epc>urn:epc:id:sgtin:0614141.107346.2018</epc>
</epcList>
<action>OBSERVE</action>
<bizLocation>
<id>urn:epc:id:sgln:0614141.07346.1234</id>
</bizLocation>
<geo:latitude xsi:type="xsd:double">40.75</geo:latitude>
<geo:longitude xsi:type="xsd:double">73.98</geo:longitude>
</ObjectEvent>
</EventList>
</EPCISBody>
Practice: Capture
• ObjectEvent
4. Sensor Module
EPCIS v2.0에서 센서 값 저장 지원
총 40개의 센서 종류 지원
쿼리에서 동종 그룹 센서들 사이의 자동 변환 지원
2021-07-16 34
센서 그룹 센서 측정 단위(UOM) 정의
1 gs1:AbsorbedDose A95 | C13 | C80 | A61 흡수선량
2
gs1:AbsorbedDosRat
e
P54 | P55 | … | P63 | P64 흡수선량률
3 gs1:Acceleration
MSK | A76 | C11 | M38 | M39 | M41 |
A73 | IV | K40 | M40 | M42
가속도
4
gs1:AmountOfSubsta
nce
C34 | B45 | C18 | FH 물질량
5 gs1:Angle
C81 | C25 | B97 | A91 | DD | D61 | D62 |
M43 | M44
각도
6 gs1:Area
MTK | KMK | H30 | DAA | CMK |
DMK | H16 | H18 | MMK |ARE | HAR |
INK | FTK | M48 | ACR | M47
넓이
센서 그룹 센서 측정 단위(UOM) 정의
7 gs1:Capacitance
FAR | H48 | C10 | _40 | C41 | _4T | N
90
전기 용량
8 gs1:Charge
COU | A8 | AMH | TAH | D77 | D86 |
B26 | B86 | C40 | C71 | E09 | N95 |
N94
전기량
9 gs1:Conductance
SIE | B53 | C27 | B99 | N92 | NQ |
NR
전기 전도도
10 gs1:Current
AMP | B22 | H38 | _4K | B84 | C39 |
C70 | N96 | N97
전류
11 gs1:DensityHumidity
KMQ | _23 | D41 | GJ | B25 | GL |
A93 | GP | B72 | M1 | GQ | F23 | G31
| _87 | GE | LA | G32 | K41 | K71 |
K84 | L37 | L38 | L39 | L65 | L92 |
L93
밀도
12
gs1:DimensionlessCo
ncentration
P1 | _59 | _61 | _60 | E40 | NX | GK |
NA | J33 | L32 | M29 | K62 | L19 |
J36 | H60 | H65 | J87 | L21 | J91
퍼센트
Practice: Capture
• ObjectEvent
4. Sensor Module
EPCIS v2.0에서 센서 값 저장 지원
총 40개의 센서 종류 지원
쿼리에서 동종 그룹 센서들 사이의 자동 변환 지원
2021-07-16 35
센서 그룹 센서 측정 단위(UOM) 정의
13 gs1:EffectiveDose D13 | C28 | D91 | L31 유효선량당량
14
gs1:EffectiveDoseRat
e
P65 | P66 | … | P76 | P77 유효선당량률
15 gs1:Energy
JOU | KJO | A68 | C68 | D30 | GV | _3B
| C15 | A70 | A13 | WHR | MWH | KWH
| HWH | D32 | A53 | B71 | A85 | B29 |
A57 | _85 | B38 | N46 | N47 | D60 | J75 |
E14 | K51 | K53 | BTU | J37 | N71 | N72
| J55
에너지
16 gs1:Force
NEW | B47 | B73 | B92 | C20 | DU | C78
| B37 | B51 | L40 | L94 | M75 | M76 |
M77 | M78
힘
17 gs1:Frequency HTZ | KHZ | MHZ | A86 | D29 주파수
18 gs1:Illuminance B60 | LUX | KLX | P25 | P26 | P27 조도
센서 그룹 센서 측정 단위(UOM) 정의
19 gs1:Inductance _81 | C14 | B90 | C43 | C73 | P24
상호유도작용의
정도
20 gs1:Length
MTR | A11 | A71 | C45 | _4H | A12 |
DMT | CMT | MMT | INH | FOT |
YRD | MNI | A45 | HMT | KMT |
B57 | AK | M50 | M49 | X1 | M51
길이
21
gs1:LuminousIntens
ity
CDL | P33 | P34 광도
22 gs1:MagneticFlux WEB | C33 | P11 자기 선속
23
gs1:M
agneticFluxDensity
D33 | C29 | D81 | C48 | P13 | P12 자속 밀도
24
gs1:MagneticVectorPo
tential
D59 | B56 | D60 자기 벡터 전위
Practice: Capture
• ObjectEvent
4. Sensor Module
EPCIS v2.0에서 센서 값 저장 지원
총 40개의 센서 종류 지원
쿼리에서 동종 그룹 센서들 사이의 자동 변환 지원
2021-07-16 36
센서 그룹 센서 측정 단위(UOM) 정의
25 gs1:Mass
KGM | KTN | LTN | _2U | TNE | STN |
DTN | STI | LBR | HGM | ONZ | DJ | A
PZ | GRM | DG | CGM | MGM | MC | F
13 | CWI | CWA | M86
질량
26
gs1:MolarCocentrati
on
C36 | M33 | C38 | C35 | B46 물 농도
27 gs1:MolarMass D74 | A94 물 질량
28
gs1:MolarThermodyna
micEnergy
B15 | B44 물의 열역학 에너지
29 gs1:MolarVolume A40 | A37 | A36 | B58 물 부피
30 gs1:Power
WTT | KWT | MAW | A90 | C31 | D80 |
F80 | A63 | A74 | B39 | HJ | A25 | BHP |
K15 | K16 | K42 | N12
파워
센서 그룹 센서 측정 단위(UOM) 정의
31 gs1:Pressure
PAL | H75 | _74 | A89 | A97 | B96 |
KPA | MPA | BAR | MBR | C55 | C
56 | B40 | UA | _80 | H78 | HP | F79
| F78 | ATT | ATM | J89 | K24 | K25
| K31 | E42 | K31 | E42 | E41 | K85 |
_84 | N13 | N14 | N15 | N16 | N17 |
N18 | N19 | N20 | N21 | N22 | N23 |
HN | PS
압력
32 gs1:Radioactivity
CUR | MCU | M5 | _2R | BQL |
GBQ | _2Q | _4N | H08
방사능
33 gs1:Resistance
QHM | A87 | B75 | H44 | B49 | E45
| B94 | P22
저항
34 gs1:SpecificVolume
A39 | _22 | H83 | KX | N28 | N29 |
N30
비체적
35 gs1:Speed
KMH | MTS | HM | M57 | M58 |
KNT | M62 | H49 | _2M | K14 | FR |
FS | M63 | IU | M61 | _2X
속도
36 gs1:Temperature KEL | FAH | CEL | A48 온도
Practice: Capture
• ObjectEvent
4. Sensor Module
EPCIS v2.0에서 센서 값 저장 지원
총 40개의 센서 종류 지원
쿼리에서 동종 그룹 센서들 사이의 자동 변환 지원
2021-07-16 37
센서 그룹 센서 측정 단위(UOM) 정의
37 gs1:Time
SEC | MIN | HUR | DAY | B52 | C26 |
H70 | B98 | C47 | WEE | MON | ANN |
D42 | L95 | L96 | M56
시간
38 gs1:Torque
NU | B74 | B48 | D83 | B93 | DN | J72 |
B28 | F21 | J94 | L41 | M92 | M95 |
M96 | M97
회전력
39 gs1:Voltage VLT | N99 | _2Z | B78 | D82 | KVT 전압
40 gs1:Volume
MTQ | MAL | LT MMQ | CMQ | DMQ
| MLT | CLT | DMA | H19 | H20 | DLT
| _4G | K6 | A44 | INQ | FTQ | YDQ |
GLI | GLL | PT | PIT | QIT | PTL | QTL
| PTD | QZI | QT J57 | L43 | L61 | L62 |
L84 | L86 | OZA | BUI | BUA | BLL |
BLD | GLD | QTD | G26 | G21 | G24 |
G25 | G23 | M67 | M68 | M69 | M70
부피
Practice: Capture
• ObjectEvent
4. Capture ObjectEvent with Sensor Element
e.g., gs1:Temperature (26º𝐶)
2021-07-16 38
SensorReport about
gs1:Temperature
<EPCISBody>
<EventList>
…
<extension>
<extension>
<sensorElementList>
<sensorElement>
<sensorReport
value="26.0"
type="gs1:Temperature"
uom="CEL"
/>
</sensorElement>
</sensorElementList>
</extension>
</extension>
</ObjectEvent>
</EventList>
</EPCISBody>
Practice: Capture
• ObjectEvent
4. Capture ObjectEvent with Sensor Element
e.g., gs1:Temperature (26º𝐶),deviceID, time
2021-07-16 39
SensorReport about
gs1:Temperature,
devieID, time
<EPCISBody>
<EventList>
…
<extension>
<extension>
<sensorElementList>
<sensorElement>
<sensorReport
value="26.0"
type="gs1:Temperature"
uom="CEL"
deviceID="urn:epc:id:giai:4000001.111"
time="2019-07-19T14:00:00.000+01:00"
/>
</sensorElement>
</sensorElementList>
</extension>
</extension>
</ObjectEvent>
</EventList>
</EPCISBody>
Practice: Query – GetStandardVersion
• GetStandardVersion
2021-07-16 40
Request
Response
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:query="urn:epcglobal:epcis-query:xsd:1">
<soapenv:Header/>
<soapenv:Body>
<query:GetStandardVersion/>
</soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<query:GetStandardVersionResult xmlns:query="urn:epcglobal:epcis-query:xsd:1">2.0</query:GetStandardVersionResult>
</soapenv:Body>
</soapenv:Envelope>
Practice: Query – GetVenderVersion
• GetVenderVersion
2021-07-16 41
Request
Response
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:query="urn:epcglobal:epcis-query:xsd:1">
<soapenv:Header/>
<soapenv:Body>
<query:GetVendorVersion/>
</soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<query:GetVendorVersionResult xmlns:query="urn:epcglobal:epcis-query:xsd:1">org.oliot.epcis-core-v2.0.8</query:GetVendorVersionResult>
</soapenv:Body>
</soapenv:Envelope>
Practice: Query – GetQueryName
• GetQueryName
2021-07-16 42
Request
Response
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:query="urn:epcglobal:epcis-query:xsd:1">
<soapenv:Header/>
<soapenv:Body>
<query:GetQueryNames/>
</soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<query:GetQueryNamesResult xmlns:query="urn:epcglobal:epcis-query:xsd:1">
<string>SimpleEventQuery</string>
<string>SimpleMasterDataQuery</string>
</query:GetQueryNamesResult>
</soapenv:Body>
</soapenv:Envelope>
Practice: Poll – Event Single Param Baisc
• Poll Event Single Param Basic
• ALL_EVENTS
• EQ_action
• EQ_bizLocation
• EQ_bizStep
• EQ_bizTransaction_type
• EQ_correctiveEventID
• EQ_destination_type
• EQ_disposition
• EQ_errorReason
• EQ_eventID
• EQ_readPoint
• EQ_setPersistentDisposition
• EQ_source_type
• EQ_transformationID
• EQ_unsetPersisntenDistpostition
2021-07-16 43
• eventType
• EXISTS_errorDeclaration
• GE_erorDeclarationTime
• GE_eventTime
• GE_recordeTime
• LT_errorDeclarationTime
• LT_eventTime
• LT_recordTime
• MATCH_anyEPC
• MATCH_anyEPCClass
• MATCH_epc
• MATCH_epcClass
• MATCH_inputEPC
• MATCH_intputEPCClass
• MATCH_outputEPC
• MATCH_outputEPCClass
• MATCH_parentID
Practice: Poll – Event Single Param Baisc
• Poll Event Single Param Basic
• ALL_EVENTS
• EQ_action
• EQ_bizLocation
• EQ_bizStep
• EQ_bizTransaction_type
• EQ_correctiveEventID
• EQ_destination_type
• EQ_disposition
• EQ_errorReason
• EQ_eventID
• EQ_readPoint
• EQ_setPersistentDisposition
• EQ_source_type
• EQ_transformationID
• EQ_unsetPersisntenDistpostition
2021-07-16 44
• eventType
• EXISTS_errorDeclaration
• GE_erorDeclarationTime
• GE_eventTime
• GE_recordeTime
• LT_errorDeclarationTime
• LT_eventTime
• LT_recordTime
• MATCH_anyEPC
• MATCH_anyEPCClass
• MATCH_epc
• MATCH_epcClass
• MATCH_inputEPC
• MATCH_intputEPCClass
• MATCH_outputEPC
• MATCH_outputEPCClass
• MATCH_parentID
GT: greater than [____]
GE: greater than or equal to [____]
LT: less than [____]
LE: less than or equal to [____]
EQ: equal to [____]
WD: equal to [____] and find children
MATCH: match patterns of [____]
EXISTS: exists [____]
O
Practice: Poll – ALL EVENTS
• Query All EventData
Param: null
2021-07-16 45
<ObjectEvent>
...
<action>OBSERVE</action>
...
</ObjectEvent>
O
<ObjectEvent>
...
<ext1:string xsi:type="xsd:string">string</ext1:string>
...
</ObjectEvent>
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
</param>
</params>
</query:Poll>
</soapenv:Body>
O
<ObjectEvent>
...
<disposition>urn:epcglobal:cbv:disp:in_progress</disposition>
...
</ObjectEvent>
Practice: Poll – EQ_action
• Query EventData with action [____]
Param: OBSERVE
2021-07-16 46
<ObjectEvent>
...
<action>OBSERVE</action>
...
</ObjectEvent>
<ObjectEvent>
...
<action>ADD</action>
...
</ObjectEvent>
<ObjectEvent>
...
<action>DELETE</action>
...
</ObjectEvent>
𝑋
O
𝑋
<soapenv:Body>
<query: Poll >
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>EQ_action</name>
<value xsi:type="query:ArrayOfString">
<string>OBSERVE</string>
</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
Practice: Poll – EQ_bizLocation
• Query EventData with bizLocation [____]
Param: urn:epc:id:sgln:0614141.07346.1234
2021-07-16 47
<ObjectEvent>
...
<bizLocation>
<id>urn:epc:id:sgln:0614141.07346.1234</id>
</bizLocation>
...
</ObjectEvent>
<ObjectEvent>
...
<bizLocation>
<id>urn:epc:id:sgln:0614141.07346.4321</id>
</bizLocation>
...
</ObjectEvent>
<ObjectEvent>
...
<bizLocation>
<id>urn:epc:id:sgln:0614141.07346.1234</id>
</bizLocation>
...
</ObjectEvent>
𝑋
O
𝑂
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>EQ_bizLocation</name>
<value xsi:type="query:ArrayOfString">
<string>urn:epc:id:sgln:0614141.07346.1234</string>
</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
Practice: Poll – EQ_bizStep
• Query EventData with bizStep [____]
Param: receiving OR shipping
2021-07-16 48
<ObjectEvent>
...
<bizStep>urn:epcglobal:cbv:bizstep:receiving</bizStep>
...
</ObjectEvent>
<ObjectEvent>
...
<bizStep>urn:epcglobal:cbv:bizstep:shipping</bizStep>
...
</ObjectEvent>
<ObjectEvent>
...
<bizStep>urn:epcglobal:cbv:bizstep:assembling</bizStep>
...
</ObjectEvent>
𝑂
O
𝑋
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>EQ_bizStep</name>
<value xsi:type="query:ArrayOfString">
<string>urn:epcglobal:cbv:bizstep:receiving</string>
<string>urn:epcglobal:cbv:bizstep:shipping</string>
</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
Practice: Poll – EQ_disposition
• Query EventData with disposition [____]
Param: in_progress OR recalled
2021-07-16 49
<ObjectEvent>
...
<disposition>urn:epcglobal:cbv:disp:in_progress</disposition>
...
</ObjectEvent>
<ObjectEvent>
...
<disposition>urn:epcglobal:cbv:disp:in_recalled</disposition>
...
</ObjectEvent>
<ObjectEvent>
...
<disposition></disposition>
...
</ObjectEvent>
𝑂
O
𝑋
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>EQ_disposition</name>
<value xsi:type="query:ArrayOfString">
<string>urn:epcglobal:cbv:disp:in_progress</string>
<string>urn:epcglobal:cbv:disp:recalled</string>
</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
Practice: Poll – GE_eventTime
• Query EventData with eventTime greater than or equal to [____]
Param: 2021년 5월 24일 12시 58분 56.591초 (UTC보다 09:00 느리다.)
2021-07-16 50
<ObjectEvent>
...
<eventTime>2021-05-24T12:58:56.591-09:00</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2021-05-25T12:58:56.591-09:00</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2021-05-23T12:58:56.591-09:00</eventTime>
...
</ObjectEvent>
𝑂
O
𝑋
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>GE_eventTime</name>
<value xsi:type="xsd:dateTime">2021-05-24T12:58:56.591-09:00</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
포맷: yyyy-MM-dd’T’HH:mm:ss.SSSXXX
Practice: Poll – GE_recordTime
• Query EventData with recordTime greater than or equal to [____]
Param: 2021년 7월 12일 02시 00분 00.591초 (UTC TimeZone.)
2021-07-16 51
<ObjectEvent>
...
<recordTime> 2021-07-12T02:00:00.591Z </recordTime>
...
</ObjectEvent>
<ObjectEvent>
...
<recordTime> 2021-07-13T02:00:00.591Z </recordTime>
...
</ObjectEvent>
<ObjectEvent>
...
<recordTime> 2021-07-11T02:00:00.591Z </recordTime>
...
</ObjectEvent>
𝑂
O
𝑋
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>GE_recordTime</name>
<value xsi:type="xsd:dateTime">2021-07-12T02:00:00.591Z</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
포맷: yyyy-MM-dd’T’HH:mm:ss.SSSXXX
Practice: Poll – LE_eventTime
• Query EventData with eventTime less than [____]
Param: 2021년 5월 24일 12시 58분 56.591초 (UTC보다 09:00 느리다.)
2021-07-16 52
𝑋
𝑋
𝑂
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>LT_eventTime</name>
<value xsi:type="xsd:dateTime">2021-05-24T12:58:56.591-09:00</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
<ObjectEvent>
...
<eventTime>2021-05-24T12:58:56.591-09:00</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2021-05-25T12:58:56.591-09:00</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2021-05-23T12:58:56.591-09:00</eventTime>
...
</ObjectEvent>
포맷: yyyy-MM-dd’T’HH:mm:ss.SSSXXX
Practice: Poll – LE_recordTime
• Query EventData with recordTime less than [____]
Param: 2021년 7월 12일 02시 00분 00.591초 (UTC TimeZone.)
2021-07-16 53
𝑋
𝑋
𝑂
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>LT_recordTime</name>
<value xsi:type="xsd:dateTime">2021-07-12T02:00:00.591Z</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
포맷: yyyy-MM-dd’T’HH:mm:ss.SSSXXX
<ObjectEvent>
...
<recordTime> 2021-07-12T02:00:00.591Z </recordTime>
...
</ObjectEvent>
<ObjectEvent>
...
<recordTime> 2021-07-13T02:00:00.591Z </recordTime>
...
</ObjectEvent>
<ObjectEvent>
...
<recordTime> 2021-07-11T02:00:00.591Z </recordTime>
...
</ObjectEvent>
Practice: Poll – MATCH_epc 1
• Query EventData with epc_id MATCH [____]
Param: urn:epc:id:sgtin:0614141.107346.2018
2021-07-16 54
<ObjectEvent>
...
<epc>urn:epc:id:sgtin:0614141.107346.2018</epc>
...
</ObjectEvent>
<ObjectEvent>
...
<epc>urn:epc:id:sgtin:0614141.107346.2019</epc>
...
</ObjectEvent>
<ObjectEvent>
...
<epc>urn:epc:id:sgtin:0614141.107346.2020</epc>
...
</ObjectEvent>
𝑋
O
𝑋
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>MATCH_epc</name>
<value xsi:type="query:ArrayOfString">
<string>urn:epc:id:sgtin:0614141.107346.2018</string>
</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
Practice: Poll – MATCH_epc 2
• Query EventData with epc_id MATCH [____]
Param: urn:epc:id:sgtin:0614141.107346.*
2021-07-16 55
𝑂
O
𝑂
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>MATCH_epc</name>
<value xsi:type="query:ArrayOfString">
<string>urn:epc:id:sgtin:0614141.107346.*</string>
</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
2021-07-16
<ObjectEvent>
...
<epc>urn:epc:id:sgtin:0614141.107346.2018</epc>
...
</ObjectEvent>
<ObjectEvent>
...
<epc>urn:epc:id:sgtin:0614141.107346.2019</epc>
...
</ObjectEvent>
<ObjectEvent>
...
<epc>urn:epc:id:sgtin:0614141.107346.2020</epc>
...
</ObjectEvent>
Practice: Poll – MATCH_epc 3
• Query EventData with epc_id MATCH [____]
Param: “urn:epc:id:sgtin:0614141.*.2018”
2021-07-16 56
𝑋
O
𝑋
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>MATCH_epc</name>
<value xsi:type="query:ArrayOfString">
<string>urn:epc:id:sgtin:0614141.*.2018</string>
</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
<ObjectEvent>
...
<epc>urn:epc:id:sgtin:0614141.107346.2018</epc>
...
</ObjectEvent>
<ObjectEvent>
...
<epc>urn:epc:id:sgtin:0614141.107346.2019</epc>
...
</ObjectEvent>
<ObjectEvent>
...
<epc>urn:epc:id:sgtin:0614141.107346.2020</epc>
...
</ObjectEvent>
Practice: Poll – Event Single Param Advanced
• Poll Event Single Param Advanced
• EQATTR_fieldname_attrname
• EQ_ERROR_DECLATATION_fieldname
• EQ_fieldname
• EQ_ILMD
• EQ_INNER_ERROR_DECLATATION_fieldname
• EQ_INNER_fieldname
• EQ_INNER_ILMD_fieldname
• EXISTS_ERROR_DECLARATION_fieldname
• EXISTS_fieldname
• EXISTS_INNER_EROOR_DECARATION_fieldname
• EXISTS_INNER_fieldname
• EXISTS_INNER_ILMD_fieldname
• GET_ERROR_DECARATION_fieldname
2021-07-16 57
• GT_fieldname
• GT_ILMD_fieldname
• GT_INNER_ERROR_DECLARATION_
fieldname
• GT_INNER_fieldname
• GT_INNER_ILMD_extension
• HASATTR_fieldname
• WD_bizLocation
• WD_readPoint
Practice: Poll – Event Single Param Advanced
• Poll Event Single Param Advanced
• EQATTR_fieldname_attrname
• EQ_ERROR_DECLATATION_fieldname
• EQ_fieldname
• EQ_ILMD
• EQ_INNER_ERROR_DECLATATION_fieldname
• EQ_INNER_fieldname
• EQ_INNER_ILMD_fieldname
• EXISTS_ERROR_DECLARATION_fieldname
• EXISTS_fieldname
• EXISTS_INNER_EROOR_DECARATION_fieldname
• EXISTS_INNER_fieldname
• EXISTS_INNER_ILMD_fieldname
• GET_ERROR_DECARATION_fieldname
2021-07-16 58
• GT_fieldname
• GT_ILMD_fieldname
• GT_INNER_ERROR_DECLARATI
ON_fieldname
• GT_INNER_fieldname
• GT_INNER_ILMD_extension
• HASATTR_fieldname
• WD_bizLocation
• WD_readPoint
Practice: Poll – EQ_fieldname
• Query EventData with fieldname [____] And Value equal to [____]
Param: EQ_https://schema.org/geo#latitude, 40.75
2021-07-16 59
𝑋
<ObjectEvent>
...
<ext0:latitudexsi:type="xsd:double">40.75</ext0:latitude>
...
</ObjectEvent>
<ObjectEvent>
...
<ext0:latitudexsi:type="xsd:double">38.50</ext0:latitude>
...
</ObjectEvent>
O
<ObjectEvent>
...
<ext0:place>
...
<ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude>
...
</ext0:place>
...
</ObjectEvent>
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>EQ_https://schema.org/geo#latitude</name>
<value xsi:type="xsd:double">40.75</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
X
Practice: Poll – EQ_INNER_fieldname
• Query EventData with fieldname [____] And Value equal to [____]
Param: EQ_INNER_https://schema.org/geo#latitude, 40.75
2021-07-16 60
𝑋
<ObjectEvent>
...
<ext0:latitudexsi:type="xsd:double">40.75</ext0:latitude>
...
</ObjectEvent>
<ObjectEvent>
...
<ext0:place>
...
<ext0:latitude xsi:type="xsd:double">35.75</ext0:latitude>
...
</ext0:place>
...
</ObjectEvent>
𝑋
<ObjectEvent>
...
<ext0:place>
...
<ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude>
...
</ext0:place>
...
</ObjectEvent>
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>EQ_INNER_https://schema.org/geo#latitude</name>
<value xsi:type="xsd:double">40.75</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
O
Practice: Poll – EXISTS_fieldname
• Query EventData with Inner fieldname [____]
Param: EXISTS_https://schema.org/geo#latitude
2021-07-16 61
𝑋
<ObjectEvent>
...
<ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude>
...
</ObjectEvent>
<ObjectEvent>
...
<ext0:place>
...
<ext0:latitude xsi:type="xsd:double">35.75</ext0:latitude>
...
</ext0:place>
...
</ObjectEvent>
𝑂
<ObjectEvent>
...
<ext0:place>
...
<ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude>
...
</ext0:place>
...
</ObjectEvent>
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>EXISTS_https://schema.org/geo#latitude</name>
<value xsi:type="query:VoidHolder"/>
</param>
</params>
</query:Poll>
</soapenv:Body>
𝑋
Practice: Poll – EXISTS_INNER_fieldname
• Query EventData with Inner fieldname [____]
And Value greater than or equal to [____]
Param: EXISTS_INNER_https://schema.org/geo#latitude
2021-07-16 62
𝑂
<ObjectEvent>
...
<ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude>
...
</ObjectEvent>
<ObjectEvent>
...
<ext0:place>
...
<ext0:latitude xsi:type="xsd:double">35.75</ext0:latitude>
...
</ext0:place>
...
</ObjectEvent>
𝑋
<ObjectEvent>
...
<ext0:place>
...
<ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude>
...
</ext0:place>
...
</ObjectEvent>
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>EXISTS_INNER_https://schema.org/geo#latitude</name>
<value xsi:type="query:VoidHolder"/>
</param>
</params>
</query:Poll>
</soapenv:Body>
𝑂
Practice: Poll – GT_fieldname
• Query EventData with fieldname [____] And Value greater than or equal to [____]
Param: GT_https://schema.org/geo#latitude, 40.00
2021-07-16 63
𝑋
<ObjectEvent>
...
<ext0:latitudexsi:type="xsd:double">40.75</ext0:latitude>
...
</ObjectEvent>
<ObjectEvent>
...
<ext0:latitudexsi:type="xsd:double">38.50</ext0:latitude>
...
</ObjectEvent>
O
<ObjectEvent>
...
<ext0:place>
...
<ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude>
...
</ext0:place>
...
</ObjectEvent>
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>GT_https://schema.org/geo#latitude</name>
<value xsi:type="xsd:double">40.00</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
X
Practice: Poll – GT_INNER_fieldname
• Query EventData with Inner fieldname [____]
And Value greater than or equal to [____]
Param: GT_https://schema.org/geo#latitude, 40.00
2021-07-16 64
𝑋
<ObjectEvent>
...
<ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude>
...
</ObjectEvent>
<ObjectEvent>
...
<ext0:place>
...
<ext0:latitude xsi:type="xsd:double">35.75</ext0:latitude>
...
</ext0:place>
...
</ObjectEvent>
𝑋
<ObjectEvent>
...
<ext0:place>
...
<ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude>
...
</ext0:place>
...
</ObjectEvent>
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>GT_INNER_https://schema.org/geo#latitude</name>
<value xsi:type="xsd:double">40.00</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
𝑂
Practice: Query
• Poll Event Sort Limit
• firstOccurredEvent
• firstRecordedEvent
• lastOccurredEvent
• lastRecordedEvent
• preventMoreThanOneEvent
• sortedByEventTime
• sortedByExtensionField
• sortedByRecordTime
2021-07-16 65
Practice: Query
• Poll Event Sort Limit
• firstOccurredEvent
• firstRecordedEvent
• lastOccurredEvent
• lastRecordedEvent
• preventMoreThanOneEvent
• sortedByEventTime
• sortedByExtensionField
• sortedByRecordTime
2021-07-16 66
Practice: Poll – firstOccurredEvent
• Query First Occurred EventData
Param: eventTime, ASC, 1
2021-07-16 67
<ObjectEvent>
...
<eventTime>2005-04-05T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-04T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-05T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>orderBy</name>
<value xsi:type="xsd:string">eventTime</value>
</param>
<param>
<name>orderDirection</name>
<value xsi:type="xsd:string">ASC</value>
</param>
<param>
<name>eventCountLimit</name>
<value xsi:type="xsd:integer">1</value>
</param>
</params>
</query:Poll>
Practice: Poll – firstOccurredEvent
2021-07-16 68
<ObjectEvent>
...
<eventTime>2005-04-65T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-04T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-05T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-04T02:33:31.116Z</eventTime>
...
</ObjectEvent>
• Query First Occurred EventData
Param: eventTime, ASC, 1
Practice: Poll – lastOccurredEvent
• Query Last Occurred EventData
Param: eventTime, DESC, 1
2021-07-16 69
<ObjectEvent>
...
<eventTime>2005-04-65T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-04T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-05T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>orderBy</name>
<value xsi:type="xsd:string">eventTime</value>
</param>
<param>
<name>orderDirection</name>
<value xsi:type="xsd:string">DESC</value>
</param>
<param>
<name>eventCountLimit</name>
<value xsi:type="xsd:integer">1</value>
</param>
</params>
</query:Poll>
Practice: Poll – lastOccurredEvent
2021-07-16 70
<ObjectEvent>
...
<eventTime>2005-04-65T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-04T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-05T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-65T02:33:31.116Z</eventTime>
...
</ObjectEvent>
• Query Last Occurred EventData
Param: eventTime, DESC, 1
Practice: Poll – sortedByEventTime
2021-07-16 71
<ObjectEvent>
...
<eventTime>2005-04-65T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-04T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-05T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>orderBy</name>
<value xsi:type="xsd:string">eventTime</value>
</param>
<param>
<name>orderDirection</name>
<value xsi:type="xsd:string">DESC</value>
</param>
</params>
</query:Poll>
• Query EventData with Order By EventTime DESC(ASC)
Param: eventTime, DESC
Practice: Poll – sortedByEventTime
2021-07-16 72
<ObjectEvent>
...
<eventTime>2005-04-05T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-04T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-05T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-04T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-05T02:33:31.116Z</eventTime>
...
</ObjectEvent>
<ObjectEvent>
...
<eventTime>2005-04-65T02:33:31.116Z</eventTime>
...
</ObjectEvent>
• Query EventData with Order By EventTime DESC(ASC)
Param: eventTime, DESC
Practice: Poll – Event Sensor Specific
• Poll Event Sensor Specific
• EQ_bizRules
• EQ_booleanValue
• EQ_chemicalSubstance
• EQ_dataProcessingMethod
• EQ_deviceID
• EQ_deviceMetaData
• EQ_hexBinaryValue
• EQ_INNER_SENSORELEMENT_fieldname
• EQ_microorganism
• EQ_rawData
• EQ_SENSORELEMENT_field
• EQ_SENSORMETADATA_attr
• EQ_SENSORREPORT_attr
• EQ_stringValue
• EQ_type
• EQ_value_uom
2021-07-16 73
• EXISTS_INNER_SENSORELEMENT_fieldname
• EXISTS_sensorElement
• EXISTS_SENSORELEMENT_fieldname
• EXISTS_SENSEORMETADATA_fieldname
• EXISTS_SENSEORREPORT_fieldname
• GE_endTime
• GE_maxValue
• GE_percRank
• GE_percValue
• GE_sDev
• GE_startTime
• GE_time
• LT_endTime
• LT_startTime
• LT_time
Practice: Poll – Event Sensor Specific
• Poll Event Sensor Specific
• EQ_bizRules
• EQ_booleanValue
• EQ_chemicalSubstance
• EQ_dataProcessingMethod
• EQ_deviceID
• EQ_deviceMetaData
• EQ_hexBinaryValue
• EQ_INNER_SENSORELEMENT_fieldname
• EQ_microorganism
• EQ_rawData
• EQ_SENSORELEMENT_field
• EQ_SENSORMETADATA_attr
• EQ_SENSORREPORT_attr
• EQ_stringValue
• EQ_type
• EQ_value_uom
2021-07-16 74
• EXISTS_INNER_SENSORELEMENT_fieldname
• EXISTS_sensorElement
• EXISTS_SENSORELEMENT_fieldname
• EXISTS_SENSEORMETADATA_fieldname
• EXISTS_SENSEORREPORT_fieldname
• GE_endTime
• GE_maxValue
• GE_percRank
• GE_percValue
• GE_sDev
• GE_startTime
• GE_time
• LT_endTime
• LT_startTime
• LT_time
𝑋
Practice: Poll – EQ_deviceID
• Query EventData with SensorElement’s deviceID equal to [____]
Param: urn:epc:id:giai:4000001.111
2021-07-16 75
<ObjectEvent>
...
<sensorReport
…
deviceID="urn:epc:id:giai:4000001.111“
…
/>
...
</ObjectEvent>
O
<ObjectEvent>
...
<sensorReport
…
deviceID="urn:epc:id:giai:4000001.222“
…
/>
...
</ObjectEvent>
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>EQ_deviceID</name>
<value xsi:type="query:ArrayOfString">
<string>urn:epc:id:giai:4000001.111</string>
</value>
</param>
</params>
</query:Poll>
</soapenv:Body> 𝑋
<ObjectEvent>
...
<sensorReport
…
deviceID="urn:epc:id:giai:4002683.111“
…
/>
...
</ObjectEvent>
𝑂
Practice: Poll – EQ_type
• Query EventData with SensorElement’s type equal to [____]
Param: gs1:Temperature
2021-07-16 76
<ObjectEvent>
...
<sensorReport
…
type="gs1:Temperature"
…
/>
...
</ObjectEvent>
O
<ObjectEvent>
...
<sensorReport
…
type="gs1:Speed"
…
/>
...
</ObjectEvent>
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>EQ_type</name>
<value xsi:type="query:ArrayOfString">
<string>gs1:Temperature</string>
<string>gs1:Area</string>
</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
𝑋
<ObjectEvent>
...
<sensorReport
…
type="gs1:Area"
…
/>
...
</ObjectEvent>
𝑋
Practice: Poll – EQ_value_uom
• Query EventData with SensorElement’s value of uom equal to [____] without
considering uom origin data
Param: 𝟕𝟖. 𝟖º𝑭 (= 𝟐𝟔. 𝟎º𝑪)
2021-07-16 77
<ObjectEvent>
...
<sensorReport
…
value="26.0“
uom="CEL"
…
/>
...
</ObjectEvent>
O
<ObjectEvent>
...
<sensorReport
…
value=“78.8“
uom=“FAH"
…
/>
...
</ObjectEvent>
<soapenv:Body>
<query:Poll>
<queryName>SimpleEventQuery</queryName>
<params>
<param>
<name>EQ_value_FAH</name>
<value xsi:type="xsd:double">78.8</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
𝑂
<ObjectEvent>
...
<sensorReport
…
value=“78.8“
uom="CEL"
…
/>
...
</ObjectEvent>
Practice:Query
• Poll_masterdata_single_param
• vocabularyName
• includeAttributes
• includeChildren
• attributeNames
• EQ_name
• WD_name
• HASATTR
• EQATTR_attrname
• maxElementCount
2021-07-16 78
Practice:Query
• Poll_masterdata_single_param
• vocabularyName
• includeAttributes
• includeChildren
• attributeNames
• EQ_name
• WD_name
• HASATTR
• EQATTR_attrname
• maxElementCount
2021-07-16 79
Practice: Poll – EQ_name
• Query MasterData with EQ_name [____]
Param: urn:epc:id:sgln:0037000.00729.0, true, true
2021-07-16 80
<VocabularyElementid="urn:epc:id:sgln:0037000.00729.0">
…
</VocabularyElement>
<VocabularyElementid="urn:epc:id:sgln:0037000.00729.1">
…
</VocabularyElement>
<VocabularyElementid="urn:epc:id:sgln:0037000.00729.2">
…
</VocabularyElement>
𝑋
𝑂
𝑋
<query:Poll>
<queryName>SimpleMasterDataQuery</queryName>
<params>
<param>
<name>EQ_name</name>
<value xsi:type="query:ArrayOfString">
<string>urn:epc:id:sgln:0037000.00729.0</string>
</value>
</param>
<param>
<name>includeAttributes</name>
<value xsi:type="xsd:boolean">true</value>
</param>
<param>
<name>includeChildren</name>
<value xsi:type="xsd:boolean">true</value>
</param>
</params>
</query:Poll>
Practice: Poll – EQ_name
• Query MasterData with EQ_name [____]
Param: urn:epc:id:sgln:0037000.00729.0, true, true
2021-07-16 81
<VocabularyElementid="urn:epc:id:sgln:0037000.00729.0">
<children>
<id>urn:epc:id:sgln:0037000.00729.8201</id>
<id>urn:epc:id:sgln:0037000.00729.8202</id>
</children>
</VocabularyElement>
<VocabularyElement id="urn:epc:id:sgln:0037000.00729.8201">
…
</VocabularyElement>
<VocabularyElement id="urn:epc:id:sgln:0037000.00729.8202">
…
</VocabularyElement>
𝑂
<query:Poll>
<queryName>SimpleMasterDataQuery</queryName>
<params>
<param>
<name>EQ_name</name>
<value xsi:type="query:ArrayOfString">
<string>urn:epc:id:sgln:0037000.00729.0</string>
</value>
</param>
<param>
<name>includeAttributes</name>
<value xsi:type="xsd:boolean">true</value>
</param>
<param>
<name>includeChildren</name>
<value xsi:type="xsd:boolean">true</value>
</param>
</params>
</query:Poll>
𝑋
𝑋
Practice: Poll – WD_name
• Query MasterData with WD_name [____]
Param: urn:epc:id:sgln:0037000.00729.0, true, true
82
<VocabularyElementid="urn:epc:id:sgln:0037000.00729.0">
<children>
<id>urn:epc:id:sgln:0037000.00729.8201</id>
<id>urn:epc:id:sgln:0037000.00729.8202</id>
</children>
</VocabularyElement>
<VocabularyElement id="urn:epc:id:sgln:0037000.00729.8201">
…
</VocabularyElement>
<VocabularyElement id="urn:epc:id:sgln:0037000.00729.8202">
…
</VocabularyElement>
𝑂
<query:Poll>
<queryName>SimpleMasterDataQuery</queryName>
<params>
<param>
<name>WD_name</name>
<value xsi:type="query:ArrayOfString">
<string>urn:epc:id:sgln:0037000.00729.0</string>
</value>
</param>
<param>
<name>includeAttributes</name>
<value xsi:type="xsd:boolean">true</value>
</param>
<param>
<name>includeChildren</name>
<value xsi:type="xsd:boolean">true</value>
</param>
</params>
</query:Poll>
𝑂
𝑂
Practice: Poll – HASATTR
• Query MasterData with HASATTR [____]
Param: http://epcis.example.com/mda/address, true, true
2021-07-16 83
<VocabularyElementid="urn:epc:id:sgln:0037000.00729.0">
<attribute id="http://epcis.example.com/mda/address">
…
</attribute>
</VocabularyElement>
<VocabularyElementid="urn:epc:id:sgln:0037000.00729.1">
<attribute id="http://epcis.example.com/mda/latitude">
…
</attribute>
</VocabularyElement>
<VocabularyElementid="urn:epc:id:sgln:0037000.00729.3“
<attribute id="http://epcis.example.com/mda/longitude">
…
</attribute>
</VocabularyElement>
𝑋
𝑂
𝑋
<query:Poll>
<queryName>SimpleMasterDataQuery</queryName>
<params>
<param>
<name>HASATTR</name>
<value xsi:type="query:ArrayOfString">
<string>http://epcis.example.com/mda/address</string>
</value>
</param>
<param>
<name>includeAttributes</name>
<value xsi:type="xsd:boolean">true</value>
</param>
<param>
<name>includeChildren</name>
<value xsi:type="xsd:boolean">true</value>
</param>
</params>
</query:Poll>
Practice: Poll – EQATTR_attrname
• Query MasterData with EQATTR_attrname [____]
Param: urn:epcglobal:cbv:mda:sst, 201, true, true
2021-07-16 84
<VocabularyElementid="urn:epc:id:sgln:0037000.00729.0">
<attribute id="urn:epcglobal:cbv:mda:sst">201</attribute>
</VocabularyElement>
<VocabularyElementid="urn:epc:id:sgln:0037000.00729.1">
<attribute id="urn:epcglobal:cbv:mda:sst">202</attribute>
</VocabularyElement>
<VocabularyElementid="urn:epc:id:sgln:0037000.00729.3“
<attribute id="urn:epcglobal:cbv:mda:ssm">201</attribute>
</VocabularyElement>
𝑋
𝑂
𝑋
<soapenv:Body>
<query:Poll>
<queryName>SimpleMasterDataQuery</queryName>
<params>
<param>
<name>EQATTR_urn:epcglobal:cbv:mda:sst</name>
<value xsi:type="query:ArrayOfString">
<string>201</string>
</value>
</param>
<param>
<name>includeAttributes</name>
<value xsi:type="xsd:boolean">true</value>
</param>
<param>
<name>includeChildren</name>
<value xsi:type="xsd:boolean">true</value>
</param>
</params>
</query:Poll>
</soapenv:Body>
Q & A
Thank you for listening
2021-07-16 85

Introduction to GS1 EPCIS standard and Oliot EPCIS X (EPCIS v2.0 prototype)

  • 1.
    Introduction to OliotEPCISX 2021-07-16 1 Prof. Jaewook Byun, Jaehyun Ahn, Juhyeok Lee, Hyeongchan Kim Data Frameworks and Platforms Laboratory (DFPL), Sejong University Auto-ID Labs, Korea jwbyun@sejong.ac.kr https://sites.google.com/view/jack-dfpl/home https://www.youtube.com/channel/UC988e-Y8nto0LXVae0aqaOQ
  • 2.
    Table of Contents •Introduction • Installation • Practice: Capture • Practice: Poll 2021-07-16 2 • Prof. Jaewook Byun • Assistant Professor, Department of Software, Sejong University • Associate Director, Auto-ID Labs. Korea • Contact: jwbyun@sejong.ac.kr • GitHub: http://github.com/JaewookByun/ • Google Scholar: https://scholar.google.co.kr/citations?user=uDWxTJEAAAAJ • YouTube: https://www.youtube.com/channel/UC988e-Y8nto0LXVae0aqaOQ • Lab. Page: https://sites.google.com/view/jack-dfpl/home • Mr. Juhyeok Lee • Bachelor Student, Department of Software, Sejong University • Entrance Date: 2020.10 • Contact: zero5.two4@gmail.com • GitHub: https://github.com/juhyeokLee97 • Research Interest • Spatio-temporal graph platform • EPCIS
  • 3.
    Introduction to EPCIS– Standard Highlight • EPC Information Service (EPCIS) • Current Version v1.2 (Sep. 2016) • ISO/IEC 19987:2015 standard • Neutral data-carrier • Supply chain • Healthcare, Railway,… • Standardize data format • 5 core event data type • 1 vocabulary data type • Standardize service interface • How to capture data • How to query data • For details, refer: • https://discover.gs1.org/ • EPCIS Standard 2021-07-16
  • 4.
    Introduction to EPCIS- Standardization • Standardization on • Data format • Service Interface 2021-07-16 EPCIS Repository EPCIS Document EPCIS Document Producer Consumer Capture Interface: Receiving document Verifying document Storing document Query Interface: Receiving query parameters Sending documents Query Parameters: Filter (e.g., event time , object/loc. ID, …) Sorting Limiting
  • 5.
    Introduction to EPCIS– Data Standard • EPCIS Document • A XML or JSON file complying with EPCIS data standard • Could have either Event Data or Master Data 2021-07-16 EPCIS Document Object Event Aggregation Event Transaction Event Transformation Event Master Data Association Event <epcis:EPCISDocument xmlns:epcis="urn:epcglobal:epcis:xsd:1"> <EPCISHeader><extension> <EPCISMasterData> <VocabularyList> <Vocabulary type="urn:epcglobal:epcis:vtype:ReadPoint" /> </VocabularyList> </EPCISMasterData> </extension></EPCISHeader> <EPCISBody> <EventList> <ObjectEvent /> <AggregationEvent /> <TransactionEvent /> <TransformationEvent /> <AssociationEvent /> <ObjectEvent /> </EventList> </EPCISBody> </epcis:EPCISDocument> [Overview of EPCIS Document (XML)]
  • 6.
    Introduction to EPCIS– Data Standard • Object Event • Creation / Observation / Deletion of object(s) • via Barcode Reader, RFID Reader, Manually, etc. • Producers can explain an event with the following information: • When: did this event take place? • Where: did this occur and where are the objects thereafter? • What: objects are the subject of event? • Targeted Objects • Why: did this event take place? 2021-07-16
  • 7.
    Introduction to EPCIS– Data Standard • Object Event 2021-07-16 <ObjectEvent> <eventTime>2021-07-10T09:33:31.116-06:00</eventTime> <eventTimeZoneOffset>-06:00</eventTimeZoneOffset> <epcList> <epc>urn:epc:id:sgtin:0614141.107346.2017</epc> </epcList> <action>OBSERVE</action> <bizStep>urn:epcglobal:cbv:bizstep:inspecting</bizStep> <readPoint> <id>urn:epc:id:sgln:0614141.07346.1234</id> </readPoint> </ObjectEvent> “The package is observed in a packaging manufacturer for inspecting at 09:33:31 10th July 2021” WHAT WHY WHERE WHEN
  • 8.
    Introduction to EPCIS– Data Standard • Aggregation Event • (un)loading object(s), (un)packing object(s) • Users can explain an event with the following information: • When: did this event take place? • Where: did this occur and where are the objects thereafter? • What: objects are the subject of event? • Container (e.g., truck, pallet, box, etc.) • Objects be contained • Why: did this event take place? 2021-07-16 <parentID>urn:epc:id:sscc:0614141.1234567890</parentID> <childEPCs> <epc>urn:epc:id:sgtin:0614141.107346.2017</epc> <epc>urn:epc:id:sgtin:0614141.107346.2018</epc> </childEPCs>
  • 9.
    Introduction to EPCIS– Data Standard • Transformation Event • Input object(s) → Output object(s) • Users can explain an event with the following information: • When: did this event take place? • Where: did this occur and where are the objects thereafter? • What: objects are the subject of event? • Input object(s) • Output object(s) • Why: did this event take place? 2021-07-16 <inputEPCList> <epc>urn:epc:id:sgtin:4012345.011122.25</epc> </inputEPCList> <outputEPCList> <epc>urn:epc:id:sgtin:4012345.077889.25</epc> <epc>urn:epc:id:sgtin:4012345.077889.26</epc> <epc>urn:epc:id:sgtin:4012345.077889.27</epc> <epc>urn:epc:id:sgtin:4012345.077889.28</epc> </outputEPCList>
  • 10.
    Introduction to EPCIS– Data Standard • Object Event 2021-07-16 <ObjectEvent> <eventTime>2021-07-10T09:33:31.116-06:00</eventTime> <eventTimeZoneOffset>-06:00</eventTimeZoneOffset> <epcList> <epc>urn:epc:id:sgtin:0614141.107346.2017</epc> </epcList> <action>OBSERVE</action> <bizStep>urn:epcglobal:cbv:bizstep:inspecting</bizStep> <readPoint> <id>urn:epc:id:sgln:0614141.07346.1234</id> </readPoint> </ObjectEvent> A way to capture and share the details of this location? >> MASTER DATA (User Vocabulary) WHERE WHY What does it mean? >> CBV (Standard Vocabulary)
  • 11.
    Introduction to EPCIS– Data Standard • Master Data • A static information independent from a specific time • User Vocabularies • ReadPoint • BusinessLocation • BusinessTransaction • EPCClass • etc. • Standard Vocabulary • BusinessStep • Disposition • BusinessTransactionType • SourceDestType • etc. 2021-07-16 CBV defines the vocabulary User can use the vocabulary in an event data
  • 12.
    Introduction to EPCIS– Data Standard • Master Data • A static information independent from a specific time • User Vocabularies • ReadPoint • BusinessLocation • BusinessTransaction • EPCClass • etc. 2021-07-16 <Vocabulary type="urn:epcglobal:epcis:vtype:BusinessLocation"> <VocabularyElementList> <VocabularyElement id="urn:epc:id:sgln:0037000.00729.0"> <attribute id="http://example.com/mda#latitude">50° 49' 22.602"</attribute> <attribute id="http://example.com/mda#longitude">4° 22' 7.7196" E</attribute> <attribute id="http://example.com/mda#address">Avenue Louise 326 1050 Brussels Belgium</attribute> <attribute id="http://example.com/mda#phone">+32 2 788 78 00</attribute> </VocabularyElement> </VocabularyElementList> </Vocabulary>
  • 13.
    Introduction to EPCIS– Data Standard • Master Data • A static information independent from a specific time • Standard Vocabulary • BusinessStep 2021-07-16 CBV defines the vocabulary User can use the vocabulary in an event data <ObjectEvent> <eventTime>2021-07-10T09:33:31.116-06:00</eventTime> <eventTimeZoneOffset>-06:00</eventTimeZoneOffset> <epcList> <epc>urn:epc:id:sgtin:0614141.107346.2017</epc> </epcList> <action>OBSERVE</action> <bizStep>urn:epcglobal:cbv:bizstep:receiving</bizStep> <readPoint> <id>urn:epc:id:sgln:0614141.07346.1234</id> </readPoint> </ObjectEvent>
  • 14.
    Introduction to EPCIS– Interface Standard • Two types of service interface • SOAP/HTTP vs. REST/HTTP (equivalent) • The service interface defines the following methods • capture • getStandardVersion • getVendorVersion • getQueryNames • poll • getSubscriptionIDs • subscribe • unsubscribe 2021-07-16
  • 15.
    Introduction to EPCIS– Interface Standard Method Name Description capture • This service allows you to store your EPCIS Document into your backend storage Method: post • Contents: application/xml, complying with EPCIS v2.0 XML Schema 2021-07-16 Method Name Description Poll Subscribe Unsubscribe GetSubscriptionIDs GetStandardVersion GetVendorVersion GetQueryNames • The services usable in this page allow providing query results. • Poll: Return events/vocabularies stored in the EPCIS repository in interest immediately (For va rious query options, see EPCIS Section 8.2.7.1 and 8.2.7.2) • Subscribe: Register a subscriber monitoring a group of events matched with specific criteria. T he subscriber delivers such events to a specific callback point periodically or as soon as such ev ent is captured. • Unsubscribe: Unregister a subscriber. • GetSubscriptionIDs: Get all the identifiers of the registered subscriptions. • GetStandardVersion: Return the standard version of EPCIS • GetVendorVersion: Return the vendor specific version of EPCIS • GetQueryNames: Return a list of all query names available • Method: post • Contents: application/xml, complying with EPCIS WSDL
  • 16.
    Introduction to OliotEPCIS X • Specification • Open JDK 15 • Eclipse Vertx v4.0.1 • MongoDB v4.4.6 • Java Web Service • Maven 2021-07-16 • Current Status • XML Capture • JSON Capture • SOAP/HTTP Query • Hashed Event ID supported • CBV for EPCClass and Location supported • CBV-compliant XML Capture • REST/HTTP Query base and pagination
  • 17.
  • 18.
    Installation: Openjdk15 • 2.Setting Environment variable https://www.youtube.com/watch?v=5DZ4EKYjh70 2021-07-16 18
  • 19.
    Installation: MongoDB • 1.MongoDB Community Server 4.4.6 Download • https://www.mongodb.com/try/download/community 2021-07-16 19
  • 20.
    Installation: MongoDB 2021-07-16 20 •2. unzip MongoDB zip file and move to your Drive
  • 21.
    Installation: MongoDB 2021-07-16 21 •3. make empty folder ‘data’ and ‘datadb’ in Drive that includes MongoDB
  • 22.
    Installation: MongoDB 2021-07-16 22 •4. execute MongoDB/bin/mongod.exe(MongoDemon)
  • 23.
    Etc) MongoDB Compass(MongoDBGUI Tool) 2021-07-16 23 • Intsall MongoDB Compass and execute • https://www.mongodb.com/try/download/compass
  • 24.
    Execute epcis-x.jar • Download: https://drive.google.com/file/d/1Nq93TKvcTFtB69mioMTd_JtMo1MJlHb_/view ?usp=sharing • 1. execute CMD and move to directory that includes ‘epcis-x.jar’ • 2. ‘java –jar epcis-x.jar’in command line • 3. now, you can access http://localhost/epcis/home/index.html 2021-07-16 24 https://drive.google.com/file/d/1Nq93TKvcTFt B69mioMTd_JtMo1MJlHb_/view?usp=sharing
  • 25.
    Practice: Capture • MasterData 1.Capture MasterData with Minimal Fields e.g., customer 2021-07-16 25 <EPCISMasterData> <VocabularyList> <Vocabulary type="urn:gs1:epcis:droid:delivey:system:customer:info"> <VocabularyElementList> <VocabularyElement id="urn:epc:id:sgln:67000269.9101.0"> <attribute id="http://droid.delivey.system.com/epcis/Name">{Name}</attribute> <attribute id="http://droid.delivey.system.com/epcis/Address">{Address}</attribute> <attribute id="http://droid.delivey.system.com/epcis/Phone_Numbe">{Phone_Numbe}</attribute> </VocabularyElement> </VocabularyElementList> </Vocabulary> </VocabularyList> </EPCISMasterData> What e.g., customer Info
  • 26.
    Practice: Capture • MasterData 1.Capture MasterData with Inner hierarchy Structure Capture e.g., customer 2021-07-16 26 <EPCISMasterData> <VocabularyList> <Vocabulary type="urn:gs1:epcis:droid:delivey:system:customer:info"> <VocabularyElementList> <VocabularyElement id="urn:epc:id:sgln:67000269.9101.0"> <attribute id="http://droid.delivey.system.com/epcis/Name">{Name}</attribute> <attribute id="http://droid.delivey.system.com/epcis/Address"> <example:Address xmlns:example="http://epcis.example.com/ns"> <Street>100 Nowhere Street</Street> <City>Fancy</City> <State>DC</State> <Zip>99999</Zip> </example:Address> </attribute> <attribute id="http://droid.delivey.system.com/epcis/Phone_Numbe">{Phone_Numbe}</attribute> </VocabularyElement> </VocabularyElementList> </Vocabulary> </VocabularyList> </EPCISMasterData> What e.g., customer Inner Hierarchy Structure
  • 27.
    Practice: Capture • MasterData 1.Capture MasterData with Children e.g., BusinessLocation having Sub-Location 2021-07-16 27 <EPCISMasterData> <VocabularyList> <Vocabulary type="urn:epcglobal:epcis:vtype:BusinessLocation"> <VocabularyElementList> <VocabularyElement id="urn:epc:id:sgln:0037000.00729.0"> <attribute id="http://epcis.example.com/mda/latitude">+18.0000</attribute> <attribute id="http://epcis.example.com/mda/longitude">-70.0000</attribute> <attribute id="http://epcis.example.com/mda/address"> <example:Address xmlns:example="http://epcis.example.com/ns"> <Street>100 Nowhere Street</Street> <City>Fancy</City> <State>DC</State> <Zip>99999</Zip> </example:Address> </attribute> <children> <id>urn:epc:id:sgln:0037000.00729.8201</id> <id>urn:epc:id:sgln:0037000.00729.8202</id> <id>urn:epc:id:sgln:0037000.00729.8203</id> </children> </VocabularyElement> </VocabularyElementList> </Vocabulary> </VocabularyList> </EPCISMasterData> Children e.g., Sub-Location
  • 28.
    Practice: Capture • ObjectEvent 1.Capture ObjectEvent with Minimal Fields When, Where, What, Why 2021-07-16 28 <EPCISBody> <EventList> <ObjectEvent> <eventTime>2005-04-03T20:33:31.116-06:00</eventTime> <eventTimeZoneOffset>-06:00</eventTimeZoneOffset> <epcList> <epc>urn:epc:id:sgtin:0614141.107346.2018</epc> </epcList> <action>OBSERVE</action> <bizLocation> <id>urn:epc:id:sgln:0614141.07346.1234</id> </bizLocation> </ObjectEvent> </EventList> </EPCISBody> When What e.g., 배송로봇 Why Where
  • 29.
    Practice: Capture • ObjectEvent 2.Capture ObjectEvent with Business Step e.g., Shipping 2021-07-16 29 Business Step e.g., assembling receiving <EPCISBody> <EventList> <ObjectEvent> <eventTime>2005-04-03T20:33:31.116-06:00</eventTime> <eventTimeZoneOffset>-06:00</eventTimeZoneOffset> <epcList> <epc>urn:epc:id:sgtin:0614141.107346.2018</epc> </epcList> <action>OBSERVE</action> <bizStep>urn:epcglobal:cbv:bizstep:shipping</bizStep> <bizLocation> <id>urn:epc:id:sgln:0614141.07346.1234</id> </bizLocation> </ObjectEvent> </EventList> </EPCISBody>
  • 30.
    Practice: Capture • ObjectEvent 3.Capture ObjectEvent with Disposition e.g., in_progress 2021-07-16 30 Disposition e.g., recalled <EPCISBody> <EventList> <ObjectEvent> <eventTime>2005-04-03T20:33:31.116-06:00</eventTime> <eventTimeZoneOffset>-06:00</eventTimeZoneOffset> <epcList> <epc>urn:epc:id:sgtin:0614141.107346.2018</epc> </epcList> <action>OBSERVE</action> <disposition>urn:epcglobal:cbv:disp:in_progress</disposition> <bizLocation> <id>urn:epc:id:sgln:0614141.07346.1234</id> </bizLocation> </ObjectEvent> </EventList> </EPCISBody>
  • 31.
    Practice: Capture • ObjectEvent 3.Capture ObjectEvent with Business Step and Disposition use both Business Step & Disposition 2021-07-16 31 Business Step & Disposition <EPCISBody> <EventList> <ObjectEvent> <eventTime>2005-04-03T20:33:31.116-06:00</eventTime> <eventTimeZoneOffset>-06:00</eventTimeZoneOffset> <epcList> <epc>urn:epc:id:sgtin:0614141.107346.2018</epc> </epcList> <action>OBSERVE</action> <bizStep>urn:epcglobal:cbv:bizstep:shipping</bizStep> <disposition>urn:epcglobal:cbv:disp:in_progress</disposition> <bizLocation> <id>urn:epc:id:sgln:0614141.07346.1234</id> </bizLocation> </ObjectEvent> </EventList> </EPCISBody>
  • 32.
    <ext1:default>stringAsDefaultValue</ext1:default> <ext1:int xsi:type="xsd:integer">10</ext1:int> <ext1:float xsi:type="xsd:double">20</ext1:float> <ext1:timexsi:type="xsd:dateTime">2013-06-08T14:58:56.591Z</ext1:time> <ext1:boolean xsi:type="xsd:boolean">true</ext1:boolean> <ext1:string xsi:type="xsd:string">string</ext1:string> <ext1:object> <ext2:string xsi:type="xsd:string">stringInObject</ext2:string> <ext2:array xsi:type="xsd:integer">11</ext2:array> <ext2:array xsi:type="xsd:double">21</ext2:array> <ext2:array xsi:type="xsd:string">stringInArrayInObject</ext2:array> <ext2:object> <ext3:string xsi:type="xsd:string">stringInObjectInObject</ext3:string> </ext2:object> </ext1:object> <ext1:array xsi:type="xsd:integer">12</ext1:array> <ext1:array xsi:type="xsd:double">22</ext1:array>` Practice: Capture • ObjectEvent 4. Capture ObjectEvent With Non-GS1 field Various Data Type, Inner Hierarchy Structure 2021-07-16 32 Extension Data Type xsd:string 문자열 (디폴트) xsd:integer 정수형 xsd:double 실수형 xsd:boolean 불린 값 xsd:dateTime 시간 Inner Hierarchy Structure
  • 33.
    Practice: Capture • ObjectEvent 4.Capture ObjectEvent With Non-GS1 field Various Data Type, Inner Hierarchy Structure 2021-07-16 33 <epcis:EPCISDocument xmlns:epcis="urn:epcglobal:epcis:xsd:1" xmlns:example="http://ns.example.com/epcis" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" creationDate="2005-07-11T11:30:47.0Z" xmlns:geo="https://schema.org/geo" schemaVersion="1.2"> <EPCISBody> <EventList> <ObjectEvent> <eventTime>2005-04-03T20:33:31.116-06:00</eventTime> <eventTimeZoneOffset>-06:00</eventTimeZoneOffset> <epcList> <epc>urn:epc:id:sgtin:0614141.107346.2018</epc> </epcList> <action>OBSERVE</action> <bizLocation> <id>urn:epc:id:sgln:0614141.07346.1234</id> </bizLocation> <geo:latitude xsi:type="xsd:double">40.75</geo:latitude> <geo:longitude xsi:type="xsd:double">73.98</geo:longitude> </ObjectEvent> </EventList> </EPCISBody>
  • 34.
    Practice: Capture • ObjectEvent 4.Sensor Module EPCIS v2.0에서 센서 값 저장 지원 총 40개의 센서 종류 지원 쿼리에서 동종 그룹 센서들 사이의 자동 변환 지원 2021-07-16 34 센서 그룹 센서 측정 단위(UOM) 정의 1 gs1:AbsorbedDose A95 | C13 | C80 | A61 흡수선량 2 gs1:AbsorbedDosRat e P54 | P55 | … | P63 | P64 흡수선량률 3 gs1:Acceleration MSK | A76 | C11 | M38 | M39 | M41 | A73 | IV | K40 | M40 | M42 가속도 4 gs1:AmountOfSubsta nce C34 | B45 | C18 | FH 물질량 5 gs1:Angle C81 | C25 | B97 | A91 | DD | D61 | D62 | M43 | M44 각도 6 gs1:Area MTK | KMK | H30 | DAA | CMK | DMK | H16 | H18 | MMK |ARE | HAR | INK | FTK | M48 | ACR | M47 넓이 센서 그룹 센서 측정 단위(UOM) 정의 7 gs1:Capacitance FAR | H48 | C10 | _40 | C41 | _4T | N 90 전기 용량 8 gs1:Charge COU | A8 | AMH | TAH | D77 | D86 | B26 | B86 | C40 | C71 | E09 | N95 | N94 전기량 9 gs1:Conductance SIE | B53 | C27 | B99 | N92 | NQ | NR 전기 전도도 10 gs1:Current AMP | B22 | H38 | _4K | B84 | C39 | C70 | N96 | N97 전류 11 gs1:DensityHumidity KMQ | _23 | D41 | GJ | B25 | GL | A93 | GP | B72 | M1 | GQ | F23 | G31 | _87 | GE | LA | G32 | K41 | K71 | K84 | L37 | L38 | L39 | L65 | L92 | L93 밀도 12 gs1:DimensionlessCo ncentration P1 | _59 | _61 | _60 | E40 | NX | GK | NA | J33 | L32 | M29 | K62 | L19 | J36 | H60 | H65 | J87 | L21 | J91 퍼센트
  • 35.
    Practice: Capture • ObjectEvent 4.Sensor Module EPCIS v2.0에서 센서 값 저장 지원 총 40개의 센서 종류 지원 쿼리에서 동종 그룹 센서들 사이의 자동 변환 지원 2021-07-16 35 센서 그룹 센서 측정 단위(UOM) 정의 13 gs1:EffectiveDose D13 | C28 | D91 | L31 유효선량당량 14 gs1:EffectiveDoseRat e P65 | P66 | … | P76 | P77 유효선당량률 15 gs1:Energy JOU | KJO | A68 | C68 | D30 | GV | _3B | C15 | A70 | A13 | WHR | MWH | KWH | HWH | D32 | A53 | B71 | A85 | B29 | A57 | _85 | B38 | N46 | N47 | D60 | J75 | E14 | K51 | K53 | BTU | J37 | N71 | N72 | J55 에너지 16 gs1:Force NEW | B47 | B73 | B92 | C20 | DU | C78 | B37 | B51 | L40 | L94 | M75 | M76 | M77 | M78 힘 17 gs1:Frequency HTZ | KHZ | MHZ | A86 | D29 주파수 18 gs1:Illuminance B60 | LUX | KLX | P25 | P26 | P27 조도 센서 그룹 센서 측정 단위(UOM) 정의 19 gs1:Inductance _81 | C14 | B90 | C43 | C73 | P24 상호유도작용의 정도 20 gs1:Length MTR | A11 | A71 | C45 | _4H | A12 | DMT | CMT | MMT | INH | FOT | YRD | MNI | A45 | HMT | KMT | B57 | AK | M50 | M49 | X1 | M51 길이 21 gs1:LuminousIntens ity CDL | P33 | P34 광도 22 gs1:MagneticFlux WEB | C33 | P11 자기 선속 23 gs1:M agneticFluxDensity D33 | C29 | D81 | C48 | P13 | P12 자속 밀도 24 gs1:MagneticVectorPo tential D59 | B56 | D60 자기 벡터 전위
  • 36.
    Practice: Capture • ObjectEvent 4.Sensor Module EPCIS v2.0에서 센서 값 저장 지원 총 40개의 센서 종류 지원 쿼리에서 동종 그룹 센서들 사이의 자동 변환 지원 2021-07-16 36 센서 그룹 센서 측정 단위(UOM) 정의 25 gs1:Mass KGM | KTN | LTN | _2U | TNE | STN | DTN | STI | LBR | HGM | ONZ | DJ | A PZ | GRM | DG | CGM | MGM | MC | F 13 | CWI | CWA | M86 질량 26 gs1:MolarCocentrati on C36 | M33 | C38 | C35 | B46 물 농도 27 gs1:MolarMass D74 | A94 물 질량 28 gs1:MolarThermodyna micEnergy B15 | B44 물의 열역학 에너지 29 gs1:MolarVolume A40 | A37 | A36 | B58 물 부피 30 gs1:Power WTT | KWT | MAW | A90 | C31 | D80 | F80 | A63 | A74 | B39 | HJ | A25 | BHP | K15 | K16 | K42 | N12 파워 센서 그룹 센서 측정 단위(UOM) 정의 31 gs1:Pressure PAL | H75 | _74 | A89 | A97 | B96 | KPA | MPA | BAR | MBR | C55 | C 56 | B40 | UA | _80 | H78 | HP | F79 | F78 | ATT | ATM | J89 | K24 | K25 | K31 | E42 | K31 | E42 | E41 | K85 | _84 | N13 | N14 | N15 | N16 | N17 | N18 | N19 | N20 | N21 | N22 | N23 | HN | PS 압력 32 gs1:Radioactivity CUR | MCU | M5 | _2R | BQL | GBQ | _2Q | _4N | H08 방사능 33 gs1:Resistance QHM | A87 | B75 | H44 | B49 | E45 | B94 | P22 저항 34 gs1:SpecificVolume A39 | _22 | H83 | KX | N28 | N29 | N30 비체적 35 gs1:Speed KMH | MTS | HM | M57 | M58 | KNT | M62 | H49 | _2M | K14 | FR | FS | M63 | IU | M61 | _2X 속도 36 gs1:Temperature KEL | FAH | CEL | A48 온도
  • 37.
    Practice: Capture • ObjectEvent 4.Sensor Module EPCIS v2.0에서 센서 값 저장 지원 총 40개의 센서 종류 지원 쿼리에서 동종 그룹 센서들 사이의 자동 변환 지원 2021-07-16 37 센서 그룹 센서 측정 단위(UOM) 정의 37 gs1:Time SEC | MIN | HUR | DAY | B52 | C26 | H70 | B98 | C47 | WEE | MON | ANN | D42 | L95 | L96 | M56 시간 38 gs1:Torque NU | B74 | B48 | D83 | B93 | DN | J72 | B28 | F21 | J94 | L41 | M92 | M95 | M96 | M97 회전력 39 gs1:Voltage VLT | N99 | _2Z | B78 | D82 | KVT 전압 40 gs1:Volume MTQ | MAL | LT MMQ | CMQ | DMQ | MLT | CLT | DMA | H19 | H20 | DLT | _4G | K6 | A44 | INQ | FTQ | YDQ | GLI | GLL | PT | PIT | QIT | PTL | QTL | PTD | QZI | QT J57 | L43 | L61 | L62 | L84 | L86 | OZA | BUI | BUA | BLL | BLD | GLD | QTD | G26 | G21 | G24 | G25 | G23 | M67 | M68 | M69 | M70 부피
  • 38.
    Practice: Capture • ObjectEvent 4.Capture ObjectEvent with Sensor Element e.g., gs1:Temperature (26º𝐶) 2021-07-16 38 SensorReport about gs1:Temperature <EPCISBody> <EventList> … <extension> <extension> <sensorElementList> <sensorElement> <sensorReport value="26.0" type="gs1:Temperature" uom="CEL" /> </sensorElement> </sensorElementList> </extension> </extension> </ObjectEvent> </EventList> </EPCISBody>
  • 39.
    Practice: Capture • ObjectEvent 4.Capture ObjectEvent with Sensor Element e.g., gs1:Temperature (26º𝐶),deviceID, time 2021-07-16 39 SensorReport about gs1:Temperature, devieID, time <EPCISBody> <EventList> … <extension> <extension> <sensorElementList> <sensorElement> <sensorReport value="26.0" type="gs1:Temperature" uom="CEL" deviceID="urn:epc:id:giai:4000001.111" time="2019-07-19T14:00:00.000+01:00" /> </sensorElement> </sensorElementList> </extension> </extension> </ObjectEvent> </EventList> </EPCISBody>
  • 40.
    Practice: Query –GetStandardVersion • GetStandardVersion 2021-07-16 40 Request Response <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:query="urn:epcglobal:epcis-query:xsd:1"> <soapenv:Header/> <soapenv:Body> <query:GetStandardVersion/> </soapenv:Body> </soapenv:Envelope> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <query:GetStandardVersionResult xmlns:query="urn:epcglobal:epcis-query:xsd:1">2.0</query:GetStandardVersionResult> </soapenv:Body> </soapenv:Envelope>
  • 41.
    Practice: Query –GetVenderVersion • GetVenderVersion 2021-07-16 41 Request Response <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:query="urn:epcglobal:epcis-query:xsd:1"> <soapenv:Header/> <soapenv:Body> <query:GetVendorVersion/> </soapenv:Body> </soapenv:Envelope> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <query:GetVendorVersionResult xmlns:query="urn:epcglobal:epcis-query:xsd:1">org.oliot.epcis-core-v2.0.8</query:GetVendorVersionResult> </soapenv:Body> </soapenv:Envelope>
  • 42.
    Practice: Query –GetQueryName • GetQueryName 2021-07-16 42 Request Response <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:query="urn:epcglobal:epcis-query:xsd:1"> <soapenv:Header/> <soapenv:Body> <query:GetQueryNames/> </soapenv:Body> </soapenv:Envelope> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <query:GetQueryNamesResult xmlns:query="urn:epcglobal:epcis-query:xsd:1"> <string>SimpleEventQuery</string> <string>SimpleMasterDataQuery</string> </query:GetQueryNamesResult> </soapenv:Body> </soapenv:Envelope>
  • 43.
    Practice: Poll –Event Single Param Baisc • Poll Event Single Param Basic • ALL_EVENTS • EQ_action • EQ_bizLocation • EQ_bizStep • EQ_bizTransaction_type • EQ_correctiveEventID • EQ_destination_type • EQ_disposition • EQ_errorReason • EQ_eventID • EQ_readPoint • EQ_setPersistentDisposition • EQ_source_type • EQ_transformationID • EQ_unsetPersisntenDistpostition 2021-07-16 43 • eventType • EXISTS_errorDeclaration • GE_erorDeclarationTime • GE_eventTime • GE_recordeTime • LT_errorDeclarationTime • LT_eventTime • LT_recordTime • MATCH_anyEPC • MATCH_anyEPCClass • MATCH_epc • MATCH_epcClass • MATCH_inputEPC • MATCH_intputEPCClass • MATCH_outputEPC • MATCH_outputEPCClass • MATCH_parentID
  • 44.
    Practice: Poll –Event Single Param Baisc • Poll Event Single Param Basic • ALL_EVENTS • EQ_action • EQ_bizLocation • EQ_bizStep • EQ_bizTransaction_type • EQ_correctiveEventID • EQ_destination_type • EQ_disposition • EQ_errorReason • EQ_eventID • EQ_readPoint • EQ_setPersistentDisposition • EQ_source_type • EQ_transformationID • EQ_unsetPersisntenDistpostition 2021-07-16 44 • eventType • EXISTS_errorDeclaration • GE_erorDeclarationTime • GE_eventTime • GE_recordeTime • LT_errorDeclarationTime • LT_eventTime • LT_recordTime • MATCH_anyEPC • MATCH_anyEPCClass • MATCH_epc • MATCH_epcClass • MATCH_inputEPC • MATCH_intputEPCClass • MATCH_outputEPC • MATCH_outputEPCClass • MATCH_parentID GT: greater than [____] GE: greater than or equal to [____] LT: less than [____] LE: less than or equal to [____] EQ: equal to [____] WD: equal to [____] and find children MATCH: match patterns of [____] EXISTS: exists [____]
  • 45.
    O Practice: Poll –ALL EVENTS • Query All EventData Param: null 2021-07-16 45 <ObjectEvent> ... <action>OBSERVE</action> ... </ObjectEvent> O <ObjectEvent> ... <ext1:string xsi:type="xsd:string">string</ext1:string> ... </ObjectEvent> <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> </param> </params> </query:Poll> </soapenv:Body> O <ObjectEvent> ... <disposition>urn:epcglobal:cbv:disp:in_progress</disposition> ... </ObjectEvent>
  • 46.
    Practice: Poll –EQ_action • Query EventData with action [____] Param: OBSERVE 2021-07-16 46 <ObjectEvent> ... <action>OBSERVE</action> ... </ObjectEvent> <ObjectEvent> ... <action>ADD</action> ... </ObjectEvent> <ObjectEvent> ... <action>DELETE</action> ... </ObjectEvent> 𝑋 O 𝑋 <soapenv:Body> <query: Poll > <queryName>SimpleEventQuery</queryName> <params> <param> <name>EQ_action</name> <value xsi:type="query:ArrayOfString"> <string>OBSERVE</string> </value> </param> </params> </query:Poll> </soapenv:Body>
  • 47.
    Practice: Poll –EQ_bizLocation • Query EventData with bizLocation [____] Param: urn:epc:id:sgln:0614141.07346.1234 2021-07-16 47 <ObjectEvent> ... <bizLocation> <id>urn:epc:id:sgln:0614141.07346.1234</id> </bizLocation> ... </ObjectEvent> <ObjectEvent> ... <bizLocation> <id>urn:epc:id:sgln:0614141.07346.4321</id> </bizLocation> ... </ObjectEvent> <ObjectEvent> ... <bizLocation> <id>urn:epc:id:sgln:0614141.07346.1234</id> </bizLocation> ... </ObjectEvent> 𝑋 O 𝑂 <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>EQ_bizLocation</name> <value xsi:type="query:ArrayOfString"> <string>urn:epc:id:sgln:0614141.07346.1234</string> </value> </param> </params> </query:Poll> </soapenv:Body>
  • 48.
    Practice: Poll –EQ_bizStep • Query EventData with bizStep [____] Param: receiving OR shipping 2021-07-16 48 <ObjectEvent> ... <bizStep>urn:epcglobal:cbv:bizstep:receiving</bizStep> ... </ObjectEvent> <ObjectEvent> ... <bizStep>urn:epcglobal:cbv:bizstep:shipping</bizStep> ... </ObjectEvent> <ObjectEvent> ... <bizStep>urn:epcglobal:cbv:bizstep:assembling</bizStep> ... </ObjectEvent> 𝑂 O 𝑋 <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>EQ_bizStep</name> <value xsi:type="query:ArrayOfString"> <string>urn:epcglobal:cbv:bizstep:receiving</string> <string>urn:epcglobal:cbv:bizstep:shipping</string> </value> </param> </params> </query:Poll> </soapenv:Body>
  • 49.
    Practice: Poll –EQ_disposition • Query EventData with disposition [____] Param: in_progress OR recalled 2021-07-16 49 <ObjectEvent> ... <disposition>urn:epcglobal:cbv:disp:in_progress</disposition> ... </ObjectEvent> <ObjectEvent> ... <disposition>urn:epcglobal:cbv:disp:in_recalled</disposition> ... </ObjectEvent> <ObjectEvent> ... <disposition></disposition> ... </ObjectEvent> 𝑂 O 𝑋 <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>EQ_disposition</name> <value xsi:type="query:ArrayOfString"> <string>urn:epcglobal:cbv:disp:in_progress</string> <string>urn:epcglobal:cbv:disp:recalled</string> </value> </param> </params> </query:Poll> </soapenv:Body>
  • 50.
    Practice: Poll –GE_eventTime • Query EventData with eventTime greater than or equal to [____] Param: 2021년 5월 24일 12시 58분 56.591초 (UTC보다 09:00 느리다.) 2021-07-16 50 <ObjectEvent> ... <eventTime>2021-05-24T12:58:56.591-09:00</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2021-05-25T12:58:56.591-09:00</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2021-05-23T12:58:56.591-09:00</eventTime> ... </ObjectEvent> 𝑂 O 𝑋 <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>GE_eventTime</name> <value xsi:type="xsd:dateTime">2021-05-24T12:58:56.591-09:00</value> </param> </params> </query:Poll> </soapenv:Body> 포맷: yyyy-MM-dd’T’HH:mm:ss.SSSXXX
  • 51.
    Practice: Poll –GE_recordTime • Query EventData with recordTime greater than or equal to [____] Param: 2021년 7월 12일 02시 00분 00.591초 (UTC TimeZone.) 2021-07-16 51 <ObjectEvent> ... <recordTime> 2021-07-12T02:00:00.591Z </recordTime> ... </ObjectEvent> <ObjectEvent> ... <recordTime> 2021-07-13T02:00:00.591Z </recordTime> ... </ObjectEvent> <ObjectEvent> ... <recordTime> 2021-07-11T02:00:00.591Z </recordTime> ... </ObjectEvent> 𝑂 O 𝑋 <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>GE_recordTime</name> <value xsi:type="xsd:dateTime">2021-07-12T02:00:00.591Z</value> </param> </params> </query:Poll> </soapenv:Body> 포맷: yyyy-MM-dd’T’HH:mm:ss.SSSXXX
  • 52.
    Practice: Poll –LE_eventTime • Query EventData with eventTime less than [____] Param: 2021년 5월 24일 12시 58분 56.591초 (UTC보다 09:00 느리다.) 2021-07-16 52 𝑋 𝑋 𝑂 <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>LT_eventTime</name> <value xsi:type="xsd:dateTime">2021-05-24T12:58:56.591-09:00</value> </param> </params> </query:Poll> </soapenv:Body> <ObjectEvent> ... <eventTime>2021-05-24T12:58:56.591-09:00</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2021-05-25T12:58:56.591-09:00</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2021-05-23T12:58:56.591-09:00</eventTime> ... </ObjectEvent> 포맷: yyyy-MM-dd’T’HH:mm:ss.SSSXXX
  • 53.
    Practice: Poll –LE_recordTime • Query EventData with recordTime less than [____] Param: 2021년 7월 12일 02시 00분 00.591초 (UTC TimeZone.) 2021-07-16 53 𝑋 𝑋 𝑂 <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>LT_recordTime</name> <value xsi:type="xsd:dateTime">2021-07-12T02:00:00.591Z</value> </param> </params> </query:Poll> </soapenv:Body> 포맷: yyyy-MM-dd’T’HH:mm:ss.SSSXXX <ObjectEvent> ... <recordTime> 2021-07-12T02:00:00.591Z </recordTime> ... </ObjectEvent> <ObjectEvent> ... <recordTime> 2021-07-13T02:00:00.591Z </recordTime> ... </ObjectEvent> <ObjectEvent> ... <recordTime> 2021-07-11T02:00:00.591Z </recordTime> ... </ObjectEvent>
  • 54.
    Practice: Poll –MATCH_epc 1 • Query EventData with epc_id MATCH [____] Param: urn:epc:id:sgtin:0614141.107346.2018 2021-07-16 54 <ObjectEvent> ... <epc>urn:epc:id:sgtin:0614141.107346.2018</epc> ... </ObjectEvent> <ObjectEvent> ... <epc>urn:epc:id:sgtin:0614141.107346.2019</epc> ... </ObjectEvent> <ObjectEvent> ... <epc>urn:epc:id:sgtin:0614141.107346.2020</epc> ... </ObjectEvent> 𝑋 O 𝑋 <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>MATCH_epc</name> <value xsi:type="query:ArrayOfString"> <string>urn:epc:id:sgtin:0614141.107346.2018</string> </value> </param> </params> </query:Poll> </soapenv:Body>
  • 55.
    Practice: Poll –MATCH_epc 2 • Query EventData with epc_id MATCH [____] Param: urn:epc:id:sgtin:0614141.107346.* 2021-07-16 55 𝑂 O 𝑂 <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>MATCH_epc</name> <value xsi:type="query:ArrayOfString"> <string>urn:epc:id:sgtin:0614141.107346.*</string> </value> </param> </params> </query:Poll> </soapenv:Body> 2021-07-16 <ObjectEvent> ... <epc>urn:epc:id:sgtin:0614141.107346.2018</epc> ... </ObjectEvent> <ObjectEvent> ... <epc>urn:epc:id:sgtin:0614141.107346.2019</epc> ... </ObjectEvent> <ObjectEvent> ... <epc>urn:epc:id:sgtin:0614141.107346.2020</epc> ... </ObjectEvent>
  • 56.
    Practice: Poll –MATCH_epc 3 • Query EventData with epc_id MATCH [____] Param: “urn:epc:id:sgtin:0614141.*.2018” 2021-07-16 56 𝑋 O 𝑋 <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>MATCH_epc</name> <value xsi:type="query:ArrayOfString"> <string>urn:epc:id:sgtin:0614141.*.2018</string> </value> </param> </params> </query:Poll> </soapenv:Body> <ObjectEvent> ... <epc>urn:epc:id:sgtin:0614141.107346.2018</epc> ... </ObjectEvent> <ObjectEvent> ... <epc>urn:epc:id:sgtin:0614141.107346.2019</epc> ... </ObjectEvent> <ObjectEvent> ... <epc>urn:epc:id:sgtin:0614141.107346.2020</epc> ... </ObjectEvent>
  • 57.
    Practice: Poll –Event Single Param Advanced • Poll Event Single Param Advanced • EQATTR_fieldname_attrname • EQ_ERROR_DECLATATION_fieldname • EQ_fieldname • EQ_ILMD • EQ_INNER_ERROR_DECLATATION_fieldname • EQ_INNER_fieldname • EQ_INNER_ILMD_fieldname • EXISTS_ERROR_DECLARATION_fieldname • EXISTS_fieldname • EXISTS_INNER_EROOR_DECARATION_fieldname • EXISTS_INNER_fieldname • EXISTS_INNER_ILMD_fieldname • GET_ERROR_DECARATION_fieldname 2021-07-16 57 • GT_fieldname • GT_ILMD_fieldname • GT_INNER_ERROR_DECLARATION_ fieldname • GT_INNER_fieldname • GT_INNER_ILMD_extension • HASATTR_fieldname • WD_bizLocation • WD_readPoint
  • 58.
    Practice: Poll –Event Single Param Advanced • Poll Event Single Param Advanced • EQATTR_fieldname_attrname • EQ_ERROR_DECLATATION_fieldname • EQ_fieldname • EQ_ILMD • EQ_INNER_ERROR_DECLATATION_fieldname • EQ_INNER_fieldname • EQ_INNER_ILMD_fieldname • EXISTS_ERROR_DECLARATION_fieldname • EXISTS_fieldname • EXISTS_INNER_EROOR_DECARATION_fieldname • EXISTS_INNER_fieldname • EXISTS_INNER_ILMD_fieldname • GET_ERROR_DECARATION_fieldname 2021-07-16 58 • GT_fieldname • GT_ILMD_fieldname • GT_INNER_ERROR_DECLARATI ON_fieldname • GT_INNER_fieldname • GT_INNER_ILMD_extension • HASATTR_fieldname • WD_bizLocation • WD_readPoint
  • 59.
    Practice: Poll –EQ_fieldname • Query EventData with fieldname [____] And Value equal to [____] Param: EQ_https://schema.org/geo#latitude, 40.75 2021-07-16 59 𝑋 <ObjectEvent> ... <ext0:latitudexsi:type="xsd:double">40.75</ext0:latitude> ... </ObjectEvent> <ObjectEvent> ... <ext0:latitudexsi:type="xsd:double">38.50</ext0:latitude> ... </ObjectEvent> O <ObjectEvent> ... <ext0:place> ... <ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude> ... </ext0:place> ... </ObjectEvent> <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>EQ_https://schema.org/geo#latitude</name> <value xsi:type="xsd:double">40.75</value> </param> </params> </query:Poll> </soapenv:Body> X
  • 60.
    Practice: Poll –EQ_INNER_fieldname • Query EventData with fieldname [____] And Value equal to [____] Param: EQ_INNER_https://schema.org/geo#latitude, 40.75 2021-07-16 60 𝑋 <ObjectEvent> ... <ext0:latitudexsi:type="xsd:double">40.75</ext0:latitude> ... </ObjectEvent> <ObjectEvent> ... <ext0:place> ... <ext0:latitude xsi:type="xsd:double">35.75</ext0:latitude> ... </ext0:place> ... </ObjectEvent> 𝑋 <ObjectEvent> ... <ext0:place> ... <ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude> ... </ext0:place> ... </ObjectEvent> <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>EQ_INNER_https://schema.org/geo#latitude</name> <value xsi:type="xsd:double">40.75</value> </param> </params> </query:Poll> </soapenv:Body> O
  • 61.
    Practice: Poll –EXISTS_fieldname • Query EventData with Inner fieldname [____] Param: EXISTS_https://schema.org/geo#latitude 2021-07-16 61 𝑋 <ObjectEvent> ... <ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude> ... </ObjectEvent> <ObjectEvent> ... <ext0:place> ... <ext0:latitude xsi:type="xsd:double">35.75</ext0:latitude> ... </ext0:place> ... </ObjectEvent> 𝑂 <ObjectEvent> ... <ext0:place> ... <ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude> ... </ext0:place> ... </ObjectEvent> <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>EXISTS_https://schema.org/geo#latitude</name> <value xsi:type="query:VoidHolder"/> </param> </params> </query:Poll> </soapenv:Body> 𝑋
  • 62.
    Practice: Poll –EXISTS_INNER_fieldname • Query EventData with Inner fieldname [____] And Value greater than or equal to [____] Param: EXISTS_INNER_https://schema.org/geo#latitude 2021-07-16 62 𝑂 <ObjectEvent> ... <ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude> ... </ObjectEvent> <ObjectEvent> ... <ext0:place> ... <ext0:latitude xsi:type="xsd:double">35.75</ext0:latitude> ... </ext0:place> ... </ObjectEvent> 𝑋 <ObjectEvent> ... <ext0:place> ... <ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude> ... </ext0:place> ... </ObjectEvent> <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>EXISTS_INNER_https://schema.org/geo#latitude</name> <value xsi:type="query:VoidHolder"/> </param> </params> </query:Poll> </soapenv:Body> 𝑂
  • 63.
    Practice: Poll –GT_fieldname • Query EventData with fieldname [____] And Value greater than or equal to [____] Param: GT_https://schema.org/geo#latitude, 40.00 2021-07-16 63 𝑋 <ObjectEvent> ... <ext0:latitudexsi:type="xsd:double">40.75</ext0:latitude> ... </ObjectEvent> <ObjectEvent> ... <ext0:latitudexsi:type="xsd:double">38.50</ext0:latitude> ... </ObjectEvent> O <ObjectEvent> ... <ext0:place> ... <ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude> ... </ext0:place> ... </ObjectEvent> <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>GT_https://schema.org/geo#latitude</name> <value xsi:type="xsd:double">40.00</value> </param> </params> </query:Poll> </soapenv:Body> X
  • 64.
    Practice: Poll –GT_INNER_fieldname • Query EventData with Inner fieldname [____] And Value greater than or equal to [____] Param: GT_https://schema.org/geo#latitude, 40.00 2021-07-16 64 𝑋 <ObjectEvent> ... <ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude> ... </ObjectEvent> <ObjectEvent> ... <ext0:place> ... <ext0:latitude xsi:type="xsd:double">35.75</ext0:latitude> ... </ext0:place> ... </ObjectEvent> 𝑋 <ObjectEvent> ... <ext0:place> ... <ext0:latitude xsi:type="xsd:double">40.75</ext0:latitude> ... </ext0:place> ... </ObjectEvent> <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>GT_INNER_https://schema.org/geo#latitude</name> <value xsi:type="xsd:double">40.00</value> </param> </params> </query:Poll> </soapenv:Body> 𝑂
  • 65.
    Practice: Query • PollEvent Sort Limit • firstOccurredEvent • firstRecordedEvent • lastOccurredEvent • lastRecordedEvent • preventMoreThanOneEvent • sortedByEventTime • sortedByExtensionField • sortedByRecordTime 2021-07-16 65
  • 66.
    Practice: Query • PollEvent Sort Limit • firstOccurredEvent • firstRecordedEvent • lastOccurredEvent • lastRecordedEvent • preventMoreThanOneEvent • sortedByEventTime • sortedByExtensionField • sortedByRecordTime 2021-07-16 66
  • 67.
    Practice: Poll –firstOccurredEvent • Query First Occurred EventData Param: eventTime, ASC, 1 2021-07-16 67 <ObjectEvent> ... <eventTime>2005-04-05T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-04T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-05T02:33:31.116Z</eventTime> ... </ObjectEvent> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>orderBy</name> <value xsi:type="xsd:string">eventTime</value> </param> <param> <name>orderDirection</name> <value xsi:type="xsd:string">ASC</value> </param> <param> <name>eventCountLimit</name> <value xsi:type="xsd:integer">1</value> </param> </params> </query:Poll>
  • 68.
    Practice: Poll –firstOccurredEvent 2021-07-16 68 <ObjectEvent> ... <eventTime>2005-04-65T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-04T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-05T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-04T02:33:31.116Z</eventTime> ... </ObjectEvent> • Query First Occurred EventData Param: eventTime, ASC, 1
  • 69.
    Practice: Poll –lastOccurredEvent • Query Last Occurred EventData Param: eventTime, DESC, 1 2021-07-16 69 <ObjectEvent> ... <eventTime>2005-04-65T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-04T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-05T02:33:31.116Z</eventTime> ... </ObjectEvent> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>orderBy</name> <value xsi:type="xsd:string">eventTime</value> </param> <param> <name>orderDirection</name> <value xsi:type="xsd:string">DESC</value> </param> <param> <name>eventCountLimit</name> <value xsi:type="xsd:integer">1</value> </param> </params> </query:Poll>
  • 70.
    Practice: Poll –lastOccurredEvent 2021-07-16 70 <ObjectEvent> ... <eventTime>2005-04-65T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-04T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-05T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-65T02:33:31.116Z</eventTime> ... </ObjectEvent> • Query Last Occurred EventData Param: eventTime, DESC, 1
  • 71.
    Practice: Poll –sortedByEventTime 2021-07-16 71 <ObjectEvent> ... <eventTime>2005-04-65T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-04T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-05T02:33:31.116Z</eventTime> ... </ObjectEvent> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>orderBy</name> <value xsi:type="xsd:string">eventTime</value> </param> <param> <name>orderDirection</name> <value xsi:type="xsd:string">DESC</value> </param> </params> </query:Poll> • Query EventData with Order By EventTime DESC(ASC) Param: eventTime, DESC
  • 72.
    Practice: Poll –sortedByEventTime 2021-07-16 72 <ObjectEvent> ... <eventTime>2005-04-05T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-04T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-05T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-04T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-05T02:33:31.116Z</eventTime> ... </ObjectEvent> <ObjectEvent> ... <eventTime>2005-04-65T02:33:31.116Z</eventTime> ... </ObjectEvent> • Query EventData with Order By EventTime DESC(ASC) Param: eventTime, DESC
  • 73.
    Practice: Poll –Event Sensor Specific • Poll Event Sensor Specific • EQ_bizRules • EQ_booleanValue • EQ_chemicalSubstance • EQ_dataProcessingMethod • EQ_deviceID • EQ_deviceMetaData • EQ_hexBinaryValue • EQ_INNER_SENSORELEMENT_fieldname • EQ_microorganism • EQ_rawData • EQ_SENSORELEMENT_field • EQ_SENSORMETADATA_attr • EQ_SENSORREPORT_attr • EQ_stringValue • EQ_type • EQ_value_uom 2021-07-16 73 • EXISTS_INNER_SENSORELEMENT_fieldname • EXISTS_sensorElement • EXISTS_SENSORELEMENT_fieldname • EXISTS_SENSEORMETADATA_fieldname • EXISTS_SENSEORREPORT_fieldname • GE_endTime • GE_maxValue • GE_percRank • GE_percValue • GE_sDev • GE_startTime • GE_time • LT_endTime • LT_startTime • LT_time
  • 74.
    Practice: Poll –Event Sensor Specific • Poll Event Sensor Specific • EQ_bizRules • EQ_booleanValue • EQ_chemicalSubstance • EQ_dataProcessingMethod • EQ_deviceID • EQ_deviceMetaData • EQ_hexBinaryValue • EQ_INNER_SENSORELEMENT_fieldname • EQ_microorganism • EQ_rawData • EQ_SENSORELEMENT_field • EQ_SENSORMETADATA_attr • EQ_SENSORREPORT_attr • EQ_stringValue • EQ_type • EQ_value_uom 2021-07-16 74 • EXISTS_INNER_SENSORELEMENT_fieldname • EXISTS_sensorElement • EXISTS_SENSORELEMENT_fieldname • EXISTS_SENSEORMETADATA_fieldname • EXISTS_SENSEORREPORT_fieldname • GE_endTime • GE_maxValue • GE_percRank • GE_percValue • GE_sDev • GE_startTime • GE_time • LT_endTime • LT_startTime • LT_time
  • 75.
    𝑋 Practice: Poll –EQ_deviceID • Query EventData with SensorElement’s deviceID equal to [____] Param: urn:epc:id:giai:4000001.111 2021-07-16 75 <ObjectEvent> ... <sensorReport … deviceID="urn:epc:id:giai:4000001.111“ … /> ... </ObjectEvent> O <ObjectEvent> ... <sensorReport … deviceID="urn:epc:id:giai:4000001.222“ … /> ... </ObjectEvent> <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>EQ_deviceID</name> <value xsi:type="query:ArrayOfString"> <string>urn:epc:id:giai:4000001.111</string> </value> </param> </params> </query:Poll> </soapenv:Body> 𝑋 <ObjectEvent> ... <sensorReport … deviceID="urn:epc:id:giai:4002683.111“ … /> ... </ObjectEvent>
  • 76.
    𝑂 Practice: Poll –EQ_type • Query EventData with SensorElement’s type equal to [____] Param: gs1:Temperature 2021-07-16 76 <ObjectEvent> ... <sensorReport … type="gs1:Temperature" … /> ... </ObjectEvent> O <ObjectEvent> ... <sensorReport … type="gs1:Speed" … /> ... </ObjectEvent> <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>EQ_type</name> <value xsi:type="query:ArrayOfString"> <string>gs1:Temperature</string> <string>gs1:Area</string> </value> </param> </params> </query:Poll> </soapenv:Body> 𝑋 <ObjectEvent> ... <sensorReport … type="gs1:Area" … /> ... </ObjectEvent>
  • 77.
    𝑋 Practice: Poll –EQ_value_uom • Query EventData with SensorElement’s value of uom equal to [____] without considering uom origin data Param: 𝟕𝟖. 𝟖º𝑭 (= 𝟐𝟔. 𝟎º𝑪) 2021-07-16 77 <ObjectEvent> ... <sensorReport … value="26.0“ uom="CEL" … /> ... </ObjectEvent> O <ObjectEvent> ... <sensorReport … value=“78.8“ uom=“FAH" … /> ... </ObjectEvent> <soapenv:Body> <query:Poll> <queryName>SimpleEventQuery</queryName> <params> <param> <name>EQ_value_FAH</name> <value xsi:type="xsd:double">78.8</value> </param> </params> </query:Poll> </soapenv:Body> 𝑂 <ObjectEvent> ... <sensorReport … value=“78.8“ uom="CEL" … /> ... </ObjectEvent>
  • 78.
    Practice:Query • Poll_masterdata_single_param • vocabularyName •includeAttributes • includeChildren • attributeNames • EQ_name • WD_name • HASATTR • EQATTR_attrname • maxElementCount 2021-07-16 78
  • 79.
    Practice:Query • Poll_masterdata_single_param • vocabularyName •includeAttributes • includeChildren • attributeNames • EQ_name • WD_name • HASATTR • EQATTR_attrname • maxElementCount 2021-07-16 79
  • 80.
    Practice: Poll –EQ_name • Query MasterData with EQ_name [____] Param: urn:epc:id:sgln:0037000.00729.0, true, true 2021-07-16 80 <VocabularyElementid="urn:epc:id:sgln:0037000.00729.0"> … </VocabularyElement> <VocabularyElementid="urn:epc:id:sgln:0037000.00729.1"> … </VocabularyElement> <VocabularyElementid="urn:epc:id:sgln:0037000.00729.2"> … </VocabularyElement> 𝑋 𝑂 𝑋 <query:Poll> <queryName>SimpleMasterDataQuery</queryName> <params> <param> <name>EQ_name</name> <value xsi:type="query:ArrayOfString"> <string>urn:epc:id:sgln:0037000.00729.0</string> </value> </param> <param> <name>includeAttributes</name> <value xsi:type="xsd:boolean">true</value> </param> <param> <name>includeChildren</name> <value xsi:type="xsd:boolean">true</value> </param> </params> </query:Poll>
  • 81.
    Practice: Poll –EQ_name • Query MasterData with EQ_name [____] Param: urn:epc:id:sgln:0037000.00729.0, true, true 2021-07-16 81 <VocabularyElementid="urn:epc:id:sgln:0037000.00729.0"> <children> <id>urn:epc:id:sgln:0037000.00729.8201</id> <id>urn:epc:id:sgln:0037000.00729.8202</id> </children> </VocabularyElement> <VocabularyElement id="urn:epc:id:sgln:0037000.00729.8201"> … </VocabularyElement> <VocabularyElement id="urn:epc:id:sgln:0037000.00729.8202"> … </VocabularyElement> 𝑂 <query:Poll> <queryName>SimpleMasterDataQuery</queryName> <params> <param> <name>EQ_name</name> <value xsi:type="query:ArrayOfString"> <string>urn:epc:id:sgln:0037000.00729.0</string> </value> </param> <param> <name>includeAttributes</name> <value xsi:type="xsd:boolean">true</value> </param> <param> <name>includeChildren</name> <value xsi:type="xsd:boolean">true</value> </param> </params> </query:Poll> 𝑋 𝑋
  • 82.
    Practice: Poll –WD_name • Query MasterData with WD_name [____] Param: urn:epc:id:sgln:0037000.00729.0, true, true 82 <VocabularyElementid="urn:epc:id:sgln:0037000.00729.0"> <children> <id>urn:epc:id:sgln:0037000.00729.8201</id> <id>urn:epc:id:sgln:0037000.00729.8202</id> </children> </VocabularyElement> <VocabularyElement id="urn:epc:id:sgln:0037000.00729.8201"> … </VocabularyElement> <VocabularyElement id="urn:epc:id:sgln:0037000.00729.8202"> … </VocabularyElement> 𝑂 <query:Poll> <queryName>SimpleMasterDataQuery</queryName> <params> <param> <name>WD_name</name> <value xsi:type="query:ArrayOfString"> <string>urn:epc:id:sgln:0037000.00729.0</string> </value> </param> <param> <name>includeAttributes</name> <value xsi:type="xsd:boolean">true</value> </param> <param> <name>includeChildren</name> <value xsi:type="xsd:boolean">true</value> </param> </params> </query:Poll> 𝑂 𝑂
  • 83.
    Practice: Poll –HASATTR • Query MasterData with HASATTR [____] Param: http://epcis.example.com/mda/address, true, true 2021-07-16 83 <VocabularyElementid="urn:epc:id:sgln:0037000.00729.0"> <attribute id="http://epcis.example.com/mda/address"> … </attribute> </VocabularyElement> <VocabularyElementid="urn:epc:id:sgln:0037000.00729.1"> <attribute id="http://epcis.example.com/mda/latitude"> … </attribute> </VocabularyElement> <VocabularyElementid="urn:epc:id:sgln:0037000.00729.3“ <attribute id="http://epcis.example.com/mda/longitude"> … </attribute> </VocabularyElement> 𝑋 𝑂 𝑋 <query:Poll> <queryName>SimpleMasterDataQuery</queryName> <params> <param> <name>HASATTR</name> <value xsi:type="query:ArrayOfString"> <string>http://epcis.example.com/mda/address</string> </value> </param> <param> <name>includeAttributes</name> <value xsi:type="xsd:boolean">true</value> </param> <param> <name>includeChildren</name> <value xsi:type="xsd:boolean">true</value> </param> </params> </query:Poll>
  • 84.
    Practice: Poll –EQATTR_attrname • Query MasterData with EQATTR_attrname [____] Param: urn:epcglobal:cbv:mda:sst, 201, true, true 2021-07-16 84 <VocabularyElementid="urn:epc:id:sgln:0037000.00729.0"> <attribute id="urn:epcglobal:cbv:mda:sst">201</attribute> </VocabularyElement> <VocabularyElementid="urn:epc:id:sgln:0037000.00729.1"> <attribute id="urn:epcglobal:cbv:mda:sst">202</attribute> </VocabularyElement> <VocabularyElementid="urn:epc:id:sgln:0037000.00729.3“ <attribute id="urn:epcglobal:cbv:mda:ssm">201</attribute> </VocabularyElement> 𝑋 𝑂 𝑋 <soapenv:Body> <query:Poll> <queryName>SimpleMasterDataQuery</queryName> <params> <param> <name>EQATTR_urn:epcglobal:cbv:mda:sst</name> <value xsi:type="query:ArrayOfString"> <string>201</string> </value> </param> <param> <name>includeAttributes</name> <value xsi:type="xsd:boolean">true</value> </param> <param> <name>includeChildren</name> <value xsi:type="xsd:boolean">true</value> </param> </params> </query:Poll> </soapenv:Body>
  • 85.
    Q & A Thankyou for listening 2021-07-16 85