S08 Storage Location

Status

Version 1.0 published 17.06.2022

Approval
  1. 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

Diagram

4. Interface

4.1. Direction WMS to FINE

4.1.1. Header

This interface uses the Service Header

Special expresion for this interface:

Table 1. Attribute
Fieldname Expression

type

context

STORAGE_LOCATION

4.1.2. Datamodel

Property Type Description

(Root)

object

    eventId*

string (uuid)

The uniq eventId
Global uniq Id

    traceId*

string (uuid)

The uniq traceId
Global uniq Id for tracing the flow of events

    spanId

string (uuid)

The uniq spanId
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.

    eventTime*

string

Time of occurrence of the event
Time at which this record(event) was technically generated in RFC3339 format. Strongly recommended: in UTC time.

    version*

The number of version schema
Number of version of this data structure. Only required if no $schema is specified!

    context

string

The context / business case
The context specified here means the business domain.

    eventType*

string (enum)

The type of operation
Typ der Nachricht

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
Maximum: 100

            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

Table 2. storagelocation.type

Meta Value

Description

Short Value

VIRTUAL

virtuelle Plätze

PHYSICAL

physische Plätze

Field: lock

Table 3. lock

Meta Value

Description

Short Value

LOCKED

gesperrt

NOT_LOCKED

nicht gesperrt

Field: rack.type

Table 4. 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

Table 5. area.heavyArea

Meta Value

Description

Short Value

HEAVY

Schwerlastbereich

NOT_HEAVY

kein Schwerlastbereich

Field: area.priority

Table 6. area.priority

Meta Value

Description

Short Value

LOW

niedrige Priorität

HIGH

hohe Priorität

Field: area.priority

Table 7. area.priority

Meta Value

Description

Short Value

NORMAL

Normalbereich

VALUABLE

Wertebereich

4.1.4. Example

Message WMS to FINE
//include::StorageLocationWms.v0.2_sampleMessage.json[]

4.1.5. Schema

Table 8. Version WMS to FINE
Version Number File Published on Changes

previous version

1.0

Download

17.06.22

für lastInventoryDate und EventTime sind Beispiele hinzugefügt

previous version

0.2

Download

19.05.22

previous version

2.0

Download

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

Download

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

Download

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

Download

02.05.2024

- harzadousMaterialZoneGroup und fireZone als neue optionale Attribute hinzugefügt

coming version

2.4

Download

04.12.2024

- NonCommercialGoodsArea ENUM YES

Interface WMS to FINE
{
    "$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.1. Header

This interface uses the Service Header

Table 9. Attribute
Fieldname Expresion

4.2.2. Datamodel

4.2.3. Enumeration

Field: Type

Table 10. type
Meta Value Description Short Value

4.2.4. Example

Message FINE to ERP

4.2.5. Schema

Table 11. Version FINE to ERP

current version

2.1

Download

Interface FINE to ERP
{
    "$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:

Table 12. Attribute
Fieldname Expression

type

context

STORAGE_LOCATION

4.3.2. Datamodel

4.3.3. Enumeration

Field: storagelocation.type

Table 13. storagelocation.type

Meta Value

Description

Short Value

VIRTUAL

virtuelle Plätze

PHYSICAL

physische Plätze

Field: lock

Table 14. lock

Meta Value

Description

Short Value

LOCKED

gesperrt

NOT_LOCKED

nicht gesperrt

Field: rack.type

Table 15. 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

Table 16. area.heavyArea

Meta Value

Description

Short Value

HEAVY

Schwerlastbereich

NOT_HEAVY

kein Schwerlastbereich

Field: area.priority

Table 17. area.priority

Meta Value

Description

Short Value

LOW

niedrige Priorität

HIGH

hohe Priorität

Field: area.priority

Table 18. area.priority

Meta Value

Description

Short Value

NORMAL

Normalbereich

VALUABLE

Wertebereich

4.3.4. Example

4.3.5. Schema

Table 19. Version FINE to BRAIN
Version Number File Published on Changes

previous version

1.0

Download

17.06.22

für lastInventoryDate und EventTime sind Beispiele hinzugefügt

previous version

0.2

Download

19.05.22

current version

2.0

Download

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

Download

25.01.23

- neuer ENUM "UNKNOWN" für "rack" → "type"

- neues optionales Feld "productGroup" unter "area"

Interface FINE to BRAIN
{
    "$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')

Last updated: Fri, 25 Apr 2025 01:45:16 UTC