{"id":9735,"date":"2025-06-03T10:33:13","date_gmt":"2025-06-03T08:33:13","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/640\/?post_type=ht_kb&#038;p=9735"},"modified":"2025-06-03T10:42:31","modified_gmt":"2025-06-03T08:42:31","slug":"definicja-hook-contract-schemat-numeracji","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/definicja-hook-contract-schemat-numeracji\/","title":{"rendered":"Definicja Hook Contract: Schemat numeracji"},"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-schemat-numeracji\/#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-schemat-numeracji\/#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\/640\/index.php\/documentation\/definicja-hook-contract-schemat-numeracji\/#Rozszerzenie_schematow_numeracji\" >Rozszerzenie schemat\u00f3w numeracji<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/definicja-hook-contract-schemat-numeracji\/#Rozszerzenie_zrodel_danych\" >Rozszerzenie \u017ar\u00f3de\u0142 danych<\/a><\/li><\/ul><\/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 data-start=\"115\" data-end=\"376\">Definicja hook contract Schematy numeracji s\u0142u\u017cy do rozszerzenia aplikacji <em>Schematy<\/em> <em>numeracji<\/em> oraz do tworzenia nowych schemat\u00f3w\u00a0 numeracji. W niniejszej dokumentacji opisano, jakie rozszerzenia mo\u017cna wykona\u0107 przy u\u017cyciu definicji hook contract.<\/p>\n<p data-start=\"378\" data-end=\"582\">Opis interfejsu znajduje si\u0119 w odpowiadaj\u0105cym obiekcie deweloperskim typu <em>Hook Contract.<\/em> Szczeg\u00f3\u0142owe informacje dotycz\u0105ce metod zadeklarowanych w interfejsach mo\u017cna znale\u017a\u0107 w odpowiadaj\u0105cych klasach 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<p data-start=\"672\" data-end=\"856\">Ze wzgl\u0119du na powi\u0105zania merytoryczne mi\u0119dzy rozszerzeniem schemat\u00f3w numeracji a ich rozszerzaniem o dodatkowe \u017ar\u00f3d\u0142a danych, dokument zawiera r\u00f3wnie\u017c informacje na temat \u017ar\u00f3de\u0142 danych.<\/p>\n<p><strong data-start=\"863\" data-end=\"883\">Grupa docelowa<\/strong><\/p>\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 data-start=\"947\" data-end=\"1208\">Schematy numeracji mog\u0105 by\u0107 rozszerzane za pomoc\u0105 aplikacji. Opr\u00f3cz ich nowych typ\u00f3w i subtyp\u00f3w mog\u0105 by\u0107 r\u00f3wnie\u017c tworzone nowe \u017ar\u00f3d\u0142a danych, umo\u017cliwiaj\u0105ce rozszerzenie mo\u017cliwo\u015bci ustalania pochodzenia definicji komponent\u00f3w.<\/p>\n<p data-start=\"1210\" data-end=\"1431\">Tworzenie subtyp\u00f3w odbywa si\u0119 poprzez implementacj\u0119 definicji hook contract:<br data-start=\"1286\" data-end=\"1289\" \/><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.general.hook.log.NumberRangeSubTypeHook<\/code><\/p>\n<p data-start=\"1210\" data-end=\"1431\">Szczeg\u00f3\u0142y zawarte s\u0105 w artykule <em><a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicja-hook-contract-podtyp-schematy-numeracji\/\">Definicja hook contract: Podtyp Schematy numeracji<\/a>.<\/em><\/p>\n<p data-start=\"1433\" data-end=\"1700\">Rozszerzenie \u017ar\u00f3de\u0142 danych dla typ\u00f3w i subtyp\u00f3w schemat\u00f3w numeracji nie r\u00f3\u017cni si\u0119 od siebie. <span style=\"font-size: revert;\">W celu rejestracji nowych parametr\u00f3w schemat\u00f3w numeracji nale\u017cy zapozna\u0107 si\u0119 z<\/span>\u00a0artyku\u0142em: <a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicja-hook-contract-start-serwera-aplikacji\/\" rel=\"bookmark\"><em>Definicja Hook Contract: Start serwera aplikacji<\/em> <\/a><\/p>\n<h4 id=\"rozszerzenie-schematow-numeracji\" ><span class=\"ez-toc-section\" id=\"Rozszerzenie_schematow_numeracji\"><\/span>Rozszerzenie schemat\u00f3w numeracji<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p data-start=\"1707\" data-end=\"2009\">W celu utworzenia typ\u00f3w schemat\u00f3w numeracji, opr\u00f3cz rozszerzenia zbioru warto\u015bci <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.meta.NumberRangeType<\/code>, konieczne jest r\u00f3wnie\u017c udost\u0119pnienie implementacji hook dla nowego typu schematu numeracji. S\u0142u\u017cy do tego definicja hook contract: <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.general.hook.log.NumberRange<\/code><\/p>\n<p data-start=\"2057\" data-end=\"2151\">W implementacji hook danego typu schematu numeracji nale\u017cy zaimplementowa\u0107 interfejs Hook:<\/p>\n<p data-start=\"2153\" data-end=\"2217\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.app.general.numberrange.hook.log.NumberRangeTypeHook<\/code><\/p>\n<p data-start=\"2219\" data-end=\"2427\">Dla ka\u017cdego typu schematu numeracji nale\u017cy utworzy\u0107<em> Logical data type<\/em> oraz <em data-start=\"2300\" data-end=\"2317\">DataDescription<\/em>. Z <em data-start=\"2321\" data-end=\"2338\">DataDescription<\/em> wyprowadzane s\u0105 nast\u0119puj\u0105ce warto\u015bci, kt\u00f3re musz\u0105 zosta\u0107 zdefiniowane podczas tworzenia:<\/p>\n<ul data-start=\"2429\" data-end=\"2678\">\n<li data-start=\"2429\" data-end=\"2486\">\n<p data-start=\"2431\" data-end=\"2486\"><b>Nazwa (Etykieta) <\/b>\u2013 okre\u015bla nazw\u0119 typu schematu numeracji<\/p>\n<\/li>\n<li data-start=\"2487\" data-end=\"2556\">\n<p data-start=\"2489\" data-end=\"2556\"><strong data-start=\"2489\" data-end=\"2518\">Maksymalna szeroko\u015b\u0107 pola<\/strong> \u2013 okre\u015bla maksymaln\u0105 d\u0142ugo\u015b\u0107 numeru<\/p>\n<\/li>\n<li data-start=\"2557\" data-end=\"2678\">\n<p data-start=\"2559\" data-end=\"2678\"><strong data-start=\"2559\" data-end=\"2572\">Odrzucony<\/strong> \u2013 warto\u015b\u0107 opcjonalna, umo\u017cliwiaj\u0105ca oznaczenie typu schematu numeracji jako wycofanego (<em data-start=\"2665\" data-end=\"2677\">deprecated<\/em>)<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"2680\" data-end=\"2860\">W standardzie dost\u0119pne s\u0105 ju\u017c dotychczasowe typy schemat\u00f3w numeracji jako implementacje hook. Mog\u0105 one s\u0142u\u017cy\u0107 jako przyk\u0142ady nowych standardowych typ\u00f3w schemat\u00f3w numeracji.<\/p>\n<table style=\"width: 100%; height: 42px;\">\n<thead>\n<tr style=\"height: 19px;\">\n<th style=\"height: 19px; border-style: outset;\">Typ schematu numeracji<\/th>\n<th style=\"height: 19px; border-style: outset;\">Implementacja Hook-Contract<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"height: 23px; border-style: outset;\">Zam\u00f3wienia sprzeda\u017cy<\/td>\n<td style=\"height: 23px; border-style: outset;\"><code>com.cisag.app.sales.order.log.NumberRangeTypeSalesOrderImpl<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-start=\"3068\" data-end=\"3172\">Istniej\u0105ce implementacje hook dla typ\u00f3w <strong data-start=\"3108\" data-end=\"3131\">schemat\u00f3w numeracji<\/strong> r\u00f3wnie\u017c mog\u0105 by\u0107 u\u017cywane jako przyk\u0142ady.<\/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=\"width: 100%; height: 46px;\">\n<thead>\n<tr style=\"height: 23px;\">\n<th style=\"height: 23px; border-style: outset;\">Implementacja<\/th>\n<th style=\"height: 23px; border-style: outset;\">Klasa Java<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"height: 23px; border-style: outset;\">Zam\u00f3wienia sprzeda\u017cy<\/td>\n<td style=\"height: 23px; border-style: outset;\"><code>com.cisag.app.sales.order.log.NumberRangeTypeHookSalesOrderImpl<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4 id=\"rozszerzenie-zrodel-danych\" ><span class=\"ez-toc-section\" id=\"Rozszerzenie_zrodel_danych\"><\/span>Rozszerzenie \u017ar\u00f3de\u0142 danych<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p data-start=\"3333\" data-end=\"3510\">W celu rozszerzenia \u017ar\u00f3de\u0142 danych typ\u00f3w schemat\u00f3w numeracji nale\u017cy utworzy\u0107 implementacje hook. S\u0142u\u017cy do tego definicja hook contract: <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.pgm.appserver.Server.<\/code><\/p>\n<p data-start=\"3546\" data-end=\"3624\">W celu rejestracji nowych \u017ar\u00f3de\u0142 danych nale\u017cy zaimplementowa\u0107 interfejs hook:<\/p>\n<p data-start=\"3626\" data-end=\"3689\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.pgm.appserver.hook.NumberRangeParameterRegistryHook<\/code><\/p>\n<p data-start=\"3691\" data-end=\"3849\">Szczeg\u00f3\u0142owe informacje dotycz\u0105ce metod zadeklarowanych w interfejsie znajduj\u0105 si\u0119 w odpowiadaj\u0105cych klasach Java. \u0179r\u00f3d\u0142a danych s\u0105 implementacjami interfejsu:<\/p>\n<p data-start=\"3851\" data-end=\"3904\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.pgm.base.numberrange.NumberRangeParameter<\/code><\/p>\n<p data-start=\"3906\" data-end=\"4205\">Wymagany jest specyficzny kontekst do okre\u015blenia warto\u015bci podczas generowania komponentu numeru. Ponadto powi\u0105zanie z formatowaniem odbywa si\u0119 poprzez logiczny typ danych, kt\u00f3ry nale\u017cy okre\u015bli\u0107 w adnotacji. Zwracana warto\u015b\u0107 musi by\u0107 z tym typem kompatybilna, np. <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Date<\/code>, <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisDate<\/code>, <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">String<\/code>, <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Long<\/code>.<\/p>\n<p data-start=\"4207\" data-end=\"4283\">Okre\u015blenie sta\u0142ej d\u0142ugo\u015bci komponentu numeru jako adnotacja jest opcjonalne.<\/p>\n<p data-start=\"4285\" data-end=\"4440\">W standardzie dost\u0119pnych jest ju\u017c kilka implementacji hook w celu rozszerzenia \u017ar\u00f3de\u0142 danych typ\u00f3w schemat\u00f3w numeracji. Mog\u0105 one s\u0142u\u017cy\u0107 jako przyk\u0142ady.<\/p>\n<table style=\"width: 100%; height: 46px;\">\n<thead>\n<tr style=\"height: 23px;\">\n<th style=\"border-style: outset; height: 23px;\">Typ schematu numeracji<\/th>\n<th style=\"border-style: outset; height: 23px;\">Implementacja Hook-Contract<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"border-style: outset; height: 23px;\">Zam\u00f3wienia sprzeda\u017cy<\/td>\n<td style=\"border-style: outset; height: 23px;\"><code>com.cisag.app.sales.order.log.NumberRangeParameterRegistrySalesOrderImpl<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-start=\"4661\" data-end=\"4757\">Istniej\u0105ce implementacje zarejestrowanych \u017ar\u00f3de\u0142 danych r\u00f3wnie\u017c mog\u0105 by\u0107 u\u017cywane jako przyk\u0142ady.<\/p>\n<div class=\"_tableContainer_16hzy_1\">\n<div class=\"_tableWrapper_16hzy_14 group flex w-fit flex-col-reverse\" tabindex=\"-1\">\n<table>\n<thead>\n<tr>\n<th style=\"border-style: outset;\">Implementacja \u017ar\u00f3d\u0142a danych<\/th>\n<th style=\"border-style: outset;\">Klasa Java<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border-style: outset;\">Typ Zam\u00f3wienia sprzeda\u017cy<\/td>\n<td style=\"border-style: outset;\"><code>com.cisag.app.sales.order.log.NumberRangeParameterRegistrySalesOrderImpl#SalesOrderTypeCode<\/code><\/td>\n<\/tr>\n<tr>\n<td style=\"border-style: outset;\">Kontekst<\/td>\n<td style=\"border-style: outset;\"><code>com.cisag.app.sales.order.log.SalesOrderNumberRangeContext<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n","protected":false},"author":28,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-9735","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\/9735","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=9735"}],"version-history":[{"count":4,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/9735\/revisions"}],"predecessor-version":[{"id":32339,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/9735\/revisions\/32339"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/media?parent=9735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}