{"id":7905,"date":"2024-01-31T12:04:36","date_gmt":"2024-01-31T11:04:36","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/640\/?post_type=ht_kb&#038;p=7905"},"modified":"2024-01-31T12:48:31","modified_gmt":"2024-01-31T11:48:31","slug":"interfejs-do-eksportu-z-aplikacji-typu-lista-za-pomoca-uslug-sieciowych-web-service-zgodnych-z-rest","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/interfejs-do-eksportu-z-aplikacji-typu-lista-za-pomoca-uslug-sieciowych-web-service-zgodnych-z-rest\/","title":{"rendered":"Interfejs do eksportu z aplikacji typu Lista za pomoc\u0105 us\u0142ug sieciowych (web service) zgodnych z REST"},"content":{"rendered":"<h3 id=\"wprowadzenie\" >Wprowadzenie<\/h3>\n<p>Aby wyeksportowa\u0107 obiekty do zewn\u0119trznych aplikacji z konfigurowalnej aplikacji typu <em>Lista<\/em>, dla ka\u017cdej takiej aplikacji nale\u017cy opracowa\u0107 aplikacj\u0119 o typie U<em>s\u0142uga RPC<\/em> i o zastosowaniu <em>Us\u0142uga REST<\/em>. Dokument opisuje spos\u00f3b tworzenia tej aplikacji i \u0142\u0105czenia jej z powi\u0105zan\u0105 aplikacj\u0105 typu <em>Lista<\/em>.<\/p>\n<h3 id=\"grupa-docelowa\" >Grupa docelowa<\/h3>\n<ul>\n<li>Deweloperzy<\/li>\n<\/ul>\n<h3 id=\"definicje-pojec\" >Definicje poj\u0119\u0107<\/h3>\n<p><em>Zgodno\u015b\u0107 z REST<\/em> &#8211; REST to skr\u00f3t od Representational State Transfer. Zgodno\u015b\u0107 z REST oznacza, \u017ce aplikacje i us\u0142ugi sieciowe komunikuj\u0105 si\u0119 ze sob\u0105 w prosty spos\u00f3b. W tym celu wykorzystuje si\u0119 np. HTTP i zdefiniowane przy jego pomocy operacje. Us\u0142uga sieciowa jest bezpo\u015brednio dost\u0119pna poprzez URI, a wszystkie informacje znajduj\u0105 si\u0119 w HTTP. Gwarantuje to, \u017ce \u017caden stan aplikacji nie musi by\u0107 przechowywany ani na kliencie, ani na serwerze.<\/p>\n<p><em>Us\u0142uga sieciowa<\/em> obs\u0142uguje komunikacj\u0119 mi\u0119dzy r\u00f3\u017cnymi aplikacjami dzia\u0142aj\u0105cymi na r\u00f3\u017cnych platformach. Us\u0142uga sieciowa to aplikacja, kt\u00f3r\u0105 mo\u017cna jednoznacznie zidentyfikowa\u0107 za pomoc\u0105 Uniform Resource Identifier (URI). Bezpo\u015brednia interakcja odbywa si\u0119 za po\u015brednictwem wiadomo\u015bci opartych na xml.<\/p>\n<h4 id=\"opis\" >Opis<\/h4>\n<p>Us\u0142uga sieciowa zgodna z REST mo\u017ce by\u0107 wywo\u0142ywana przez klient\u00f3w REST, w tym przez przegl\u0105darki.<\/p>\n<p>Dzi\u0119ki takiej us\u0142udze sieciowej obiekty, kt\u00f3re s\u0105 wyszukiwane w konfigurowalnej aplikacji typu <em>Lista<\/em>, mog\u0105 by\u0107 r\u00f3wnie\u017c wyszukiwane przez aplikacj\u0119 zewn\u0119trzn\u0105. Wyszukiwanie mo\u017ce odby\u0107 si\u0119 na dwa sposoby:<\/p>\n<ul>\n<li>Aplikacja zewn\u0119trzna bezpo\u015brednio z systemu zapytuje o obiekty przy u\u017cyciu URI zgodnym z REST.<\/li>\n<li>Obiekty s\u0105 zapisywane w pliku zgodnym z REST przy u\u017cyciu aplikacji w tle, kt\u00f3ry jest przechowywany w Repozytorium Wiedzy. Aplikacja zewn\u0119trzna mo\u017ce uzyska\u0107 dost\u0119p do pliku w Repozytorium Wiedzy.<\/li>\n<\/ul>\n<h5 id=\"polaczenie-z-konfigurowalna-aplikacja-typu-lista\" >Po\u0142\u0105czenie z konfigurowaln\u0105 aplikacj\u0105 typu <em>Lista<\/em><\/h5>\n<p>Us\u0142uga sieciowa zgodna z REST jest automatycznie \u0142\u0105czona z odpowiedni\u0105 konfigurowaln\u0105 aplikacj\u0105 typu <em>Lista<\/em>, je\u015bli podstawowe wyszukiwania s\u0105 zgodne. Umo\u017cliwia to wysy\u0142anie zapyta\u0144 do URI us\u0142ugi REST w aplikacji typu <em>Lista<\/em> lub wywo\u0142ywanie aplikacji w tle. Wi\u0119cej informacji mo\u017cna znale\u017a\u0107 w rozdziale <a href=\"#POL\"><em>Po\u0142\u0105czenie us\u0142ugi sieciowej zgodnej z REST i aplikacji typu Lista<\/em><\/a>.<\/p>\n<h5 id=\"podstawa-eksportu-zgodnego-z-rest\" >Podstawa eksportu zgodnego z REST<\/h5>\n<p>Eksport zgodny z REST opiera si\u0119 na wyszukiwaniu konfigurowalnej aplikacji typu lista. W przeciwie\u0144stwie do konfigurowalnej aplikacji typu <em>Lista<\/em>, wyszukiwanie szczeg\u00f3\u0142owe nie jest brane pod uwag\u0119. Eksportowane s\u0105 tylko te obiekty, kt\u00f3re odpowiadaj\u0105 kryteriom wyszukiwania z wyszukiwania g\u0142\u00f3wnego. Do filtrowania dost\u0119pne s\u0105 tylko pola filtra z wyszukiwania g\u0142\u00f3wnego.<\/p>\n<h4 id=\"formaty-plikow\" >Formaty plik\u00f3w<\/h4>\n<p>Us\u0142uga sieciowa zgodna z REST wspiera nast\u0119puj\u0105ce formaty plik\u00f3w:<\/p>\n<ul>\n<li>XLS (MS Excel)<\/li>\n<li>CSV<\/li>\n<li>XML<\/li>\n<li>HTML<\/li>\n<\/ul>\n<p>Format pliku HTML mo\u017cna dostosowa\u0107 za pomoc\u0105 konwersji XSLT. W tym celu nale\u017cy utworzy\u0107 plik XSLT i zapisa\u0107 go w Repozytorium Wiedzy pod nast\u0119puj\u0105c\u0105 nazw\u0105:<\/p>\n<ul>\n<li>Plik XSLT specyficzny dla j\u0119zyka i eksportu: kstore:\/\/&lt;A&gt;\/Documents\/CockpitDataSource\/html\/&lt;S&gt;-&lt;L&gt;.xslt<\/li>\n<li>Plik XSLT specyficzny dla eksportu: kstore:\/\/&lt;A&gt;\/Documents\/CockpitDataSource\/html\/&lt;S&gt;.xslt<\/li>\n<li>Plik specyficzny dla j\u0119zyka, ale niezale\u017cny od eksportu XSLT: kstore:\/\/&lt;A&gt;\/Documents\/CockpitDataSource\/html\/Global-&lt;L&gt;.xslt<\/li>\n<li>Plik XSLT niezale\u017cny od eksportu: kstore:\/\/&lt;A&gt;\/Documents\/CockpitDataSource\/html\/Global.xslt<\/li>\n<\/ul>\n<p>Wyja\u015bnienie znaczenia symboli zast\u0119pczych:<\/p>\n<ul>\n<li><strong>&lt;A&gt;<\/strong> &#8211; obszar roboczy (obszar roboczy repozytorium dla wyszukiwania, kt\u00f3re nie jest ustawione dla baz danych OLTP w obiekcie deweloperskim lub bie\u017c\u0105cy obszar roboczy OLTP).<\/li>\n<\/ul>\n<ul>\n<li><strong>&lt;S&gt; <\/strong>&#8211; pe\u0142na nazwa wyszukiwania u\u017cywanego w us\u0142udze sieciowej zgodnej z REST.<\/li>\n<\/ul>\n<ul>\n<li><strong>&lt;L&gt;<\/strong> &#8211; symbol j\u0119zyka (np. de dla niemieckiego).<\/li>\n<\/ul>\n<p>Przyk\u0142ad pliku XSLT mo\u017cna znale\u017a\u0107 w obiekcie deweloperskim typu <em>plik<\/em>: com.cisag.sys.services.datasource.Html-transform.<\/p>\n<h4 id=\"wywolanie-uslugi-sieciowej-zgodnej-z-rest\" >Wywo\u0142anie us\u0142ugi sieciowej zgodnej z REST<\/h4>\n<p>Us\u0142uga sieciowa zgodna z REST eksportuje obiekty z konfigurowalnej aplikacji typu <em>Lista<\/em>. Jest ona wywo\u0142ywana przez oprogramowanie klienckie za po\u015brednictwem protoko\u0142u HTTP GET i parametryzowana za pomoc\u0105 URI us\u0142ugi REST. Opr\u00f3cz wywo\u0142ywanej us\u0142ugi sieciowej zgodnej z REST, URI us\u0142ugi REST zawiera r\u00f3wnie\u017c parametry kontroluj\u0105ce format i zakres eksportowanych obiekt\u00f3w.<\/p>\n<p>Zwrot wywo\u0142ania HTTP zawiera obiekty zapytania z aplikacji typu lista w \u017c\u0105danym formacie pliku, pod warunkiem, \u017ce zwr\u00f3cony zosta\u0142 kod HTTP 200. W przeciwnym razie wyst\u0119puje b\u0142\u0105d.<\/p>\n<h5 id=\"tworzenie-uri-uslugi-rest-w-aplikacji-typu-lista\" >Tworzenie URI us\u0142ugi REST w aplikacji typu <em>Lista<\/em><\/h5>\n<p>URI us\u0142ugi REST dla us\u0142ugi sieciowej zgodnej z REST mo\u017cna utworzy\u0107 za pomoc\u0105 akcji <em>Kopiuj link z kryteriami wyszukiwania<\/em> w konfigurowalnym kokpicie. URI zawiera kryteria wyszukiwania z konfigurowalnej aplikacji typu <em>Lista<\/em>.<\/p>\n<section class=\"document-alert-box indicator\"><div class=\"document-alert-title\">Wskaz\u00f3wka<\/div><div class=\"document-alert-content\">Podczas tworzenia URI zaleca si\u0119 u\u017cycie opcji <em>Kr\u00f3tki URI dla MS Office<\/em>, je\u015bli us\u0142uga sieciowa zgodna z REST ma by\u0107 u\u017cywana jako \u017ar\u00f3d\u0142o danych w MS Office. Dzi\u0119ki tej opcji tworzone jest URI o maksymalnej d\u0142ugo\u015bci 260 znak\u00f3w. W takim przypadku kryteria wyszukiwania nie s\u0105 zawarte w URI, lecz trwale przechowywane w systemie.<\/div><\/section>\n<h5 id=\"format-uri-uslugi-rest\" >Format URI us\u0142ugi REST<\/h5>\n<p>URI us\u0142ugi REST tworzone s\u0105 zgodnie z nast\u0119puj\u0105cym schematem.<\/p>\n<ul>\n<li>Zapis z wykorzystaniem bazy danych OLTP jako ci\u0105g zapytania (query string): <u>https:\/\/&lt;sas&gt;\/services\/rest\/&lt;service&gt;\/search.&lt;extension&gt;?&lt;query<\/u>&gt; zapis z wykorzystaniem bazy danych OLTP w \u015bcie\u017cce:<u> https:\/\/&lt;sas&gt;\/services\/&lt;oltp&gt;\/rest\/&lt;service&gt;\/search.&lt;extension&gt;?&lt;query&gt;<\/u><\/li>\n<\/ul>\n<p><em><section class=\"document-alert-box indicator\"><div class=\"document-alert-title\">Wskaz\u00f3wka<\/div><div class=\"document-alert-content\">Zapis ten jest dost\u0119pny od wersji CIS510PC-Fix16. W przypadku dost\u0119pu za po\u015brednictwem \u017ar\u00f3d\u0142a danych w MS Office nale\u017cy u\u017cy\u0107 tego zapisu<\/div><\/section>.<\/em><\/p>\n<p><em>\u00a0<\/em>Wyja\u015bnienie znaczenia symboli zast\u0119pczych:<\/p>\n<ul>\n<li>&lt;sas&gt; &#8211; host i port serwera aplikacji systemu ERP<\/li>\n<\/ul>\n<ul>\n<li>&lt;oltp&gt; &#8211; nazwa bazy danych OLTP, do kt\u00f3rej nale\u017cy uzyska\u0107 dost\u0119p. Je\u015bli dost\u0119p do bazy danych OLTP nie jest wymagany, podawana jest warto\u015b\u0107 <em>none<\/em>.<\/li>\n<\/ul>\n<ul>\n<li>&lt;service&gt; &#8211; nazwa obiektu deweloperskiego aplikacji serwisowej<\/li>\n<\/ul>\n<ul>\n<li>&lt;extension&gt; &#8211; rozszerzenie pliku zgodnie z \u017c\u0105danym formatem wyj\u015bciowym (np. \u201exls&#8221; dla MS Excel, \u201e csv&#8221;, \u201exml&#8221;, \u201e htm;\u201d)<\/li>\n<\/ul>\n<ul>\n<li>&lt;query&gt; Query-Strings &#8211; aby okre\u015bli\u0107 baz\u0119 danych OLTP w ci\u0105gu zapytania, nale\u017cy u\u017cy\u0107 \u201eoltp=&lt;oltp&gt;\u201c. Ponadto ci\u0105gi zapyta\u0144 opisane poni\u017cej s\u0105 u\u017cywane do eksportu z aplikacji typu lista.<\/li>\n<\/ul>\n<section class=\"document-alert-box indicator\"><div class=\"document-alert-title\">Wskaz\u00f3wka<\/div><div class=\"document-alert-content\">Nale\u017cy pami\u0119ta\u0107, \u017ce w przypadku us\u0142ugi internetowej zgodnej z REST, kt\u00f3ra wymaga bazy danych OLTP, nale\u017cy okre\u015bli\u0107 baz\u0119 danych OLTP, do kt\u00f3rej nale\u017cy si\u0119 zalogowa\u0107. W zale\u017cno\u015bci od sposobu zapisu, jest on okre\u015blony w \u015bcie\u017cce lub jako ci\u0105g zapytania.<\/div><\/section>\n<h4 id=\"ciagi-zapytan\" >Ci\u0105gi zapyta\u0144<\/h4>\n<p>Ci\u0105gi zapyta\u0144 opisane w artykule <em>Interfejs dla programowalnych us\u0142ug webowych<\/em> s\u0105 dost\u0119pne dla us\u0142ug sieciowych zgodnych ze standardem REST.<\/p>\n<p>Parametryzacja \u017ar\u00f3d\u0142a danych odbywa si\u0119 za pomoc\u0105 nast\u0119puj\u0105cych ci\u0105g\u00f3w zapyta\u0144:<\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"width: 100px; border-style: outset; border-color: #000000; background-color: #ffffff; text-align: left; vertical-align: top;\" width=\"180\"><strong>Ci\u0105g zapytania<\/strong><\/td>\n<td style=\"width: 100px; border-style: outset; border-color: #000000; background-color: #ffffff; text-align: left; vertical-align: top;\" width=\"360\"><strong>Opis<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 100px; border-style: outset; border-color: #000000; background-color: #ffffff; text-align: left; vertical-align: top;\" width=\"180\">Filter_&lt;column&gt;<\/td>\n<td style=\"width: 100px; border-style: outset; border-color: #000000; background-color: #ffffff; text-align: left; vertical-align: top;\" width=\"360\">Ci\u0105g zapytania dla kolumny &lt;column&gt;. Kolumna musi mie\u0107 mo\u017cliwo\u015b\u0107 filtrowania. U\u017cywana jest techniczna nazwa kolumny. Parametr mo\u017ce zosta\u0107 podany kilkukrotnie (dla r\u00f3\u017cnych kolumn).<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 100px; border-style: outset; border-color: #000000; background-color: #ffffff; text-align: left; vertical-align: top;\" width=\"180\">SortOrder<\/td>\n<td style=\"width: 100px; border-style: outset; border-color: #000000; background-color: #ffffff; text-align: left; vertical-align: top;\" width=\"360\">Wyliczenie kolumn do posortowania (techniczna nazwa kolumny) i odpowiedni kierunek sortowania (ASC lub DESC), ka\u017cda oddzielona spacj\u0105.<\/p>\n<p>Przyk\u0142ad: name ASC date DESC<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 100px; border-style: outset; border-color: #000000; background-color: #ffffff; text-align: left; vertical-align: top;\" width=\"180\">DisplayColumns<\/td>\n<td style=\"width: 100px; border-style: outset; border-color: #000000; background-color: #ffffff; text-align: left; vertical-align: top;\" width=\"360\">Wyliczenie kolumn do wyeksportowania w wybranej kolejno\u015bci (techniczna nazwa kolumny), oddzielonych spacj\u0105.<\/p>\n<p>Je\u015bli parametr nie zostanie podany, wy\u015bwietlane s\u0105 wszystkie kolumny.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 100px; border-style: outset; border-color: #000000; background-color: #ffffff; text-align: left; vertical-align: top;\" width=\"180\">PrintColumnHeader<\/td>\n<td style=\"width: 100px; border-style: outset; border-color: #000000; background-color: #ffffff; text-align: left; vertical-align: top;\" width=\"360\">Nag\u0142\u00f3wki kolumn s\u0105 wy\u015bwietlane, je\u015bli ten parametr nie ma warto\u015bci lub ma warto\u015b\u0107: <em>true<\/em>.<\/p>\n<p>Nag\u0142\u00f3wki kolumn nie s\u0105 wy\u015bwietlane, je\u015bli parametr nie zosta\u0142 okre\u015blony lub zosta\u0142 okre\u015blony z warto\u015bci\u0105 <em>false<\/em>.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 100px; border-style: outset; border-color: #000000; background-color: #ffffff; text-align: left; vertical-align: top;\" width=\"180\">PrintSpecialParts<\/td>\n<td style=\"width: 100px; border-style: outset; border-color: #000000; background-color: #ffffff; text-align: left; vertical-align: top;\" width=\"360\">Z warto\u015bci\u0105 <em>UNIT_SEPARATED<\/em> jednostka lub waluta jest okre\u015blona w oddzielnej kolumnie dla kolumn typu danych <em>Ilo\u015b\u0107<\/em> lub <em>Kwota<\/em>. Stanowi ona r\u00f3wnie\u017c warto\u015b\u0107 domy\u015bln\u0105.<\/p>\n<p>Z warto\u015bci\u0105 <em>ONE_COLUMN<\/em> warto\u015bci s\u0105 wy\u015bwietlane w kolumnie.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<section class=\"document-alert-box indicator\"><div class=\"document-alert-title\">Wskaz\u00f3wka<\/div><div class=\"document-alert-content\">W przypadku us\u0142ug sieciowych zgodnych z REST mo\u017cna zleci\u0107 systemowi wygenerowanie pliku WADL w spos\u00f3b opisany w dokumentacji <em>Interfejs dla programowalnych us\u0142ug webowych<\/em>. W przypadku us\u0142ug sieciowych zgodnych z REST plik WADL nie zawiera jednak ani nazwy us\u0142ugi, ani opisanych parametr\u00f3w zapytania.<\/div><\/section>\n<h3 id=\"tworzenie-uslug-sieciowych-zgodnych-z-rest\" >Tworzenie us\u0142ug sieciowych zgodnych z REST<\/h3>\n<h4 id=\"aplikacja-uslugi-sieciowej\" ><strong>\u00a0<\/strong>Aplikacja us\u0142ugi sieciowej<\/h4>\n<p>Zakres funkcjonalny us\u0142ugi sieciowej zgodnej z REST zale\u017cy wy\u0142\u0105cznie od zastosowanego wyszukiwania. W zwi\u0105zku z tym &#8211; przy u\u017cyciu istniej\u0105cej funkcji wyszukiwania &#8211; opracowanie us\u0142ugi sieciowej zgodnej z REST jest bardzo proste.<\/p>\n<p>Wymagane s\u0105 nast\u0119puj\u0105ce obiekty deweloperskie:<\/p>\n<ul>\n<li>Aplikacja<\/li>\n<\/ul>\n<p>Aplikacja o typie <em>us\u0142uga RPC<\/em> ze specjalnym u\u017cyciem <em>REST service<\/em> i wprowadzonym wyszukiwaniem.<\/p>\n<ul>\n<li>Klasa javy us\u0142ugi sieciowej<\/li>\n<li>Wyszukiwanie (wprowadzone do us\u0142ugi sieciowej)<\/li>\n<\/ul>\n<p>Klasa javy powinna mie\u0107 tak\u0105 sam\u0105 nazw\u0119 jak aplikacja. Klasa Service Bean wymagana dla programowanej us\u0142ugi sieciowej jest zawarta w nadrz\u0119dnej com.cisag.pgm.services.datasource.DataSourceService jako klasa wewn\u0119trzna. Klasa javy musi by\u0107 zaimplementowana jak w poni\u017cszym przyk\u0142adzie:<\/p>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\"><\/p>\n<p>public class XExport extends DataSourceService {<\/p>\n<p>public XExport() { super();<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>Klasa<em> XExport<\/em> nie mo\u017ce deklarowa\u0107 w\u0142asnych metod public lub protected. S\u0105 one przeznaczone dla przysz\u0142ych rozszerze\u0144.<\/p>\n<p><\/div><\/section>\n<h4 id=\"polaczenie-uslugi-sieciowej-zgodnej-z-rest-i-aplikacji-typu-lista\" ><a id=\"POL\"><\/a>Po\u0142\u0105czenie us\u0142ugi sieciowej zgodnej z REST i aplikacji typu lista<\/h4>\n<p>Aby konfigurowalna aplikacja typu lista mog\u0142a umo\u017cliwia\u0107 eksport za pomoc\u0105 us\u0142ugi sieciowej zgodnej z REST i aby dost\u0119pne by\u0142o okno dialogowe <em>Kopiuj link z kryteriami wyszukiwania<\/em>, to samo wyszukiwanie musi zosta\u0107 wprowadzone w obiekcie deweloperskim aplikacji typu lista oraz w obiekcie deweloperskim aplikacji us\u0142ugi RPC. Wyszukiwanie nie mo\u017ce by\u0107 wprowadzone dla wi\u0119cej ni\u017c jedenej aplikacji us\u0142ugi RPC. W przeciwnym wypadku w aplikacji typu lista dost\u0119pna jest tylko jedna z us\u0142ug sieciowych zgodnych z REST.<\/p>\n<p>Ponadto wyszukiwanie wprowadzone dla aplikacji musi u\u017cywa\u0107 tego samego prefiksu deweloperskiego i, je\u015bli jest to wymagane, pochodzi\u0107 z tego samego APP co aplikacja. Nale\u017cy zauwa\u017cy\u0107, \u017ce warunki te nie s\u0105 weryfikowane w aplikacji: <em>Obiekty deweloperskie<\/em>.<\/p>\n<h4 id=\"search-hooks\" >Search-Hooks<\/h4>\n<p>Na zachowanie funkcji wyszukiwania mo\u017cna wp\u0142ywa\u0107 za pomoc\u0105 nast\u0119puj\u0105cego hooka:<\/p>\n<p>com.cisag.pgm.search.SearchHook<\/p>\n<p>Jest on wywo\u0142ywany zar\u00f3wno z poziomu aplikacji typu <em>Lista<\/em> oraz z poziomu us\u0142ugi sieciowej zgodnej z REST. Dla ka\u017cdego wyszukiwania mo\u017cna u\u017cy\u0107 jednej implementacji hooka.<\/p>\n<p>Wi\u0119cej informacji mo\u017cna znale\u017a\u0107 w JavaDoc tej klasy.<\/p>\n<h4 id=\"renderery-i-formatery\" >Renderery i formatery<\/h4>\n<p>Renderery i formatery s\u0105 u\u017cywane do generowania danych w odpowiednim formacie pliku. Dan\u0105 kolumn\u0119 mo\u017cna wygenerowa\u0107 do postaci pliku, je\u015bli<\/p>\n<ul>\n<li>istnieje renderer lub formater lub<\/li>\n<li>kolumna bazuje na typie danych <em>string<\/em>.<\/li>\n<\/ul>\n<p>Dla renderera wykorzystywana jest jednak jedynie implementacja interfejsu <em>TextRenderer<\/em> i <em>ToolTipRenderer<\/em><\/p>\n<p>Nale\u017cy pami\u0119ta\u0107, \u017ce renderer i formater s\u0105 wywo\u0142ywane przez us\u0142ug\u0119 sieciow\u0105 zgodn\u0105 z REST w sesji innej ni\u017c sesja dialogowa. Je\u015bli kolumna nie mo\u017ce zosta\u0107 wygenerowana do postaci pliku, zamiast tego generowana jest warto\u015b\u0107 b\u0142\u0119du. W formacie pliku <em>CSV<\/em> jest to ci\u0105g znak\u00f3w \u201e#####&#8221;.<\/p>\n<h3 id=\"uprawnienia\" >Uprawnienia<\/h3>\n<p>Ka\u017cda us\u0142uga sieciowa zgodna z REST jest aplikacj\u0105, dla kt\u00f3rej mo\u017cna przypisa\u0107 uprawnienia w systemie. Do nawi\u0105zania po\u0142\u0105czenia wymagane jest uprawnienie pozwalaj\u0105ce na otwarcie aplikacji.<\/p>\n","protected":false},"author":12,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-7905","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-zewnetrzne-interfejsy"],"_links":{"self":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/7905","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\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/comments?post=7905"}],"version-history":[{"count":6,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/7905\/revisions"}],"predecessor-version":[{"id":7911,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/7905\/revisions\/7911"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/media?parent=7905"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}