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')