{"id":9723,"date":"2025-08-08T13:06:55","date_gmt":"2025-08-08T11:06:55","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/?post_type=ht_kb&#038;p=9723"},"modified":"2025-08-08T13:06:55","modified_gmt":"2025-08-08T11:06:55","slug":"definicja-hook-contract-lancuch-dokumentow-powiazanych","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicja-hook-contract-lancuch-dokumentow-powiazanych\/","title":{"rendered":"Definicja Hook Contract: \u0141a\u0144cuch dokument\u00f3w powi\u0105zanych"},"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\/index.php\/documentation\/definicja-hook-contract-lancuch-dokumentow-powiazanych\/#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-2\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicja-hook-contract-lancuch-dokumentow-powiazanych\/#Opis\" >Opis<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicja-hook-contract-lancuch-dokumentow-powiazanych\/#Uprawnienia_specjalne\" >Uprawnienia specjalne<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicja-hook-contract-lancuch-dokumentow-powiazanych\/#Rejestracja\" >Rejestracja<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicja-hook-contract-lancuch-dokumentow-powiazanych\/#Reorganizacja\" >Reorganizacja<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicja-hook-contract-lancuch-dokumentow-powiazanych\/#Ukrywanie_wpisow_wewnetrznych\" >Ukrywanie wpis\u00f3w wewn\u0119trznych<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicja-hook-contract-lancuch-dokumentow-powiazanych\/#Sortowanie\" >Sortowanie<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicja-hook-contract-lancuch-dokumentow-powiazanych\/#Udostepnianie_danych\" >Udost\u0119pnianie danych<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicja-hook-contract-lancuch-dokumentow-powiazanych\/#Wyswietlanie_wpisu_lancucha_dokumentow_powiazanych_przez_GUI\" >Wy\u015bwietlanie wpisu \u0142a\u0144cucha dokument\u00f3w powi\u0105zanych przez GUI<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<p class=\"sr-only\"><span style=\"font-size: revert; color: initial;\">Definicja Hook Contract <em>\u0141a\u0144cuch dokument\u00f3w powi\u0105zanych<\/em> udost\u0119pnia interfejsy, za pomoc\u0105 kt\u00f3rych aplikacji (APP) mog\u0105 rozszerza\u0107 funkcjonalno\u015b\u0107 \u0142a\u0144cucha dokument\u00f3w.<\/span><\/p>\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @[37rem]:[--thread-content-margin:--spacing(6)] @[72rem]:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:32rem] @[34rem]:[--thread-content-max-width:40rem] @[64rem]:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-5\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"4a9d556b-751c-4b4a-8eed-18ab44db9e4c\" data-message-model-slug=\"gpt-5\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[3px]\">\n<div class=\"markdown prose dark:prose-invert w-full break-words light markdown-new-styling\">\n<p data-start=\"0\" data-end=\"320\">\u0141a\u0144cuchy dokument\u00f3w powi\u0105zanych standardowych typ\u00f3w dokument\u00f3w korzystaj\u0105 z tej definicji Hook Contract. Dzi\u0119ki temu mo\u017cna wykorzysta\u0107 standardowe implementacje jako przyk\u0142ady wdro\u017ce\u0144.<\/p>\n<p data-start=\"322\" data-end=\"499\">W niniejszym artykule opisano, jakie rozszerzenia mo\u017cna wprowadzi\u0107 przy u\u017cyciu definicji Hook Contract oraz jakie ograniczenia i szczeg\u00f3lne aspekty nale\u017cy wzi\u0105\u0107 pod uwag\u0119.<\/p>\n<p data-start=\"501\" data-end=\"708\" data-is-last-node=\"\" data-is-only-node=\"\">Opis interfejsu mo\u017cna znale\u017a\u0107 w odpowiednim obiekcie deweloperskim typu <em>Hook Contract<\/em>. Szczeg\u00f3\u0142owe informacje dotycz\u0105ce metod zadeklarowanych w interfejsach znajduj\u0105 si\u0119 w odpowiednich klasach j\u0119zyka Java.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Informacje na temat infrastruktury Hook mo\u017cna znale\u017a\u0107 w artykule\u00a0<a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicja-hook-contract-elementy-zapotrzebowania-rezerwacje\/#https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/hook-contracts\/\"><em>Hook Contracts.<\/em><\/a><\/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>Deweloperzy<\/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>Nast\u0119puj\u0105ce rozszerzenia s\u0105 mo\u017cliwe z definicj\u0105 Hook Contract <em>\u0141a\u0144cuch dokument\u00f3w powi\u0105zanych<\/em>:<\/p>\n<ul>\n<li>Rejestrowanie typ\u00f3w dokument\u00f3w jako kombinacji \u017ar\u00f3d\u0142a\/celu wpisu \u0142a\u0144cucha dokument\u00f3w powi\u0105zanych<\/li>\n<li>Uwzgl\u0119dnianie dokument\u00f3w \u017ar\u00f3d\u0142owych i docelowych podczas reorganizacji instancji dokument\u00f3w<\/li>\n<li>Oznaczanie wpisu \u0142a\u0144cucha dokument\u00f3w powi\u0105zanych jako wewn\u0119trznego (w zale\u017cno\u015bci od danej bazy dokument\u00f3w lub pozycji bie\u017c\u0105cej aplikacji)<\/li>\n<li>Dostarczanie informacji wymaganych do wy\u015bwietlenia wpis\u00f3w \u0142a\u0144cucha dokument\u00f3w powi\u0105zanych danego typu dokumentu<\/li>\n<li>Wp\u0142ywanie na sortowanie w \u0142a\u0144cuchu dokument\u00f3w powi\u0105zanych<\/li>\n<li>Definicja elementu GUI dla typu dokumentu<\/li>\n<\/ul>\n<p>Definicja Hook Contract:<\/p>\n<p>com.cisag.app.general.order.hook.OrderReference<\/p>\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @[37rem]:[--thread-content-margin:--spacing(6)] @[72rem]:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:32rem] @[34rem]:[--thread-content-max-width:40rem] @[64rem]:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-5\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"75bd30ae-caa2-4065-82e9-19e1baabbd85\" data-message-model-slug=\"gpt-5\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[3px]\">\n<div class=\"markdown prose dark:prose-invert w-full break-words light markdown-new-styling\">\n<p data-start=\"0\" data-end=\"237\" data-is-last-node=\"\" data-is-only-node=\"\">Jako przyk\u0142ad implementacji rejestracji kombinacji typ\u00f3w dokument\u00f3w \u017ar\u00f3d\u0142owych\/docelowych dla \u0142a\u0144cucha dokument\u00f3w powi\u0105zanych w standardzie s\u0142u\u017cy nast\u0119puj\u0105ca implementacja Hook Contract, kt\u00f3ra zawiera wszystkie rejestracje dla obszaru <em>Sprzeda\u017c:<\/em><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>com.cisag.app.sales.order.OrderReferenceSalesImpl<\/p>\n<p>Jako przyk\u0142ad implementacji oznaczania wpis\u00f3w \u0142a\u0144cucha dokument\u00f3w powi\u0105zanych jako wewn\u0119trznych mo\u017ce pos\u0142u\u017cy\u0107 nast\u0119puj\u0105ca standardowa implementacja Hook Contract:<\/p>\n<p>com.cisag.app.general.order.InternalOrderReference<\/p>\n<article class=\"text-token-text-primary w-full focus:outline-none scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" tabindex=\"-1\" data-turn-id=\"request-WEB:c77b2671-2914-494a-9ee5-63fc7927d93b-8\" data-testid=\"conversation-turn-18\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @[37rem]:[--thread-content-margin:--spacing(6)] @[72rem]:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:32rem] @[34rem]:[--thread-content-max-width:40rem] @[64rem]:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-5\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"8f35951a-e441-4d51-bc66-4e4a52968d13\" data-message-model-slug=\"gpt-5\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[3px]\">\n<div class=\"markdown prose dark:prose-invert w-full break-words light markdown-new-styling\">\n<p data-start=\"154\" data-end=\"324\" data-is-last-node=\"\" data-is-only-node=\"\">Jako przyk\u0142ad implementacji prezentacji \u0142a\u0144cucha dokument\u00f3w powi\u0105zanych w standardzie mo\u017ce pos\u0142u\u017cy\u0107 nast\u0119puj\u0105ca implementacja Hook Contract dla typu dokumentu <em>Zam\u00f3wienie sprzeda\u017cy:<\/em><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<p>com.cisag.app.sales.order.OrderReferenceSalesOrderImpl<\/p>\n<h4 id=\"uprawnienia-specjalne\" ><span class=\"ez-toc-section\" id=\"Uprawnienia_specjalne\"><\/span>Uprawnienia specjalne<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<h5 id=\"rejestracja\" ><span class=\"ez-toc-section\" id=\"Rejestracja\"><\/span>Rejestracja<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Implementuj\u0105c poni\u017cszy interfejs Hook, mo\u017cna zarejestrowa\u0107 nowe kombinacje typ\u00f3w dokument\u00f3w do obs\u0142ugi w \u0142a\u0144cuchu dokument\u00f3w powi\u0105zanych. W tym celu nale\u017cy okre\u015bli\u0107 \u017ar\u00f3d\u0142owy i docelowy typ dokumentu.<\/p>\n<p><em>com.cisag.app.general.order.hook.log.OrderReferenceRegistrationHook<\/em><\/p>\n<section class=\"document-alert-box indicator\"><div class=\"document-alert-title\">Wskaz\u00f3wka<\/div><div class=\"document-alert-content\">Aby wprowadzi\u0107 do aplikacji (APP) nowy typ dokumentu nale\u017cy zapozna\u0107 si\u0119 z artyku\u0142em <em><a href=\"#https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicja-hook-contract-typ-dokumentu\/\">Definicja Hook Contract: Typ dokumentu.<\/a><\/em>[\\indicator]<\/p>\n<p>W przypadku implementacji w standardzie, tj. z prefiksem programistycznym <em>cisag,<\/em> zar\u00f3wno dokument \u017ar\u00f3d\u0142owy, jak i docelowy musz\u0105 pochodzi\u0107 ze standardu.<\/p>\n<p>W przypadku implementacji w aplikacji musi by\u0107 spe\u0142niony jeden z poni\u017cszych wymog\u00f3w:<\/p>\n<ul>\n<li>\u0179r\u00f3d\u0142owy i docelowy typ dokumentu nale\u017c\u0105 do tej samej aplikacji<\/li>\n<li>Jeden z dw\u00f3ch typ\u00f3w dokument\u00f3w nale\u017cy do aplikacji zgodnie z prefiksem programistycznym, a drugi jest standardowym typem dokumentu.<\/li>\n<\/ul>\n<p>Nie s\u0105 zatem dozwolone np. kombinacje r\u00f3\u017cnych aplikacji. Dotyczy to r\u00f3wnie\u017c sytuacji, gdy maj\u0105 one ten sam prefiks programistyczny. Nie jest r\u00f3wnie\u017c mo\u017cliwe zarejestrowanie w aplikacji kombinacji, w kt\u00f3rych zar\u00f3wno dokument \u017ar\u00f3d\u0142owy, jak i docelowy pochodz\u0105 ze standardu.<\/p>\n<h5 id=\"reorganizacja\" ><span class=\"ez-toc-section\" id=\"Reorganizacja\"><\/span>Reorganizacja<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Za pomoc\u0105 nast\u0119puj\u0105cej metody mo\u017cna okre\u015bli\u0107, czy dokument nale\u017c\u0105cy do kombinacji typu dokumentu \u017ar\u00f3d\u0142owego lub docelowego zarejestrowanego dla \u0142a\u0144cucha dokument\u00f3w powi\u0105zanych mo\u017ce zosta\u0107 zreorganizowany:<\/p>\n<p><em>OrderReferenceRegistry.registerOrderReference(short,<\/em> short, ReorganisationRule)<\/p>\n<p>Je\u015bli zostanie podana warto\u015b\u0107 dla tej metody, do dokument\u00f3w zarejestrowanej kombinacji zastosowana zostanie nast\u0119puj\u0105ca regu\u0142a:<\/p>\n<ul>\n<li>Dokument typu \u017ar\u00f3d\u0142owego nie mo\u017ce zosta\u0107 zreorganizowany, je\u015bli istnieje dokument typu docelowego<\/li>\n<li>Dokument typu docelowego nie mo\u017ce zosta\u0107 zreorganizowany, je\u015bli istnieje dokument typu \u017ar\u00f3d\u0142owego<\/li>\n<\/ul>\n<p>Obja\u015bnienia innych mo\u017cliwych warto\u015bci dla metody mo\u017cna znale\u017a\u0107 w klasie Java interfejsu Hook <em>OrderReferenceRegistrationHook.<\/em><\/p>\n<p>Mo\u017cna r\u00f3wnie\u017c u\u017cy\u0107 nast\u0119puj\u0105cego interfejsu <em>Hook<\/em>, aby doda\u0107 kontrole reorganizacji dokumentu:<br \/>\n<em>com.cisag.app.general.order.hook.log.ReorganisationValidateHook<\/em><\/p>\n<p><section class=\"document-alert-box indicator\"><div class=\"document-alert-title\">Wskaz\u00f3wka<\/div><div class=\"document-alert-content\"><\/div><\/section>Za pomoc\u0105 interfejsu Hook <em>ReorganisationValidateHook<\/em> mo\u017cna np. usun\u0105\u0107 kontrole reorganizacji za pomoc\u0105 <em>ReorganizationRule<\/em> i doda\u0107 w\u0142asne.<\/div><\/section>\n<h5 id=\"ukrywanie-wpisow-wewnetrznych\" ><span class=\"ez-toc-section\" id=\"Ukrywanie_wpisow_wewnetrznych\"><\/span>Ukrywanie wpis\u00f3w wewn\u0119trznych<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Zazwyczaj dla danej podstawy dokumentu lub pozycji dokumentu wy\u015bwietlane s\u0105 wszystkie powi\u0105zane wpisy \u0142a\u0144cucha dokument\u00f3w powi\u0105zanych. Dzi\u0119ki implementacji poni\u017cszego interfejsu Hook istniej\u0105cy wpis \u0142a\u0144cucha dokument\u00f3w mo\u017ce jednak, z uwzgl\u0119dnieniem danej podstawy dokumentu lub pozycji dokumentu, zosta\u0107 oznaczony jako wewn\u0119trzny, tak aby nie by\u0142 ju\u017c wy\u015bwietlany.<\/p>\n<p><em>com.cisag.app.general.order.hook.log.InternalOrderReferenceHook<\/em><\/p>\n<h5 id=\"sortowanie\" ><span class=\"ez-toc-section\" id=\"Sortowanie\"><\/span>Sortowanie<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Sortowanie \u0142a\u0144cucha dokument\u00f3w powi\u0105zanych mo\u017cna okre\u015bli\u0107 poprzez implementacj\u0119 nast\u0119puj\u0105cego interfejsu Hook: <em>com.cisag.app.general.order.hook.log.OrderReferenceComparatorHook<\/em><\/p>\n<p>Metoda <em>getOrderType<\/em> s\u0142u\u017cy do okre\u015blenia typu dokumentu, a metoda <em>getPreviousOrderType<\/em> s\u0142u\u017cy do okre\u015blenia poprzedniego typu dokumentu. Na poni\u017cszej grafice strza\u0142ki wskazuj\u0105 warto\u015b\u0107 ustawion\u0105 dla <em>previous.<\/em> Jest to tylko kolejno\u015b\u0107 w sortowaniu i teoretycznie mo\u017ce by\u0107 zdefiniowana ca\u0142kowicie niezale\u017cnie od przep\u0142ywu procesu.<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Grafiki s\u0142u\u017c\u0105 jedynie do zilustrowania zasady i nie odpowiadaj\u0105 rzeczywistym rejestracjom.<\/div><\/section>\n<p><a href=\"https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-36417\" src=\"https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych1.png\" alt=\"\" width=\"810\" height=\"419\" srcset=\"https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych1.png 810w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych1-300x155.png 300w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych1-768x397.png 768w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych1-50x26.png 50w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych1-600x310.png 600w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych1-320x166.png 320w\" sizes=\"auto, (max-width: 810px) 100vw, 810px\" \/><\/a><\/p>\n<p>Oferta nie ma poprzednika, zlecenie ma ofert\u0119 jako poprzednika. Obliczona warto\u015b\u0107 sortowania wynosi zatem <em>1<\/em> dla oferty i <em>2<\/em> dla zlecenia.<\/p>\n<p><a href=\"https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-36422\" src=\"https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych2.png\" alt=\"\" width=\"810\" height=\"419\" srcset=\"https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych2.png 810w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych2-300x155.png 300w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych2-768x397.png 768w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych2-50x26.png 50w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych2-600x310.png 600w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych2-320x166.png 320w\" sizes=\"auto, (max-width: 810px) 100vw, 810px\" \/><\/a><\/p>\n<p>W tym przypadku zar\u00f3wno oferta, jak i umowa nie maj\u0105 poprzednika. Obie otrzymuj\u0105 warto\u015b\u0107 sortowania <em>1<\/em>, natomiast zlecenie ponownie otrzymuje warto\u015b\u0107 sortowania <em>2<\/em>. W tym przypadku preferowany jest dokument z mniejsz\u0105 warto\u015bci\u0105 dla <em>OrderType.<\/em><\/p>\n<p><a href=\"https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-36424\" src=\"https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych3.png\" alt=\"\" width=\"800\" height=\"419\" srcset=\"https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych3.png 800w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych3-300x157.png 300w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych3-768x402.png 768w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych3-50x26.png 50w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych3-600x314.png 600w, https:\/\/pomoc.comarch.pl\/cee\/wp-content\/uploads\/2025\/08\/Hook-Contract-lancuch-dokumentow-powiazanych3-320x168.png 320w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>Rejestracje w standardzie zawsze otrzymuj\u0105 warto\u015b\u0107 <em>Level 1<\/em> w odniesieniu do sortowania. Rejestracje w aplikacji (APP) otrzymuj\u0105 warto\u015b\u0107 <em>Level 2,<\/em> dzi\u0119ki czemu za pomoc\u0105 aplikacji mo\u017cna dokona\u0107 sortowania mi\u0119dzy istniej\u0105cymi standardowymi typami dokument\u00f3w.<\/p>\n<p>W pierwszym kroku obliczana jest odpowiednia warto\u015b\u0107 sortowania standardowych dokument\u00f3w, w tym przypadku dla oferty <em>1<\/em> i zlecenia <em>2<\/em>. Dokumenty, kt\u00f3re maj\u0105 dokument typu aplikacji jako poprzednika, otrzymuj\u0105 zwi\u0119kszon\u0105 warto\u015b\u0107 sortowania w drugiej pozycji. Dokumenty, kt\u00f3re maj\u0105 dokument standardowy jako poprzednika, otrzymuj\u0105 w pierwszej pozycji warto\u015b\u0107 sortowania swojego standardowego dokumentu poprzednika, a w drugiej pozycji warto\u015b\u0107 <em>1<\/em>. Podobnie jak w standardzie, mo\u017ce istnie\u0107 kilka typ\u00f3w dokument\u00f3w aplikacji, kt\u00f3re maj\u0105 t\u0119 sam\u0105 warto\u015b\u0107 sortowania.<\/p>\n<p>S\u0105 one wtedy sortowane najpierw wed\u0142ug pierwszej cyfry warto\u015bci sortowania. Je\u015bli jest ona taka sama, u\u017cywana jest druga cyfra. Je\u015bli nawet wtedy nie zostanie ustalona kolejno\u015b\u0107, dokument o ni\u017cszej warto\u015bci dla <em>OrderType<\/em> jest r\u00f3wnie\u017c traktowany priorytetowo.<\/p>\n<p>W przedstawionym przyk\u0142adzie kolejno\u015b\u0107 sortowania jest nast\u0119puj\u0105ca:<br \/>\n<em>AppVoucherA, Quote, AppVoucherB, AppVoucherC, Order, AppVoucherD<\/em><\/p>\n<section class=\"document-alert-box indicator\"><div class=\"document-alert-title\">Wskaz\u00f3wka<\/div><div class=\"document-alert-content\">Aplikacje (APP) mog\u0105 w przysz\u0142o\u015bci wymaga\u0107 innych aplikacji. W takim przypadku logika sortowania jest po prostu rozszerzana o dodatkow\u0105 cyfr\u0119 (tj. tworzone s\u0105 warto\u015bci sortowania, takie jak <em>1.2.1<\/em>).<\/div><\/section>\n<h5 id=\"udostepnianie-danych\" ><span class=\"ez-toc-section\" id=\"Udostepnianie_danych\"><\/span>Udost\u0119pnianie danych<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Wpisy \u0142a\u0144cucha dokument\u00f3w powi\u0105zanych s\u0105 wy\u015bwietlane na poziomie podstawowym dokumentu lub, je\u015bli typ dokumentu obs\u0142uguje pozycje, na poziomie pozycji. Wy\u015bwietlanie opiera si\u0119 na instancjach<\/p>\n<p><em>com.cisag.app.general.order.hook.log.OrderReferenceData.<\/em><\/p>\n<p>Dzi\u0119ki wdro\u017ceniu nast\u0119puj\u0105cych interfejs\u00f3w Hook mo\u017cna przekszta\u0142ci\u0107 dane obiekt\u00f3w w instancje <em>OrderReferenceData.<\/em> Zawieraj\u0105 one dane, kt\u00f3re zazwyczaj posiada ka\u017cdy dokument (data, partner dokumentu, artyku\u0142 itp.) lub dane specyficzne, kt\u00f3re nale\u017c\u0105 tylko do danego typu dokumentu.<\/p>\n<p><em>com.cisag.app.general.order.hook.log.OrderReferenceHeaderDataHook<\/em><\/p>\n<p><em>com.cisag.app.general.order.hook.log.OrderReferenceDetailDataHook<\/em><\/p>\n<h5 id=\"wyswietlanie-wpisu-lancucha-dokumentow-powiazanych-przez-gui\" ><span class=\"ez-toc-section\" id=\"Wyswietlanie_wpisu_lancucha_dokumentow_powiazanych_przez_GUI\"><\/span>Wy\u015bwietlanie wpisu \u0142a\u0144cucha dokument\u00f3w powi\u0105zanych przez GUI<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Rzeczywiste wy\u015bwietlanie wpisu \u0142a\u0144cucha dokument\u00f3w powi\u0105zanych odbywa si\u0119 poprzez implementacj\u0119 interfejsu Hook:<\/p>\n<p><em>com.cisag.app.general.order.hook.ui.OrderReferenceRendererHook<\/em><\/p>\n<p>Poni\u017csza klasa jest dostarczana w standardzie i stanowi podstaw\u0119 implementacji w standardzie. Mo\u017cliwa jest jednak r\u00f3wnie\u017c ca\u0142kowicie niezale\u017cna implementacja.<\/p>\n<p><em>com.cisag.app.general.order.hook.ui.<\/em> DefaultOrderReferenceRenderer<\/p>\n","protected":false},"author":28,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-9723","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-definicje-hook-contract"],"_links":{"self":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/9723","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb"}],"about":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/comments?post=9723"}],"version-history":[{"count":7,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/9723\/revisions"}],"predecessor-version":[{"id":36430,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/9723\/revisions\/36430"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/media?parent=9723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}