Przykłady WMS (Warehouse, Location, Inventory, InventoryDocument)
Przykłady zasobów z katalogu WMS: Warehouse (jako Party), Location, Inventory, InventoryDocument (kanoniczny dokument ruchu – PZ, WZ, przesunięcie, korekta; model Kamsoft.FAIR). System kodów: https://api-erp.kamsoft.pl/ns/. Standard modeli: Kamsoft.FAIR.
1. Warehouse (magazyn) = Party
Magazyn w modelu nie jest osobnym zasobem – to Party z type=branch, category=warehouse. Pełny przykład w Party-Examples sekcja „Oddział / miejsce (branch)”. Skrót:
- Party/party-warehouse-01 – type=branch, category=warehouse, identifier (np. MAG-01), display („Magazyn Główny – Warszawa”), address, contactPoint. Używany jako owner w Location i w
InventoryDocument.participant.
{
"resourceType": "Party",
"id": "party-warehouse-01",
"meta": { "lastModified": "2025-02-20T10:00:00Z" },
"type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/party-type", "code": "branch", "display": "Oddział" }] },
"category": [{ "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/party-category", "code": "warehouse", "display": "Magazyn" }] }],
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "active" }] },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "MAG-01" }],
"display": "Magazyn Główny – Warszawa",
"address": [{ "use": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/address-use", "code": "work" }] }, "line": ["ul. Magazynowa 10"], "city": "Warszawa", "postalCode": "02-001", "country": "PL" }]
}
2. Location (lokalizacja w magazynie)
Hierarchia: strefa → regał → bin. owner lub managingParty = Party (magazyn – firma, oddział); partOf = nadrzędna Location.
Strefa (zone):
{
"resourceType": "Location",
"id": "loc-zone-01",
"meta": { "lastModified": "2025-02-20T10:00:00Z" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "A" }],
"name": "Strefa A – regały wysokie",
"type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/location-type", "code": "storage", "display": "Składowanie" }] },
"owner": { "reference": "Party/party-warehouse-01", "display": "Magazyn Główny" },
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "active" }] }
}
Regał (partOf = strefa):
{
"resourceType": "Location",
"id": "loc-rack-01",
"meta": { "lastModified": "2025-02-20T10:00:00Z" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "A-01" }],
"name": "Regał A-01",
"owner": { "reference": "Party/party-warehouse-01", "display": "Magazyn Główny" },
"partOf": [{ "reference": "Location/loc-zone-01", "display": "Strefa A" }],
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "active" }] }
}
Bin (komórka):
{
"resourceType": "Location",
"id": "loc-bin-01",
"meta": { "lastModified": "2025-02-20T10:00:00Z" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "A-01-02-15" }],
"name": "Bin A-01-02-15",
"owner": { "reference": "Party/party-warehouse-01", "display": "Magazyn Główny" },
"partOf": [{ "reference": "Location/loc-rack-01", "display": "Regał A-01" }],
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "active" }] }
}
2a. Hierarchia magazynów (Location type=warehouse)
Hierarchia magazynów jest modelowana przez Location z type = warehouse: każdy magazyn to jeden Location (węzeł drzewa) z partOf = Location (magazyn nadrzędny) i owner lub managingParty = Party (tożsamość magazynu). Zob. Location sekcja 1a, Warehouse.
Magazyn centralny (szczebel najwyższy):
{
"resourceType": "Location",
"id": "loc-wh-central",
"meta": { "lastModified": "2025-02-20T10:00:00Z" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "WH-CENTRAL" }],
"name": "Magazyn centralny",
"type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/location-type", "code": "warehouse", "display": "Magazyn" }] },
"owner": { "reference": "Party/party-warehouse-central", "display": "Magazyn centralny – Party" },
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "active" }] }
}
Magazyn regionalny (partOf = magazyn centralny):
{
"resourceType": "Location",
"id": "loc-wh-region-1",
"meta": { "lastModified": "2025-02-20T10:00:00Z" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "WH-REG-01" }],
"name": "Magazyn regionalny – Południe",
"type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/location-type", "code": "warehouse", "display": "Magazyn" }] },
"owner": { "reference": "Party/party-warehouse-region-01", "display": "Magazyn regionalny 01" },
"partOf": [{ "reference": "Location/loc-wh-central", "display": "Magazyn centralny" }],
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "active" }] }
}
Uwaga: Party (party-warehouse-central, party-warehouse-region-01) to tożsamość magazynu (identifier, adres); Location z type=warehouse to węzeł w drzewie hierarchii. Strefy/regały/bin wewnątrz danego magazynu to Location z owner = Party (ten magazyn), type = storage/zone/bin (nie warehouse).
3. Location (biuro / oddział)
Location jako miejsce w organizacji: budynek → piętro → pokój. owner lub managingParty = Party (oddział, organizacja); partOf = nadrzędna Location.
{
"resourceType": "Location",
"id": "loc-office-301",
"meta": { "lastModified": "2025-02-20T10:00:00Z" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "BUD-3-POK-301" }],
"name": "Biuro 301 – piętro 3",
"type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/location-type", "code": "office", "display": "Biuro" }] },
"owner": { "reference": "Party/party-branch-001", "display": "Oddział Kraków" },
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "active" }] }
}
4. Inventory (stan zbiorczy – bez partii/serii)
product → ProductDefinition; location → Location; quantity – ilość.
{
"resourceType": "Inventory",
"id": "inv-001",
"meta": { "lastModified": "2025-02-20T10:00:00Z" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "INV-001" }],
"product": { "reference": "ProductDefinition/pd-towar-100", "display": "Towar A – szt." },
"location": { "reference": "Location/loc-bin-01", "display": "Bin A-01-02-15" },
"quantity": { "value": 150, "unit": "szt", "system": "http://unitsofmeasure.org", "code": "EA" },
"period": { "start": "2025-02-20", "end": "2025-02-20" },
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "active" }] }
}
5. Inventory (stan z partią)
product → Product (productDefinition + attribute batch-number); location → Location; quantity – ilość partii w tej lokalizacji.
{
"resourceType": "Inventory",
"id": "inv-002",
"meta": { "lastModified": "2025-02-20T10:00:00Z" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "INV-002" }],
"product": { "reference": "Product/prod-batch-L2025001", "display": "Towar A – partia L-2025-001" },
"location": { "reference": "Location/loc-bin-01", "display": "Bin A-01-02-15" },
"quantity": { "value": 50, "unit": "szt", "system": "http://unitsofmeasure.org", "code": "EA" },
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "active" }] }
}
Product (partia):
{
"resourceType": "Product",
"id": "prod-batch-L2025001",
"productDefinition": { "reference": "ProductDefinition/pd-towar-100", "display": "Towar A" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "L-2025-001" }],
"attribute": [{ "code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/product-attribute-type", "code": "batch-number", "display": "Numer partii" }] }, "valueString": "L-2025-001" }]
}
6. Inventory (stan z numerem seryjnym)
product → Product (attribute serial-number); quantity = 1 (typowo jedna szt. na numer seryjny).
{
"resourceType": "Inventory",
"id": "inv-003",
"meta": { "lastModified": "2025-02-20T10:00:00Z" },
"product": { "reference": "Product/prod-serial-SN123456", "display": "Urządzenie X – SN-123456" },
"location": { "reference": "Location/loc-bin-01", "display": "Bin A-01-02-15" },
"quantity": { "value": 1, "unit": "szt", "system": "http://unitsofmeasure.org", "code": "EA" },
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "active" }] }
}
Product (numer seryjny):
{
"resourceType": "Product",
"id": "prod-serial-SN123456",
"productDefinition": { "reference": "ProductDefinition/pd-urzadzenie-x", "display": "Urządzenie X" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "SN-123456" }],
"attribute": [{ "code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/product-attribute-type", "code": "serial-number", "display": "Numer seryjny" }] }, "valueString": "SN-123456" }]
}
7. Document (WHS) – przykład referencyjny
Document type=goods-receipt (PZ); participant – magazyn (Party), opcjonalnie dostawca; position – wiersze goods-receipt-line z valueReference (Product lub ProductDefinition, Location, Party magazyn), valueQuantity (ilość). W modelu kanonicznym WMS dokumentem ruchu jest InventoryDocument z movementType=receipt.
{
"resourceType": "Document",
"id": "doc-pz-001",
"meta": { "lastModified": "2025-02-20T12:00:00Z" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "PZ/2025/001" }],
"type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/document-type", "code": "goods-receipt", "display": "Przyjęcie towaru (PZ)" }] },
"issueDate": "2025-02-20",
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "completed" }] },
"participant": [
{ "reference": "Party/party-warehouse-01", "display": "Magazyn Główny" },
{ "reference": "Party/party-org-001", "display": "Dostawca ABC" }
],
"position": [
{
"code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/document-position-type", "code": "goods-receipt-line", "display": "Wiersz PZ" }] },
"positionNo": 1,
"valueQuantity": { "value": 100, "unit": "szt", "system": "http://unitsofmeasure.org", "code": "EA" },
"valueReference": [
{ "reference": "ProductDefinition/pd-towar-100", "display": "Towar A" },
{ "reference": "Location/loc-bin-01", "display": "Bin A-01-02-15" },
{ "reference": "Party/party-warehouse-01", "display": "Magazyn Główny" }
]
},
{
"code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/document-position-type", "code": "goods-receipt-line", "display": "Wiersz PZ" }] },
"positionNo": 2,
"valueQuantity": { "value": 50, "unit": "szt", "system": "http://unitsofmeasure.org", "code": "EA" },
"valueReference": [
{ "reference": "Product/prod-batch-L2025001", "display": "Towar A – partia L-2025-001" },
{ "reference": "Location/loc-bin-01", "display": "Bin A-01-02-15" },
{ "reference": "Party/party-warehouse-01", "display": "Magazyn Główny" }
]
}
]
}
Uwaga: W jednym position valueReference może zawierać produkt (ProductDefinition lub Product), Location i Party (magazyn); kolejność lub konwencja profilu określa, która referencja do czego się odnosi.
8. InventoryDocument (kanoniczny dokument ruchu — model Kamsoft.FAIR)
InventoryDocument to zasób z pakietu Kamsoft.FAIR: reprezentuje zmianę stanu magazynowego (ilość, lokalizacja). movementType: receipt (PZ), issue (WZ), transfer (przesunięcie), adjustment (korekta). Uczestnicy (magazyn, dostawca, odbiorca) w participant; kierunek ruchu przez fromLocation / toLocation na nagłówku lub pozycjach oraz quantity (delta: + przy receipt, − przy issue).
8.1. Receipt (PZ – przyjęcie towaru)
{
"resourceType": "InventoryDocument",
"id": "invdoc-pz-001",
"meta": { "lastModified": "2025-02-20T12:00:00Z" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "PZ/2025/001" }],
"movementType": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/inventory-movement-type", "code": "receipt", "display": "Przyjęcie towaru (PZ)" }] },
"effectiveDate": "2025-02-20",
"participant": [
{ "reference": "Party/party-warehouse-01", "display": "Magazyn Główny" },
{ "reference": "Party/party-org-001", "display": "Dostawca ABC" }
],
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "completed" }] },
"position": [
{
"positionNo": 1,
"product": { "reference": "ProductDefinition/pd-towar-100", "display": "Towar A" },
"quantity": { "value": 100, "unit": "szt", "system": "http://unitsofmeasure.org", "code": "EA" },
"toLocation": { "reference": "Location/loc-bin-01", "display": "Bin A-01-02-15" }
},
{
"positionNo": 2,
"product": { "reference": "Product/prod-batch-L2025001", "display": "Towar A – partia L-2025-001" },
"quantity": { "value": 50, "unit": "szt", "system": "http://unitsofmeasure.org", "code": "EA" },
"toLocation": { "reference": "Location/loc-bin-01", "display": "Bin A-01-02-15" }
}
]
}
8.2. Issue (WZ – wydanie towaru)
{
"resourceType": "InventoryDocument",
"id": "invdoc-wz-001",
"meta": { "lastModified": "2025-02-21T09:00:00Z" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "WZ/2025/001" }],
"movementType": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/inventory-movement-type", "code": "issue", "display": "Wydanie towaru (WZ)" }] },
"effectiveDate": "2025-02-21",
"fromLocation": { "reference": "Location/loc-bin-01", "display": "Bin A-01-02-15" },
"participant": [
{ "reference": "Party/party-warehouse-01", "display": "Magazyn Główny" },
{ "reference": "Party/party-org-002", "display": "Odbiorca XYZ" }
],
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "completed" }] },
"position": [
{
"positionNo": 1,
"product": { "reference": "ProductDefinition/pd-towar-100", "display": "Towar A" },
"quantity": { "value": -30, "unit": "szt", "system": "http://unitsofmeasure.org", "code": "EA" },
"fromLocation": { "reference": "Location/loc-bin-01", "display": "Bin A-01-02-15" }
}
]
}
8.3. Transfer (przesunięcie między lokalizacjami)
{
"resourceType": "InventoryDocument",
"id": "invdoc-transfer-001",
"meta": { "lastModified": "2025-02-22T14:00:00Z" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "MM/2025/001" }],
"movementType": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/inventory-movement-type", "code": "transfer", "display": "Przesunięcie" }] },
"effectiveDate": "2025-02-22",
"participant": [{ "reference": "Party/party-warehouse-01", "display": "Magazyn Główny" }],
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "completed" }] },
"position": [
{
"positionNo": 1,
"product": { "reference": "ProductDefinition/pd-towar-100", "display": "Towar A" },
"quantity": { "value": 20, "unit": "szt", "system": "http://unitsofmeasure.org", "code": "EA" },
"fromLocation": { "reference": "Location/loc-bin-01", "display": "Bin A-01-02-15" },
"toLocation": { "reference": "Location/loc-bin-02", "display": "Bin A-01-02-16" }
}
]
}
8.4. Adjustment (korekta stanu)
Korekta ilości na jednej lokalizacji (np. inwentaryzacja, poprawka). movementType = adjustment; pozycje z toLocation lub fromLocation (jedna lokacja) i quantity (delta: + uzupełnienie, − ubytek).
{
"resourceType": "InventoryDocument",
"id": "invdoc-adj-001",
"meta": { "lastModified": "2025-02-23T10:00:00Z" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "KOR/2025/001" }],
"movementType": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/inventory-movement-type", "code": "adjustment", "display": "Korekta stanu" }] },
"effectiveDate": "2025-02-23",
"participant": [{ "reference": "Party/party-warehouse-01", "display": "Magazyn Główny" }],
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "completed" }] },
"position": [
{
"positionNo": 1,
"product": { "reference": "ProductDefinition/pd-towar-100", "display": "Towar A" },
"quantity": { "value": -2, "unit": "szt", "system": "http://unitsofmeasure.org", "code": "EA" },
"toLocation": { "reference": "Location/loc-bin-01", "display": "Bin A-01-02-15" }
}
]
}
8.5. PZ z magazynem na nagłówku i binami na pozycjach
Na nagłówku toLocation = Location oznaczająca magazyn (np. Location z type=warehouse, jak w sekcji 2a); na pozycjach toLocation = konkretny bin (regał, półka). Lokalizacje na pozycjach powinny być w hierarchii magazynu z nagłówka (partOf lub ten sam owner). Dostawca w participant.
{
"resourceType": "InventoryDocument",
"id": "invdoc-pz-002",
"meta": { "lastModified": "2025-02-24T08:00:00Z" },
"identifier": [{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "PZ/2025/002" }],
"movementType": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/inventory-movement-type", "code": "receipt", "display": "Przyjęcie towaru (PZ)" }] },
"effectiveDate": "2025-02-24",
"toLocation": { "reference": "Location/loc-wh-central", "display": "Magazyn centralny" },
"participant": [
{ "reference": "Party/party-warehouse-01", "display": "Magazyn Główny" },
{ "reference": "Party/party-org-001", "display": "Dostawca ABC" }
],
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "completed" }] },
"position": [
{
"positionNo": 1,
"product": { "reference": "ProductDefinition/pd-towar-100", "display": "Towar A" },
"quantity": { "value": 80, "unit": "szt", "system": "http://unitsofmeasure.org", "code": "EA" },
"toLocation": { "reference": "Location/loc-bin-01", "display": "Bin A-01-02-15" }
},
{
"positionNo": 2,
"product": { "reference": "ProductDefinition/pd-towar-200", "display": "Towar B" },
"quantity": { "value": 25, "unit": "szt", "system": "http://unitsofmeasure.org", "code": "EA" },
"toLocation": { "reference": "Location/loc-bin-02", "display": "Bin A-01-02-16" }
}
]
}
9. Diagramy zależności obiektów WMS
9.1. Zależności między zasobami (relacje referencyjne)
erDiagram
Party ||--o{ Location : "owner"
Party ||--o{ Location : "managingParty"
Location ||--o{ Location : "partOf"
Party ||--o{ Inventory : "warehouse via Location"
ProductDefinition ||--o{ Inventory : "product"
Product ||--o{ Inventory : "product"
Location ||--o{ Inventory : "location"
Party ||--o{ Document : "participant"
Document ||--o{ DocumentPosition : "position"
ProductDefinition ||--o{ DocumentPosition : "valueReference"
Product ||--o{ DocumentPosition : "valueReference"
Location ||--o{ DocumentPosition : "valueReference"
Party ||--o{ DocumentPosition : "valueReference"
Party {
string id
string display
string type
string category
}
Location {
string id
string name
Reference owner
Reference managingParty
Reference partOf
Attribute attribute
}
Inventory {
string id
Reference product
Reference location
Quantity quantity
}
Document {
string id
string type
Reference participant
}
DocumentPosition {
CodeableConcept code
Quantity valueQuantity
Reference valueReference
}
Product {
Reference productDefinition
Attribute batchSerial
}
ProductDefinition {
string id
string name
}
9.2. Hierarchia magazynów (Location type=warehouse)
flowchart TB
C[Location: Magazyn centralny\ntype=warehouse\nowner → Party]
R1[Location: Magazyn regionalny 1\ntype=warehouse\npartOf → centralny]
R2[Location: Magazyn regionalny 2\ntype=warehouse\npartOf → centralny]
C --> R1
C --> R2
9.3. Hierarchia Location w magazynie (strefa → regał → bin)
flowchart TB
subgraph Magazyn["Party (Warehouse)"]
P[Party/party-warehouse-01\nMagazyn Główny]
end
subgraph Lokalizacje["Location"]
Z[Strefa A\nloc-zone-01\nowner → Party]
R[Regał A-01\nloc-rack-01\npartOf → Strefa A]
B[Bin A-01-02-15\nloc-bin-01\npartOf → Regał A-01]
end
P --> Z
Z --> R
R --> B
9.4. Przepływ: InventoryDocument → Inventory
flowchart LR
subgraph Document_WHS["Document (PZ/WZ)"]
D[Document PZ/2025/001]
C1[position: goods-receipt-line]
C2[position: goods-receipt-line]
end
subgraph Referencje["valueReference w position"]
PD[ProductDefinition]
Prod[Product batch]
Loc[Location]
Party[Party warehouse]
end
subgraph Stan["Inventory"]
I1[Inventory product+location+qty]
I2[Inventory product+location+qty]
end
D --> C1
D --> C2
C1 --> PD
C1 --> Loc
C1 --> Party
C2 --> Prod
C2 --> Loc
C2 --> Party
C1 -.->|"aktualizuje / tworzy"| I1
C2 -.->|"aktualizuje / tworzy"| I2
9.5. Podsumowanie: zasoby WMS i ich powiązania
| Zasób | Zależności (odniesienia) | Użycie w WMS |
|---|---|---|
| Party (Warehouse) | – | Magazyn; owner w Location; participant w Document WHS |
| Location | owner (Party), managingParty (Party), partOf → Location, attribute[] | Strefa, regał, bin; location w Inventory; valueReference w Document position |
| Inventory | product → ProductDefinition lub Product; location → Location | Stan: co, gdzie, ile; opcjonalnie period |
| Product | productDefinition → ProductDefinition; attribute (batch-number, serial-number) | Partia/seria w Inventory i w Document component |
| ProductDefinition | – | Katalog; product w Inventory (stan zbiorczy); valueReference w Document |
| InventoryDocument | movementType (receipt, issue, transfer); position (product, quantity delta, fromLocation, toLocation) | Kanoniczny dokument ruchu – PZ, WZ, przesunięcie, korekta |
| Document (WHS) | participant → Party; position → DocumentPosition | Zasób pomocniczy dla powiązań dokumentowych |
| DocumentPosition | valueReference → Product, ProductDefinition, Location, Party; valueQuantity (ilość) | Wiersz PZ/WZ: produkt, lokalizacja, magazyn, ilość |
Przykłady i diagramy zgodne z Resources: WMS/README, Location, WMS/Inventory, WMS/Warehouse, Document, DocumentPosition. Data: 2026-02-20.