Wprowadzenie
Definicja hook contract dla zleceń magazynowych służy do rozszerzania procesów transportowych przy użyciu zleceń magazynowych za pomocą implementacji hook contract.
W artykule opisano, jakie rozszerzenia można wdrożyć za pomocą definicji hook contract oraz jakie ograniczenia i szczególne przypadki należy wziąć pod uwagę.
Definicja Hook: Pozycje zlecenia magazynowego – Kryterium (com.cisag.app.inventory.location.hook.log.TransportOrderDetailCriterion
)
umożliwia wpływ na automatyczne grupowanie i sortowanie pozycji zlecenia magazynowego.
W tym celu udostępniono następujący interfejs Hook:
com.cisag.app.inventory.location.hook.log.TransportOrderDetailCriterionHook
Metoda interfejsu getValue(TransportOrderDetailView)
zwraca odpowiednie kryterium. Opcjonalnie kryterium można wykorzystać do rozbudowania wygenerowanego zlecenia magazynowego o dodatkowe informacje. W tym celu dostępny jest następujący interfejs: com.cisag.app.inventory.location.log.TransportOrderAdditionalInfo .
Poprzez implementację interfejsu, samo kryterium służy jako dodatkowa informacja.
Aby sprawdzić, czy dane kryterium może być użyte w kontekście określonego magazynu lub rodzaju zlecenia magazynowego, udostępniono poniższe interfejsy walidujące:com.cisag.app.inventory.log.StorageAreaCriterionValidator
com.cisag.app.inventory.log.TransportOrderTypeCriterionValidator
Jeśli kryterium nie może być użyte dla kontekstu, nie będzie ono wyświetlane np. w aplikacji rodzaje zleceń magazynowych.
Informacje dotyczące infrastruktury hooków można znaleźć w artykule Hook Contracts.
Grupa docelowa
- Programiści
Opis
Definicja hook contract dla zleceń magazynowych obsługuje dodawanie dodatkowych kryteriów do automatycznego grupowania i sortowania pozycji zleceń magazynowych za pomocą odpowiednich implementacji.
Można do tego wykorzystać implementacje hook contract:
com.cisag.app.inventory.location.hook.log.TransportOrderDetailCriterion
Kryteria grupowania i sortowania, które mają być używane, można wybrać w aplikacjach Magazyny i Rodzaje zleceń magazynowych. Wybrane ustawienia są uwzględniane podczas generowania zlecenia magazynowego.
Dla każdej grupy pozycje zlecenia magazynowego są łączone w jedno. Zdefiniowane sortowanie wpływa na końcową kolejność pozycji w zleceniu, określając tym samym ich sekwencję wewnątrz zlecenia magazynowego.
Aby zaimplementować dane kryterium jako rozszerzenie typu Hook, należy zaimplementować następujący interfejs:
com.cisag.app.inventory.location.hook.log.TransportOrderDetailCriterionHook
Dla każdego kryterium należy utworzyć dwa obiekty deweloperskie:
- Logical data type – identyfikuje implementację hooka w sposób jednoznaczny i jest wskazywany jako ograniczenie w implementacji hook contract, np.:
<restriction><logicalDatatype id="TransportOrderDetailCriterion">
- Data description LDT – definiuje nazwę, pod którą dane kryterium będzie wyświetlane na interfejsie użytkownika, poprzez wartość wpisaną w polu Etykieta.
W standardzie wszystkie dostępne kryteria zostały już zaimplementowane jako hooki. Mogą one służyć jako przykłady do tworzenia własnych, niestandardowych kryteriów.
Kryterium | Implemetacja hook contract |
Strefa magazynowa | com.cisag.app.inventory.location.log.TransportOrderDetailCriterionZoneImpl |
Istniejące implementacje mogą również służyć jako przykłady implementacji, np.:
Implementacja | Klasa Java |
Strefa magazynowa | com.cisag.app.inventory.location.log.TransportOrderDetailCriterionHookZoneImpl |
Dla rozszerzonej funkcjonalności umożliwiającej rozbudowanie zlecenia magazynowego o dodatkowe informacje, poniższa istniejąca implementacja może służyć jako przykład:
Kryterium | Klasa Java |
Obszary magazynowania | com.cisag.app.inventory.location.log.TransportOrderDetailCriterionHookWarehouseAreaImpl |
Dla rozszerzonej funkcjonalności umożliwiającej weryfikację przydatności danego kryterium zlecenia magazynowego w kontekście konkretnego magazynu lub rodzaju zlecenia magazynowego, można posłużyć się istniejącymi implementacjami jako przykładami, np.:
Implementacja | Klasa Java |
Rząd | com.cisag.app.inventory.location.log.TransportOrderDetailCriterionHookRowImpl |