{"id":8636,"date":"2025-02-12T09:06:00","date_gmt":"2025-02-12T08:06:00","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/?post_type=ht_kb&#038;p=8636"},"modified":"2025-04-15T11:17:08","modified_gmt":"2025-04-15T09:17:08","slug":"obiekt-deweloperski-search","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/obiekt-deweloperski-search\/","title":{"rendered":"Obiekt deweloperski: 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\/index.php\/documentation\/obiekt-deweloperski-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\/index.php\/documentation\/obiekt-deweloperski-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\/index.php\/documentation\/obiekt-deweloperski-search\/#Podzakladka_From_and_Where\" >Podzak\u0142adka From and Where<\/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\/index.php\/documentation\/obiekt-deweloperski-search\/#Podzakladka_Atrybuty\" >Podzak\u0142adka Atrybuty<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/obiekt-deweloperski-search\/#Przycisk_Wybierz_atrybuty\" >Przycisk [Wybierz atrybuty]<\/a><\/li><\/ul><\/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\/obiekt-deweloperski-search\/#Podzakladka_Ustawienia\" >Podzak\u0142adka Ustawienia<\/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>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>Search<\/em>.<\/p>\n<h3 id=\"opis\" ><span class=\"ez-toc-section\" id=\"Opis\"><\/span>Opis<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Search (wyszukiwania) pozwalaj\u0105 na odszukanie obiekt\u00f3w w bazie danych. Wyszukiwanie jest wielocz\u0119\u015bciow\u0105 instrukcj\u0105 OQL w formie <em>SELECT<\/em>, kt\u00f3rego zbi\u00f3r wynik\u00f3w jest wynikiem wyszukiwania. <em>SELECT<\/em> opiera si\u0119 na obiektach biznesowych i widokach OQL, kt\u00f3re mo\u017cna \u0142\u0105czy\u0107 w razie potrzeby za pomoc\u0105 JOIN.<\/p>\n<p>Zak\u0142adka <em>Edytor<\/em> sk\u0142adka si\u0119 z podzak\u0142adek:<\/p>\n<ul>\n<li><a href=\"#FW\"><em>From and Where<\/em><\/a><\/li>\n<li><a href=\"#Atrybuty\"><em>Atrybuty<\/em><\/a><\/li>\n<li><a href=\"#Layouts\"><em>Layouts<\/em><\/a><\/li>\n<li><a href=\"#Ustawienia\"><em>Ustawienia<\/em><\/a><\/li>\n<\/ul>\n<h4 id=\"podzakladka-from-and-where\" ><span class=\"ez-toc-section\" id=\"Podzakladka_From_and_Where\"><\/span><a id=\"FW\"><\/a>Podzak\u0142adka <em>From and Where<\/em><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Business object lub OQL View bior\u0105ce udzia\u0142 w wyszukiwaniu i ich wzajemne relacje s\u0105 zdefiniowane na tej zak\u0142adce. Do ka\u017cdego obiektu mo\u017cna odwo\u0142a\u0107 si\u0119 za pomoc\u0105 unikalnego aliasu. Ponadto wynik mo\u017ce by\u0107 statycznie ograniczony przez klauzul\u0119 <em>Where<\/em>.<\/p>\n<p>Dost\u0119pne s\u0105 nast\u0119puj\u0105ce pola:<\/p>\n<p><strong>FROM<\/strong> &#8211; definicja klauzuli <em>FROM<\/em> wyra\u017cenia OQL. Klauzula <em>From<\/em> zawiera obiekty biznesowe i widoki OQL oraz ich wzajemne relacje, wyra\u017cone jako JOIN. Wyszukiwanie jest zawarte na li\u015bcie <em>Wykaz\u00f3w zastosowania<\/em> u\u017cywanych obiekt\u00f3w biznesowych i widok\u00f3w OQL. Klauzula FROM jest wprowadzana bez s\u0142owa kluczowego <em>from<\/em>.<\/p>\n<p><strong>WHERE <\/strong>&#8211; definicja klauzuli WHERE wyra\u017cenia 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<h4 id=\"podzakladka-atrybuty\" ><span class=\"ez-toc-section\" id=\"Podzakladka_Atrybuty\"><\/span><a id=\"Atrybuty\"><\/a>Podzak\u0142adka <em>Atrybuty<\/em><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Na zak\u0142adce <em>Atrybuty<\/em> mo\u017cna wybra\u0107 atrybuty dost\u0119pne na konfigurowalnych listach\u00a0z wybranych obiekt\u00f3w biznesowych i widok\u00f3w OQL. Do ka\u017cdego atrybutu mo\u017cna odwo\u0142a\u0107 si\u0119 za pomoc\u0105 unikalnej nazwy. Nad list\u0105 dost\u0119pne s\u0105 przyciski:<\/p>\n<p>[<strong>Nowy atrybut<\/strong>] &#8211; dodaje nowy atrybut do listy atrybut\u00f3w.<\/p>\n<p>[<strong>Wybierz atrybuty<\/strong>] &#8211; otwiera okno dialogowe wyboru atrybut\u00f3w. Wy\u015bwietlane atrybuty s\u0105 oparte na atrybutach obiekt\u00f3w biznesowych lub widok\u00f3w OQL, do kt\u00f3rych odwo\u0142uje si\u0119 klauzula <em>From<\/em>.<\/p>\n<p>[<strong>Usu\u0144<\/strong>] &#8211; usuwa wybrane atrybuty.<\/p>\n<p>Pole filtra <em>Atrybuty<\/em> \u00a0&#8211; pozwala na ograniczenie liczby wy\u015bwietlanych atrybut\u00f3w. Aby to zrobi\u0107, nale\u017cy wprowadzi\u0107 nazw\u0119 atrybutu w polu; mo\u017cna u\u017cy\u0107 symboli zast\u0119pczych.<\/p>\n<p>[<strong>Zastosuj\/usu\u0144 filtr<\/strong>] &#8211; wskazany filtr zostanie zastosowany po wybraniu przycisku [<strong>Zastosuj\/usu\u0144 filtr<\/strong>]. W tym celu mo\u017cna r\u00f3wnie\u017c nacisn\u0105\u0107 klawisz [<strong>Enter<\/strong>]. Po zastosowaniu filtra na li\u015bcie wy\u015bwietlane s\u0105 tylko te atrybuty, kt\u00f3re odpowiadaj\u0105 wprowadzonej charakterystyce filtra. Filtr mo\u017cna usun\u0105\u0107, dezaktywuj\u0105c przycisk [<strong>Zastosuj\/usu\u0144 filtr<\/strong>].<\/p>\n<p>[<strong>Atrybuty rozszerzenia wyszukiwania<\/strong>] &#8211; w systemie, w kt\u00f3rym wyszukiwanie mo\u017cna dostosowa\u0107 za pomoc\u0105 rozszerze\u0144 wyszukiwania, np. w systemie deweloperskim klienta, mo\u017cna u\u017cy\u0107 przycisku [<strong>Atrybuty rozszerzenia wyszukiwania<\/strong>], aby wy\u015bwietli\u0107 atrybuty u\u017cywane do rozszerzenia wyszukiwania.<\/p>\n<p>Kolumny dost\u0119pne na li\u015bcie:<\/p>\n<p><strong>Nazwa<\/strong> &#8211; dowolnie wybrana nazwa parametru. Nazwa musi by\u0107 unikalna w ramach wyszukiwania i s\u0142u\u017cy jako identyfikacja dla zaprogramowanego dost\u0119pu do atrybut\u00f3w wyszukiwania. Je\u015bli nowy parametr jest dodawany do wyszukiwania, kt\u00f3re nie znajduje si\u0119 w jego w\u0142asnej przestrzeni nazw, nazwa musi zaczyna\u0107 si\u0119 od prefiksu deweloperskiego bie\u017c\u0105cego systemu. W takim przypadku prefiks jest automatycznie wy\u015bwietlany podczas tworzenia nowego parametru. Je\u015bli atrybut ma nale\u017ce\u0107 do atrybutu wirtualnego, atrybut musi zaczyna\u0107 si\u0119 od nazwy atrybutu wirtualnego, po kt\u00f3rej nast\u0119puje kropka.<\/p>\n<p><strong>Wyra\u017cenie\u00a0<\/strong>\u2013 nale\u017cy wprowadzi\u0107 atrybut obiektu biznesowego lub widoku OQL z klauzuli FROM rozszerzenia wyszukiwania, wyszukiwania bazowego lub wprowad\u017a wyra\u017cenie, kt\u00f3re ma zosta\u0107 obliczone przez baz\u0119 danych, kt\u00f3ra u\u017cywa jednego lub wi\u0119cej takich atrybut\u00f3w. Nazwa atrybutu musi by\u0107 wywo\u0142ana za po\u015brednictwem okre\u015blonego aliasu i zgodna ze sk\u0142adni\u0105\u00a0<em>Alias:Nazwa atrybutu.<\/em><\/p>\n<p>Wyra\u017cenie do obliczenia mo\u017ce zawiera\u0107 tylko funkcje agreguj\u0105ce OQL\u00a0<em>UPPER<\/em>,\u00a0<em>AVG<\/em>,\u00a0<em>MAX<\/em>,\u00a0<em>MIN<\/em>,\u00a0<em>SUM<\/em>,\u00a0<em>COUNT<\/em>, operatory:\u00a0<em>*<\/em>,\u00a0<em>\/<\/em>,\u00a0<em>+<\/em>,\u00a0<em>\u2013<\/em>\u00a0i atrybut. Wszystkie operandy musz\u0105 mie\u0107 ten sam typ, tj. albo wszystkie operandy s\u0105 funkcjami, albo atrybutami. Argument funkcji mo\u017ce sk\u0142ada\u0107 si\u0119 tylko z jednego atrybutu.<\/p>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">Przyk\u0142ady wyra\u017ce\u0144:<\/p>\n<p>boAlias1:attr1 + boAlias1:attr2<\/p>\n<p>Sum(boAlias1:attr1) \u2013 SUM(boAlias2:attr1)<\/div><\/section>\n<p>Je\u015bli atrybut jest oznaczony jako:<\/p>\n<ul>\n<li>obiekt biznesowy, w razie potrzeby mo\u017cna pomin\u0105\u0107 nazw\u0119 atrybutu<\/li>\n<li>wirtualny, nie wolno wprowadza\u0107 wyra\u017cenia<\/li>\n<\/ul>\n<p>U\u017cyte atrybuty s\u0105 zawarte w wykazie zastosowania obiektu biznesowego lub widoku OQL.<\/p>\n<p><strong>Wirtualny<\/strong>\u00a0\u2013 atrybuty mo\u017cna grupowa\u0107, tj. kilka atrybut\u00f3w mo\u017cna podsumowa\u0107 w ramach jednego atrybutu. Ten atrybut podsumowuj\u0105cy musi by\u0107 oznaczony jako wirtualny. Atrybut wirtualny nie ma odniesienia do atrybutu obiektu biznesowego lub widoku OQL w bazie danych, a zatem nie ma wprowadzonego wyra\u017cenia. Atrybuty nale\u017c\u0105ce do atrybutu wirtualnego musz\u0105 zaczyna\u0107 si\u0119 od nazwy atrybutu wirtualnego, po kt\u00f3rej nast\u0119puje kropka.<\/p>\n<p>Je\u015bli dla atrybutu wirtualnego zaznaczono parametr:<\/p>\n<ul>\n<li><strong>Mo\u017cliwo\u015b\u0107 sortowania<\/strong>\u00a0\u2013 oznacza, \u017ce dok\u0142adnie jeden atrybut grupy musi by\u0107 oznaczony jako sortowalny. Atrybut ten jest u\u017cywany do sortowania w ramach atrybutu wirtualnego.<\/li>\n<li><strong>Mo\u017cliwo\u015b\u0107 filtrowania<\/strong>\u00a0\u2013 co najmniej jeden atrybut grupy musi by\u0107 r\u00f3wnie\u017c oznaczony jako mo\u017cliwy do filtrowania. Tylko tak oznaczone atrybuty w grupie s\u0105 u\u017cywane do ograniczenia zapytania do bazy danych. Inne atrybuty w grupie nie s\u0105 u\u017cywane.<\/li>\n<li><strong>Mo\u017cliwo\u015b\u0107 wy\u015bwietlenia<\/strong>\u00a0\u2013 co najmniej jeden atrybut grupy powinien by\u0107 oznaczony jako mo\u017cliwy do wy\u015bwietlenia. Tylko atrybuty oznaczone w ten spos\u00f3b s\u0105 prezentowane jako wynik zapytania do bazy danych.<\/li>\n<\/ul>\n<p>Nale\u017cy wprowadzi\u0107 logiczny typ danych dla atrybutu wirtualnego, kt\u00f3ry mo\u017ce by\u0107 u\u017cyty do okre\u015blenia opisu danych, kt\u00f3ry zapewnia edytor i\/lub renderer dla wizualizacji. <span style=\"color: #ff00ff;\"><span style=\"color: #000000;\">Nie jest mo\u017cliwe zagnie\u017cd\u017canie atrybut\u00f3w wirtualnych. Atrybut wirtualny nie mo\u017ce by\u0107 oznaczony jako obiekt biznesowy ani jako zaprogramowany filtr.<\/span><\/span><\/p>\n<p><strong>Obiekt biznesowy\u00a0<\/strong>\u2013 je\u015bli atrybut jest oznaczony jako obiekt biznesowy, funkcja \u0142\u0105cza jest widoczna na tym atrybucie na wybranych listach. Menu kontekstowe jest tworzone w odniesieniu do powi\u0105zanego obiektu biznesowego. Oznacza to, \u017ce menu kontekstowe mo\u017cna utworzy\u0107 na dowolnym atrybucie obiektu biznesowego. Ponadto, gdy atrybut jest oznaczony jako obiekt biznesowy, obowi\u0105zuj\u0105 nast\u0119puj\u0105ce zasady i ograniczenia:<\/p>\n<ul>\n<li>atrybut mo\u017ce by\u0107 traktowany jako<em>\u00a0obiekt-warto\u015b\u0107<\/em>\u00a0w zapytaniu: Opr\u00f3cz opcji zapytania o warto\u015b\u0107 atrybutu, mo\u017cna r\u00f3wnie\u017c zapyta\u0107 o ca\u0142y obiekt biznesowy.<\/li>\n<li>u\u017cyte wyra\u017cenie mo\u017cna zredukowa\u0107 do aliasu. W takim przypadku mo\u017cna zapyta\u0107 tylko o obiekt. Ma to jednak wp\u0142yw na inne w\u0142a\u015bciwo\u015bci atrybutu: atrybut nie mo\u017ce by\u0107 wtedy oznaczony jako filtrowany lub sortowany. Je\u015bli atrybut jest r\u00f3wnie\u017c oznaczony jako\u00a0<em>Mo\u017cliwy do wy\u015bwietlania<\/em>, nale\u017cy okre\u015bli\u0107 logiczny typ danych. Powinien on odnosi\u0107 si\u0119 do opisu danych, kt\u00f3ry wprowadzi\u0142 renderer.<\/li>\n<li>nie jest konieczne wprowadzanie logicznego typu danych w atrybucie wirtualnym, poniewa\u017c atrybut wirtualny jest odpowiedzialny za wizualizacj\u0119.<\/li>\n<li>atrybut nie mo\u017ce by\u0107 r\u00f3wnie\u017c oznaczony jako wirtualny lub jako zaprogramowany filtr.<\/li>\n<\/ul>\n<p><strong>Zaprogramowany filtr<\/strong> &#8211; atrybut oznaczony jako filtr mo\u017cliwy do zaprogramowania s\u0142u\u017cy do ograniczenia zapytania do bazy danych. Atrybuty oznaczone w ten spos\u00f3b nie s\u0105 udost\u0119pniane jako funkcje wyszukiwania na listach. Atrybut oznaczony jako zaprogramowany filtr nie mo\u017ce by\u0107 jednocze\u015bnie oznaczony jako wirtualny lub jako obiekt biznesowy.<\/p>\n<p><strong>Typ danych<\/strong>\u00a0\u2013 kolumna prezentuje typ danych, jaki zosta\u0142 okre\u015blony dla atrybutu. Ten typ danych jest u\u017cywany do og\u00f3lnego tworzenia p\u00f3l funkcji wyszukiwania, kolumn wy\u015bwietlania itp.<\/p>\n<p><strong>Mo\u017cliwo\u015b\u0107 filtrowania<\/strong>\u00a0\u2013 parametr nale\u017cy zaznaczy\u0107 aby istnia\u0142a mo\u017cliwo\u015b\u0107 filtrowania atrybutu. Pole wyszukiwania jest tworzone dla tych atrybut\u00f3w w obszarze zapyta\u0144 listy.<\/p>\n<p>Pola wyszukiwania nie s\u0105 tworzone dla atrybut\u00f3w:<\/p>\n<ul>\n<li>oznaczonych jako filtr zaprogramowany<\/li>\n<li>znajduj\u0105cych si\u0119 w grupie pola wirtualnego<\/li>\n<\/ul>\n<p>W przypadku tych atrybut\u00f3w wyra\u017cenie filtru jest wyszukiwane w powi\u0105zanym atrybucie wirtualnym.<\/p>\n<p>Je\u015bli atrybut wirtualny jest oznaczony jako mo\u017cliwy do filtrowania, w\u00f3wczas dok\u0142adnie jeden atrybut powi\u0105zanej grupy musi by\u0107 r\u00f3wnie\u017c oznaczony jako mo\u017cliwy do filtrowania. Atrybut ten jest u\u017cywany do filtrowania w ramach atrybutu wirtualnego.<\/p>\n<p><strong>Mo\u017cliwo\u015b\u0107 sortowania\u00a0<\/strong>\u2013 parametr nale\u017cy zaznaczy\u0107 aby istnia\u0142a mo\u017cliwo\u015b\u0107 sortowania atrybutu. Je\u015bli atrybut wirtualny jest oznaczony jako mo\u017cliwy do sortowania, w\u00f3wczas dok\u0142adnie jeden atrybut powi\u0105zanej grupy musi by\u0107 r\u00f3wnie\u017c oznaczony jako mo\u017cliwy do sortowania. Ten atrybut jest u\u017cywany do sortowania w ramach atrybutu wirtualnego.<\/p>\n<p><strong>Mo\u017cliwo\u015b\u0107 wy\u015bwietlania<\/strong>\u00a0\u2013 nale\u017cy zaznaczy\u0107 parametr, aby istnia\u0142a mo\u017cliwo\u015b\u0107 wy\u015bwietlenia atrybutu. Je\u015bli atrybut wirtualny jest oznaczony jako mo\u017cliwy do wy\u015bwietlenia, co najmniej jeden atrybut powi\u0105zanej grupy musi by\u0107 r\u00f3wnie\u017c oznaczony jako mo\u017cliwy do wy\u015bwietlenia. Tak oznaczone atrybuty s\u0105 odczytywane przez baz\u0119 danych, gdy atrybut wirtualny jest w\u0142\u0105czony do wy\u015bwietlania<\/p>\n<p><strong>Klucz zwrotny<\/strong> \u2013 zestaw wszystkich atrybut\u00f3w oznaczonych jako klucze zwrotne musi opisywa\u0107 unikalny klucz, kt\u00f3ry mo\u017ce by\u0107 u\u017cyty do identyfikacji wiersza w wyniku. Ponadto atrybuty te s\u0105 jedynymi atrybutami, kt\u00f3re s\u0105 gwarantowane w zestawie wynik\u00f3w. Programowanie, np. w celu p\u00f3\u017aniejszego przetwarzania, mo\u017ce odnosi\u0107 si\u0119 tylko do tych atrybut\u00f3w. Wszystkie inne wy\u015bwietlane atrybuty s\u0105 opcjonalne i mog\u0105 by\u0107 dodawane lub usuwane przez u\u017cytkownika w zale\u017cno\u015bci od potrzeb. Musi istnie\u0107 co najmniej jeden atrybut oznaczony jako klucz zwrotny.<\/p>\n<p><strong>Logiczny typ danych<\/strong>\u00a0\u2013 okre\u015blaj\u0105c logiczny typ danych, mo\u017cna zmieni\u0107 w\u0142a\u015bciwo\u015bci atrybutu, na przyk\u0142ad etykiet\u0119, pomoc wej\u015bciow\u0105, specjalne renderery lub edytory. Nale\u017cy wprowadzi\u0107 logiczny typ danych dla atrybut\u00f3w wirtualnych i atrybut\u00f3w oznaczonych jako obiekty biznesowe, kt\u00f3re maj\u0105 tylko alias jako wyra\u017cenie. W przeciwnym razie wpis jest opcjonalny. Logiczny typ danych musi by\u0107 oparty na tym samym typie danych co atrybut. Nie jest to konieczne w przypadku atrybutu wirtualnego, poniewa\u017c nie ma odniesienia do atrybutu w bazie danych.<\/p>\n<h5 id=\"przycisk-wybierz-atrybuty\" id=\"przycisk-wybierz-atrybuty\" ><span class=\"ez-toc-section\" id=\"Przycisk_Wybierz_atrybuty\"><\/span>Przycisk [<strong>Wybierz atrybuty<\/strong>]<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Po wybraniu przycisku [<strong>Wybierz atrybuty<\/strong>] otwarte zostanie okno dialogowe, pozwalaj\u0105ce na dodawanie okre\u015blonych atrybut\u00f3w do listy atrybut\u00f3w. U\u017cytkownik mo\u017ce wybiera\u0107 spo\u015br\u00f3d obiekt\u00f3w biznesowych lub widok\u00f3w OQL zdefiniowanych w klauzuli From przy u\u017cyciu przypisanego aliasu. Powi\u0105zane atrybuty obiektu s\u0105 wy\u015bwietlane na li\u015bcie wyboru. Opcjonalnie mo\u017cna okre\u015bli\u0107 prefiks, kt\u00f3ry jest umieszczany przed nazwami atrybut\u00f3w. Jest to przydatne, je\u015bli ten sam obiekt biznesowy ma r\u00f3\u017cne aliasy. W takim przypadku nale\u017cy u\u017cy\u0107 prefiksu, aby nazwy atrybut\u00f3w by\u0142y unikalne w wyszukiwaniu. Ponadto prefiks jest szczeg\u00f3lnie przydatny w przypadku zmian dokonywanych przez deweloper\u00f3w i atrybuty wirtualne.<\/p>\n<p>W oknie dialogowym dost\u0119pne s\u0105 poni\u017csze pola\/przyciski:<\/p>\n<p><strong>Alias<\/strong> &#8211; lista wyboru wszystkich alias\u00f3w zdefiniowanych w wyszukiwaniu. Nazwa obiektu jest okre\u015blona dla ka\u017cdego aliasu.<\/p>\n<p><strong>Prefiks\u00a0<\/strong>&#8211; wprowadzony prefiks jest umieszczany przed nazw\u0105 na li\u015bcie wyboru.<\/p>\n<p>Pasek narz\u0119dzi z nast\u0119puj\u0105cymi przyciskami znajduje si\u0119 w obszarze nag\u0142\u00f3wka listy:<\/p>\n<p>[<strong>Aktualizacja listy<\/strong>] &#8211; wszystkie atrybuty dla wskazanego obiektu biznesowego lub widoku OQL s\u0105 wy\u015bwietlane dla wybranego aliasu.<\/p>\n<p>Na li\u015bcie dost\u0119pne s\u0105 poni\u017csze kolumny:<\/p>\n<p><strong>\u015acie\u017cka atrybutu<\/strong> &#8211; wskazuje \u015bcie\u017ck\u0119 do atrybutu w wybranym obiekcie biznesowym lub w wybranym widoku OQL. Je\u015bli atrybut jest atrybutem w Part, nazwa Part i atrybut s\u0105 oddzielone kropk\u0105.<\/p>\n<p><strong>Nazwa<\/strong> &#8211; nazwa sk\u0142ada si\u0119 z prefiksu i \u015bcie\u017cki atrybutu. Wszystkie kropki w \u015bcie\u017cce atrybutu s\u0105 usuwane, a nast\u0119puj\u0105ca po nich litera jest zast\u0119powana wielk\u0105 liter\u0105.<\/p>\n<p>Je\u015bli okre\u015blono przedrostek, jest on umieszczany z przodu. Je\u015bli prefiks ko\u0144czy si\u0119 kropk\u0105, reszta nazwy pozostaje niezmieniona. Je\u015bli przedrostek nie ko\u0144czy si\u0119 kropk\u0105, pierwsza litera pozosta\u0142ej cz\u0119\u015bci nazwy jest zast\u0119powana odpowiedni\u0105 wielk\u0105 liter\u0105.<\/p>\n<p><strong>Wyra\u017cenie<\/strong> &#8211; wyra\u017cenie sk\u0142ada si\u0119 z aliasu wybranego obiektu, po kt\u00f3rym nast\u0119puje dwukropek i \u015bcie\u017cka atrybutu. Po wybraniu \u017c\u0105danych atrybut\u00f3w mo\u017cna je przenie\u015b\u0107 do wyszukiwania za pomoc\u0105 przycisku [<strong>OK<\/strong>].<\/p>\n<p><strong><a id=\"Layouts\"><\/a>Podzak\u0142adka <em>Layouts<\/em><\/strong><\/p>\n<p>Podzak\u0142adka <em>Layouts<\/em> prezentuje layouty oraz pozwala na ich usuni\u0119cie. Layouty s\u0105 tworzone i edytowane na listach pozwalaj\u0105cych na wyszukiwanie. W tym celu wyszukiwanie musi by\u0107 przypisane do zadania deweloperskiego, a u\u017cytkownik musi by\u0107 edytorem zadania deweloperskiego i wyszukiwania.<\/p>\n<p>Na zak\u0142adce dost\u0119pny jest przycisk:<\/p>\n<p>[<strong>Usu\u0144<\/strong>]\u00a0 &#8211; pozwala na usuni\u0119cie wskazanego layoutu wyszukiwania.<\/p>\n<p>Dost\u0119pne s\u0105 nast\u0119puj\u0105ce kolumny:<\/p>\n<p><strong>Nazwa <\/strong>&#8211; nazwa layoutu z mo\u017cliwo\u015bci\u0105 przet\u0142umaczenia. Tylko layouty typu <em>Standard<\/em> maj\u0105 nazw\u0119.<\/p>\n<p><strong>Typ<\/strong> &#8211; dost\u0119pne opcje:<\/p>\n<ul>\n<li>Standardowy &#8211; zawiera layout tabeli wynik\u00f3w<\/li>\n<li>Filtr &#8211; mo\u017cna okre\u015bli\u0107 tylko jeden layout o tym typie. Zawiera on wyb\u00f3r i rozmieszczenie p\u00f3l zapytania.<\/li>\n<\/ul>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Nale\u017cy pami\u0119ta\u0107, \u017ce uk\u0142ady dla list s\u0105 wprowadzane za pomoc\u0105 <em><a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/obiekt-deweloperski-application-extension\/\">Application extension<\/a><\/em>. Layouty wyszukiwania s\u0105 u\u017cywane tylko wtedy, gdy nie istniej\u0105 w rozszerzeniu aplikacji.<\/div><\/section>\n<p><strong>Widoczno\u015b\u0107 <\/strong>&#8211; layout mo\u017ce by\u0107 <em>Widoczny<\/em> lub <em>Widoczny i preferowany (tylko 1 mo\u017cliwy layout)<\/em>. Layouty s\u0105 wy\u015bwietlane po otwarciu aplikacji.<\/p>\n<h4 id=\"podzakladka-ustawienia\" ><span class=\"ez-toc-section\" id=\"Podzakladka_Ustawienia\"><\/span><a id=\"Ustawienia\"><\/a>Podzak\u0142adka <em>Ustawienia<\/em><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Ta zak\u0142adka pozwala na okre\u015blanie typ\u00f3w baz danych, w kt\u00f3rych mo\u017cna przeprowadzi\u0107 wyszukiwanie. Je\u015bli wybrano wi\u0119cej ni\u017c jedn\u0105 baz\u0119 danych, u\u017cywane widoki Business Objects i OQL musz\u0105 r\u00f3wnie\u017c istnie\u0107 w tych bazach danych.<\/p>\n<p>Mo\u017cna r\u00f3wnie\u017c okre\u015bli\u0107, czy w wyszukiwaniu ma by\u0107 u\u017cywane s\u0142owo kluczowe D<em>istinct<\/em>.<\/p>\n<p>Dost\u0119pne s\u0105 nast\u0119puj\u0105ce pola:<\/p>\n<p><strong>Hook<\/strong> &#8211; w tym polu mo\u017cna opcjonalnie wprowadzi\u0107 klas\u0119 Java, kt\u00f3ra jest u\u017cywana jako hook. Mo\u017cna u\u017cy\u0107 klasy Java hooka, aby wp\u0142yn\u0105\u0107 na wykonanie wyszukiwania. Warunkiem wst\u0119pnym jest to, \u017ce wywodzi si\u0119 ona z klasy <em>com.cisag.pgm.search.SearchHook<\/em>, kt\u00f3r\u0105 mo\u017cna znale\u017a\u0107 w silniku systemu.<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Je\u015bli w polu <em>Obiekt<\/em> <em>bazowy<\/em> wprowadzono g\u0142\u00f3wny obiekt biznesowy wyszukiwania, b\u0119dzie on s\u0142u\u017cy\u0142 jako parametr wej\u015bciowy i b\u0119dzie m\u00f3g\u0142 wielokrotnie korzysta\u0107 z klas hook\u00f3w Java.<\/div><\/section>\n<p><strong>Obiekt bazowy\u00a0<\/strong>&#8211; w tym polu mo\u017cna opcjonalnie wprowadzi\u0107 g\u0142\u00f3wny obiekt biznesowy wyszukiwania. Je\u015bli zostanie wprowadzony, s\u0142u\u017cy jako parametr wej\u015bciowy dla hooka okre\u015blonego w polu <em>Hook<\/em>. Klasy Hook Java mog\u0105 by\u0107 r\u00f3wnie\u017c u\u017cywane wielokrotnie za pomoc\u0105 obiektu bazowego.<\/p>\n<p><strong>Sekcja <em>Baza danych<\/em><\/strong><\/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 poleceniu OQL musz\u0105 by\u0107 zapisane 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. Wszystkie obiekty u\u017cyte w poleceniu OQL musz\u0105 by\u0107 zapisane 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. Wszystkie obiekty u\u017cywane w poleceniu OQL musz\u0105 by\u0107 zapisane w tej samej bazie danych.<\/p>\n<p><strong>Baza konfiguracyjna<\/strong> &#8211; u\u017cywane obiekty biznesowe i widoki OQL znajduj\u0105 si\u0119 w bazie danych konfiguracji. Wszystkie obiekty u\u017cywane w poleceniu OQL musz\u0105 by\u0107 zapisane w tej samej bazie danych.<\/p>\n<p><strong>Distinct <\/strong>&#8211; zaznaczenie parametru pozwala na usuni\u0119cie zduplikowanych wynik\u00f3w. Parametry sortowania, kt\u00f3re s\u0105 niejawnie dodawane do wyszukiwania, s\u0105 zawarte <span style=\"color: #000000;\">w wywo\u0142aniu <\/span><em>SELECT.<\/em><\/p>\n<p>Zaznaczenie parametru zmienia zestaw wynik\u00f3w. Wy\u015bwietlony wynik wyszukiwania nie musi odpowiada\u0107 oczekiwanemu wynikowi wyszukiwania.<\/p>\n","protected":false},"author":28,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-8636","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-typy-obiektow-deweloperskich"],"_links":{"self":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/8636","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=8636"}],"version-history":[{"count":15,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/8636\/revisions"}],"predecessor-version":[{"id":28580,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/8636\/revisions\/28580"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/media?parent=8636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}