S14 Accumulated Warehouse Stock
- Status
-
Version 1.0 published 17.07.2024
- 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 |
FINE |
|
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 |
---|---|---|---|---|---|
WMS:kMotion ILOWA |
send |
BuBe:StockService |
stock.warehousestock.kmotion.v3 |
WarehouseStockWms.v3.1 |
ready |
ERP:DeepSea |
receive |
BuBe:StockService |
stock.accumulatedwarehousestock.deepsea.v1 |
AccumulatedWarehouseStock.v1.1 |
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 (enum) |
client Any of: [
"FBO",
"MYTOYS",
"BONPRIX",
"WITT",
"CORSO",
"HEINE",
"BAUMARKT_DIREKT",
"BAUR",
"OTTO",
"ABOUTYOU",
"F2X",
"F2X_MANUFACTUM",
"PSAUT",
"F2X_SHEEGO",
"F2X_CLEARANCE"
] |
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"
] |
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"
] |
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 |
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 | Changes |
---|---|---|---|---|
previous version |
||||
current version |
1.0 |
17.07.2024 |
- Look at chapter "Changelog" |
|
coming version |
1.1 |
tbd |
4.1.6. Changelog
Changes V1.0
-
first draft
Changes V1.0 → V2.0
-
add new erpStockType STOCK_IN_FULFILLMENT_QUALITY_LOCKED
4.1.7. Schema
{
"$schema": "http://json-schema.org/draft-07/schema",
"$comment": "Schema for accumulated stock in a warehouse direction ERP Version 1.1",
"$id": "https://doc.fine.gcp.osp-dev.de/registry/Stock/AccumulatedWarehouseStock.v1.1.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"]
}
},
"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...)",
"$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/company.v5.schema.json"
},
"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.v1.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.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"
}
}
]
}