{"id":8626,"date":"2024-08-12T09:40:47","date_gmt":"2024-08-12T07:40:47","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/640\/?post_type=ht_kb&#038;p=8626"},"modified":"2025-05-16T11:35:44","modified_gmt":"2025-05-16T09:35:44","slug":"obiekt-deweloperski-oql-search","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/obiekt-deweloperski-oql-search\/","title":{"rendered":"Obiekt deweloperski: OQL search"},"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\/obiekt-deweloperski-oql-search\/#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\/obiekt-deweloperski-oql-search\/#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\/obiekt-deweloperski-oql-search\/#Podzakladka_Ogolne\" >Podzak\u0142adka Og\u00f3lne<\/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\/obiekt-deweloperski-oql-search\/#Podzakladka_OQL\" >Podzak\u0142adka OQL<\/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\/obiekt-deweloperski-oql-search\/#Podzakladka_Uklad\" >Podzak\u0142adka Uk\u0142ad<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h3 id=\"wprowadzenie\" id=\"wprowadzenie\" ><span class=\"ez-toc-section\" id=\"Wprowadzenie\"><\/span>Wprowadzenie<span class=\"ez-toc-section-end\"><\/span><\/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>OQL Search.<\/em><\/p>\n<h3 id=\"opis\" id=\"opis\" ><span class=\"ez-toc-section\" id=\"Opis\"><\/span><span id=\"Opis\" class=\"ez-toc-section\"><\/span><span id=\"Opis\" class=\"ez-toc-section\"><\/span>Opis<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Wyszukiwania OQL (<em>OQL Search<\/em>) pozwalaj\u0105 na wyszukanie obiekt\u00f3w w bazie danych. Wyszukiwania s\u0105 u\u017cywane w formie pomocy wej\u015bciowej dla p\u00f3l, jako pomoc wej\u015bciowa aplikacji w obszarze nawigacji lub w aplikacjach (np. aplikacjach zapyta\u0144).<\/p>\n<p>Wyszukiwanie jest wielocz\u0119\u015bciow\u0105 instrukcj\u0105 OQL w formie <em>SELECT.<\/em>\u00a0Zbi\u00f3r wynik\u00f3w polecenia select jest wynikiem wyszukiwania. Instrukcj\u0119 OQL mo\u017cna podzieli\u0107 na kilka fragment\u00f3w. Podstawowy fragment zawiera <em>SELECT<\/em> do obiektu biznesowego lub widoku OQL, kt\u00f3ry mo\u017ce by\u0107 po\u0142\u0105czony w razie potrzeby za pomoc\u0105 JOIN. Dodatkowe fragmenty zawieraj\u0105ce JOIN, kt\u00f3re s\u0105 uwzgl\u0119dniane w wyborze tylko wtedy, gdy jest to wymagane (rozdzia\u0142: <em><a href=\"#oql\">Pozak\u0142adka OQL<\/a><\/em>).<\/p>\n<p>Zak\u0142adka <em>Edytor<\/em> sk\u0142ada si\u0119 z kilku podzak\u0142adek:<\/p>\n<ul>\n<li><a href=\"#og\"><em>Og\u00f3lne<\/em><\/a><\/li>\n<li><a href=\"#oql\"><em>OQL<\/em><\/a><\/li>\n<li><a href=\"#Uklad\"><em>Uk\u0142ad<\/em><\/a><\/li>\n<\/ul>\n<h4 id=\"podzakladka-ogolne\" ><span class=\"ez-toc-section\" id=\"Podzakladka_Ogolne\"><\/span><a id=\"og\"><\/a>Podzak\u0142adka <em>Og\u00f3lne<\/em><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>Oznaczenie <\/strong>&#8211; nazwa wyszukiwania wy\u015bwietlana w wizualizacji.<\/p>\n<p><strong>Prezentacja<\/strong> &#8211; definicja typu wizualizacji, je\u015bli wyszukiwanie jest u\u017cywane jako pomoc warto\u015bci pola:<\/p>\n<ul>\n<li><em>Combobox<\/em> &#8211; wynik wyszukiwania jest wy\u015bwietlany w ma\u0142ej ramce na dole pola. Nie jest mo\u017cliwe wprowadzenie parametr\u00f3w wyboru. Ten typ wizualizacji jest odpowiedni tylko dla ma\u0142ych zestaw\u00f3w wynik\u00f3w.<\/li>\n<li><em>Dialog<\/em> &#8211; wynik wyszukiwania jest wy\u015bwietlany w oknie dialogowym. Wynik wyszukiwania mo\u017cna ograniczy\u0107 za pomoc\u0105 parametr\u00f3w wyboru. Ten typ wizualizacji jest odpowiedni dla du\u017cych zestaw\u00f3w wynik\u00f3w.<\/li>\n<\/ul>\n<p><strong>Hook<\/strong> &#8211; specyfikacja klasy, kt\u00f3ra s\u0142u\u017cy do interwencji w wykonywanie i wy\u015bwietlanie wyszukiwania za pomoc\u0105 zdefiniowanych hook\u00f3w (np. manipulacja parametrami zapytania, manipulacja zestawami wynik\u00f3w lub wy\u015bwietlanie p\u00f3l wyboru).<\/p>\n<p>Aby to zrobi\u0107, hook musi implementowa\u0107 okre\u015blone interfejsy. Wyszukiwanie OQL jest zawarte w dowodzie u\u017cycia klasy Java.<\/p>\n<p><strong>Sekcja <em>Baza danych<\/em><\/strong><\/p>\n<p>Dost\u0119pne pola:<\/p>\n<p><strong>Baza danych OLTP <\/strong>&#8211; u\u017cywane obiekty biznesowe i widoki OQL znajduj\u0105 si\u0119 w bazie danych OLTP. Obiekty u\u017cywane w instrukcji OQL musz\u0105 by\u0107 utworzone w tej samej bazie danych.<\/p>\n<p><strong>Baza danych OLAP<\/strong> &#8211; u\u017cywane obiekty biznesowe i widoki OQL znajduj\u0105 si\u0119 w bazie danych OLAP. Obiekty u\u017cywane w instrukcji OQL musz\u0105 by\u0107 utworzone w tej samej bazie danych.<\/p>\n<p><strong>Baza danych repozytorium <\/strong>&#8211; u\u017cywane obiekty biznesowe i widoki OQL znajduj\u0105 si\u0119 w bazie danych repozytorium. Obiekty u\u017cywane w instrukcji OQL musz\u0105 by\u0107 utworzone w tej samej bazie danych.<\/p>\n<p><strong>Baza konfiguracyjna<\/strong>\u00a0&#8211; u\u017cywane obiekty biznesowe i widoki OQL znajduj\u0105 si\u0119 w bazie danych konfiguracji. Obiekty u\u017cywane w instrukcji OQL musz\u0105 by\u0107 utworzone w tej samej bazie danych.<\/p>\n<p><strong>Sekcja <em>Polecenie OQL<\/em><\/strong><\/p>\n<p>Dost\u0119pne pola:<\/p>\n<p><strong>Distinct (pole wyboru)<\/strong> &#8211; usuwa zduplikowane wyniki. Nale\u017cy pami\u0119ta\u0107, \u017ce parametry sortowania, kt\u00f3re s\u0105 niejawnie dodawane do wyszukiwania, s\u0105 zawarte w polu <em>SELECT<\/em>. Zmienia to zestaw wynik\u00f3w. Wy\u015bwietlony wynik wyszukiwania nie musi odpowiada\u0107 oczekiwanemu wynikowi wyszukiwania.<\/p>\n<p><strong>SELECT<\/strong> &#8211; wy\u015bwietlanie parametr\u00f3w zwrotnych instrukcji OQL.<\/p>\n<p><strong>GROUP BY<\/strong> &#8211; okre\u015blenie klauzuli GROUP BY. Zazwyczaj nale\u017cy pozostawi\u0107 to pole puste, aby klauzula GROUP BY by\u0142a obliczana automatycznie.<\/p>\n<p><strong>HAVING<\/strong> &#8211; specyfikacja klauzuli HAVING.<\/p>\n<p><strong>ORDER BY<\/strong> &#8211; okre\u015blone domy\u015blne sortowanie.<\/p>\n<p><strong>Sekcja <em>Obiekt bazowy<\/em><\/strong><\/p>\n<p><strong>Obiekt bazowy<\/strong> &#8211; definicja podstawowego obiektu wyszukiwania. Podczas korzystania z wyszukiwania w obszarze nawigacji do zestawu wynik\u00f3w dodawana jest specjalna warto\u015b\u0107 zwracana. Nazwa warto\u015bci zwrotnej odpowiada nazwie obiektu bazowego. Zawiera ona klucz techniczny, kt\u00f3ry jest u\u017cywany do \u0142adowania instancji z obiektu bazowego. Przypisania kluczy s\u0105 u\u017cywane do definiowania warto\u015bci zwracanej.<\/p>\n<p>Wyszukiwanie OQL jest zawarte na li\u015bcie wykazu zastosowania obiektu bazowego.<\/p>\n<p><strong>Sekcja <em>Przyporz\u0105dkowanie klucza<\/em><\/strong><\/p>\n<p>Przypisania kluczy Przypisanie parametr\u00f3w zwrotnych wyszukiwania, kt\u00f3re odpowiadaj\u0105 indeksowi g\u0142\u00f3wnemu obiektu bazowego.<\/p>\n<h4 id=\"podzakladka-oql\" ><span class=\"ez-toc-section\" id=\"Podzakladka_OQL\"><\/span><a id=\"oql\"><\/a>Podzak\u0142adka OQL<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Na tej zak\u0142adce definiowana jest polecenie OQL. Instrukcja OQL jest podzielona na fragmenty:<\/p>\n<ul>\n<li>fragment podstawowy (pierwszy wiersz na li\u015bcie)<\/li>\n<li>fragmenty dodatkowe (opcjonalne)<\/li>\n<\/ul>\n<p>Przycisk [<strong>Fragmenty<\/strong>] wy\u015bwietla kolumny, w kt\u00f3rych zdefiniowane s\u0105 sk\u0142adniki instrukcji OQL wyszukiwania OQL. Dost\u0119pne s\u0105 nast\u0119puj\u0105ce pola:<\/p>\n<p><strong>FROM<\/strong> &#8211; definicja klauzuli From wyra\u017cenia OQL. Obiekt biznesowy lub widok OQL, na kt\u00f3rym wykonywane jest wyszukiwanie, jest okre\u015blony we fragmencie bazowym. Wyszukiwanie mo\u017cna rozszerzy\u0107 na inne obiekty za pomoc\u0105 JOIN . Klauzula ma przypisan\u0105 nazw\u0119, kt\u00f3ra jest u\u017cywana w dodatkowych fragmentach.<\/p>\n<p>Sk\u0142adnia w obiekcie bazowym jest nast\u0119puj\u0105ca: {&lt;Name&gt; = &lt;wyra\u017cenie OQL&gt;} Dodatkowy fragment jest dodawany do instrukcji OQL zgodnie z wymaganiami. Klauzula from obiektu podstawowego jest rozszerzana o JOIN.<\/p>\n<p>Sk\u0142adnia dodatkowego fragmentu jest nast\u0119puj\u0105ca: {&lt;Name&gt;} JOIN &lt;wyra\u017cenie OQL&gt;.<\/p>\n<p>Wyszukiwanie OQL jest zawarte na li\u015bcie wykaz\u00f3w zastosowania obiekt\u00f3w biznesowych i widok\u00f3w OQL u\u017cywanych w instrukcji OQL.<\/p>\n<p><strong>WHERE<\/strong> &#8211; definicja klauzuli WHERE instrukcji OQL. Ta specyfikacja mo\u017ce by\u0107 u\u017cyta do statycznego ograniczenia zestawu wynik\u00f3w wyszukiwania. Klauzula WHERE jest wprowadzana bez s\u0142owa kluczowego <em>where<\/em>.<\/p>\n<p>Przycisk [<strong>Atrybuty<\/strong>] wy\u015bwietla kolejne kolumny, w kt\u00f3rych wprowadzane s\u0105 atrybuty wyszukiwania i definiowane s\u0105 ich w\u0142a\u015bciwo\u015bci; dost\u0119pne s\u0105 nast\u0119puj\u0105ce pola:<\/p>\n<p><strong>Atrybut <\/strong>&#8211; okre\u015blenie atrybutu obiektu biznesowego lub widoku OQL z klauzuli <em>From<\/em>. Nazwa musi by\u0107 przywo\u0142ywana przez okre\u015blony alias. Sk\u0142adnia: <em>Alias:Nazwa Atrybutu<\/em> lub <em>Funkcja(Alias:Nazwa Atrybutu)<\/em>. Mo\u017cna u\u017cywa\u0107 funkcji agregacji <em>AVG, MIN, MAX, SUM<\/em>. Nale\u017cy pami\u0119ta\u0107, \u017ce atrybuty z funkcjami agregacji nie mog\u0105 by\u0107 u\u017cywane jako funkcje wyszukiwania. Atrybut jest zawarty na li\u015bcie wykaz\u00f3w zastosowania obiektu biznesowego lub widoku OQL.<\/p>\n<p><strong>Nazwa <\/strong>&#8211; nazwa atrybutu. Pozwala na ustawianie parametr\u00f3w wyboru i pobierania wynik\u00f3w wyszukiwania. Nazwa musi by\u0107 unikalna w ramach definicji wyszukiwania. Je\u015bli nowy parametr zostanie dodany do wyszukiwania OQL, kt\u00f3re nie znajduje si\u0119 w jego w\u0142asnym zakresie, nazwa musi zaczyna\u0107 si\u0119 od prefiksu rozwoju bie\u017c\u0105cego systemu. W takim przypadku prefiks jest automatycznie wy\u015bwietlany podczas tworzenia nowego parametru.<\/p>\n<p><strong>Pierwotny typ danych<\/strong> &#8211; wy\u015bwietla typ danych atrybutu.<\/p>\n<p><strong>Pozycja kryterium wyszukiwania<\/strong>\u00a0&#8211; definicja atrybutu jako funkcji wyszukiwania w wyszukiwaniu.<\/p>\n<p>U\u017cytkownik mo\u017ce u\u017cy\u0107 pola, aby ograniczy\u0107 zestaw wynik\u00f3w wyszukiwania. Numeracja okre\u015bla pozycj\u0119 pola atrybutu wyszukiwania na wy\u015bwietlaczu. Zaczyna si\u0119 od &#8222;0&#8221; dla pierwszego pola. W\u0142a\u015bciwo\u015bci GUI s\u0105 kontrolowane przez opis danych atrybutu.<\/p>\n<p>Je\u015bli wyszukiwanie jest ograniczone przez atrybut wyszukiwania z dodatkowego fragmentu, instrukcja QOL jest rozszerzana o dodatkowy fragment.<\/p>\n<p>Nale\u017cy pami\u0119ta\u0107, \u017ce atrybuty z funkcjami agregacji nie mog\u0105 by\u0107 u\u017cywane jako funkcje wyszukiwania.<\/p>\n<p><strong>Pozycja ekranu<\/strong>\u00a0&#8211; wy\u015bwietlanie wyst\u0105pie\u0144 atrybutu w zestawie wynik\u00f3w wyszukiwania.<\/p>\n<p>Numeracja okre\u015bla pozycj\u0119 na li\u015bcie (0 to pierwsza kolumna na li\u015bcie). W\u0142a\u015bciwo\u015bci GUI s\u0105 kontrolowane przez opis danych atrybutu. Je\u015bli nie okre\u015blono numeru, pole nie jest wy\u015bwietlane w zestawie wynik\u00f3w.<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">To pole jest wy\u015bwietlane tylko we fragmencie podstawowym.<\/div><\/section>\n<p><strong>Pozycja zwrotu<\/strong> &#8211; atrybut jest zawarty w zestawie wynik\u00f3w wyszukiwania. Numeracja okre\u015bla pozycj\u0119 w zestawie zwrotnym (0 to pierwsza pozycja w zestawie zwrotnym).<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">To pole jest wy\u015bwietlane tylko we fragmencie podstawowym.<\/div><\/section>\n<p><strong>Klucz <\/strong>&#8211; identyfikacja unikalnych atrybut\u00f3w klucza. Jest to wymagane do ponownego uruchomienia wyszukiwania. Jest to szczeg\u00f3lnie przydatne w przypadku du\u017cych zestaw\u00f3w wynik\u00f3w. Rekordy danych s\u0105 \u0142adowane strona po stronie. Ostatni rekord danych na stronie jest zapami\u0119tywany i wyszukiwanie jest ponownie uruchamiane z tym rekordem. Kluczowe atrybuty powinny by\u0107 zawsze oznaczone.<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">To pole jest wy\u015bwietlane tylko we fragmencie podstawowym.<\/div><\/section>\n<p><strong>Specjalne zachowanie<\/strong> &#8211; definicja specjalnego zachowania atrybutu:<\/p>\n<ul>\n<li><em>Identyfikacja &#8211; p<\/em>rzenosi warto\u015b\u0107 z p\u00f3l z pomoc\u0105 wprowadzania pola do atrybutu. Je\u015bli w polu nie zostanie wprowadzona \u017cadna warto\u015b\u0107, wyszukiwanie rozpocznie si\u0119 automatycznie. Je\u015bli wyszukiwanie przyniesie wynik, zawarto\u015b\u0107 zostanie zapisana z powrotem w polu wywo\u0142uj\u0105cym. W ka\u017cdej definicji wyszukiwania mo\u017cna okre\u015bli\u0107 tylko jedno pole identyfikacyjne.<\/li>\n<li><em>Oznaczenie<\/em> &#8211; jest u\u017cywane tylko dla ExtendedTextField. Je\u015bli zestaw wynik\u00f3w wyszukiwania jest wizualizowany jako ComboBox, zawarto\u015b\u0107 kodu i tekstu s\u0105 wy\u015bwietlane obok siebie. Gdy wynik wyszukiwania jest przenoszony, zawarto\u015b\u0107 atrybutu tekstowego jest przenoszona do tylnej cz\u0119\u015bci ExtendedTextField.<\/li>\n<li><em>Niewidoczny &#8211; s<\/em>\u0105 to ukryte parametry zapytania. Pola te s\u0105 tworzone i dodawane do interfejsu. Pola s\u0105 nast\u0119pnie prze\u0142\u0105czane na niewidoczne. Specjalne zachowanie mo\u017ce by\u0107 u\u017cyte tylko dla zapytania.<\/li>\n<li><em>Znacznik usuwania<\/em> &#8211; mo\u017ce by\u0107 oparte tylko na znaczniku czasu. Z regu\u0142y jest to atrybut de-leteTime cz\u0119\u015bci UpdateInformation obiektu biznesowego. Parametr musi by\u0107 r\u00f3wnie\u017c oznaczony jako pole zapytania i wy\u015bwietlania. W ramach wyszukiwania specjalne zachowanie &#8222;wska\u017anik usuni\u0119cia&#8221; mo\u017ce by\u0107 przypisane tylko do jednego parametru.<\/li>\n<li><em>Kontekst wyszukiwania<\/em> &#8211; nie s\u0105 tworzone \u017cadne pola wyboru. S\u0105 one u\u017cywane tylko w kontek\u015bcie wyszukiwania.<\/li>\n<\/ul>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">To pole jest wy\u015bwietlane tylko we fragmencie podstawowym.<\/div><\/section>\n<p><strong>Mo\u017cliwe sortowanie<\/strong> &#8211; wskazuje, czy atrybut jest dost\u0119pny jako parametr sortowania. U\u017cytkownik decyduje, czy sortowa\u0107 wed\u0142ug tego atrybutu. Je\u015bli atrybut z dodatkowego fragmentu zostanie uwzgl\u0119dniony w sortowaniu wyszukiwania przez u\u017cytkownika, instrukcja OQL zostanie rozszerzona o dodatkowy fragment.<\/p>\n<p><strong>Pozycja kryterium sortowania<\/strong> &#8211; atrybut jest uwzgl\u0119dniany w sortowaniu. Numeracja okre\u015bla pozycj\u0119 w sortowaniu (w klauzuli <em>ORDER BY<\/em>). Dodatkowe fragmenty, w kt\u00f3rych atrybut jest uwzgl\u0119dniany w sortowaniu jako cecha sortowania, s\u0105 zawsze zawarte w instrukcji OQL.<\/p>\n<p><strong>Kierunek sortowania<\/strong> &#8211; okre\u015bla kierunek sortowania (rosn\u0105co, malej\u0105co).<\/p>\n<p>Przycisk [<strong>Logiczne typy danych<\/strong>] pozwala na wy\u015bwietlanie dodatkowych kolumn, w kt\u00f3rych mo\u017cna wp\u0142ywa\u0107 na w\u0142a\u015bciwo\u015bci GUI wyszukiwania. Dost\u0119pne s\u0105 nast\u0119puj\u0105ce pola:<\/p>\n<p><strong>Logiczny typ danych (cecha wyszukiwania)<\/strong> &#8211; logiczny typ danych, za pomoc\u0105 kt\u00f3rego okre\u015blane s\u0105 w\u0142a\u015bciwo\u015bci GUI pola wyboru.<\/p>\n<p>Wyszukiwanie OQL znajduje si\u0119 na li\u015bcie wykaz\u00f3w zastosowania logicznego typu danych.<\/p>\n<p><strong>Logiczny typ danych (wy\u015bwietlanie)<\/strong> &#8211; zapytanie OQL znajduje si\u0119 na li\u015bcie wykaz\u00f3w zastosowania logicznego typu danych.<\/p>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">Wyszukiwanie OQL<\/p>\n<p>Podczas wyszukiwania zarejestrowanych region\u00f3w wyb\u00f3r mo\u017cna ograniczy\u0107 do okre\u015blonych skr\u00f3t\u00f3w i opis\u00f3w region\u00f3w. Opcjonalnie wyb\u00f3r mo\u017cna ograniczy\u0107 do okre\u015blonego kraju.<\/p>\n<ul>\n<li>Wyszukiwanie OQL: com.cisag.app.&lt;&#8230;&gt;.obj.region<\/li>\n<li>Obiekt bazowy: <span style=\"font-size: revert; color: initial;\">Obiekt biznesowy com.cisag.app.&lt;&#8230;&gt;.obj.Region<\/span><\/li>\n<li>Przyporz\u0105dkowanie klucza: <span style=\"font-size: revert; color: initial;\">guid (region obiektu biznesowego) &#8211; guid (region wyszukiwania OQL)<\/span><\/li>\n<\/ul>\n<p>G\u0142\u00f3wny fragment:<\/p>\n<p>FROM: {REGION = com.cisag.app.&lt;&#8230;&gt;.obj.Region r}<\/p>\n<p>Atrybuty:<\/p>\n<table style=\"border-collapse: collapse; width: 53.8018%; height: 115px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Kolumna<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Nazwa<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Wyb\u00f3r<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Wy\u015bwietlenie<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Wynik<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Zwrot<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Klucz<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Sortowanie<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Domy\u015blne sortowanie<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Kierunek sortowania<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 10%; height: 23px; border-style: outset;\">r:description<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">description<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">1<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">1<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">Opis<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">2<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">1<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">Rosn\u0105co<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 10%; height: 23px; border-style: outset;\">r:country<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">country<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">Brak<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">3<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 10%; height: 23px; border-style: outset;\" width=\"72\">r:code<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">code<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">0<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">0<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">Identyfikacja<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">1<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">0<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">Rosn\u0105co<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 10%; height: 23px; border-style: outset;\" width=\"72\">r:guid<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">guid<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">Brak<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">0<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Wt\u00f3rny fragment:<\/p>\n<p>FROM: {REGION} join com.cisag.app.&lt;&#8230;&gt;.obj.Country c on c:guid = r:country<\/p>\n<p>Atrybuty:<\/p>\n<table style=\"border-collapse: collapse; width: 78.6905%; height: 157px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Kolumna<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Nazwa<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Wyb\u00f3r<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Wy\u015bwietlenie<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Wynik<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Zwrot<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Klucz<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Sortowanie<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Domy\u015blne sortowanie<\/strong><\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\"><strong>Kierunek sortowania<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 10%; border-style: outset;\" width=\"72\">c:isoCode<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">isoCode<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">2<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">\u00a0<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">\u00a0<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">\u00a0<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">&#8211;<\/td>\n<td style=\"width: 10%; height: 23px; border-style: outset;\">\u00a0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><\/div><\/section>\n<h4 id=\"podzakladka-uklad\" ><span class=\"ez-toc-section\" id=\"Podzakladka_Uklad\"><\/span><a id=\"Uklad\"><\/a>Podzak\u0142adka <em>Uk\u0142ad<\/em><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Domy\u015blnie wynik wyszukiwania OQL jest wizualizowany w siatce. Uk\u0142ad wynik\u00f3w wyszukiwania mo\u017cna zdefiniowa\u0107 za pomoc\u0105 tej zak\u0142adki. Siatka oferuje r\u00f3\u017cne funkcje uk\u0142adu, takie jak wy\u015bwietlanie wielowierszowe, formatowanie kolumn itp. Poniewa\u017c wyszukiwania OQL mo\u017cna u\u017cywa\u0107 zar\u00f3wno jako wyszukiwania w dialogu, jak i wyszukiwania w obszarze nawigacji, na zak\u0142adce wy\u015bwietlana jest siatka dla ka\u017cdego z tych dw\u00f3ch przypadk\u00f3w. Siatka dla wyszukiwania w obszarze nawigatora ma tak\u0105 sam\u0105 szeroko\u015b\u0107 jak siatka, kt\u00f3ra b\u0119dzie p\u00f3\u017aniej u\u017cywana do wy\u015bwietlania wynik\u00f3w wyszukiwania. Uk\u0142ad mo\u017cna zatem zdefiniowa\u0107 niezale\u017cnie od siebie dla obu przypadk\u00f3w.<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Hooki mog\u0105 by\u0107 u\u017cywane do definiowania, \u017ce wynik wyszukiwania powinien by\u0107 wy\u015bwietlany na li\u015bcie zamiast w siatce. W takim przypadku zmiany uk\u0142adu na tej karcie nie b\u0119d\u0105 obowi\u0105zywa\u0107, a uk\u0142ad musi zosta\u0107 zaprogramowany za pomoc\u0105 hooka. Je\u015bli w takim przypadku zmiany w uk\u0142adzie na tej karcie zostan\u0105 wprowadzone, nie zostan\u0105 one uwzgl\u0119dnione.<\/div><\/section>\n<p>Mo\u017cliwe jest u\u017cycie hook\u00f3w do dodania kolumn do wyniku wyszukiwania, kt\u00f3re nie zosta\u0142y zdefiniowane w wyszukiwaniu OQL. Klasa Java implementuj\u0105ca hook jest \u0142adowana w celu przeanalizowania zawartych w niej informacji. Dost\u0119pne s\u0105 nast\u0119puj\u0105ce opcje \u0142adowania klasy Java hooka:<\/p>\n<p><strong>z folderem roboczym<\/strong> &#8211; je\u015bli folder roboczy jest brany pod uwag\u0119 podczas \u0142adowania klasy Java, klasa jest \u0142adowana bezpo\u015brednio z folderu Classes w folderze u\u017cytkownika lub folderze wsp\u00f3lnym folderu roboczego. Klas\u0119 mo\u017cna za\u0142adowa\u0107 ponownie w dowolnym momencie; nie jest konieczne ponowne uruchamianie serwera aplikacji.<\/p>\n<p>Je\u015bli nie jest mo\u017cliwe za\u0142adowanie i\/lub przeanalizowanie klasy z folderem roboczym, klasa musi zosta\u0107 za\u0142adowana bez folderu roboczego.<\/p>\n<p><strong>bez folderu roboczego <\/strong>&#8211; je\u015bli folder roboczy nie jest brany pod uwag\u0119 podczas \u0142adowania klasy Java, klasa jest \u0142adowana za po\u015brednictwem \u015bcie\u017cki klasy serwera aplikacji. Je\u015bli klasa ulegnie zmianie, serwer aplikacji musi zosta\u0107 ponownie uruchomiony. Je\u015bli serwer aplikacji dzia\u0142a w \u015brodowisku programistycznym, kt\u00f3re umo\u017cliwia zamian\u0119 klas w czasie wykonywania, klas\u0119 mo\u017cna r\u00f3wnie\u017c prze\u0142adowa\u0107 za pomoc\u0105 tego mechanizmu.<\/p>\n<p>Aplikacja uwzgl\u0119dnia te hooki dodaje te kolumny do siatek. Oznacza to, \u017ce wygl\u0105d tych kolumn mo\u017ce by\u0107 r\u00f3wnie\u017c definiowany przez funkcje uk\u0142adu siatki.<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Je\u015bli klasa Java hooka jest zablokowana i przetwarzana, musi znajdowa\u0107 si\u0119 w tym samym zadaniu co wyszukiwanie OQL. W takim przypadku przetwarzany hook jest brany pod uwag\u0119 podczas wy\u015bwietlania siatek. Je\u015bli hook jest zablokowany w innym zadaniu, nale\u017cy go najpierw zwolni\u0107 i aktywowa\u0107. W przeciwnym razie mog\u0105 wyst\u0105pi\u0107 efekty, takie jak dodanie kolumn do siatki w hooku, ale aplikacja nie wy\u015bwietli tych kolumn na karcie <em>Uk\u0142ad<\/em>.<\/div><\/section>\n<p>Dost\u0119pne przyciski:<\/p>\n<p><span style=\"color: #000000;\">[<strong>Utw\u00f3rz nowy layout z folderu &#8222;work&#8221;<\/strong>] &#8211; tworzy siatk\u0119 z kolumnami wynik\u00f3w zdefiniowanymi w zapytaniu OQL. Je\u015bli do wyszukiwania u\u017cywany jest hook, klasa hooka jest otwierana z folderu roboczego. Poniewa\u017c zmieniona klasa hooka nie musi znajdowa\u0107 si\u0119 w \u015bcie\u017cce klas serwera aplikacji, ale jest \u0142adowana bezpo\u015brednio z folderu roboczego, funkcja ta mo\u017ce by\u0107 u\u017cywana na dowolnym serwerze aplikacji w systemie.<\/span><\/p>\n<p><span style=\"color: #000000;\">[<strong>Utw\u00f3rz istniej\u0105cy layout bez folderu &#8222;work&#8221;<\/strong>] &#8211; tworzy siatk\u0119 z kolumnami wynik\u00f3w zdefiniowanymi w wyszukiwaniu OQL. Je\u015bli do wyszukiwania u\u017cywany jest hook, klasa jest \u0142adowana bez uwzgl\u0119dniania folderu roboczego. W przypadku zmiany klasy hooka nale\u017cy upewni\u0107 si\u0119, \u017ce zmieniona klasa znajduje si\u0119 w \u015bcie\u017cce klas serwera aplikacji.<\/span><\/p>\n<p>[<strong>Otw\u00f3rz istniej\u0105cy layout za pomoc\u0105 folderu &#8222;work&#8221;<\/strong>] &#8211; \u0142aduje istniej\u0105ce layouty. Je\u015bli do wyszukiwania u\u017cywany jest hook, klasa hooka jest \u0142adowana z folderu roboczego. Poniewa\u017c zmieniona klasa hooka nie musi znajdowa\u0107 si\u0119 w \u015bcie\u017cce klas serwera aplikacji, ale jest \u0142adowana bezpo\u015brednio z folderu roboczego, funkcja ta mo\u017ce by\u0107 u\u017cywana na dowolnym serwerze aplikacji w systemie.<\/p>\n<p>[<strong>Otw\u00f3rz istniej\u0105cy layout bez folderu &#8222;work&#8221;<\/strong>] &#8211; otwiera istniej\u0105ce layouty wyszukiwania. Je\u015bli do wyszukiwania u\u017cywany jest hook, klasa jest \u0142adowana bez uwzgl\u0119dniania folderu roboczego. W przypadku zmiany klasy hooka nale\u017cy upewni\u0107 si\u0119, \u017ce zmieniona klasa znajduje si\u0119 w \u015bcie\u017cce klas serwera aplikacji.<\/p>\n<p><span style=\"color: #000000;\">[<strong>Usu\u0144 uk\u0142ad<\/strong>] &#8211; usuwa istniej\u0105ce uk\u0142ady wyszukiwania.<\/span><\/p>\n\n","protected":false},"author":28,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-8626","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\/8626","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=8626"}],"version-history":[{"count":19,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/8626\/revisions"}],"predecessor-version":[{"id":30679,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/8626\/revisions\/30679"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/media?parent=8626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}