{"id":9691,"date":"2025-06-02T12:52:54","date_gmt":"2025-06-02T10:52:54","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/?post_type=ht_kb&#038;p=9691"},"modified":"2025-07-24T11:10:58","modified_gmt":"2025-07-24T09:10:58","slug":"podrecznik-referencyjny-reorganizacje","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/","title":{"rendered":"Podr\u0119cznik referencyjny: Reorganizacje"},"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\/podrecznik-referencyjny-reorganizacje\/#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\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#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-3\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Warunki_wstepne\" >Warunki wst\u0119pne<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#ProgramowanieRozwoj\" >Programowanie\/Rozw\u00f3j<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Rejestrowanie_obiektu_deweloperskiego_%E2%80%93_Java_class\" >Rejestrowanie obiektu deweloperskiego \u2013 Java class<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Rejestrowanie_obiektu_deweloperskiego_%E2%80%93_Application\" >Rejestrowanie obiektu deweloperskiego \u2013 Application<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Tworzenie_aplikacji_reorganizacji\" >Tworzenie aplikacji reorganizacji<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Klasa_Java_CisReorganisationInfo\" >Klasa Java CisReorganisationInfo<\/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\/podrecznik-referencyjny-reorganizacje\/#Klasa_Java_CisReorganisationData\" >Klasa Java CisReorganisationData<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Klasa_Java_CisReorganisationApplicationEditor\" >Klasa Java CisReorganisationApplicationEditor<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Klasa_Java_CisBatchApplicationEditor\" >Klasa Java CisBatchApplicationEditor<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Metody_mozliwe_do_nadpisania\" >Metody mo\u017cliwe do nadpisania<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Dodatkowe_metody_interfejsu\" >Dodatkowe metody interfejsu<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Klasa_Java_CisReorganizationApplication\" >Klasa Java CisReorganizationApplication<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Minimalna_implementacja\" >Minimalna implementacja<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Rozszerzenie_o_wiekszej_zlozonosci\" >Rozszerzenie o wi\u0119kszej z\u0142o\u017cono\u015bci<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Metody_nadpisywalne\" >Metody nadpisywalne<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Inne_metody_interfejsu\" >Inne metody interfejsu<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Testowanie_aplikacji_reorganizacji\" >Testowanie aplikacji reorganizacji<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/podrecznik-referencyjny-reorganizacje\/#Dokumentowanie_aplikacji_reorganizacji\" >Dokumentowanie aplikacji reorganizacji<\/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=\"86\" data-end=\"360\">Podczas pracy systemu nieustannie generowane s\u0105 dane, kt\u00f3re powoduj\u0105 stopniowy wzrost rozmiaru baz danych. Wi\u0119kszo\u015b\u0107 z tych danych z czasem traci aktualno\u015b\u0107 i mo\u017ce zosta\u0107 usuni\u0119ta z bazy danych w celu oszcz\u0119dno\u015bci miejsca oraz poprawy wydajno\u015bci dost\u0119pu do danych.<\/p>\n<p data-start=\"362\" data-end=\"522\">W systemie do tego celu wykorzystywane s\u0105 aplikacje reorganizacji, kt\u00f3re umo\u017cliwiaj\u0105 archiwizacj\u0119 danych poprzez ich eksport, a nast\u0119pnie usuni\u0119cie.<\/p>\n<p data-start=\"524\" data-end=\"663\" data-is-last-node=\"\" data-is-only-node=\"\">Niniejszy dokument opisuje spos\u00f3b tworzenia aplikacji reorganizacji tak, aby mog\u0142a by\u0107 u\u017cywana w aplikacji <em>Zlecenia reorganizacji<\/em>.<\/p>\n<p>Podstawowe poj\u0119cia zwi\u0105zane z aplikacjami w tle mo\u017cna znale\u017a\u0107 w artykule:\u00a0<em><a title=\"Definicje: Zarz\u0105dzanie systemem\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicje-zarzadzanie-systemem\/\">Definicje: Zarz\u0105dzanie systemem.<\/a><\/em><\/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>Programi\u015bci<\/li>\n<li>Konsultanci techniczni<\/li>\n<\/ul>\n<h3 id=\"warunki-wstepne\" ><span class=\"ez-toc-section\" id=\"Warunki_wstepne\"><\/span>Warunki wst\u0119pne<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Je\u015bli dane maj\u0105 zosta\u0107 zarchiwizowane poprzez eksport przed ich usuni\u0119ciem musi by\u0107 dost\u0119pny kontroler eksportu BIS.<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Kontroler eksportu BIS jest dost\u0119pny, je\u015bli mo\u017cna zdefiniowa\u0107 filtr eksportu dla jednostki biznesowej w aplikacji <em>Eksport danych<\/em>.<\/div><\/section>\n<h3 id=\"programowanie-rozwoj\" ><span class=\"ez-toc-section\" id=\"ProgramowanieRozwoj\"><\/span>Programowanie\/Rozw\u00f3j<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p data-start=\"105\" data-end=\"365\">Niniejszy rozdzia\u0142 opisuje tworzenie i integracj\u0119 nowych aplikacji reorganizacyjnych dla aplikacji <em>Zlecenia reorganizacji.<\/em> Aplikacja reorganizacyjna to specjalna aplikacja dzia\u0142aj\u0105ca w tle. Tworzenie aplikacji reorganizacyjnej przebiega w kilku krokach:<\/p>\n<ol data-start=\"367\" data-end=\"611\" data-is-last-node=\"\" data-is-only-node=\"\">\n<li data-start=\"367\" data-end=\"424\">\n<p data-start=\"370\" data-end=\"424\"><em><a href=\"#rodjs\">Rejestrowanie obiektu deweloperskiego \u2013 Java class<\/a><\/em><\/p>\n<\/li>\n<li data-start=\"425\" data-end=\"481\">\n<p data-start=\"428\" data-end=\"481\"><em><a href=\"#roda\">Rejestrowanie obiektu deweloperskiego \u2013 Application<\/a><\/em><\/p>\n<\/li>\n<li data-start=\"482\" data-end=\"523\">\n<p data-start=\"485\" data-end=\"523\"><em><a href=\"#tar\">Tworzenie aplikacji reorganizacji<\/a><\/em><\/p>\n<\/li>\n<li data-start=\"524\" data-end=\"566\">\n<p data-start=\"527\" data-end=\"566\"><em><a href=\"#tar\">Testowanie aplikacji reorganizacji<\/a><\/em><\/p>\n<\/li>\n<li data-start=\"567\" data-end=\"611\" data-is-last-node=\"\">\n<p data-start=\"570\" data-end=\"611\" data-is-last-node=\"\"><em><a href=\"#dar\">Dokumentowanie aplikacji reorganizacji<\/a><\/em><\/p>\n<\/li>\n<\/ol>\n<h4 id=\"rejestrowanie-obiektu-deweloperskiego-java-class\" ><span class=\"ez-toc-section\" id=\"Rejestrowanie_obiektu_deweloperskiego_%E2%80%93_Java_class\"><\/span><a id=\"rodjs\"><\/a>Rejestrowanie obiektu deweloperskiego \u2013 Java class<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Dla aplikacji reorganizacji wymagana jest klasa Java, kt\u00f3ra musi znajdowa\u0107 si\u0119 w przestrzeni nazw, kt\u00f3ra ko\u0144czy si\u0119 na <em>log<\/em>. Powinna mie\u0107 tak\u0105 sam\u0105 nazw\u0119 jak aplikacja. Jednostka biznesowa powinna by\u0107 rozpoznawalna na podstawie nazwy.<\/p>\n<h4 id=\"rejestrowanie-obiektu-deweloperskiego-application\" ><span class=\"ez-toc-section\" id=\"Rejestrowanie_obiektu_deweloperskiego_%E2%80%93_Application\"><\/span><a id=\"roda\"><\/a>Rejestrowanie obiektu deweloperskiego \u2013 Application<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p data-start=\"99\" data-end=\"533\">Aby mo\u017cliwe by\u0142o zintegrowanie aplikacji reorganizacji ze zleceniem reorganizacji, nale\u017cy utworzy\u0107 obiekt deweloperski typu <em>Application<\/em>. Ustawienie w polu <em>Typ<\/em> warto\u015bci <em>W tle<\/em>\u00a0oraz\u00a0<em>Szczeg\u00f3lne <\/em><em>zastosowanie<\/em> na <em>Reorganizacja<\/em>\u00a0umo\u017cliwia dodanie aplikacji dzia\u0142aj\u0105cej w tle do zlecenia reorganizacji. To ustawienie powoduje r\u00f3wnie\u017c, \u017ce aplikacja reorganizacji nie mo\u017ce by\u0107 uruchamiana z poziomu aplikacji <em>Zlecenia przetwarzania.<\/em><\/p>\n<p data-start=\"535\" data-end=\"749\">Aplikacje dzia\u0142aj\u0105ce w tle ze szczeg\u00f3lnym zastosowaniem <em>Reorganizacja<\/em> otrzymuj\u0105 nazw\u0119 w formacie <em>&lt;Object&gt;Reorganization<\/em> oraz etykiet\u0119 w formie <em><strong data-start=\"680\" data-end=\"710\">Reorganizacja &lt;obiekt\u00f3w&gt;<\/strong><\/em>\u00a0(w liczbie mnogiej).<\/p>\n<p data-start=\"752\" data-end=\"810\"><section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\"><\/p>\n<ul>\n<li data-start=\"750\" data-end=\"810\">\n<p data-start=\"752\" data-end=\"810\">Nazwa: <code data-start=\"759\" data-end=\"808\">cisag.app.sales.pricing.log.PriceReorganization<\/code><\/p>\n<\/li>\n<li data-start=\"811\" data-end=\"852\">\n<p data-start=\"813\" data-end=\"852\">Etykieta: <em>Reorganizacja cen sprzeda\u017cy<\/em><\/p>\n<\/li>\n<\/ul>\n<p data-start=\"752\" data-end=\"810\"><\/div><\/section><\/p>\n<p data-start=\"854\" data-end=\"1211\">Ustawienie pola <em>Ustawienia prezentacji i utrzymania<\/em> powinno mie\u0107 warto\u015b\u0107 <em>Prezentacja, utrzymanie<\/em>, aby aplikacja reorganizacyjna by\u0142a widoczna w aplikacji <em>Zlecenia reorganizacji<\/em>.<br data-start=\"1042\" data-end=\"1045\" \/>Tryb uprawnie\u0144 nale\u017cy ustawi\u0107 na<em> Z kontrol\u0105,<\/em> poniewa\u017c logika aplikacji reorganizacji nie zawiera w\u0142asnych mechanizm\u00f3w weryfikacji uprawnie\u0144.<\/p>\n<p data-start=\"1213\" data-end=\"1425\">W aplikacji <em>Zlecenia reorganizacji<\/em> weryfikowana jest r\u00f3wnie\u017c baza danych przypisana do aplikacji reorganizacji. W tym celu konieczne jest poprawne ustawienie parametru <em>Wymagane aktywne bazy danych.<\/em><\/p>\n<p data-start=\"1427\" data-end=\"1553\" data-is-last-node=\"\" data-is-only-node=\"\"><strong data-start=\"1427\" data-end=\"1437\">Uwaga:<\/strong><br data-start=\"1437\" data-end=\"1440\" \/>Dla zastosowania standardowej implementacji nale\u017cy poda\u0107 <em>G\u0142\u00f3wna jednostka biznesowa<\/em><strong data-start=\"1497\" data-end=\"1526\">.<\/strong><\/p>\n<h4 id=\"tworzenie-aplikacji-reorganizacji\" ><span class=\"ez-toc-section\" id=\"Tworzenie_aplikacji_reorganizacji\"><\/span><a id=\"tar\"><\/a>Tworzenie aplikacji reorganizacji<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Interfejs udost\u0119pniany do tworzenia aplikacji reorganizacji znajduje si\u0119 w przestrzeni nazw <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">com.cisag.pgm.base.reorg<\/code>. Najwa\u017cniejsz\u0105 klas\u0105 jest <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganizationApplication<\/code>. Wszystkie aplikacje reorganizacji musz\u0105 by\u0107 klasami pochodnymi klasy bazowej.<\/p>\n<p>Poni\u017cej przedstawiono klasy Java dost\u0119pne w tej przestrzeni nazw:<\/p>\n<ul>\n<li>Java class: <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganizationApplication<\/code><span style=\"color: initial;\"> &#8211; klasa bazowa dla wszystkich aplikacji reorganizacji.<\/span><\/li>\n<li>Java class: <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganizationApplicationEditor<\/code>\u00a0&#8211; standardowy edytor parametr\u00f3w; alternatywnie mo\u017cna zastosowa\u0107 klas\u0119 pochodn\u0105 od <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisBatchApplicationEditor<\/code> do wprowadzania parametr\u00f3w.<\/li>\n<li>Java class: <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganizationData<\/code>\u00a0&#8211; kontener danych zawieraj\u0105cy dane uruchomieniowe.<\/li>\n<li>Java class: <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganizationInfo<\/code>\u00a0&#8211; klasa zawieraj\u0105ca metadane aplikacji reorganizacji.<\/li>\n<li>Java class: <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">ReorganizationAction<\/code>\u00a0&#8211; zbi\u00f3r warto\u015bci (ValueSet) wykorzystywany podczas zliczania przetworzonych instancji.<\/li>\n<li>Java class: <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">ReorganizationActionResult<\/code>\u00a0&#8211; zbi\u00f3r warto\u015bci (ValueSet) definiuj\u0105cy warto\u015bci zwracane przez metody.<\/li>\n<li>Java class: <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">ReorganizationExportControllerMode<\/code>\u00a0&#8211; zbi\u00f3r warto\u015bci (ValueSet) s\u0142u\u017c\u0105cy do sterowania metadanymi eksportu w kontek\u015bcie archiwizacji.<\/li>\n<li>Java class: <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">ReorganizationFilterMode<\/code>\u00a0&#8211; zbi\u00f3r warto\u015bci (ValueSet) s\u0142u\u017c\u0105cy do sterowania eksportem danych do archiwum w czasie wykonywania aplikacji.<\/li>\n<\/ul>\n<h5 id=\"klasa-java-cisreorganisationinfo\" ><span class=\"ez-toc-section\" id=\"Klasa_Java_CisReorganisationInfo\"><\/span><a id=\"CisReorganisationInfo\"><\/a>Klasa Java <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganisationInfo<\/code><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Klasa <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganisationInfo<\/code> zawiera metadane dla aplikacji reorganizacji. Po utworzeniu instancji klasy <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganisationInfo<\/code> mo\u017cna wp\u0142ywa\u0107 na zachowanie eksportu i rozmiar transakcji.<\/p>\n<p><strong>Metoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">createForBusinessEntity(Class businessEntityClass)<\/code><\/strong><\/p>\n<p>Instancj\u0119 klasy <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganisationInfo<\/code> mo\u017cna utworzy\u0107 tylko za pomoc\u0105 metody <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">createForBusinessEntity(Class)<\/code>. Parametr okre\u015bla podmiot biznesowy, dla kt\u00f3rego tworzona jest reorganizacja.<\/p>\n<p><strong><a id=\"setTransactionBlockSize\"><\/a>Metoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">setTransactionBlockSize(int size)<\/code><\/strong><\/p>\n<p>W domy\u015blnym zachowaniu aplikacja reorganizacji usuwa maksymalnie 1000 instancji w ramach jednej transakcji. Zachowanie to mo\u017cna dostosowa\u0107, wywo\u0142uj\u0105c metod\u0119 <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">setTransactionBlockSize()<\/code>.<\/p>\n<p><strong><a id=\"setExport\"><\/a>Metoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">setExportControllerMode(short mode)<\/code><\/strong><\/p>\n<p data-start=\"0\" data-end=\"515\">Zachowanie eksportu w aplikacji reorganizacji mo\u017ce by\u0107 sterowane za pomoc\u0105 wywo\u0142ania metody <strong><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">setExportControllerMode(short mode)<\/code><\/strong>. Parametr <strong><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">mode<\/code><\/strong> okre\u015bla, czy aplikacja reorganizacji obs\u0142uguje eksport danych. Je\u015bli eksportowanie jest wspierane, mo\u017cna rozr\u00f3\u017cni\u0107, czy ma zosta\u0107 u\u017cyty standardowy kontroler eksportu BIS, czy te\u017c specjalny kontroler eksportu dedykowany dla danej aplikacji reorganizacji. W przypadku u\u017cycia specjalnego kontrolera eksportu nale\u017cy poda\u0107 nazw\u0119 klasy Java tego kontrolera.<\/p>\n<p data-start=\"517\" data-end=\"643\" data-is-last-node=\"\" data-is-only-node=\"\"><section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Warto\u015b\u0107 domy\u015blna dla zachowania eksportu to <em>Brak kontrolera<\/em>, co oznacza, \u017ce eksport nie b\u0119dzie realizowany.<\/div><\/section><\/p>\n<h5 id=\"klasa-java-cisreorganisationdata\" ><span class=\"ez-toc-section\" id=\"Klasa_Java_CisReorganisationData\"><\/span>Klasa Java <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganisationData<\/code><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Kontener danych dla \u015brodowiska uruchomieniowego zawieraj\u0105cy dane konfiguracyjne.<\/p>\n<ul>\n<li>metoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">GetDatabaseGuid()<\/code> zwraca identyfikator bazy danych, na kt\u00f3rej wykonywana jest aplikacja reorganizacji.<\/li>\n<li>metoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getDatabaseName()<\/code> zwraca nazw\u0119 bazy danych, na kt\u00f3rej wykonywana jest aplikacja do reorganizacji.<\/li>\n<li>metoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getMaximumRuntime()<\/code>zwraca specyfikacj\u0119 czasu wykonywania ustawion\u0105 przez u\u017cytkownika w edytorze.<\/li>\n<li>metoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getParameterList()<\/code> zwraca instancj\u0119 klasy <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisParameterList<\/code>, kt\u00f3ra zawiera dane wej\u015bciowe u\u017cytkownika do konfiguracji aplikacji reorganizacji.<\/li>\n<li>metoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getReorganisationInfo()<\/code> zwraca metadane aplikacji reorganizacji.<\/li>\n<\/ul>\n<h5 id=\"klasa-java-cisreorganisationapplicationeditor\" ><span class=\"ez-toc-section\" id=\"Klasa_Java_CisReorganisationApplicationEditor\"><\/span>Klasa Java <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganisationApplicationEditor<\/code><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Klasa <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganisationApplicationEditor<\/code> jest implementacj\u0105 klasy Java <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisBatchApplicationEditor<\/code>, szczeg\u00f3\u0142y w rozdziale <span style=\"color: #ff00ff;\"><em><a href=\"#cbae\">Klasa Java CisBatchApplicationEditor<\/a><\/em><\/span>. Edytor udost\u0119pnia do czterech p\u00f3l wej\u015bciowych. Klasa <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganisationApplicationEditor<\/code> jest konfigurowana przy u\u017cyciu metadanych w klasie Java <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getReorganisationInfo<\/code> (rozdzia\u0142 <em><a href=\"http:\/\/CisReorganisationInfo\" data-wplink-url-error=\"true\">Klasa Java CisReorganisationInfo<\/a><\/em>). Dost\u0119pne s\u0105 nastepuj\u0105ce pola:<\/p>\n<ul>\n<li><strong>Maksymalny czas dzia\u0142ania<\/strong> &#8211; zawsze dost\u0119pny<\/li>\n<li><strong>Folder docelowy<\/strong> &#8211; pole jest dost\u0119pne tylko wtedy, gdy eksportowanie jest wspierane i aplikacja reorganizacji zosta\u0142a otwarta bezpo\u015brednio.<br data-start=\"141\" data-end=\"144\" \/>W aplikacji <em>Zlecenia reorganizacji<\/em> zapisywany jest pusty element.<\/li>\n<li><strong>Eksport<\/strong> -w polu <em>Eksport<\/em> u\u017cytkownik mo\u017ce okre\u015bli\u0107, czy i w jaki spos\u00f3b dane maj\u0105 by\u0107 eksportowane.<\/li>\n<li><strong>Filtr eksportu<\/strong> &#8211; w\u00a0polu <em>Filtr eksportu<\/em> u\u017cytkownik mo\u017ce okre\u015bli\u0107 filtr eksportu, je\u015bli w polu <em>Eksport<\/em> wybrano warto\u015b\u0107 <em>Filtr eksportu<\/em>.<\/li>\n<\/ul>\n<p>Aby rozszerzy\u0107 klas\u0119 <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganisationApplicationEditor<\/code> nale\u017cy nadpisa\u0107 nast\u0119puj\u0105ce metody:<\/p>\n<ul>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">init(int visualisationType)<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">dataFromUi<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">dataToUi<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">validate<\/code><\/li>\n<\/ul>\n<h5 id=\"klasa-java-cisbatchapplicationeditor\" ><span class=\"ez-toc-section\" id=\"Klasa_Java_CisBatchApplicationEditor\"><\/span><a id=\"cbae\"><\/a>Klasa Java <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisBatchApplicationEditor<\/code><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Klasa Java <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisBatchApplicationEditor<\/code> zapewnia interfejs, za pomoc\u0105 kt\u00f3rego mo\u017cna tworzy\u0107 parametry wej\u015bciowe aplikacji dzia\u0142aj\u0105cych w tle. W konstruktorze i deklaracjach edytora nie mog\u0105 wyst\u0119powa\u0107 \u017cadne inicjalizacje. Aby utworzy\u0107 oddzieln\u0105 podklas\u0119 <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisBatchApplicationEditor<\/code>, nale\u017cy zaimplementowa\u0107 kilka metod:<\/p>\n<ul>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">init(int visualisationType)<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getActionId()<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getVisualElement()<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">applyDefaults()<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">dataFromUi()<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">dataToUi()<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">validate()<\/code><\/li>\n<\/ul>\n<p>Interfejs zawiera r\u00f3wnie\u017c metody wspieraj\u0105ce implementacj\u0119 i wykonanie:<\/p>\n<ul>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">areOutputOptionsEnabled()<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">isOnlineSubmitEnabled()<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">isBatchSubmitEnabled()<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getParameterList()<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">isEditable()<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">isEnabled()<br \/>\n<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">setVisualElementProperties()<\/code><\/li>\n<\/ul>\n<h5 id=\"metody-mozliwe-do-nadpisania\" ><span class=\"ez-toc-section\" id=\"Metody_mozliwe_do_nadpisania\"><\/span>Metody mo\u017cliwe do nadpisania<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p><strong><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">init(int visualisationType)<\/code><\/strong>&#8211; instancja klasy <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisBatchApplicationEditor<\/code> jest inicjowana tylko przez wywo\u0142anie metody <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">init(int)<\/code>. Wizualizacja zawsze odbywa si\u0119 w uk\u0142adzie <em>StandardLayout<\/em>. Kolumny s\u0105 definiowane poza edytorem. Parametr <em>visualisationType<\/em> odnosi si\u0119 do sta\u0142ych klasy <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisBatchApplicationEditor<\/code> i okre\u015bla liczb\u0119 kolumn dla uk\u0142adu:<\/p>\n<ul>\n<li>VISUALISATION_TYPE_DIALOGUE &#8211; edytor jest wy\u015bwietlany w oknie dialogowym, a wszystkie pola musz\u0105 by\u0107 dodane do kolumny 0.<\/li>\n<li>VISUALISATION_TYPE_APPLICATION &#8211; edytor jest wy\u015bwietlany w aplikacji, a pola musz\u0105 by\u0107 dodawane naprzemiennie do kolumny 0 i kolumny 1.<\/li>\n<\/ul>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getActionId()<\/code>\u00a0&#8211; zwraca actionId dla wywo\u0142ania aplikacji w tle.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getVisualElement()<\/code>\u00a0&#8211; zwraca element, kt\u00f3ry mo\u017cna doda\u0107 do kontenera wywo\u0142uj\u0105cego.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">applyDefaults()<\/code> &#8211; edytor mo\u017ce ustawi\u0107 warto\u015bci domy\u015blne dla parametr\u00f3w na li\u015bcie parametr\u00f3w w metodzie <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">applyDefaults()<\/code>. Warto\u015bci domy\u015blne powinny prowadzi\u0107 do pomy\u015blnego sprawdzenia bez interakcji u\u017cytkownika.<br \/>\n<span style=\"color: #ff00ff;\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">dataFromUi()<\/code><\/span> &#8211; w tej metodzie warto\u015bci z p\u00f3l musz\u0105 zosta\u0107 skopiowane do listy parametr\u00f3w.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">dataToUi()<\/code> &#8211; metoda jest wywo\u0142ywana, je\u017celi dane z listy parametr\u00f3w maj\u0105 zosta\u0107 umieszczone w polach. Mo\u017cliwo\u015b\u0107 edycji i aktywny wska\u017anik musz\u0105 by\u0107 ustawione dla ka\u017cdego pola. Te w\u0142a\u015bciwo\u015bci pola mo\u017cna r\u00f3wnie\u017c ustawi\u0107 poprzez wywo\u0142anie metody <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">setVisualElementProperties()<\/code>.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">validate()<\/code> &#8211; metoda sprawdza wprowadzone przez u\u017cytkownika parametry.<\/p>\n<h5 id=\"dodatkowe-metody-interfejsu\" ><span class=\"ez-toc-section\" id=\"Dodatkowe_metody_interfejsu\"><\/span>Dodatkowe metody interfejsu<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">areOutputOptionsEnabled()<\/code>\u00a0&#8211; warto\u015b\u0107 zwracana przez metod\u0119 kontroluje widoczno\u015b\u0107 zak\u0142adki [<strong>Ustawienia wydania<\/strong>]<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">isOnlineSubmitEnabled()<\/code>\u00a0&#8211; warto\u015b\u0107 zwracana przez metod\u0119 kontroluje widoczno\u015b\u0107 przycisk\u00f3w [<strong>Natychmiast<\/strong>] lub [<strong>Poka\u017c<\/strong>].<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">isBatchSubmitEnabled()<\/code>\u00a0&#8211; warto\u015b\u0107 zwracana przez metod\u0119 kontroluje widoczno\u015b\u0107 przycisk\u00f3w [<strong>W tle<\/strong>] lub [<strong>Drukuj<\/strong>]<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getParameterList()<\/code>\u00a0&#8211; metoda dost\u0119pu do listy parametr\u00f3w zawieraj\u0105cej dane konfiguracyjne.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">isEditable()<\/code>\u00a0&#8211; zapytanie o mo\u017cliwo\u015b\u0107 zmiany danych.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">isEnabled()<\/code>\u00a0&#8211; zapytanie o aktywacj\u0119 p\u00f3l.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">setVisualElementProperties()<\/code>\u00a0&#8211; ustawia zmienno\u015b\u0107 i aktywny wska\u017anik dla wszystkich przesy\u0142anych element\u00f3w.<\/p>\n<h5 id=\"klasa-java-cisreorganizationapplication\" ><span class=\"ez-toc-section\" id=\"Klasa_Java_CisReorganizationApplication\"><\/span>Klasa Java <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganizationApplication<\/code><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Klasa Java <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganizationApplication<\/code> jest podstaw\u0105 dla wszystkich aplikacji reorganizacji. Najwa\u017cniejsz\u0105 metod\u0105 jest metoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">reorganize()<\/code>, kt\u00f3ra zawiera ca\u0142\u0105 kontrol\u0119 procesu. Zachowanie aplikacji do reorganizacji mo\u017cna ca\u0142kowicie zmieni\u0107 poprzez nadpisanie tej metody. Jednak celem implementacji powinno by\u0107 wykorzystanie jak najwi\u0119kszej ilo\u015bci standardowych funkcji. Z tego powodu obiekt przekazywany do wszystkich metod jest typu <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">java.lang.Object<\/code>.<\/p>\n<h5 id=\"minimalna-implementacja\" ><span class=\"ez-toc-section\" id=\"Minimalna_implementacja\"><\/span>Minimalna implementacja<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Podstawowa struktura zosta\u0142a zaprojektowana tak, aby umo\u017cliwi\u0107 tworzenie aplikacji reorganizacji przy minimalnym nak\u0142adzie pracy. Przetwarzany obiekt biznesowy (Business Entity) musi zawiera\u0107 cz\u0119\u015b\u0107 <em>UpdateInformation<\/em>, a znacznik usuni\u0119cia musi by\u0107 zrealizowany poprzez atrybut <em><strong data-start=\"285\" data-end=\"301\">deleteTime<\/strong>\u00a0<\/em>w tej cz\u0119\u015bci. Aplikacj\u0119 reorganizacji dla takiego obiektu mo\u017cna utworzy\u0107 poprzez implementacj\u0119 metod <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">createReorganizationInfo()<\/code> oraz <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">validateObject()<\/code>. Aplikacja dzia\u0142a automatycznie w trybie blokowym.<\/p>\n<p>Metoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">createReorganizationInfo()<\/code> &#8211; tworzy metadane dla aplikacji reorganizacji. W tym celu wywo\u0142ywana jest metoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">createForBusinessEntity(Class businessEntityClass)<\/code> w klasie Java <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganizationInfo<\/code>. Nast\u0119pnie nale\u017cy jeszcze ustawi\u0107 tryb dla kontrolera eksportu (rozdzia\u0142 <em><a href=\"#setExport\">Metoda setExport-ControllerMode(short mode)<\/a><\/em>).<br \/>\nMetoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">validateObject()<\/code> &#8211;\u00a0musi by\u0107 u\u017cyta do sprawdzenia, czy przekazana instancja nie jest ju\u017c u\u017cywana i czy mo\u017ce zosta\u0107 usuni\u0119ta.<\/p>\n<h5 id=\"rozszerzenie-o-wiekszej-zlozonosci\" ><span class=\"ez-toc-section\" id=\"Rozszerzenie_o_wiekszej_zlozonosci\"><\/span>Rozszerzenie o wi\u0119kszej z\u0142o\u017cono\u015bci<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Przyk\u0142ad nie oznacza, \u017ce przetwarzanie blokowe musi by\u0107 programowane w spos\u00f3b jawny. Interfejs <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisObjectIterator()<\/code>\u00a0odczytuje dane blokowo. Blokowe usuwanie danych mo\u017ce by\u0107 kontrolowane poprzez ustawienie rozmiaru transakcji.<\/div><\/section>\n<p>Prawie wszystkie metody mog\u0105 by\u0107 zaimplementowane dla bardziej z\u0142o\u017conych zada\u0144. Na przyk\u0142ad, aby zrealizowa\u0107 przetwarzanie blok po bloku samych obiekt\u00f3w, rozmiar transakcji musi by\u0107 ustawiony na 1 (rozdzia\u0142 <em><a href=\"#setTransactionBlockSize\">Metoda setTransactionBlockSize(int size)<\/a><\/em>). Ponadto nale\u017cy nadpisa\u0107 nast\u0119puj\u0105ce metody:<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">createIterator()<\/code> &#8211; nale\u017cy utworzy\u0107 osobn\u0105 instancj\u0119 z interfejsem <em>Iterator<\/em>, kt\u00f3ra jako przyk\u0142ad udost\u0119pnia instancj\u0119 z interfejsem <em>java.util.List<\/em>. Lista ta zawiera obiekty do przetworzenia.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">validateObject()<\/code>\u00a0&#8211; musi teraz akceptowa\u0107 list\u0119 jako parametr. Wszystkie instancje, kt\u00f3rych nie mo\u017cna zreorganizowa\u0107, musz\u0105 zosta\u0107 usuni\u0119te z listy i powinny zosta\u0107 policzone jako pomini\u0119te instancje poprzez wywo\u0142anie metody <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">increaseCount()<\/code>.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">archiveObject()<\/code> &#8211; musi iterowa\u0107 po li\u015bcie i dla ka\u017cdej instancji mo\u017ce wywo\u0142a\u0107 metod\u0119 <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">archiveObject()<\/code>\u00a0z klasy bazowej.<\/p>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">deleteObject()<\/code> &#8211; musi iterowa\u0107 po li\u015bcie i dla ka\u017cdej instancji mo\u017ce wywo\u0142a\u0107 metod\u0119 <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">deleteObject()<\/code>\u00a0z klasy bazowej.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">releaseObject()<\/code> &#8211; mo\u017ce wyczy\u015bci\u0107 list\u0119. Zasoby zwi\u0105zane z obiektem, np. blokady, mog\u0105 zosta\u0107 zwolnione w tej metodzie.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getCount()<\/code> &#8211; musi zwraca\u0107 liczb\u0119 instancji na li\u015bcie.<\/p>\n<p><strong>Metoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">createIterator()<\/code>\u00a0<\/strong><\/p>\n<p>Metoda zwraca instancj\u0119 z interfejsem <em>Iterator()<\/em>, kt\u00f3ry zwraca instancje do przetworzenia. Standardowa implementacja to:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisObjectIterator result = om.getObjectIterator( \"select from \" + businessEntityClass + \" be where be:updateInfo.deleteTime&lt;&gt;?\" );\nresult.setTimestamp( 1, CisTimeStampUtility.UNDEFINED_TIME_STAMP );\nreturn result;<\/pre>\n<p><strong>Metoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">archiveObject()<\/code><\/strong><\/p>\n<p>Metoda jest wywo\u0142ywana w celu zarchiwizowania danych poprzez ich wyeksportowanie. Standardowa implementacja otwiera plik docelowy, eksportuje dane i ponownie zamyka plik:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">short result;\nif (openExportFile( getObjectIdentifier( cisObject ) )) {\nresult = exportObject( cisObject );\ncloseExportFile();\n}\nelse {\nresult = ReorganisationActionResult.ERROR;\n}\nreturn result;<\/pre>\n<p><strong>Metoda <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">deleteObject()<\/code><\/strong><\/p>\n<p>Obiekt jest usuwany w metodzie <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">deleteObject()<\/code>. Standardowa implementacja wywo\u0142uje bezpo\u015brednio <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">om.deleteObject()<\/code>.<\/p>\n<h5 id=\"metody-nadpisywalne\" ><span class=\"ez-toc-section\" id=\"Metody_nadpisywalne\"><\/span>Metody nadpisywalne<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">exit()<\/code>&#8211; wszystkie zasoby mog\u0105 zosta\u0107 zwolnione w metodzie <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">exit()<\/code>. Zasoby, kt\u00f3re zosta\u0142y przydzielone w metodzie <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">init()<\/code> powinny zosta\u0107 zwolnione.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">exitDatabase()<\/code> &#8211; metoda jest wywo\u0142ywana w celu zwolnienia zasob\u00f3w specyficznych dla bazy danych, kt\u00f3re zosta\u0142y przydzielone w metodzie <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">initDatabase()<\/code>.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getDatabaseGuids()<\/code> &#8211; ta metoda wysy\u0142a zapytanie o identyfikatory GUID baz danych, dla kt\u00f3rych ma zosta\u0107 wykonana aplikacja reorganizacji. Standardowa implementacja zwraca identyfikatory GUID baz danych, kt\u00f3re s\u0105 dost\u0119pne w bie\u017c\u0105cej sesji i dla kt\u00f3rych istnieje jednostka biznesowa.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getObjectDescriptionDisplayName()<\/code> &#8211; metoda zwraca wy\u015bwietlan\u0105 nazw\u0119 jednostki biznesowej. Jest to wymagane dla komunikat\u00f3w zako\u0144czenia.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getObjectIdentifier()<\/code> &#8211; zwraca nazw\u0119 instancji. Standardowa implementacja u\u017cywa tego samego algorytmu, kt\u00f3rego u\u017cywa BIS.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">init()<\/code> &#8211; s\u0142u\u017cy do inicjalizacji aplikacji reorganizacji. Zasoby powinny zosta\u0107 zwolnione w metodzie <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">exit()<\/code>.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">initDatabase()<\/code> &#8211; mo\u017ce by\u0107 u\u017cywana przez aplikacj\u0119 do reorganizacji do inicjalizacji specyficznej dla bazy danych. Zasoby powinny zosta\u0107 zwolnione w metodzie <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">exitDatabase()<\/code>.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">reorganize()<\/code> &#8211; zawiera logik\u0119 steruj\u0105c\u0105 przebiegiem dzia\u0142ania aplikacji reorganizacji dla wszystkich baz danych, kt\u00f3rych identyfikatory GUID zosta\u0142y okre\u015blone w metodzie <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">getDatabaseGuids().<\/code><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">foreach ( databaseGuid ) {\nreorganize(byte[] databaseGuid)\n\n}\nexit();<\/pre>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">reorganize((byte[] databaseGuid)<\/code> &#8211; zawiera logik\u0119 steruj\u0105c\u0105 przebiegiem dzia\u0142ania aplikacji reorganizacyjnej dla jednej bazy danych.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">initDatabase()\n\nbeginReadTransation {\n\nbeginWriteTransationIfNeeded {\n\ncreateIterator();\n\nwhile( iterator.hasNext() &amp;&amp; noError ) {\n\nObject object = iterator.next();\n\nincreaseCount( READ, SUCCESSFULL, object );\n\n \n\nif ( validateObject( object ) == SUCCESS ) {\n\nincreaseCount( VALIDATE, state, object );\n\n \n\nif ( archiveObject( object ) == SUCCESS ) {\n\nincreaseCount( EXPORT, state, object );\n\n \n\ndeleteObject( object );\n\nincreaseCount( DELETE, state, object );\n\nwriteTransactionCount++;\n\n}\n\n}\n\nreleaseObject( object );\n\n \n\nif ( writeTransaction &amp;&amp; writeTransactionCount &gt; transactionSize ) {\n\ncommit( writeTransaction )\n\nbeginWriteTransationWhenNeeded\n\n}\n\n \n\nif ( isMaximumRuntimeExceeded() ) {\n\nsetTimeout();\n\n}\n\n}\n\n}\n\n \n\nrollback( readTransaction )\n\n}\n\nexitDatabase();<\/pre>\n<h5 id=\"inne-metody-interfejsu\" ><span class=\"ez-toc-section\" id=\"Inne_metody_interfejsu\"><\/span>Inne metody interfejsu<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Poni\u017csze metody s\u0105 integraln\u0105 cz\u0119\u015bci\u0105 interfejsu i nie mog\u0105 zosta\u0107 nadpisane:<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">closeExportFile()<\/code>\u00a0&#8211; wywo\u0142anie tej metody powoduje zamkni\u0119cie pliku docelowego, do kt\u00f3rego wyeksportowano dane.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">exportObject()<\/code> &#8211; przes\u0142any obiekt jest przekazywany do kontrolera eksportu w metodzie <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">process()<\/code>.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">GetData()<\/code>\u00a0&#8211; metoda pozwala na sprawdzenie parametr\u00f3w aplikacji reorganizacji<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">IncreaseCount()<\/code> &#8211; wywo\u0142anie metody zwi\u0119ksza liczniki liczby obiekt\u00f3w, kt\u00f3re zosta\u0142y przetworzone pomy\u015blnie, z b\u0142\u0119dami lub nie zosta\u0142y przetworzone podczas dzia\u0142ania.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">isMaximumRuntimeExceeded()<\/code>&#8211; moteoda mo\u017ce by\u0107 u\u017cyta do okre\u015blenia, czy czas okre\u015blony przez u\u017cytkownika zosta\u0142 przekroczony, czy nie.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">openExportFile()<\/code>&#8211; metoda tworzy i otwiera plik docelowy, kt\u00f3ry ma zosta\u0107 wyeksportowany. Plik nale\u017cy nast\u0119pnie zamkn\u0105\u0107, wywo\u0142uj\u0105c metod\u0119 <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">closeExportFile()<br \/>\n<\/code><\/p>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">run()<\/code> &#8211; metoda jest standardow\u0105 metod\u0105 wywo\u0142ywania aplikacji. Kontener danych jest inicjowany, a nast\u0119pnie wywo\u0142ywane s\u0105 metody <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">init()<br \/>\nreorganize()<br \/>\nexit()<\/code><\/p>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">sendProcessMessage()<\/code> &#8211; metoda wysy\u0142a wiadomo\u015b\u0107, w kt\u00f3rej wy\u015bwietlany jest stan aplikacji reorganizacji oraz warto\u015bci poszczeg\u00f3lnych licznik\u00f3w.<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">ResetCount()<\/code> &#8211; resetuje liczniki liczby obiekt\u00f3w, kt\u00f3re zosta\u0142y przetworzone pomy\u015blnie, z b\u0142\u0119dami lub nie zosta\u0142y przetworzone podczas akcji do 0.<\/p>\n<h4 id=\"testowanie-aplikacji-reorganizacji\" ><span class=\"ez-toc-section\" id=\"Testowanie_aplikacji_reorganizacji\"><\/span><a id=\"tar\"><\/a>Testowanie aplikacji <strong data-start=\"0\" data-end=\"45\" data-is-only-node=\"\">reorganizacji<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p data-start=\"0\" data-end=\"442\">Aby przetestowa\u0107 aplikacj\u0119 reorganizacji, nale\u017cy nadpisa\u0107 metod\u0119 <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">deleteObject()<\/code>, aby zapobiec usuwaniu danych. Dzi\u0119ki temu dane pozostan\u0105 niezmienione. Klasa Java <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CisReorganizationApplication<\/code> wspiera logowanie poprzez interfejs <em>com.cisag.pgm.util.Debug<\/em>. Komunikaty logowania mo\u017cna aktywowa\u0107 za pomoc\u0105 polecenia Toolshell <em>dbgcls \u2013class:com.cisag.pgm.base.reorg.CisReorganizationApplication<\/em>.<\/p>\n<p data-start=\"444\" data-end=\"970\">Aplikacj\u0119 reorganizacji mo\u017cna otworzy\u0107 bezpo\u015brednio z aplikacji <em>Obiekty deweloperskie<\/em>, je\u015bli pole <em>Ustawienia prezentacji i utrzymania<\/em> posiada warto\u015b\u0107 <em>Prezentacja, utrzymanie<\/em>. Po prawej stronie pola <em>Typ<\/em> znajduje si\u0119 przycisk [<strong>Otw\u00f3rz aplikacj\u0119<\/strong>]. jego naci\u015bni\u0119cie otwiera okno dialogowe w tle. Do wprowadzania parametr\u00f3w wykorzystywany jest edytor aplikacji reorganizacji. Uk\u0142ad formularza jest jednokolumnowy. Okno to pojawia si\u0119 r\u00f3wnie\u017c w przypadku otwierania aplikacji reorganizacji z poziomu menu ulubione.<\/p>\n<p data-start=\"972\" data-end=\"1182\" data-is-last-node=\"\" data-is-only-node=\"\">Aplikacj\u0119 reorganizacji mo\u017cna r\u00f3wnie\u017c testowa\u0107 w ramach zlecenia reorganizacji. Mo\u017cna j\u0105 doda\u0107 w aplikacji <em>Zlecenia reorganizacji<\/em>. W tym przypadku formularz do wprowadzania parametr\u00f3w ma uk\u0142ad dwukolumnowy.<\/p>\n<h4 id=\"dokumentowanie-aplikacji-reorganizacji\" ><span class=\"ez-toc-section\" id=\"Dokumentowanie_aplikacji_reorganizacji\"><\/span><strong data-start=\"0\" data-end=\"45\" data-is-only-node=\"\"><a id=\"dar\"><\/a>Dokumentowanie aplikacji reorganizacji<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Aby udokumentowa\u0107 aplikacj\u0119 reorganizacji, nale\u017cy utworzy\u0107 obiekt deweloperski typu <em>Help object<\/em>. Powinien on mie\u0107 tak\u0105 sam\u0105 nazw\u0119 jak aplikacja reorganizacji. Na podzak\u0142adce <em>Obiekty deweloperskie<\/em> aplikacja reorganizacji musi zosta\u0107 przypisana do obiektu pomocy z wag\u0105 <em>Standardowy<\/em>.<\/p>\n","protected":false},"author":28,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-9691","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-podreczniki-referencji"],"_links":{"self":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/9691","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=9691"}],"version-history":[{"count":13,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/9691\/revisions"}],"predecessor-version":[{"id":35893,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/9691\/revisions\/35893"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/media?parent=9691"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}