S08 Storage Location
- Status
-
Version 1.0 published 17.06.2022
- Approval
-
-
NEON: abgestimmt mit Körber zur Umsetzung in NEON_Fein_Pflichtenheft_WEN1_ SST_v6.0
-
- Comment
-
Für neue Anforderungen aus Otto'' wurde eine Version 2.0 erstellt und unter "coming version" enisehbar. Diese ist unabhängig nutzbar und beeinflusst nicht den Integrationstest von NEON.
- Assumption
-
_
1. Stakeholder
Role | Application | Responsible |
---|---|---|
Communication |
Integration Layer |
|
Leading App |
FLASH |
|
InterfaceOwner |
||
Producer |
kMotion |
|
Producer |
KR1 |
|
Producer |
COBRA |
|
Producer |
WMSx/SON |
|
Producer |
F2X |
|
Consumer |
FLASH |
|
Consumer |
SOLAR |
2. Business Context
Mit dem Service werden die Stammdaten zu den Lagerplätzen von den LVS Systemen an die
Events:
-
Einfügen eines Lagerplatzes
-
Änderung eines Lagerplatzes
-
Löschen eines Lagerplatzes
3. Informationflow
Partner | Direction | FINE-Service | Topic/API | Description | Status |
---|---|---|---|---|---|
WMS:WMSX |
send |
Stock |
stock.storagelocation |
StorageLocationWms.v1.0 |
ready |
WMS:KR1 |
send |
Stock |
stock.storagelocation.v2 |
StorageLocationWms.v2.1 |
ready |
WMS:F2X |
send |
Stock |
stock.storagelocation.f2xwms.v2 |
StorageLocationWms.v2.1 |
planned |
WMS:KMOTION |
send |
Stock |
stock.storagelocation.kmotion.v2 |
StorageLocationWms.v2.1 |
planned |
FLASH |
receive |
Stock |
stock.storagelocation |
StorageLocationWms.v1.0 |
ready |
FLASH |
receive |
Stock |
stock.storagelocation.v2 |
StorageLocationWms.v2.1 |
ready |
FLASH |
receive |
Stock |
stock.storagelocation.f2xwms.v2 |
StorageLocationWms.v2.1 |
planned |
FLASH |
receive |
Stock |
stock.storagelocation.kmotion.v2 |
StorageLocationWms.v2.1 |
planned |
Otto |
receive |
Stock |
stock.storagelocation.v1.otto |
ready |
|
Otto |
receive |
Stock |
stock.storagelocation.v2.otto |
StorageLocationFineBrain.v2.0 |
ready |
4. Interface
4.1. Direction WMS to FINE
4.1.1. Header
This interface uses the Service Header
Special expresion for this interface:
Fieldname | Expression |
---|---|
type |
|
context |
STORAGE_LOCATION |
4.1.2. Datamodel
Property | Type | Description |
---|---|---|
(Root) |
object |
|
eventId* |
string (uuid) |
The uniq eventId |
traceId* |
string (uuid) |
The uniq traceId |
spanId |
string (uuid) |
The uniq spanId |
eventTime* |
string |
Time of occurrence of the event |
version* |
The number of version schema |
|
context |
string |
The context / business case |
eventType* |
string (enum) |
The type of operation Any of: [
"INSERT",
"UPDATE",
"DELETE"
] |
metaData |
object |
|
senderSystem |
string (enum) |
system Any of: [
"KR1_SHF",
"KR1_HHSTR",
"WMSX_SON",
"WMSX_AKU",
"KMOTION_ILO",
"KMOTION_GHM",
"COBRA",
"LSAS",
"IDEEFIX",
"OBS",
"RESY",
"LDH",
"RETAILSCHICHT",
"BUBE",
"FINE_INBOUND",
"F2X",
"WMSX_WEISMAIN",
"LIGIS",
"KR1_MANDANT"
] |
data* |
object |
|
location* |
string (enum) |
warehouse locations Any of: [
"ANSBACH",
"LOEHNE",
"LANGENSELBOLD",
"MOSINA",
"OHRDRUF",
"HALDENSLEBEN",
"HALDENSLEBEN_RT",
"SUEDHAFEN",
"SONNEFELD",
"ALTENKUNSTADT",
"WEIDEN",
"KRACANY",
"ILOWA",
"ILOWA_RT",
"ILOWA_RSS",
"GERNSHEIM",
"ERFURT",
"HAMBURG_RT",
"OTELFINGEN_RT",
"KRIMICE_RT",
"STAHLAVY_RT",
"OHRDRUF_RT",
"LOEHNE_RT",
"LANGENSELBOLD_RT",
"LODZ_1_RT",
"LODZ_2_RT",
"BERGHEIM_RT",
"ALTENKUNSTADT_RT",
"LISTERHILLS_RT",
"SUEDHAFEN_RT",
"PILSEN_RT",
"HAMBURG_SC",
"LOEHNE_SC",
"SCHWABHAUSEN_SC",
"HALDENSLEBEN_RSS",
"ALTENKUNSTADT_RSS",
"LOEHNE_RSS",
"OHRDRUF_RSS",
"LANGENSELBOLD_RSS",
"LOEHNE_CP"
] |
storageLocation* |
object |
|
storageLocationId* |
string |
techn. Eindeutiger Key des Lagerplatzes. |
storageLocationCode* |
string |
BusinessKey: Darstellung des Lagerplatzes als fachlicher Schlüssel, wie dieser im LVS Front-End angezeigt wird |
type* |
string (enum) |
Beschreibt die Eigenschaft eines Platzes, ob dieser ein echter Lagerplatz oder ein virtueller Lagerplatz ist Any of: [
"VIRTUAL",
"PHYSICAL"
] |
building |
string |
|
floor |
string |
|
aisle |
string |
|
layer |
string |
|
field |
string |
|
place |
string |
|
lastInventoryDate |
string |
|
occupied |
string |
|
lockCode |
string |
Lagerplatzsperre, wenn höhere Sperren vorhanden sind, sollen sich diese auf den Platz vererben |
lock |
string (enum) |
ist der Platz gespeert oder nicht Any of: [
"LOCKED",
"NOT_LOCKED"
] |
rack |
object |
|
width |
object |
|
value |
number |
Weitenwert |
unit |
string (enum) |
unit length Any of: [
"METER"
] |
length |
object |
|
value |
number |
Längenwert |
unit |
string (enum) |
unit length Any of: [
"METER"
] |
height |
object |
|
value |
number |
Höhenwert |
unit |
string (enum) |
unit length Any of: [
"METER"
] |
volume |
object |
|
value |
number |
Volumenwert |
unit |
string (enum) |
unit volume Any of: [
"CUBIC_METER",
"LITER"
] |
typeCode |
string |
|
type |
string (enum) |
Fachtypen Any of: [
"BIN",
"BOX",
"PALETTE",
"CORLETTE",
"CARTON",
"PULK",
"UNKNOWN"
] |
capacity |
integer |
|
maxWeight |
object |
|
value |
integer |
Max. Gewichtswert |
unit |
string (enum) |
unit weight Any of: [
"GRAM",
"KILOGRAM"
] |
area* |
object |
|
storageType* |
string (enum) |
Unterscheidung nach Kommissionierung / Reservelager / Rücksendestelle Any of: [
"PICKING",
"RESERVE",
"RETURN",
"OTHER"
] |
storageHierarchy |
object |
|
level1 |
string |
|
level2 |
string |
|
level3 |
string |
|
heavyArea |
string (enum) |
when true, then this is a heavy area Any of: [
"HEAVY",
"NOT_HEAVY"
] |
priority |
string (enum) |
Any of: [
"LOW",
"HIGH"
] |
valuableArea |
string (enum) |
Kennzeichnung ob der Lagerbereich diebstahlgefährdete Artikel enthält (Käfigbereich) Any of: [
"NORMAL",
"VALUABLE"
] |
forkliftControlSystem |
boolean |
Bereich für Staplerleitsystem geeingnet |
driverlessTransportSystem |
boolean |
Bereich für fahrerloses Transportsystem geeignet |
usageCoefficient |
integer |
Minimum: 0 |
harzadousMaterialZone |
string |
Gefahrstoffzone Maximum Length: 50 |
harzadousMaterialZoneGroup |
string |
Gefahrstoffzonegruppe Maximum Length: 10 |
fireZone |
string |
Brandabschnitt Maximum Length: 10 |
harzadousMaterialZoneOverflow |
string |
Gefahrstoffzone Überlauf Maximum Length: 10 |
nonCommercialGoodsArea |
string (enum) |
Kennzeichnung, ob der Lagerbereich für Betriebsmittel ist Any of: [
"YES",
"NO"
] |
aisleProperties |
object |
Aisle detail properties |
strategyCode |
string |
|
targetCode |
string |
|
lockCode |
string |
|
lock |
string (enum) |
Any of: [
"LOCKED",
"NOT_LOCKED"
] |
layerProperties |
object |
|
lockCode |
string |
|
lock |
string (enum) |
Any of: [
"LOCKED",
"NOT_LOCKED"
] |
fieldProperties |
object |
|
lockCode |
string |
|
lock |
string (enum) |
Any of: [
"LOCKED",
"NOT_LOCKED"
] |
4.1.3. Enumeration
Field: storagelocation.type
Meta Value |
Description |
Short Value |
VIRTUAL |
virtuelle Plätze |
|
PHYSICAL |
physische Plätze |
Field: lock
Meta Value |
Description |
Short Value |
LOCKED |
gesperrt |
|
NOT_LOCKED |
nicht gesperrt |
Field: rack.type
Meta Value |
Description |
Short Value |
BIN |
Fachtyp für blaue Retourenmischwannen |
|
BOX |
Fachtyp für Mischkisten |
|
PALETTE |
Fachtyp für Paletten |
|
CORLETTE |
Fachtyp für Corletten |
|
CARTON |
Fachtyp für Kartons (Normkartons) |
|
PULK |
Fachtyp für PULK-Flächen mit physischer Lagerplatzentsprechung |
Field: area.heavyArea
Meta Value |
Description |
Short Value |
HEAVY |
Schwerlastbereich |
|
NOT_HEAVY |
kein Schwerlastbereich |
Field: area.priority
Meta Value |
Description |
Short Value |
LOW |
niedrige Priorität |
|
HIGH |
hohe Priorität |
Field: area.priority
Meta Value |
Description |
Short Value |
NORMAL |
Normalbereich |
|
VALUABLE |
Wertebereich |
4.1.4. Example
//include::StorageLocationWms.v0.2_sampleMessage.json[]
4.1.5. Schema
Version | Number | File | Published on | Changes |
---|---|---|---|---|
previous version |
1.0 |
17.06.22 |
für lastInventoryDate und EventTime sind Beispiele hinzugefügt |
|
previous version |
0.2 |
19.05.22 |
||
previous version |
2.0 |
20.09.22 |
- ServiceHeader Attriute spanId als optionales Feld einfügen - ServiceHeader Attriute type umbenannt in eventType - Service Header neues Objekt "metaData" einfügen und die Attribute "sender" in das neue Objekt verschieben - bei Attribute "sender" das Schema des GlobalEnum "sender" verlinken - unter Data\rack\width Attibute "unit" das Schema des GlobalEnum unit verlinken - unter Data\rack\length Attibute "unit" das Schema des GlobalEnum unit verlinken - unter Data\rack\height Attibute "unit" das Schema des GlobalEnum unit verlinken - unter Data\rack\volume Attibute "unit" das Schema des GlobalEnum unit verlinken - unter Data\rack\maxWeight Attibute "unit" das Schema des GlobalEnum unit verlinken |
|
current version |
2.1 |
25.01.23 |
- neuer ENUM "UNKNOWN" für "rack" → "type" - Verlinkung auf system.v3 - Aufnahme von harzadousMaterialZone und harzadousMaterialZoneOverflow für Gefahrstoffzone |
|
coming version |
2.2 |
29.11.23 |
- neue Datentypen für width, length, height, volume → Änderung von integer auf number (multipleofPrecision 0.001) - occupied→ Beispiele aufgenommen 0,50,100 |
|
coming version |
2.3 |
02.05.2024 |
- harzadousMaterialZoneGroup und fireZone als neue optionale Attribute hinzugefügt |
|
coming version |
2.4 |
04.12.2024 |
- NonCommercialGoodsArea ENUM YES |
{
"$schema": "http://json-schema.org/draft-07/schema",
"$comment": "Schema for StorageLocation in a warehouse Version 2.4",
"$id": "https://doc.fine.gcp.osp-dev.de/registry/Stock/StorageLocationWms.v2.4.schema.json",
"type": "object",
"properties": {
"eventId": {
"type": "string",
"format": "uuid",
"title": "The uniq eventId",
"description": "Global uniq Id",
"examples": [
"00ce536f-923a-42f4-8128-be118faf1d87"
]
},
"traceId": {
"type": "string",
"format": "uuid",
"title": "The uniq traceId",
"description": "Global uniq Id for tracing the flow of events",
"examples": [
"00ce536f-923a-42f4-8138-33418faf1342"
]
},
"spanId": {
"type": "string",
"format": "uuid",
"title": "The uniq spanId",
"description": "ID of the privious event (message). The ID is not given if there is no previous event. For transaction initiated by user the spanId of the executed event might be the userId.",
"examples": [
"00ce536f-923a-42f4-8128-be118faf1d85"
]
},
"eventTime": {
"type": "string",
"title": "Time of occurrence of the event",
"description": "Time at which this record(event) was technically generated in RFC3339 format. Strongly recommended: in UTC time.",
"examples": [
"2016-04-16T16:06:05.000+02:00"
]
},
"version": {
"title": "The number of version schema",
"description": "Number of version of this data structure. Only required if no $schema is specified!",
"oneOf": [
{
"type": "string",
"pattern": "\\d+\\.\\d{1,2}",
"examples": ["1.01", "01.02"]
},
{
"type": "integer",
"examples": [1, 2]
}
]
},
"context": {
"type": "string",
"title": "The context / business case",
"description": "The context specified here means the business domain.",
"examples": [
"STORAGE_LOCATION"
]
},
"eventType": {
"type": "string",
"title": "The type of operation",
"description": "Typ der Nachricht",
"examples": ["INSERT", "UPDATE", "DELETE"],
"enum": ["INSERT", "UPDATE", "DELETE"]
},
"metaData":{
"type":"object",
"properties": {
"senderSystem": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/system.v4.schema.json"
}
}
},
"data": {
"type": "object",
"properties": {
"location": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/warehouselocations.v1.schema.json"
},
"storageLocation": {
"type": "object",
"properties": {
"storageLocationId": {
"type": "string",
"description": "techn. Eindeutiger Key des Lagerplatzes."
},
"storageLocationCode": {
"type": "string",
"description": "BusinessKey: Darstellung des Lagerplatzes als fachlicher Schlüssel, wie dieser im LVS Front-End angezeigt wird"
},
"type": {
"type": "string",
"description": "Beschreibt die Eigenschaft eines Platzes, ob dieser ein echter Lagerplatz oder ein virtueller Lagerplatz ist",
"enum": ["VIRTUAL", "PHYSICAL"]
},
"building": {
"type": "string"
},
"floor": {
"type": "string"
},
"aisle": {
"type": "string"
},
"layer": {
"type": "string"
},
"field": {
"type": "string"
},
"place": {
"type": "string"
},
"lastInventoryDate": {
"type": "string",
"examples": [
"2016-04-16T16:06:05.000+02:00"
]
},
"occupied": {
"type": "string",
"examples": ["0","50","100"]
},
"lockCode": {
"type": "string",
"description": "Lagerplatzsperre, wenn höhere Sperren vorhanden sind, sollen sich diese auf den Platz vererben"
},
"lock": {
"type": "string",
"description": "ist der Platz gespeert oder nicht",
"enum": ["LOCKED", "NOT_LOCKED"]
}
},
"required": [
"storageLocationId",
"storageLocationCode",
"type"
]
},
"rack": {
"type": "object",
"properties": {
"width": {
"type": "object",
"properties": {
"value": {
"type": "number",
"multipleOfPrecision": 0.001,
"description": "Weitenwert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitLength.v1.schema.json"
}
}
},
"length": {
"type": "object",
"properties": {
"value": {
"type": "number",
"multipleOfPrecision": 0.001,
"description": "Längenwert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitLength.v1.schema.json"
}
}
},
"height": {
"type": "object",
"properties": {
"value": {
"type": "number",
"multipleOfPrecision": 0.001,
"description": "Höhenwert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitLength.v1.schema.json"
}
}
},
"volume": {
"type": "object",
"properties": {
"value": {
"type": "number",
"multipleOfPrecision": 0.001,
"description": "Volumenwert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitVolume.v1.schema.json"
}
}
},
"typeCode": {
"type": "string"
},
"type": {
"type": "string",
"description": "Fachtypen",
"enum": ["BIN", "BOX", "PALETTE", "CORLETTE", "CARTON", "PULK", "UNKNOWN"]
},
"capacity": {
"type": "integer"
},
"maxWeight": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"description": "Max. Gewichtswert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitWeight.v1.schema.json"
}
}
}
}
},
"area": {
"type": "object",
"properties": {
"storageType": {
"type": "string",
"description": "Unterscheidung nach Kommissionierung / Reservelager / Rücksendestelle",
"enum": ["PICKING", "RESERVE", "RETURN", "OTHER"]
},
"storageHierarchy":{
"type": "object",
"properties": {
"level1": {
"type": "string"
},
"level2": {
"type": "string"
},
"level3": {
"type": "string"
}
}
},
"heavyArea": {
"type": "string",
"enum": ["HEAVY", "NOT_HEAVY"],
"description": "when true, then this is a heavy area"
},
"priority": {
"type": "string",
"enum": ["LOW", "HIGH"]
},
"valuableArea": {
"type": "string",
"description": "Kennzeichnung ob der Lagerbereich diebstahlgefährdete Artikel enthält (Käfigbereich)",
"enum": ["NORMAL", "VALUABLE"]
},
"forkliftControlSystem": {
"type": "boolean",
"description": "Bereich für Staplerleitsystem geeingnet"
},
"driverlessTransportSystem": {
"type": "boolean",
"description": "Bereich für fahrerloses Transportsystem geeignet"
},
"usageCoefficient": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"harzadousMaterialZone": {
"type": "string",
"maxLength": 50,
"description": "Gefahrstoffzone",
"examples": [ "DZ4X_01_B1", "DZ4X_04_B2"]
},
"harzadousMaterialZoneGroup": {
"type": "string",
"maxLength": 10,
"description": "Gefahrstoffzonegruppe",
"examples": ["B"]
},
"fireZone": {
"type": "string",
"maxLength": 10,
"description": "Brandabschnitt",
"examples": ["B4","B6"]
},
"harzadousMaterialZoneOverflow": {
"type": "string",
"maxLength": 10,
"description": "Gefahrstoffzone Überlauf"
},
"nonCommercialGoodsArea": {
"type": "string",
"description": "Kennzeichnung, ob der Lagerbereich für Betriebsmittel ist",
"enum": ["YES", "NO"]
}
},
"required": ["storageType"]
},
"aisleProperties": {
"type": "object",
"description": "Aisle detail properties",
"properties": {
"strategyCode": {
"type": "string"
},
"targetCode": {
"type": "string"
},
"lockCode": {
"type": "string"
},
"lock": {
"type": "string",
"enum": ["LOCKED", "NOT_LOCKED"]
}
}
},
"layerProperties": {
"type": "object",
"properties": {
"lockCode": {
"type": "string"
},
"lock": {
"type": "string",
"enum": ["LOCKED", "NOT_LOCKED"]
}
}
},
"fieldProperties": {
"type": "object",
"properties": {
"lockCode": {
"type": "string"
},
"lock": {
"type": "string",
"enum": ["LOCKED", "NOT_LOCKED"]
}
}
}
},
"required": [
"location",
"storageLocation",
"area"
]
}
},
"required": [
"eventId",
"traceId",
"eventTime",
"version",
"eventType",
"data"
]
}
4.2. Direction FINE to ERP
4.2.2. Datamodel
4.2.3. Enumeration
Field: Type
Meta Value | Description | Short Value |
---|
4.2.4. Example
4.2.5. Schema
current version |
2.1 |
{
"$schema": "http://json-schema.org/draft-07/schema",
"$comment": "Schema for StorageLocation in a warehouse Version 2.01",
"$id": "https://doc.fine.gcp.osp-dev.de/registry/Stock/StorageLocationErp.v2.1.schema.json",
"type": "object",
"properties": {
"eventId": {
"type": "string",
"format": "uuid",
"title": "The uniq eventId",
"description": "Global uniq Id",
"examples": [
"00ce536f-923a-42f4-8128-be118faf1d87"
]
},
"traceId": {
"type": "string",
"format": "uuid",
"title": "The uniq traceId",
"description": "Global uniq Id for tracing the flow of events",
"examples": [
"00ce536f-923a-42f4-8138-33418faf1342"
]
},
"spanId": {
"type": "string",
"format": "uuid",
"title": "The uniq spanId",
"description": "ID of the privious event (message). The ID is not given if there is no previous event. For transaction initiated by user the spanId of the executed event might be the userId.",
"examples": [
"00ce536f-923a-42f4-8128-be118faf1d85"
]
},
"eventTime": {
"type": "string",
"title": "Time of occurrence of the event",
"description": "Time at which this record(event) was technically generated in RFC3339 format. Strongly recommended: in UTC time.",
"examples": [
"2016-04-16T16:06:05.000+02:00"
]
},
"version": {
"title": "The number of version schema",
"description": "Number of version of this data structure. Only required if no $schema is specified!",
"oneOf": [
{
"type": "string",
"pattern": "\\d+\\.\\d{1,2}",
"examples": ["1.01", "01.02"]
},
{
"type": "integer",
"examples": [1, 2]
}
]
},
"context": {
"type": "string",
"title": "The context / business case",
"description": "The context specified here means the business domain.",
"examples": [
"STORAGE_LOCATION"
]
},
"eventType": {
"type": "string",
"title": "The type of operation",
"description": "Typ der Nachricht",
"examples": ["INSERT", "UPDATE", "DELETE"],
"enum": ["INSERT", "UPDATE", "DELETE"]
},
"metaData":{
"type":"object",
"properties": {
"senderSystem": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/system.v4.schema.json"
}
}
},
"data": {
"type": "object",
"properties": {
"location": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/warehouselocations.v1.schema.json"
},
"storageLocation": {
"type": "object",
"properties": {
"storageLocationId": {
"type": "string",
"description": "techn. Eindeutiger Key des Lagerplatzes."
},
"storageLocationCode": {
"type": "string",
"description": "BusinessKey: Darstellung des Lagerplatzes als fachlicher Schlüssel, wie dieser im LVS Front-End angezeigt wird"
},
"type": {
"type": "string",
"description": "Beschreibt die Eigenschaft eines Platzes, ob dieser ein echter Lagerplatz oder ein virtueller Lagerplatz ist",
"enum": ["VIRTUAL", "PHYSICAL"]
},
"building": {
"type": "string"
},
"floor": {
"type": "string"
},
"aisle": {
"type": "string"
},
"layer": {
"type": "string"
},
"field": {
"type": "string"
},
"place": {
"type": "string"
},
"lastInventoryDate": {
"type": "string",
"examples": [
"2016-04-16T16:06:05.000+02:00"
]
},
"occupied": {
"type": "string"
},
"lockCode": {
"type": "string",
"description": "Lagerplatzsperre, wenn höhere Sperren vorhanden sind, sollen sich diese auf den Platz vererben"
},
"lock": {
"type": "string",
"description": "ist der Platz gespeert oder nicht",
"enum": ["LOCKED", "NOT_LOCKED"]
}
},
"required": [
"storageLocationId",
"storageLocationCode",
"type"
]
},
"rack": {
"type": "object",
"properties": {
"width": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"description": "Weitenwert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitLength.v1.schema.json"
}
}
},
"length": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"description": "Längenwert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitLength.v1.schema.json"
}
}
},
"height": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"description": "Höhenwert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitLength.v1.schema.json"
}
}
},
"volume": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"description": "Volumenwert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitVolume.v1.schema.json"
}
}
},
"typeCode": {
"type": "string"
},
"type": {
"type": "string",
"description": "Fachtypen",
"enum": ["BIN", "BOX", "PALETTE", "CORLETTE", "CARTON", "PULK", "UNKNOWN"]
},
"capacity": {
"type": "integer"
},
"maxWeight": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"description": "Max. Gewichtswert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitWeight.v1.schema.json"
}
}
}
}
},
"area": {
"type": "object",
"properties": {
"storageType": {
"type": "string",
"description": "Unterscheidung nach Kommissionierung / Reservelager / Rücksendestelle",
"enum": ["PICKING", "RESERVE", "RETURN", "OTHER"]
},
"storageHierarchy":{
"type": "object",
"properties": {
"level1": {
"type": "string"
},
"level2": {
"type": "string"
},
"level3": {
"type": "string"
}
}
},
"heavyArea": {
"type": "string",
"enum": ["HEAVY", "NOT_HEAVY"],
"description": "when true, then this is a heavy area"
},
"priority": {
"type": "string",
"enum": ["LOW", "HIGH"]
},
"valuableArea": {
"type": "string",
"description": "Kennzeichnung ob der Lagerbereich diebstahlgefährdete Artikel enthält (Käfigbereich)",
"enum": ["NORMAL", "VALUABLE"]
},
"forkliftControlSystem": {
"type": "boolean",
"description": "Bereich für Staplerleitsystem geeingnet"
},
"driverlessTransportSystem": {
"type": "boolean",
"description": "Bereich für fahrerloses Transportsystem geeignet"
},
"usageCoefficient": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"harzadousMaterialZone": {
"type": "string",
"maxLength": 50,
"description": "Gefahrstoffzone"
},
"harzadousMaterialZoneOverflow": {
"type": "string",
"maxLength": 10,
"description": "Gefahrstoffzone Überlauf"
},
},
"required": ["storageType"]
},
"aisleProperties": {
"type": "object",
"description": "Aisle detail properties",
"properties": {
"strategyCode": {
"type": "string"
},
"targetCode": {
"type": "string"
},
"lockCode": {
"type": "string"
},
"lock": {
"type": "string",
"enum": ["LOCKED", "NOT_LOCKED"]
}
}
},
"layerProperties": {
"type": "object",
"properties": {
"lockCode": {
"type": "string"
},
"lock": {
"type": "string",
"enum": ["LOCKED", "NOT_LOCKED"]
}
}
},
"fieldProperties": {
"type": "object",
"properties": {
"lockCode": {
"type": "string"
},
"lock": {
"type": "string",
"enum": ["LOCKED", "NOT_LOCKED"]
}
}
}
},
"required": [
"location",
"storageLocation",
"area"
]
}
},
"required": [
"eventId",
"traceId",
"eventTime",
"version",
"eventType",
"data"
]
}
4.3. Direction FINE to BRAIN
4.3.1. Header
This interface uses the Service Header
Special expresion for this interface:
Fieldname | Expression |
---|---|
type |
|
context |
STORAGE_LOCATION |
4.3.2. Datamodel
4.3.3. Enumeration
Field: storagelocation.type
Meta Value |
Description |
Short Value |
VIRTUAL |
virtuelle Plätze |
|
PHYSICAL |
physische Plätze |
Field: lock
Meta Value |
Description |
Short Value |
LOCKED |
gesperrt |
|
NOT_LOCKED |
nicht gesperrt |
Field: rack.type
Meta Value |
Description |
Short Value |
BIN |
Fachtyp für blaue Retourenmischwannen |
|
BOX |
Fachtyp für Mischkisten |
|
PALETTE |
Fachtyp für Paletten |
|
CORLETTE |
Fachtyp für Corletten |
|
CARTON |
Fachtyp für Kartons (Normkartons) |
|
PULK |
Fachtyp für PULK-Flächen mit physischer Lagerplatzentsprechung |
Field: area.heavyArea
Meta Value |
Description |
Short Value |
HEAVY |
Schwerlastbereich |
|
NOT_HEAVY |
kein Schwerlastbereich |
Field: area.priority
Meta Value |
Description |
Short Value |
LOW |
niedrige Priorität |
|
HIGH |
hohe Priorität |
Field: area.priority
Meta Value |
Description |
Short Value |
NORMAL |
Normalbereich |
|
VALUABLE |
Wertebereich |
4.3.4. Example
4.3.5. Schema
Version | Number | File | Published on | Changes |
---|---|---|---|---|
previous version |
1.0 |
17.06.22 |
für lastInventoryDate und EventTime sind Beispiele hinzugefügt |
|
previous version |
0.2 |
19.05.22 |
||
current version |
2.0 |
20.09.22 |
- ServiceHeader Attriute type umbenannt in eventType - Service Header neues Objekt "metaData" einfügen und die Attribute "sender" in das neue Objekt verschieben - bei Attribute "sender" das Schema des GlobalEnum "sender" verlinken - unter Data\rack\width Attibute "unit" das Schema des GlobalEnum unit verlinken - unter Data\rack\length Attibute "unit" das Schema des GlobalEnum unit verlinken - unter Data\rack\height Attibute "unit" das Schema des GlobalEnum unit verlinken - unter Data\rack\volume Attibute "unit" das Schema des GlobalEnum unit verlinken - unter Data\rack\maxWeight Attibute "unit" das Schema des GlobalEnum unit verlinken |
|
2.1 |
25.01.23 |
- neuer ENUM "UNKNOWN" für "rack" → "type" - neues optionales Feld "productGroup" unter "area" |
{
"$schema": "http://json-schema.org/draft-07/schema",
"$comment": "Schema for filtered StorageLocation for Otto Topics in a warehouse Version 2.00",
"$id": "https://doc.fine.gcp.osp-dev.de/registry/Stock/StorageLocationFineBrain.v2.0.schema.json",
"type": "object",
"properties": {
"eventId": {
"type": "string",
"format": "uuid",
"title": "The uniq eventId",
"description": "Global uniq Id",
"examples": [
"00ce536f-923a-42f4-8128-be118faf1d87"
]
},
"traceId": {
"type": "string",
"format": "uuid",
"title": "The uniq traceId",
"description": "Global uniq Id for tracing the flow of events",
"examples": [
"00ce536f-923a-42f4-8138-33418faf1342"
]
},
"eventTime": {
"type": "string",
"title": "Time of occurrence of the event",
"description": "Time at which this record(event) was technically generated in RFC3339 format. Strongly recommended: in UTC time.",
"examples": [
"2016-04-16T16:06:05.000+02:00"
]
},
"version": {
"title": "The number of version schema",
"description": "Number of version of this data structure. Only required if no $schema is specified!",
"oneOf": [
{
"type": "string",
"pattern": "\\d+\\.\\d{1,2}",
"examples": ["1.01", "01.02"]
},
{
"type": "integer",
"examples": [1, 2]
}
]
},
"context": {
"type": "string",
"title": "The context / business case",
"description": "The context specified here means the business domain.",
"examples": [
"returnsprocessing", "STORAGE_LOCATION"
]
},
"eventType": {
"type": "string",
"title": "The type of operation",
"description": "Typ der Nachricht",
"examples": ["INSERT", "UPDATE", "DELETE"],
"enum": ["INSERT", "UPDATE", "DELETE"]
},
"metaData":{
"type":"object",
"properties": {
"senderSystem": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/system.v1.schema.json"
}
}
},
"data": {
"type": "object",
"properties": {
"location": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/warehouselocations.v1.schema.json"
},
"storageLocation": {
"type": "object",
"properties": {
"storageLocationId": {
"type": "string",
"description": "techn. Eindeutiger Key des Lagerplatzes."
},
"storageLocationCode": {
"type": "string",
"description": "BusinessKey: Darstellung des Lagerplatzes als fachlicher Schlüssel, wie dieser im LVS Front-End angezeigt wird"
},
"type": {
"type": "string",
"description": "Beschreibt die Eigenschaft eines Platzes, ob dieser ein echter Lagerplatz oder ein virtueller Lagerplatz ist",
"enum": ["VIRTUAL", "PHYSICAL"]
},
"building": {
"type": "string"
},
"floor": {
"type": "string"
},
"aisle": {
"type": "string"
},
"layer": {
"type": "string"
},
"field": {
"type": "string"
},
"place": {
"type": "string"
},
"lastInventoryDate": {
"type": "string",
"examples": [
"2016-04-16T16:06:05.000+02:00"
]
},
"occupied": {
"type": "string"
},
"lockCode": {
"type": "string",
"description": "Lagerplatzsperre, wenn höhere Sperren vorhanden sind, sollen sich diese auf den Platz vererben"
},
"lock": {
"type": "string",
"description": "ist der Platz gespeert oder nicht",
"enum": ["LOCKED", "NOT_LOCKED"]
}
},
"required": [
"storageLocationId",
"storageLocationCode",
"type"
]
},
"rack": {
"type": "object",
"properties": {
"width": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"description": "Weitenwert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitLength.v1.schema.json"
}
}
},
"length": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"description": "Längenwert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitLength.v1.schema.json"
}
}
},
"height": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"description": "Höhenwert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitLength.v1.schema.json"
}
}
},
"volume": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"description": "Volumenwert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitVolume.v1.schema.json"
}
}
},
"typeCode": {
"type": "string"
},
"type": {
"type": "string",
"description": "Fachtypen",
"enum": ["BIN", "BOX", "PALETTE", "CORLETTE", "CARTON", "PULK"]
},
"capacity": {
"type": "integer"
},
"maxWeight": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"description": "Max. Gewichtswert"
},
"unit": {
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitWeight.v1.schema.json"
}
}
}
}
},
"area": {
"type": "object",
"properties": {
"storageType": {
"type": "string",
"description": "Unterscheidung nach Kommissionierung / Reservelager / Rücksendestelle",
"enum": ["PICKING", "RESERVE", "RETURN", "OTHER"]
},
"storageHierarchy":{
"type": "object",
"properties": {
"level1": {
"type": "string"
},
"level2": {
"type": "string"
},
"level3": {
"type": "string"
}
}
},
"heavyArea": {
"type": "string",
"enum": ["HEAVY", "NOT_HEAVY"],
"description": "when true, then this is a heavy area"
},
"priority": {
"type": "string",
"enum": ["LOW", "HIGH"]
},
"valuableArea": {
"type": "string",
"description": "Kennzeichnung ob der Lagerbereich diebstahlgefährdete Artikel enthält (Käfigbereich)",
"enum": ["NORMAL", "VALUABLE"]
},
"forkliftControlSystem": {
"type": "boolean",
"description": "Bereich für Staplerleitsystem geeingnet"
},
"driverlessTransportSystem": {
"type": "boolean",
"description": "Bereich für fahrerloses Transportsystem geeignet"
},
"usageCoefficient": {
"type": "integer",
"minimum": 0,
"maximum": 100
}
},
"required": ["storageType"]
},
"aisleProperties": {
"type": "object",
"description": "Aisle detail properties",
"properties": {
"strategyCode": {
"type": "string"
},
"targetCode": {
"type": "string"
},
"lockCode": {
"type": "string"
},
"lock": {
"type": "string",
"enum": ["LOCKED", "NOT_LOCKED"]
}
}
},
"layerProperties": {
"type": "object",
"properties": {
"lockCode": {
"type": "string"
},
"lock": {
"type": "string",
"enum": ["LOCKED", "NOT_LOCKED"]
}
}
},
"fieldProperties": {
"type": "object",
"properties": {
"lockCode": {
"type": "string"
},
"lock": {
"type": "string",
"enum": ["LOCKED", "NOT_LOCKED"]
}
}
}
},
"required": [
"location",
"storageLocation",
"area"
]
}
},
"required": [
"eventId",
"traceId",
"eventTime",
"version",
"eventType",
"data"
]
}
4.3.6. Filter
Filter on source topic for location IN ('LOEHNE', 'ANSBACH', 'SONNEFELD', 'HALDENSLEBEN', 'SUEDHAFEN', 'OHRDRUF', 'ERFURT', 'MOSINA', 'LANGENSELBOLD')