InventoryDocument
InventoryDocument (dokument ruchu magazynowego) to zasób reprezentujący zmianę stanu magazynowego: zmianę ilości, własności i/lub lokalizacji. Jeden dokument = jeden ruch (przyjęcie, wydanie, przesunięcie, korekta) z nagłówkiem (movementType, effectiveDate, opcjonalnie fromLocation/toLocation na nagłówku) i pozycjami InventoryDocumentPosition (product, quantity jako delta, fromLocation, toLocation). Zamiast osobnych typów „PZ” i „WZ” używany jest wspólny zasób z movementType (receipt, issue, transfer, adjustment); kierunek zmiany wynika z pól from/to i znaku quantity. Wzorowany na SAP (Material Document, movement type 101/201/301), Oracle (MTL_MATERIAL_TRANSACTIONS, transaction type), D365 (InventMovement).
Rozszerza DomainResource. Zasób z pakietu Kamsoft.FAIR (Fast Adaptive Interoperable Resources).
1. Zakres i zastosowanie
InventoryDocument = jeden dokument ruchu: movementType (CodeableConcept – receipt, issue, transfer, adjustment), effectiveDate (data obowiązywania), position[] (pozycje z product, quantity jako delta, fromLocation, toLocation). Opcjonalnie na nagłówku: fromLocation, toLocation (gdy wspólne dla wszystkich pozycji), participant (magazyn, dostawca, odbiorca – referencje do Party/PartyRole), relatedDocument (zamówienie, zlecenie, korekta).
- PZ (przyjęcie) = InventoryDocument z movementType=receipt; pozycje z toLocation. Ilość na pozycji dodatnia. Dostawca w participant.
- WZ (wydanie) = movementType=issue; pozycje z fromLocation. Ilość na pozycji ujemna lub wartość bezwzględna z konwencji. Odbiorca w participant.
- Przesunięcie = movementType=transfer; pozycje z fromLocation i toLocation.
- Korekta = movementType=adjustment; pozycje z from/to lub jedną lokacją i quantity (delta).
Relacja do Document: W kanonicznym WMS dokumentem ruchu jest InventoryDocument. Ogólny Document może służyć do powiązań międzydomenowych przez relatedDocument lub identifier.
2. Zawartość (struktura)
Oprócz elementów DomainResource (id, meta, comment, category, status, type, contained, attribute):
| Nazwa | Kard. | Typ | Opis |
|---|---|---|---|
| identifier | 0..* | Identifier | Identyfikatory dokumentu ruchu (numer PZ/WZ/MM z systemu WMS – rodzaj w Identifier.system) |
| movementType | 1..1 | CodeableConcept | Rodzaj zmiany: receipt (przyjęcie), issue (wydanie), transfer (przesunięcie), adjustment (korekta) – system inventory-movement-type |
| effectiveDate | 1..1 | date | Data obowiązywania ruchu (dzień przyjęcia/wydania/przesunięcia) |
| fromLocation | 0..1 | Reference(Location) | Lokalizacja źródłowa (gdy wspólna dla wszystkich pozycji; np. jeden magazyn przy wydaniu) |
| toLocation | 0..1 | Reference(Location) | Lokalizacja docelowa (gdy wspólna dla wszystkich pozycji) |
| participant | 0..* | Reference(Party / PartyRole) | Uczestnicy (magazyn, dostawca, odbiorca); magazyn wynika też z Location.owner/managingParty |
| relatedDocument | 0..* | Reference(Document / InventoryDocument) lub Identifier | Powiązane dokumenty (zamówienie, zlecenie, dokument korygowany) |
| position | 0..* | InventoryDocumentPosition | Pozycje ruchu (produkt, delta ilości, fromLocation, toLocation) |
| attribute | 0..* | Attribute | Atrybuty dokumentu (np. podsumowanie; code + value*) |
Uwaga: status (z DomainResource) – np. draft, completed, cancelled. type / category – opcjonalna dalsza klasyfikacja (np. PZ z dostawcy, PZ zwrot).
3. Zgodność z systemami ERP
| System | Odpowiednik | Uwagi |
|---|---|---|
| SAP | Material Document (MIGO), Movement Type (101, 201, 301) | Dokument = ruch; movement type definiuje efekt (+/- qty, z/do lokacji). |
| Oracle | MTL_MATERIAL_TRANSACTIONS, transaction_type_id | Transakcja = zmiana stanu; typ = receipt, issue, transfer. |
| D365 | InventMovement, WHS – movement type | Ruch z typem; from/to location, quantity. |
| Workday | Inventory adjustment / transfer | Operacja na stanie z kierunkiem zmiany. |
Model kanoniczny: InventoryDocument z movementType i position[] (fromLocation, toLocation, quantity jako delta) pokrywa dokument ruchu w SAP, Oracle, D365.
4. Odniesienia
- DomainResource, InventoryDocumentPosition (position), Location (fromLocation, toLocation), Party (participant).
- Document (relatedDocument), Inventory (stan aktualizowany na podstawie ruchu).
- Identifier, CodeableConcept, Reference, Attribute.