S14 Accumulated Warehouse Stock
- Status
 - 
Version 1.1 published 09.01.2025
 - Approval
 - 
- 
DeepSea:
 
 - 
 - Comment
 - 
Die erste Version wird für die Anbindung von FINE Richtung Händler im Kontext NEON entwickelt.
 - Assumption
 - 
BISKO wird nicht betrachtet und bekommt die Daten aus den Bestandsystemen über die bestehenden Bestandsschnittstellen. Für NEON ist keine Anbindung an BISKO geplant.
 
1. Stakeholder
| Role | Application | Responsible | 
|---|---|---|
Communication  | 
Integration Layer  | 
|
Leading App  | 
Bube  | 
|
InterfaceOwner  | 
Bube  | 
|
Producer  | 
BuBe  | 
|
Consumer  | 
Comorant  | 
|
Consumer  | 
Humpback  | 
2. Business Context
Aus den über die S01 WarehouseStock gesendeten Lagerbestandsdaten auf Einzelquantenbasis werden durch FINE Daten auf erpPackingUnitId Ebene (Teile) aggregiert und dem Händler zur Verfügung gestellt. Anhand der Daten soll ein LIB/LAB Abgleich ermöglicht werden.
3. Information flow
| Partner | Direction | FINE-Service | Topic/API | Description | Status | 
|---|---|---|---|---|---|
ERP:DeepSea  | 
receive  | 
BuBe:StockService  | 
stock.accumulatedwarehousestock.deepsea.v1  | 
AccumulatedWarehouseStock.v1.2  | 
ready  | 
4. Interface
4.1. Direction FINE to ERP
4.1.1. Header
This interface uses the Service Header
Special expressions for this interface:
Fieldname  | 
Expression  | 
Version  | 
eventType  | 
STOCK  | 
*  | 
context  | 
ACCUMULATED_WAREHOUSE_STOCK  | 
*  | 
4.1.2. Data model
| Property | Type | Description | 
|---|---|---|
(Root)  | 
object  | 
|
eventId*  | 
string (uuid)  | 
The unique eventId  Minimum Length:  36  | 
traceId*  | 
string (uuid)  | 
The unique traceId  Minimum Length:  36  | 
eventTime*  | 
string (date-time)  | 
Time of occurrence of the event  | 
version*  | 
The number of version schema  | 
|
context  | 
string (enum)  | 
The context / business case  Any of:  [
  "ACCUMULATED_WAREHOUSE_STOCK"
]  | 
eventType*  | 
string (enum)  | 
Snapshot event  Any of:  [
  "STOCK"
]  | 
metaData*  | 
object  | 
additional meta information  | 
sender*  | 
string (enum)  | 
sender  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",
  "YMS_KMOTION",
  "YMS_INCONSO",
  "HERIS",
  "CARGOCLIX",
  "KMOTION_ERFURT",
  "LOGISTIKPUFFER"
]  | 
client*  | 
string  | 
client  Maximum Length:  50  | 
messageNumber  | 
integer  | 
current message number  Minimum:  1  | 
lastMessageNumber  | 
integer  | 
last message number  Minimum:  1  | 
dailySnapshotNumber*  | 
integer  | 
daily snapshot number  Minimum:  1  | 
snapshotTime  | 
string (date-time)  | 
snapshot time  | 
data*  | 
object  | 
|
erpSnapshotId*  | 
integer  | 
the id of the inventory snapshot  Maximum Length:  18  | 
erpProductId*  | 
string  | 
¨ERP Product Id  Maximum Length:  36  | 
erpPackingUnitId*  | 
string  | 
¨ERP PackingUnit Id  Maximum Length:  36  | 
packingUnitIndex  | 
integer  | 
¨PackingUnit Number  Maximum:  99  | 
location*  | 
string (enum)  | 
location  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",
  "NORD_LOGISTIC"
]  | 
quantity*  | 
integer  | 
quantity  Minimum:  1  | 
erpStockType*  | 
string (enum)  | 
ERP Stock Type  Any of:  [
  "DELIVERABLE_STOCK",
  "QUALITY_LOCKED_STOCK",
  "LOCKED_STOCK",
  "STOCK_IN_FULFILLMENT",
  "RESERVABLE_LOCKED_STOCK",
  "STOCK_IN_TRANSIT",
  "RESERVABLE_STOCK_IN_TRANSIT",
  "STOCK_IN_FULFILLMENT_QUALITY_LOCKED",
  "DAMAGED_STOCK"
]  | 
4.1.3. Enumeration
Field: erpStockType
Meta Value  | 
Description  | 
Short Value  | 
DELIVERABLE_STOCK  | 
deliverable stock that can be sold after WE2.0  | 
|
LOCKED_STOCK  | 
temporary locked stock e.g. for inventory processes  | 
|
QUALITY_LOCKED_STOCK  | 
for quality reasons locked stock after WE2.0  | 
|
STOCK_IN_FULFILLMENT  | 
reserved for orders after logistic buffer call - for orders of deliverable stock (B2C and B2B)  | 
|
STOCK_IN_TRANSIT  | 
stock adviced for returns or stock transfers to the warehouse  | 
|
RESERVABLE_LOCKED  | 
locked stock available for customer reservations  | 
|
RESERVABLE_STOCK_IN_TRANSIT  | 
stock in transport (detours) available for customer reservations used in KR1 context  | 
|
STOCK_IN_FULFILLMENT_QUALITY_LOCKED  | 
reserved for orders after logistic buffer call - for B2B orders from quality locked stock  | 
|
DAMAGED_STOCK  | 
damaged stock in warehouse  | 
4.1.4. Example
{
    "eventId":"f48cfc26-0615-4351-9966-cdb4ec41bbcc",
    "traceId":"f48cfc26-0615-4351-9966-cdb4ec41bbcc",
    "eventTime":"2016-04-16T01:03:17Z",
    "version":"1.1",
    "eventType":"STOCK",
    "metaData":{
        "sender":"BUBE",
        "client":"FBO",
        "messageNumber":1,
        "lastMessageNumber":10,
        "dailySnapshotNumber":1,
        "snapshotTime":"2016-04-16T01:00:00Z"
    },
    "data":{
        "erpSnapshotId":427,
        "erpProductId":"Artikel1",
        "erpPackingUnitId":"Teil1",
        "location":"ILOWA",
        "quantity":13,
        "erpStockType":"DELIVERABLE_STOCK"
    }
}
4.1.5. Version history
| Version | Number | File | Published on | previous version | 
|---|---|---|---|---|
1.0  | 
17.07.2024  | 
previous version  | 
||
1.1  | 
09.01.2025  | 
current version  | 
4.1.6. Changelog
Changes V1.0
- 
first draft
 
