{"id":8604,"date":"2025-01-09T10:12:39","date_gmt":"2025-01-09T09:12:39","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/640\/?post_type=ht_kb&#038;p=8604"},"modified":"2025-04-15T11:13:25","modified_gmt":"2025-04-15T09:13:25","slug":"obiekt-deweloperski-hook-contract","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/obiekt-deweloperski-hook-contract\/","title":{"rendered":"Obiekt deweloperski: Hook Contract"},"content":{"rendered":"<h3 id=\"wprowadzenie\" >Wprowadzenie<\/h3>\n<p>Aplikacja<em>\u00a0<a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/obiekty-deweloperskie\/\">Obiekty deweloperskie<\/a><\/em>\u00a0pozwala na rejestrowanie i przegl\u0105danie obiekt\u00f3w deweloperskich r\u00f3\u017cnych typ\u00f3w. W niniejszym artykule opisany zosta\u0142 obiekt o typie\u00a0<em>Hook Contract.<\/em><\/p>\n<h3 id=\"opis\" >Opis<\/h3>\n<p>Ten obiekt deweloperski s\u0142u\u017cy do definiowania definicji Hook Contract lub implementacji Hook Contract. Rozr\u00f3\u017cnienie mi\u0119dzy definicj\u0105 Hook Contract a implementacj\u0105 Hook Contract jest dokonywane za pomoc\u0105 podtypu okre\u015blonego w pliku XML:<\/p>\n<ul>\n<li>HOOK_DEFINITION &#8211; dla definicji Hook Contract<\/li>\n<li>HOOK_IMPLEMENTATION &#8211; dla implementacji Hook Contract<\/li>\n<\/ul>\n<p>Ten obiekt deweloperski jest obiektem programistycznym XML. Elementy pliku XML dla definicji Hook Contract w szczeg\u00f3\u0142ach:<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 207px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><strong>Element<\/strong><\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><strong>Opis<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">contextClass<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Pe\u0142na nazwa klasy Java, kt\u00f3ra definiuje kontekst, w kt\u00f3rym wywo\u0142ywane s\u0105 metody hook. Kontekstem mo\u017ce by\u0107 na przyk\u0142ad klasa logiczna, aplikacja lub kontroler BIS. Ten element musi zosta\u0107 okre\u015blony.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">hookState<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Element okre\u015bla stany hooka jako sk\u0142adniki definicji Hook Contract i mo\u017ce by\u0107 okre\u015blony kilka razy. Ka\u017cde wyst\u0105pienie definiuje HookState.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">hook<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Element okre\u015bla hooki jako sk\u0142adniki definicji Hook Contract i mo\u017ce by\u0107 okre\u015blony kilka razy. Ka\u017cde wyst\u0105pienie definiuje hook.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">interface<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Pe\u0142na nazwa interfejsu Java hooka lub interfejsu Java HookState. Element jest podelementem elementu <em>hookState<\/em>\u00a0lub elementu <em>hook<\/em>.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">restriction<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Element definiuje list\u0119 indywidualnych ogranicze\u0144. Element jest podelementem elementu <em>hook<\/em>.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">businessObject<br \/>\njavaClass<br \/>\napplication<br \/>\ndataView<br \/>\nlogicalDatatype<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Element definiuje pojedyncze ograniczenie odpowiedniego typu. Elementy s\u0105 podelementami elementu <em>restriction<\/em>; mog\u0105 by\u0107 okre\u015blone kilka razy na li\u015bcie.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Elementy pliku XML dla szczeg\u00f3\u0142owej implementacji Hook Contract:<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><strong>Element<\/strong><\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><strong>Opis<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%; border-style: outset;\">contract<\/td>\n<td style=\"width: 50%; border-style: outset;\">Pe\u0142na nazwa definicji Hook Contract, kt\u00f3rego implementacja jest definiowana. Ten element musi zosta\u0107 okre\u015blony.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%; border-style: outset;\">hookState<\/td>\n<td style=\"width: 50%; border-style: outset;\">Element okre\u015bla stany hooka, kt\u00f3re s\u0105 cz\u0119\u015bci\u0105 implementacji Hook Contract. Element mo\u017ce by\u0107 okre\u015blony wi\u0119cej ni\u017c jeden raz.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%; border-style: outset;\">hook<\/td>\n<td style=\"width: 50%; border-style: outset;\">Element okre\u015bla hooki, kt\u00f3re s\u0105 cz\u0119\u015bci\u0105 implementacji Hook Contract. Element mo\u017ce by\u0107 okre\u015blony wielokrotnie.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%; border-style: outset;\">interface<\/td>\n<td style=\"width: 50%; border-style: outset;\">Pe\u0142na nazwa interfejsu Java hooka lub interfejsu Java stanu hooka\u00a0 z definicji Hook Contract. Element jest podelementem elementu <em>hookState<\/em> lub elementu <em>hook<\/em>.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%; border-style: outset;\">implementation<\/td>\n<td style=\"width: 50%; border-style: outset;\">Pe\u0142na nazwa klasy Java, kt\u00f3ra implementuje interfejs Java hooka lub interfejs Java stanu hooka. Podelement elementu <em>hookState<\/em> lub <em>hook<\/em>.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%; border-style: outset;\">restriction<\/td>\n<td style=\"width: 50%; border-style: outset;\">Element definiuje list\u0119 indywidualnych ogranicze\u0144. Element jest podelementem elementu <em>hook<\/em>.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%; border-style: outset;\">businessObject<br \/>\njavaClass<br \/>\napplication<br \/>\ndataView<br \/>\nlogicalDatatype<\/td>\n<td style=\"width: 50%; border-style: outset;\">Element definiuje pojedyncze ograniczenie odpowiedniego typu. Elementy s\u0105 podelementami elementu <em>restriction<\/em>; mog\u0105 by\u0107 okre\u015blone kilka razy na li\u015bcie.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">Przyk\u0142ad definicji Hook Contract:<\/p>\n<p>&lt;?xml version=\u201d1.0\u2033 encoding=\u201dUTF-8\u2033?&gt;<\/p>\n<p>&lt;HookContract xmlns:xsi=\u201dhttp:\/\/www.w3.org\/2001\/XMLSchema-instance\u201d xsi:noNamespaceSchemaLocation=\u201dHookXMLSchema.xsd\u201d&gt;<\/p>\n<p>&lt;!\u2013 Don\u2019t change this line and the lines above! \u2013&gt;<\/p>\n<p>&lt;HOOK_DEFINITION&gt;<\/p>\n<p>&lt;contextClass&gt;<\/p>\n<p>com.cisag.app.sales.order.log.SalesOrderTypeEntity<\/p>\n<p>&lt;\/contextClass&gt;<\/p>\n<p>&lt;hookState&gt;<\/p>\n<p>&lt;interface&gt;<\/p>\n<p>com.cisag.app.system.hook.SingleObjectStateHook<\/p>\n<p>&lt;\/interface&gt;<\/p>\n<p>&lt;\/hookState&gt;<\/p>\n<p>&lt;hook&gt;<\/p>\n<p>&lt;interface&gt;<\/p>\n<p>com.cisag.app.system.hook.CreateHook<\/p>\n<p>&lt;\/interface&gt;<\/p>\n<p>&lt;\/hook&gt;<\/p>\n<p>&lt;hook&gt;<\/p>\n<p>&lt;interface&gt;<\/p>\n<p>com.cisag.app.system.hook.ValidateSaveHook&lt;\/interface&gt;<\/p>\n<p>&lt;\/hook&gt;<\/p>\n<p>&lt;\/HOOK_DEFINITION&gt;<\/p>\n<p>&lt;\/HookContract&gt;<\/div><\/section>\n","protected":false},"author":28,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-8604","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-typy-obiektow-deweloperskich"],"_links":{"self":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/8604","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=8604"}],"version-history":[{"count":3,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/8604\/revisions"}],"predecessor-version":[{"id":28564,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/8604\/revisions\/28564"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/media?parent=8604"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}