{"id":10673,"date":"2025-02-21T17:15:37","date_gmt":"2025-02-21T16:15:37","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/640\/?post_type=ht_kb&#038;p=10673"},"modified":"2025-02-21T17:15:38","modified_gmt":"2025-02-21T16:15:38","slug":"wywolaj-zdarzenia","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/wywolaj-zdarzenia\/","title":{"rendered":"Wywo\u0142aj zdarzenia"},"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\/wywolaj-zdarzenia\/#Definicje_terminow\" >Definicje termin\u00f3w<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/wywolaj-zdarzenia\/#Definicja_dzialania\" >Definicja dzia\u0142ania<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/wywolaj-zdarzenia\/#Zdarzenie\" >Zdarzenie<\/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\/wywolaj-zdarzenia\/#Aplikacja_w_tle\" >Aplikacja w tle<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/wywolaj-zdarzenia\/#Zlecenie_przetwarzania\" >Zlecenie przetwarzania<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/wywolaj-zdarzenia\/#Opis_aplikacji\" >Opis aplikacji<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/wywolaj-zdarzenia\/#Parametry_aplikacji_dzialajacej_w_tle\" >Parametry aplikacji dzia\u0142aj\u0105cej w tle<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/wywolaj-zdarzenia\/#Parametry_wywolanego_zdarzenia\" >Parametry wywo\u0142anego zdarzenia<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/wywolaj-zdarzenia\/#Przyklad\" >Przyk\u0142ad<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<p>Niniejsza dokumentacja opisuje, w jaki spos\u00f3b mo\u017cna wyzwala\u0107 zdarzenia workflow dla wybranych instancji jednostki biznesowej w bazie danych OLTP za pomoc\u0105 aplikacji dzia\u0142aj\u0105cej w tle <em>Wywo\u0142aj zdarzenia<\/em>.<\/p>\n<p>Spos\u00f3b rejestrowania definicji dzia\u0142a\u0144 dla wyzwalanych zdarze\u0144 w celu generowania na ich podstawie dzia\u0142ania mo\u017cna znale\u017a\u0107 w dokumentacji <em>Definicje dzia\u0142a\u0144<\/em>.<\/p>\n<h3 id=\"definicje-terminow\" ><span class=\"ez-toc-section\" id=\"Definicje_terminow\"><\/span>Definicje termin\u00f3w<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4 id=\"definicja-dzialania\" ><span class=\"ez-toc-section\" id=\"Definicja_dzialania\"><\/span>Definicja dzia\u0142ania<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Definicja dzia\u0142ania jest szablonem dla dzia\u0142a\u0144 generowanych na jej podstawie. Je\u015bli definicja dzia\u0142ania jest aktywna, silnik workflow tworzy nowe dzia\u0142anie, gdy wyst\u0105pi zarejestrowane zdarzenie, pod warunkiem spe\u0142nienia warunku przej\u015bcia. Definicje dzia\u0142a\u0144 s\u0105 niezale\u017cne od bazy danych OLTP i systemu, w kt\u00f3rym zosta\u0142y zarejestrowane, poniewa\u017c nie zawieraj\u0105 ani danych specyficznych dla systemu, ani danych specyficznych dla OLTP. Definicje dzia\u0142a\u0144 s\u0105 zapisywane w bazie danych repozytorium.<\/p>\n<h4 id=\"zdarzenie\" ><span class=\"ez-toc-section\" id=\"Zdarzenie\"><\/span>Zdarzenie<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Zdarzenia stanowi\u0105 podstaw\u0119 do tworzenia dzia\u0142a\u0144 z definicji dzia\u0142a\u0144 w ramach <em>Workflow Management<\/em>. Zdarzenia mog\u0105 by\u0107 wyzwalane przez zmiany danych dokonane przez system, aplikacj\u0119 lub dzia\u0142anie u\u017cytkownika. Zdarzenia zawieraj\u0105 parametry opisuj\u0105ce zdarzenie. Aby wygenerowa\u0107 dzia\u0142anie w momencie wyst\u0105pienia zdarzenia, aktywowana definicja dzia\u0142ania musi by\u0107 zarejestrowana dla tego zdarzenia, a warunek przej\u015bcia musi by\u0107 spe\u0142niony.<\/p>\n<h4 id=\"aplikacja-w-tle\" ><span class=\"ez-toc-section\" id=\"Aplikacja_w_tle\"><\/span>Aplikacja w tle<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Aplikacja dzia\u0142aj\u0105ca w tle to aplikacja, kt\u00f3ra jest wykonywana bez interakcji z u\u017cytkownikiem. Mo\u017ce zosta\u0107 otwarta przez zadanie przetwarzania, przez wywo\u0142anie CORBA lub przez inn\u0105 aplikacj\u0119.<\/p>\n<h4 id=\"zlecenie-przetwarzania\" ><span class=\"ez-toc-section\" id=\"Zlecenie_przetwarzania\"><\/span>Zlecenie przetwarzania<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Zlecenie przetwarzania zawiera informacje niezb\u0119dne do op\u00f3\u017anionego wykonania aplikacji dzia\u0142aj\u0105cej w tle przez kolejk\u0119 przetwarzania.<\/p>\n<h3 id=\"opis-aplikacji\" ><span class=\"ez-toc-section\" id=\"Opis_aplikacji\"><\/span>Opis aplikacji<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Aplikacja w tle <em>Wywo\u0142aj zdarzenia<\/em> wyzwala zdarzenie <em>com.cisag.pgm.workflow.InstanceEvent<\/em> dla wszystkich instancji obiekt\u00f3w biznesowych wybranych przez instrukcj\u0119 OQL. Aplikacja dzia\u0142aj\u0105ca w tle mo\u017ce by\u0107 wykonywana jednorazowo lub regularnie za pomoc\u0105 zlecenia przetwarzania. Dzia\u0142ania mog\u0105 by\u0107 generowane przy u\u017cyciu definicji dzia\u0142a\u0144, kt\u00f3re zarejestrowa\u0142y si\u0119 dla wyzwalanego zdarzenia.<\/p>\n<h4 id=\"parametry-aplikacji-dzialajacej-w-tle\" ><span class=\"ez-toc-section\" id=\"Parametry_aplikacji_dzialajacej_w_tle\"><\/span>Parametry aplikacji dzia\u0142aj\u0105cej w tle<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Aplikacja dzia\u0142aj\u0105ca w tle ma nast\u0119puj\u0105ce parametry:<\/p>\n<ul>\n<li><strong>Identyfikacja <\/strong>\u2013 nale\u017cy wybra\u0107 identyfikator, aby zidentyfikowa\u0107 zdarzenia wyzwalane przez to zlecenie przetwarzania w warunku przej\u015bcia definicji dzia\u0142ania i odr\u00f3\u017cni\u0107 je od zdarze\u0144 wyzwalanych przez inne zlecenia przetwarzania.<\/li>\n<li><strong>Obiekt biznesowy<\/strong> \u2013 nale\u017cy wybra\u0107 obiekt biznesowy, dla kt\u00f3rego maj\u0105 by\u0107 wyzwalane zdarzenia. Obiekt biznesowy musi by\u0107 przechowywany w bazie danych OLTP. Zdarzenia dla obiekt\u00f3w biznesowych w bazie danych repozytorium nie mog\u0105 by\u0107 wyzwalane.<\/li>\n<li><strong>SELECT FROM \u2026 o WHERE<\/strong> \u2013 nale\u017cy wprowadzi\u0107 fragment OQL dla klauzuli WHERE instrukcji OQL. Opcjonalnie mo\u017cna wprowadzi\u0107 kolejn\u0105 klauzul\u0119 ORDER BY, aby zdefiniowa\u0107 sekwencj\u0119 wyzwalanych zdarze\u0144. Obiekt biznesowy jest identyfikowany za pomoc\u0105 aliasu <em>o<\/em>. Za pomoc\u0105 klauzuli WHERE mo\u017cna ograniczy\u0107 wyst\u0105pienia, dla kt\u00f3rych zdarzenia s\u0105 wyzwalane. Je\u015bli nie mo\u017cna wyrazi\u0107 ograniczenia w klauzuli WHERE, nale\u017cy zaimplementowa\u0107 je w warunku przej\u015bcia w definicji dzia\u0142ania. Nale\u017cy pami\u0119ta\u0107, \u017ce ka\u017cde zdarzenie musi zosta\u0107 przetworzone przez serwer aplikacji i dlatego zajmuje troch\u0119 czasu. Dlatego najlepiej jest ograniczy\u0107 instancje za pomoc\u0105 klauzuli WHERE. Wi\u0119cej informacji na temat instrukcji OQL mo\u017cna znale\u017a\u0107 w dokumentacji <em>Sk\u0142adnia OQL<\/em>.<\/li>\n<\/ul>\n<h4 id=\"parametry-wywolanego-zdarzenia\" ><span class=\"ez-toc-section\" id=\"Parametry_wywolanego_zdarzenia\"><\/span>Parametry wywo\u0142anego zdarzenia<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Zdarzenie <em>com.cisag.pgm.workflow.InstanceEvent<\/em> posiada nast\u0119puj\u0105ce parametry:<\/p>\n<ul>\n<li><strong>identification<\/strong> \u2013 identyfikacji parametru <em>identification<\/em> mo\u017cna u\u017cy\u0107 do rozr\u00f3\u017cnienia zdarze\u0144, kt\u00f3re zosta\u0142y wyzwolone przez r\u00f3\u017cne zlecenia przetwarzania w definicji dzia\u0142ania. Identyfikacj\u0119 zdarzenia mo\u017cna dowolnie wybra\u0107 podczas wprowadzania zadania przetwarzania. Identyfikacja mo\u017ce zawiera\u0107 maksymalnie 25 znak\u00f3w.<\/li>\n<li><strong>objectInstance<\/strong> \u2013 parametru <em>objectInstance<\/em> mo\u017cna u\u017cy\u0107 do oceny obiektu biznesowego w definicji dzia\u0142ania, na przyk\u0142ad w warunku przej\u015bcia lub w deklaracjach. Je\u015bli j\u0119zyk skryptowy <em>J\u0119zyk skrypt\u00f3w systemu<\/em> jest ustawiony w definicji dzia\u0142ania, nale\u017cy u\u017cy\u0107 funkcji <em>cast()<\/em>, aby m\u00f3c oceni\u0107 instancj\u0119 obiektu biznesowego. Poni\u017cszy przyk\u0142ad okre\u015bla obs\u0142uguj\u0105cego zadania pomocy technicznej, dla kt\u00f3rego zosta\u0142o wyzwolone zdarzenie.<\/li>\n<\/ul>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">cast(CisObject(com.cisag.app.general.obj.Partner),parameters.objectInstance):worker<\/div><\/section>\n<ul>\n<li><strong>objectName<\/strong> \u2013 nazwa techniczna obiektu biznesowego w parametrze <em>objectName<\/em> jest dodatkowym kryterium rozr\u00f3\u017cniaj\u0105cym, je\u015bli identyfikacja w parametrze <em>Identyfikacja<\/em> nie jest unikalna.<\/li>\n<\/ul>\n<h4 id=\"przyklad\" ><span class=\"ez-toc-section\" id=\"Przyklad\"><\/span>Przyk\u0142ad<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Osoba przetwarzaj\u0105ca zg\u0142oszenie supportowe typu <em>REQ<\/em>, kt\u00f3re nie zosta\u0142o jeszcze zako\u0144czone, powinna zosta\u0107 powiadomiona, je\u015bli zg\u0142oszenie supportowe nie zmieni\u0142o si\u0119 w statusie <em>Informacje wymagane<\/em> dla tego samego pracownika przez co najmniej siedem dni.<\/p>\n<p>W tym celu nale\u017cy utworzy\u0107 definicj\u0119 procesu i zarejestrowa\u0107 zaprogramowane zdarzenie com.cisag.pgm.workflow.InstanceEvent na zak\u0142adce <em>Zdarzenia<\/em> definicji dzia\u0142ania w\u0119z\u0142a startowego. Je\u015bli j\u0119zyk skryptowy <em>J\u0119zyk skrypt\u00f3w systemu<\/em> jest ustawiony dla definicji dzia\u0142ania, nale\u017cy wprowadzi\u0107 nast\u0119puj\u0105cy warunek przej\u015bcia:<\/p>\n<p><em>parameters.identification = &#8222;INFORMATION_REQUIRED&#8221; AND<br \/>\ndays(cast(CisObject(com.cisag.app.internal.obj.SupportRequest),<br \/>\nparameters.objectInstance):updateInfo.updateTime, now()) &gt; 7<\/em><\/p>\n<p>W warunku przej\u015bcia najpierw sprawdzana jest identyfikacja. Nast\u0119pnie sprawdzane jest, czy data ostatniej zmiany zg\u0142oszenia supportowego jest starsza ni\u017c siedem dni. Ten warunek jest wystarczaj\u0105cy do okre\u015blenia, czy zg\u0142oszenie supportowe oczekuje na informacje od tego samego obs\u0142uguj\u0105cego przez co najmniej siedem dni, poniewa\u017c atrybut <em>updateInfo.updateTime<\/em> jest r\u00f3wnie\u017c zmieniany przy ka\u017cdej zmianie stanu i zmianie obs\u0142uguj\u0105cego.<\/p>\n<p>Nast\u0119pnie nale\u017cy otworzy\u0107 aplikacj\u0119 dzia\u0142aj\u0105c\u0105 w tle <em>Wywo\u0142aj zdarzenia<\/em> i utworzy\u0107 zlecenie przetwarzania, kt\u00f3re wyzwala zdarzenie dla wszystkich zg\u0142osze\u0144 serwisowych ze statusem <em>Informacje wymagane<\/em> (numeryczny identyfikator: 15):<\/p>\n<table style=\"border-style: outset; border-color: #000000; background-color: #ffffff;\">\n<tbody>\n<tr>\n<td style=\"border-style: outset; border-color: #000000; background-color: #ffffff;\" width=\"302\"><strong>Parametr<\/strong><\/td>\n<td style=\"border-style: outset; border-color: #000000; background-color: #ffffff;\" width=\"302\"><strong>Warto\u015b\u0107<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"border-style: outset; border-color: #000000; background-color: #ffffff;\" width=\"302\">Identyfikacja<\/td>\n<td style=\"border-style: outset; border-color: #000000; background-color: #ffffff;\" width=\"302\">INFORMATION_REQUIRED<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style: outset; border-color: #000000; background-color: #ffffff;\" width=\"302\">Obiekt biznesowy<\/td>\n<td style=\"border-style: outset; border-color: #000000; background-color: #ffffff;\" width=\"302\">com.cisag.app.internal.obj.SupportRequest<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style: outset; border-color: #000000; background-color: #ffffff;\" width=\"302\">SELECT FROM &#8230; o WHERE<\/td>\n<td style=\"border-style: outset; border-color: #000000; background-color: #ffffff;\" width=\"302\">o:orderNumber like 'REQ-%&#8217; AND<\/p>\n<p>o:status = 15<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>W przypadku uruchomienia aplikacji w tle jako serii, dzia\u0142ania s\u0105 generowane zgodnie z wybranym wzorcem serii.<\/p>\n<p>Aby zminimalizowa\u0107 liczb\u0119 wyzwalanych zdarze\u0144, a tym samym unikn\u0105\u0107 niepotrzebnego obci\u0105\u017cenia, nale\u017cy jak najszybciej sprawdzi\u0107 warunki przej\u015bcia w instrukcji OQL. Na przyk\u0142ad w poni\u017cszej instrukcji OQL wystarczy sprawdzi\u0107 identyfikacj\u0119 w warunku przej\u015bcia:<\/p>\n<p><em>o: &#8222;type&#8221; IN (<br \/>\nSELECT SRT: &#8222;guid&#8221;<br \/>\nFROM com.cisag.app.internal.obj.SupportRequestType SRT<br \/>\nWHERE SRT: &#8222;code&#8221; = 'REQ&#8217;) AND o<br \/>\n: &#8222;status&#8221; IN (15) AND o<br \/>\n: &#8222;updateInfo.updateTime&#8221; &lt; SYSTEMTIME &#8211; (toTimeStamp(&#8217;GMT&#8217;, 2017,1,8,0,0,0,0) &#8211; toTimeStamp(&#8217;GMT&#8217;, 2017,1,1,0,0,0,0))<br \/>\nORDER BY o: &#8222;orderNumber&#8221; ASC<\/em><\/p>\n","protected":false},"author":27,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-10673","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-definicje-workflow"],"_links":{"self":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/10673","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\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/comments?post=10673"}],"version-history":[{"count":3,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/10673\/revisions"}],"predecessor-version":[{"id":25544,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/10673\/revisions\/25544"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/media?parent=10673"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}