{"id":9741,"date":"2025-05-29T14:26:27","date_gmt":"2025-05-29T12:26:27","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/640\/?post_type=ht_kb&#038;p=9741"},"modified":"2025-05-29T14:42:55","modified_gmt":"2025-05-29T12:42:55","slug":"definicja-hook-contract-typ-dokumentu","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/definicja-hook-contract-typ-dokumentu\/","title":{"rendered":"Definicja Hook Contract: Typ dokumentu"},"content":{"rendered":"<h3 id=\"wprowadzenie\" >Wprowadzenie<\/h3>\n<div>\n<p data-start=\"131\" data-end=\"241\">Definicja hook contract s\u0142u\u017cy do rejestrowania typu dokumentu oraz okre\u015blania powi\u0105zanych z nim w\u0142a\u015bciwo\u015bci.<\/p>\n<p data-start=\"243\" data-end=\"406\">Standardowe typy dokument\u00f3w r\u00f3wnie\u017c zostaj\u0105 przekszta\u0142cone do korzystania z tej definicji hook contract i mog\u0105 by\u0107 wykorzystywane jako przyk\u0142adowe implementacje.<\/p>\n<p data-start=\"346\" data-end=\"522\">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=\"583\" data-end=\"782\">Opis interfejsu znajduje si\u0119 w powi\u0105zanym obiekcie deweloperskim typu hook contract. Szczeg\u00f3\u0142owe informacje o metodach zadeklarowanych w interfejsach dost\u0119pne s\u0105 w odpowiednich klasach j\u0119zyka Java.<\/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<\/div>\n<div>\n<h3 id=\"grupa-docelowa\" id=\"grupa-docelowa\" >Grupa docelowa<\/h3>\n<ul>\n<li>Deweloperzy<\/li>\n<\/ul>\n<\/div>\n<h3 id=\"opis\" >Opis<\/h3>\n<div><\/div>\n<p>Ta definicja hook contract dostarcza informacji o dokumencie.<\/p>\n<p data-start=\"122\" data-end=\"247\">W szczeg\u00f3lno\u015bci wymagane s\u0105 nast\u0119puj\u0105ce elementy:<\/p>\n<ul data-start=\"249\" data-end=\"556\">\n<li data-start=\"249\" data-end=\"281\">\n<p data-start=\"251\" data-end=\"281\">Typ dokumentu (<em data-start=\"266\" data-end=\"278\">order type<\/em>)<\/p>\n<\/li>\n<li data-start=\"282\" data-end=\"317\">\n<p data-start=\"284\" data-end=\"317\">Klasa obiektu biznesowego <em>Typ<\/em><\/p>\n<\/li>\n<li data-start=\"318\" data-end=\"369\">\n<p data-start=\"320\" data-end=\"369\">Klasa obiektu biznesowego\u00a0 <em data-start=\"358\" data-end=\"366\">Header<\/em><\/p>\n<\/li>\n<li data-start=\"370\" data-end=\"482\">\n<p data-start=\"372\" data-end=\"482\">Klasa obiektu biznesowego <em data-start=\"411\" data-end=\"419\">Detail &#8211; <\/em><span style=\"color: initial;\">je\u015bli dokument obs\u0142uguje pozycje; w przeciwnym razie \u2014 <\/span><em style=\"color: initial;\" data-start=\"528\" data-end=\"534\">null<\/em><\/p>\n<\/li>\n<li data-start=\"483\" data-end=\"556\">\n<p data-start=\"485\" data-end=\"556\">Informacja, czy w danych nag\u0142\u00f3wkowych dost\u0119pny jest opis wieloj\u0119zyczny.<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"107\" data-end=\"179\">Dodatkowo mo\u017cliwe jest okre\u015blenie nast\u0119puj\u0105cych informacji opcjonalnych:<\/p>\n<ul data-start=\"181\" data-end=\"349\">\n<li data-start=\"181\" data-end=\"239\">\n<p data-start=\"183\" data-end=\"239\">Klasa odpowiedzialna za reorganizacj\u0119 danego dokumentu<\/p>\n<\/li>\n<li data-start=\"240\" data-end=\"349\">\n<p data-start=\"242\" data-end=\"349\">Schemat numeracji wykorzystywany do formatowania numer\u00f3w dokument\u00f3w dla nag\u0142\u00f3wk\u00f3w i pozycji<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"351\" data-end=\"422\">Definicja hook contract: <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.general.order.hook.OrderType<\/code><\/p>\n<p>Jako przyk\u0142adow\u0105 implementacj\u0119 mo\u017cna wykorzysta\u0107 implementacj\u0119 hook contract<br data-start=\"202\" data-end=\"205\" \/><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.sales.order.OrderTypeSalesOrderImpl<\/code> dla typu dokumentu <em>Zam\u00f3wienie sprzeda\u017cy<\/em>.<\/p>\n<p data-start=\"322\" data-end=\"648\">Typy dokument\u00f3w, kt\u00f3re s\u0105 rejestrowane za po\u015brednictwem tego hooka, s\u0105 r\u00f3wnie\u017c automatycznie rejestrowane na potrzeby uprawnie\u0144 opartych na zawarto\u015bci. W tym procesie ustalany jest r\u00f3wnie\u017c parametr nazwy dla kontekstu wyszukiwania, kt\u00f3ry jest pochodn\u0105 nazwy obiektu biznesowego.<\/p>\n<p data-start=\"650\" data-end=\"873\">Tylko w przypadku, gdy wymagany jest inny (niestandardowy) kontekst wyszukiwania, nale\u017cy dodatkowo zaimplementowa\u0107 <a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicja-hook-contract-rejestracje\/\"><em>Definicja hook contract &#8211; rejestracje<\/em><\/a>\u00a0\u2013 b\u0119dzie on mia\u0142 wy\u017cszy priorytet dzia\u0142ania.<\/p>\n<h4 id=\"funkcje-specjalne\" >Funkcje specjalne<\/h4>\n<p data-start=\"128\" data-end=\"348\">Za pomoc\u0105 aplikacji nie mo\u017cna rozszerza\u0107 ValueSet. Je\u017celi w aplikacji wprowadzany jest ca\u0142kowicie nowy typ dokumentu, konieczne jest rozszerzenie ValueSet <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.general.OrderType<\/code>\u00a0w standardzie systemu.<\/p>\n<p data-start=\"350\" data-end=\"528\">Rozszerzenie to musi zosta\u0107 wykonane przez zesp\u00f3\u0142 rozwoju standardu. W przypadku potrzeby takiej modyfikacji, nale\u017cy przys\u0142a\u0107 zg\u0142oszenia za pomoc\u0105 systemu obs\u0142ugi zg\u0142osze\u0144.<\/p>\n<p data-start=\"530\" data-end=\"710\">Takie rozszerzenia ValueSet musz\u0105 by\u0107 zgodne z okre\u015blonymi konwencjami nazewnictwa dla wpis\u00f3w typu EN_APP_SN.<br data-start=\"645\" data-end=\"648\" \/>W zg\u0142oszeniu rozszerzenia nale\u017cy poda\u0107 nast\u0119puj\u0105ce informacje:<\/p>\n<ul data-start=\"712\" data-end=\"904\">\n<li data-start=\"712\" data-end=\"745\">\n<p data-start=\"714\" data-end=\"745\"><strong data-start=\"714\" data-end=\"720\">EP<\/strong> \u2013 prefiks deweloperski<\/p>\n<\/li>\n<li data-start=\"746\" data-end=\"808\">\n<p data-start=\"748\" data-end=\"808\"><strong data-start=\"748\" data-end=\"755\">APP<\/strong> \u2013 nazwa aplikacji w ramach systemu deweloperskiego<\/p>\n<\/li>\n<li data-start=\"809\" data-end=\"904\">\n<p data-start=\"811\" data-end=\"904\"><strong data-start=\"811\" data-end=\"817\">SN<\/strong> \u2013 specyficzna nazwa wpisu<br data-start=\"843\" data-end=\"846\" \/>(poszczeg\u00f3lne s\u0142owa oddzielane znakiem podkre\u015blenia &#8222;_&#8221;)<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"906\" data-end=\"975\">Ka\u017cdy sk\u0142adnik nazwy powinien sk\u0142ada\u0107 si\u0119 wy\u0142\u0105cznie z wielkich liter.<\/p>\n<p data-start=\"977\" data-end=\"1089\">Dodatkowo, dla ka\u017cdego wpisu nale\u017cy zdefiniowa\u0107 unikalne oznaczenie (etykiet\u0119).<\/p>\n<p data-start=\"1091\" data-end=\"1187\"><section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Zwykle etykieta odpowiada nazwie obiektu biznesowego zawieraj\u0105cego dane nag\u0142\u00f3wkowe.<\/div><\/section><\/p>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">SEM_SERVICE_SERVICE_REQUEST<\/p>\n<ul>\n<li>EP &#8211; sem<\/li>\n<li>APP &#8211; service<\/li>\n<li>SN &#8211; service request<\/li>\n<li>Oznaczenie (EN) &#8211; Service request<\/li>\n<li>Oznaczenie (PL) &#8211; Komunikat serwisowy<\/li>\n<\/ul>\n<p><\/div><\/section>\n","protected":false},"author":28,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-9741","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\/9741","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=9741"}],"version-history":[{"count":3,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/9741\/revisions"}],"predecessor-version":[{"id":31971,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/9741\/revisions\/31971"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/media?parent=9741"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}