{"id":9761,"date":"2025-05-27T11:14:04","date_gmt":"2025-05-27T09:14:04","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/640\/?post_type=ht_kb&#038;p=9761"},"modified":"2025-05-27T11:14:13","modified_gmt":"2025-05-27T09:14:13","slug":"definicja-hook-contract-do-zlecen-magazynowych","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/definicja-hook-contract-do-zlecen-magazynowych\/","title":{"rendered":"Definicja Hook Contract do zlece\u0144 magazynowych"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Spis tre\u015bci<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Prze\u0142\u0105cznik Spisu Tre\u015bci\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/definicja-hook-contract-do-zlecen-magazynowych\/#Wprowadzenie\" >Wprowadzenie<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/definicja-hook-contract-do-zlecen-magazynowych\/#Grupa_docelowa\" >Grupa docelowa<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/definicja-hook-contract-do-zlecen-magazynowych\/#Opis\" >Opis<\/a><\/li><\/ul><\/nav><\/div>\n<h3 id=\"wprowadzenie\" ><span class=\"ez-toc-section\" id=\"Wprowadzenie\"><\/span>Wprowadzenie<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Definicja hook contract dla zlece\u0144 magazynowych s\u0142u\u017cy do rozszerzania proces\u00f3w transportowych przy u\u017cyciu zlece\u0144 magazynowych za pomoc\u0105 implementacji hook contract.<br \/>W artykule opisano, jakie rozszerzenia mo\u017cna wdro\u017cy\u0107 za pomoc\u0105 definicji hook contract oraz jakie ograniczenia i szczeg\u00f3lne przypadki nale\u017cy wzi\u0105\u0107 pod uwag\u0119.<\/p>\n<p data-start=\"611\" data-end=\"840\">Definicja Hook: <em>Pozycje zlecenia magazynowego \u2013 Kryterium<\/em>\u00a0(<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.inventory.location.hook.log.TransportOrderDetailCriterion<\/code>)<\/p>\n<p data-start=\"611\" data-end=\"840\">umo\u017cliwia wp\u0142yw na automatyczne grupowanie i sortowanie pozycji zlecenia magazynowego.<\/p>\n<p data-start=\"842\" data-end=\"893\">W tym celu udost\u0119pniono nast\u0119puj\u0105cy interfejs Hook:<\/p>\n<p data-start=\"842\" data-end=\"893\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.inventory.location.hook.log.TransportOrderDetailCriterionHook<\/code><\/p>\n<p data-start=\"842\" data-end=\"893\">Metoda interfejsu <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getValue(TransportOrderDetailView) <\/code>zwraca odpowiednie kryterium. Opcjonalnie kryterium mo\u017cna wykorzysta\u0107 do rozbudowania wygenerowanego zlecenia magazynowego o dodatkowe informacje. W tym celu dost\u0119pny jest nast\u0119puj\u0105cy interfejs: <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.inventory.location.log.TransportOrderAdditionalInfo . <\/code>Poprzez implementacj\u0119 interfejsu, samo kryterium s\u0142u\u017cy jako dodatkowa informacja.<br \/>Aby sprawdzi\u0107, czy dane kryterium mo\u017ce by\u0107 u\u017cyte w kontek\u015bcie okre\u015blonego magazynu lub rodzaju zlecenia magazynowego, udost\u0119pniono poni\u017csze interfejsy waliduj\u0105ce:<br \/><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.inventory.log.StorageAreaCriterionValidator \n\ncom.cisag.app.inventory.log.TransportOrderTypeCriterionValidator<\/code><\/p>\n<p data-start=\"842\" data-end=\"893\">Je\u015bli kryterium nie mo\u017ce by\u0107 u\u017cyte dla kontekstu, nie b\u0119dzie ono wy\u015bwietlane np. w aplikacji rodzaje zlece\u0144 magazynowych.<\/p>\n<p>Informacje dotycz\u0105ce infrastruktury hook\u00f3w mo\u017cna znale\u017a\u0107 w artykule\u00a0<em><a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/hook-contracts\/\">Hook Contracts<\/a><\/em>.<\/p>\n<h3 id=\"grupa-docelowa\" ><span class=\"ez-toc-section\" id=\"Grupa_docelowa\"><\/span>Grupa docelowa<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Programi\u015bci<\/li>\n<\/ul>\n<h3 id=\"opis\" ><span class=\"ez-toc-section\" id=\"Opis\"><\/span>Opis<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Definicja hook contract dla zlece\u0144 magazynowych obs\u0142uguje dodawanie dodatkowych kryteri\u00f3w do automatycznego grupowania i sortowania pozycji zlece\u0144 magazynowych za pomoc\u0105 odpowiednich implementacji.<br \/>Mo\u017cna do tego wykorzysta\u0107 implementacje hook contract:<\/p>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.inventory.location.hook.log.TransportOrderDetailCriterion\n<\/code><\/p>\n<p>Kryteria grupowania i sortowania, kt\u00f3re maj\u0105 by\u0107 u\u017cywane, mo\u017cna wybra\u0107 w aplikacjach <em>Magazyny<\/em> i <em>Rodzaje zlece\u0144 magazynowych<\/em>. Wybrane ustawienia s\u0105 uwzgl\u0119dniane podczas generowania zlecenia magazynowego.<\/p>\n<p data-start=\"118\" data-end=\"347\">Dla ka\u017cdej grupy pozycje zlecenia magazynowego s\u0105 \u0142\u0105czone w jedno. Zdefiniowane sortowanie wp\u0142ywa na ko\u0144cow\u0105 kolejno\u015b\u0107 pozycji w zleceniu, okre\u015blaj\u0105c tym samym ich sekwencj\u0119 wewn\u0105trz zlecenia magazynowego.<\/p>\n<p data-start=\"349\" data-end=\"458\">Aby zaimplementowa\u0107 dane kryterium jako rozszerzenie typu Hook, nale\u017cy zaimplementowa\u0107 nast\u0119puj\u0105cy interfejs:<\/p>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.inventory.location.hook.log.TransportOrderDetailCriterionHook\n\n<\/code><\/p>\n<p>Dla ka\u017cdego kryterium nale\u017cy utworzy\u0107 dwa obiekty deweloperskie:<\/p>\n<ul>\n<li><strong> Logical data type<\/strong> &#8211; identyfikuje implementacj\u0119 hooka w spos\u00f3b jednoznaczny i jest wskazywany jako ograniczenie w implementacji hook contract, np.:<\/li>\n<\/ul>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;restriction&gt;&lt;logicalDatatype id=\"TransportOrderDetailCriterion\"&gt;\n<\/code><\/p>\n<ul>\n<li><strong>Data description LDT <\/strong>&#8211;\u00a0definiuje nazw\u0119, pod kt\u00f3r\u0105 dane kryterium b\u0119dzie wy\u015bwietlane na interfejsie u\u017cytkownika, poprzez warto\u015b\u0107 wpisan\u0105 w polu <em>Etykieta<\/em>.<\/li>\n<\/ul>\n<p>W standardzie wszystkie dost\u0119pne kryteria zosta\u0142y ju\u017c zaimplementowane jako hooki. Mog\u0105 one s\u0142u\u017cy\u0107 jako przyk\u0142ady do tworzenia w\u0142asnych, niestandardowych kryteri\u00f3w.<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 46px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Kryterium<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Implemetacja hook contract<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Strefa magazynowa<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.inventory.location.log.TransportOrderDetailCriterionZoneImpl<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-start=\"92\" data-end=\"175\">Istniej\u0105ce implementacje mog\u0105 r\u00f3wnie\u017c s\u0142u\u017cy\u0107 jako przyk\u0142ady implementacji, np.:<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 46px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Implementacja<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Klasa Java<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Strefa magazynowa<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">com.cisag.app.inventory.location.log.TransportOrderDetailCriterionHookZoneImpl<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-start=\"59\" data-end=\"229\">Dla rozszerzonej funkcjonalno\u015bci umo\u017cliwiaj\u0105cej rozbudowanie zlecenia magazynowego o dodatkowe informacje, poni\u017csza istniej\u0105ca implementacja mo\u017ce s\u0142u\u017cy\u0107 jako przyk\u0142ad:<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 46px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Kryterium<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Klasa Java<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Obszary magazynowania<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">com.cisag.app.inventory.location.log.TransportOrderDetailCriterionHookWarehouseAreaImpl<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-start=\"101\" data-end=\"368\">Dla rozszerzonej funkcjonalno\u015bci umo\u017cliwiaj\u0105cej weryfikacj\u0119 przydatno\u015bci danego kryterium zlecenia magazynowego w kontek\u015bcie konkretnego magazynu lub rodzaju zlecenia magazynowego, mo\u017cna pos\u0142u\u017cy\u0107 si\u0119 istniej\u0105cymi implementacjami jako przyk\u0142adami, np.:<\/p>\n<div class=\"_tableContainer_16hzy_1\">\n<div class=\"_tableWrapper_16hzy_14 group flex w-fit flex-col-reverse\" tabindex=\"-1\">\n<table style=\"border-collapse: collapse; width: 100%; height: 46px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Implementacja<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Klasa Java<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Rz\u0105d<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.inventory.location.log.TransportOrderDetailCriterionHookRowImpl<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p data-start=\"92\" data-end=\"175\"><br \/><br \/><\/p>\n\n\n<p><\/p>\n","protected":false},"author":28,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-9761","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-definicje-hook-contract"],"_links":{"self":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/9761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb"}],"about":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/comments?post=9761"}],"version-history":[{"count":8,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/9761\/revisions"}],"predecessor-version":[{"id":31675,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/9761\/revisions\/31675"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/media?parent=9761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}