Changes V1.0 → V1.1
- 
add new erpStockType STOCK_IN_FULFILLMENT_QUALITY_LOCKED
 
Changes V1.1 → V1.2
- 
add new erpStockType DAMAGED_STOCK
 - 
remove reference to global company enum for attribute "client". Use string.
 - 
use reference to warehouselocations.v2.schema.json for new warehouse NORD_LOGISTIC
 
4.1.7. Schema
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "$comment": "Schema for accumulated stock in a warehouse direction ERP Version 1.2",
    "$id": "https://doc.fine.gcp.osp-dev.de/registry/Stock/AccumulatedWarehouseStock.v1.2.schema.json",
    "type": "object",
    "definitions": {
        "erpStockType": {
            "title": "Type of the stock",
            "description": "stockType, which are defined at ERP",
            "type": "string",
            "maxLength": 50,
            "enum": [
                "DELIVERABLE_STOCK",
                "QUALITY_LOCKED_STOCK",
                "LOCKED_STOCK",
                "STOCK_IN_FULFILLMENT",
                "RESERVABLE_LOCKED_STOCK",
                "STOCK_IN_TRANSIT",
                "RESERVABLE_STOCK_IN_TRANSIT",
                "STOCK_IN_FULFILLMENT_QUALITY_LOCKED",
                "DAMAGED_STOCK"
            ]
        }
    },
    "properties": {
        "eventId": {
            "title": "The unique eventId",
            "description": "Global unique Id",
            "type": "string",
            "format": "uuid",
            "minLength": 36,
            "maxLength": 36,
            "examples": [
                "00ce536f-923a-42f4-8128-be118faf1d87"
            ]
        },
        "traceId": {
            "title": "The unique traceId",
            "description": "Global unique Id for tracing the flow of events",
            "type": "string",
            "format": "uuid",
            "minLength": 36,
            "maxLength": 36,
            "examples": [
                "00ce536f-923a-42f4-8138-33418faf1342"
            ]
        },
        "eventTime": {
            "title": "Time of occurrence of the event",
            "description": "Time at which the record was generated (single event - not the businessEvent/snapshot) in UTC +ISO-8601 format YYYY-MM-DD'T'HH24:MM:SS'Z'",
            "type": "string",
            "format": "date-time",
            "examples": [
                "2022-04-16T16:06:05.123456Z",
                "2022-04-19T08:51:05+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": {
            "title": "The context / business case",
            "description": "The context specified here means the business domain.",
            "type": "string",
            "maxLength": 50,
            "enum": [
                "ACCUMULATED_WAREHOUSE_STOCK"
            ]
        },
        "eventType": {
            "title": "Snapshot event",
            "description": "the snapshot type to which the data belongs, currently only snapshots are supported",
            "type": "string",
            "maxLength": 20,
            "enum": [
                "STOCK"
            ],
            "examples": [
                "STOCK"
            ]
        },
        "metaData": {
            "title": "additional meta information",
            "description": "optional, can be used with different characteristics for technical data per interface",
            "type": "object",
            "properties": {
                "sender": {
                    "title": "sender",
                    "description": "Name of the source system, that has sent this message.",
                    "$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/system.v7.schema.json"
                },
                "client": {
                    "title": "client",
                    "description": "Client/mandant (messages of different clients have different processing rules and destination interfaces) - use FBO for Fulfillment by Otto (CORE, DeepSea...)",
                    "type": "string",
                    "maxLength": 50,
                    "examples": [
                        "FBO"
                    ]
                },
                "messageNumber": {
                    "title": "current message number",
                    "description": "the current message number that is transmitted",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 999999999999999999
                },
                "lastMessageNumber": {
                    "title": "last message number",
                    "description": "how many messages are to be transferred",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 999999999999999999
                },
                "dailySnapshotNumber": {
                    "title": "daily snapshot number",
                    "description": "sequence number of the snapshot per day, starts every day again with number 1",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100
                },
                "snapshotTime": {
                    "title": "snapshot time",
                    "description": "time of the snapshot creation",
                    "type": "string",
                    "format": "date-time",
                    "examples": [
                        "2022-04-16T16:06:05.123456Z",
                        "2022-04-19T08:51:05+02:00"
                    ]
                }
            },
            "required": [
                "sender",
                "client",
                "dailySnapshotNumber"
            ]
        },
        "data": {
            "type": "object",
            "properties": {
                "erpSnapshotId": {
                    "title": "the id of the inventory snapshot",
                    "description": "Consecutive number (sequence) of a long number. each inventory snapshot gets its own ID from WMS, which is identical for all records of the snapshot. all bookings get the id of the following snapshot, generated by wms, each wms has his own scope",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 999999999999999999,
                    "maxLength": 18,
                    "examples": [
                        122
                    ]
                },
                "erpProductId": {
                    "title": "¨ERP Product Id",
                    "description": "master communication key between Erp and LSAS for item sizes",
                    "type": "string",
                    "maxLength": 36,
                    "examples": [
                        "123"
                    ]
                },
                "erpPackingUnitId": {
                    "title": "¨ERP PackingUnit Id",
                    "description": "master communication key between LSAS and ERP for packing units of an item sized - used in Deep Sea for identification",
                    "type": "string",
                    "maxLength": 36,
                    "examples": [
                        "123"
                    ]
                },
                "packingUnitIndex": {
                    "title": "¨PackingUnit Number",
                    "description": "Part Number for products with multiple parts - use 1 for PL",
                    "type": "integer",
                    "mininmum": 1,
                    "maximum": 99,
                    "examples": [
                        "123"
                    ]
                },
                "location": {
                    "title": "location",
                    "description": "the location where the event was created",
                    "$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/warehouselocations.v2.schema.json"
                },
                "quantity": {
                    "title": "quantity",
                    "description": "quantity containing to this stock type",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 9999999999,
                    "examples": [
                        90
                    ]
                },
                "erpStockType": {
                    "title": "ERP Stock Type",
                    "description": "stock type, which are defined at ERP",
                    "$ref": "#/definitions/erpStockType"
                }
            },
            "required": [
                "erpSnapshotId",
                "erpProductId",
                "erpPackingUnitId",
                "location",
                "quantity",
                "erpStockType"
            ]
        }
    },
    "required": [
        "eventId",
        "traceId",
        "eventTime",
        "version",
        "eventType",
        "metaData",
        "data"
    ],
    "examples": [
        {
            "eventId": "f48cfc26-0615-4351-9966-cdb4ec41bbcc",
            "traceId": "f48cfc26-0615-4351-9966-cdb4ec41bbcc",
            "eventTime": "2016-04-16T01:03:17Z",
            "version": "1.2",
            "eventType": "STOCK",
            "metaData": {
                "sender": "BUBE",
                "client": "FBO",
                "messageNumber": 1,
                "lastMessageNumber": 10,
                "dailySnapshotNumber": 1,
                "snapshotTime": "2016-04-16T01:00:00Z"
            },
            "data": {
                "erpSnapshotId": 427,
                "erpProductId": "Artikel1",
                "erpPackingUnitId": "Teil1",
                "location": "ILOWA",
                "quantity": 13,
                "erpStockType": "DELIVERABLE_STOCK"
            }
        }
    ]
}