Changes for page Postup převodu dat z Clavia
Last modified by Jan Šimeček on 2025/11/03 15:11
From version 37.1
edited by Jan Šimeček
on 2024/06/28 10:49
on 2024/06/28 10:49
Change comment:
There is no comment for this version
To version 47.1
edited by Jan Šimeček
on 2024/06/28 11:05
on 2024/06/28 11:05
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -11,11 +11,13 @@ 11 11 {{html}} 12 12 <button onclick="toggleContent('content1')">Tipy a Triky - přečíst</button> 13 13 <div id="content1" style="display: none;"> 14 +<hr style="border: none; height: 5px; background-color: black;"> 14 14 <p>Revize se nepřevádí, musí být před zahájením převodu do Tritia uzavřena.</p> 15 15 <p>Dispečink Clavia se nepřevádí, pokud data potřebují, tak si je musí před vypnutím Clavia opsat.</p> 16 16 <p>Statistiky LWWW se nepřevádí, knihovna si je musí opsat.</p> 17 17 <p>Neměnit klíč v definici poplatků po testovacím převodu, nepovede se pak napojení poplatků při dalším importu - měnit až po posledním importu knihovny.</p> 18 18 <p>Neměnit zkratky v odděleních, nebude fungovat vazba výchozího oddělení čtenáře - měnit až po ostrém startu.</p> 20 +<hr style="border: none; height: 5px; background-color: black;"> 19 19 </div> 20 20 <script> 21 21 function toggleContent(contentId) { ... ... @@ -60,11 +60,13 @@ 60 60 == Příprava CLAVIUS SQL == 61 61 62 62 {{html}} 63 -<button onclick="toggleContent('content4')">NASQL</button> 65 +<button onclick="toggleContent('content4')">O programu NASQL</button> 64 64 <div id="content4" style="display: none;"> 67 +<hr style="border: none; height: 5px; background-color: black;"> 65 65 <p>Pro převod dat akvizice, výpůjčního protokolu a další částí se používá přímý převod do Tritiia z SQL databáze Clavius. 66 66 <p>Proto je nutné převést celý Clavius do SQL (lze využít SQL server pro Tritius), tento krok lze vynechat jen pokud se importuje pouze fond. 67 67 <p>Je zapotřebí použít program <b>NASQL.exe</b></p> 71 +<hr style="border: none; height: 5px; background-color: black;"> 68 68 </div> 69 69 <script> 70 70 function toggleContent(contentId) { ... ... @@ -82,10 +82,10 @@ 82 82 83 83 V případě připojování dat je nutná existence čárového kódu v tabulce svazky u výměnných souborů, aby došlo ke správnému napárování: 84 84 85 - 86 86 {{html}} 87 87 <button onclick="toggleContent('content2')">Postup kontroly a příkazy pro vygenerování</button> 88 88 <div id="content2" style="display: none;"> 92 +<hr style="border: none; height: 5px; background-color: black;"> 89 89 <p><b>Kontrola dat v Claviu, jestli obsahují vygenerovaný správně ckod, kdy 31840 - je prefix nadřízené knihovny:</b></p> 90 90 <br> 91 91 <p>browse for betw(val(pcislo),500000,599999) and !empt(ckod) and ckod<>'31840'</p> ... ... @@ -96,7 +96,7 @@ 96 96 <br> 97 97 <p>repl ckod with '31840'+padl(allt(pcislo),8,'0') for betw(val(pcislo),500000,599999) and betw(len(allt(ckod)),0,8)</p> 98 98 <p>repl ckod with '31840'+right(ckod,7) for betw(val(pcislo),500000,599999) and !empt(ckod) and ckod<>'31840'</p> 99 -<br ><br>103 +<hr style="border: none; height: 5px; background-color: black;"> 100 100 </div> 101 101 <script> 102 102 function toggleContent(contentId) { ... ... @@ -115,12 +115,13 @@ 115 115 {{html}} 116 116 <button onclick="toggleContent('content3')">Postup kontroly a příkazy pro vygenerování</button> 117 117 <div id="content3" style="display: none;"> 122 +<hr style="border: none; height: 5px; background-color: black;"> 118 118 <p><b>Kontrola:</b></p> 119 119 <p>pohled("SELECT * FROM svazky where ckod <> ' ' AND ckod not like 'prefixImportovaneREKSovky%' AND pidkn != '˙'")</p> 120 120 <p></p> 121 121 <p><b>Oprava:</b></p> 122 122 <p>pohled("UPDATE svazky SET pidkn = '˙' where ckod <> ' ' AND ckod not like 'prefixImportovaneREKSovky%' AND pidkn != '˙'")</p> 123 -<br ><br>128 +<hr style="border: none; height: 5px; background-color: black;"> 124 124 </div> 125 125 <script> 126 126 function toggleContent(contentId) { ... ... @@ -173,8 +173,9 @@ 173 173 **{{html}}<span style="color: red;">POZOR!!!!</span>{{/html}}**: kontrola na existenci A podpolí v Tritiu, které zbyli od minulého importu, pokud ano tak smazat před importem!: 174 174 175 175 {{html}} 176 -<button onclick="toggleContent('content5')"> SELECT</button>181 +<button onclick="toggleContent('content5')">Příkaz pro kontrolu</button> 177 177 <div id="content5" style="display: none;"> 183 +<hr style="border: none; height: 5px; background-color: black;"> 178 178 <p>select count(*) from authority_data where subfield_definition in (</p> 179 179 <p>select id from subfield_definition where name_sub='A')</p> 180 180 <br> ... ... @@ -183,8 +183,7 @@ 183 183 <br> 184 184 <p>dále:</p> 185 185 <p>Po zapnutí Importovacího módu nesmí tabulka import_id_backup obsahovat jediný řádek, který má ve sloupci library ID právě převáděné knihovny, tedy select * from import_id_backup where library = ID_prave_prevadene_knihovny musí vrátit 0 .</p> 186 -<br> 187 -<br> 192 +<hr style="border: none; height: 5px; background-color: black;"> 188 188 </div> 189 189 <script> 190 190 function toggleContent(contentId) { ... ... @@ -199,38 +199,38 @@ 199 199 {{/html}} 200 200 201 201 * Pokud importuji do knihovny s defaultně jiným jazykem (slovenské knihovny) musím před importem správně nastavit **SYSTEM_DEFAULT_LANGUAGE **tak i** LOCALE.** 202 -* Pokud se nejedná o multiknihovní instanci, nastavit v položkách nastavení **MULTI_LIBRARY_INSTANCE** na false ( -304 ) - musí se provést před importem vzkazů čtenářů. 203 -* V záložce **Systém** je volba **Import dat** 207 +* Pokud se nejedná o multiknihovní instanci, nastavit v položkách nastavení **{{html}}<span style="color: red;">MULTI_LIBRARY_INSTANCE</span>{{/html}}** na false ( -304 ) - musí se provést před importem vzkazů čtenářů. 208 +* V záložce **Systém** je volba **{{html}}<span style="color: green;">Import dat</span>{{/html}}** 204 204 * Spustí se importní mód - běžní uživatelé se do knihovny v importním módu nemohou přihlásit 205 205 * //Doporučení - naimportovat dump databáze na VM s Tritiem pod uživatelem root (import je řádově rychlejší)// 206 206 * URL spojení databázi Clavius SQL kde jsou výpůjčky : 207 -** Pro MySQL: **jdbc:mysql:~/~/server.lanius.cz:3306///<databaseName>//?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Europe/Prague** 208 -** Pro MSSQL: **jdbc:sqlserver:~/~/192.168.0.24:1433;databaseName=//<databaseName>//**;SendStringParametersAsUnicode=False; 209 -* Zadáte uživatele a heslo pro připojení do databáze a tlačítkem **Připojit** provedete spojení (po úspěchu se tlačítko změní na **Odpojit**) 210 -* **Start import mode** 212 +** Pro MySQL: **jdbc:mysql:~/~/server.lanius.cz:3306///{{html}}<span style="color: green;"><databaseName></span>{{/html}}//?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Europe/Prague** 213 +** Pro MSSQL: **jdbc:sqlserver:~/~/192.168.0.24:1433;databaseName=//{{html}}<span style="color: green;"><databaseName></span>{{/html}}//**;SendStringParametersAsUnicode=False; 214 +* Zadáte uživatele a heslo pro připojení do databáze a tlačítkem **{{html}}<span style="color: green;">Připojit</span>{{/html}}** provedete spojení (po úspěchu se tlačítko změní na **Odpojit**) 215 +* **{{html}}<span style="color: green;">Start import mode</span>{{/html}}** 211 211 * Postupně procházíme jednotlivé záložky zleva do prava. Vynecháváme ty které nejsou vždy (akvizice, webový katalog Carmen) 212 -** **Záložka Definice** - vybrat postupně po jedné definiční tabulky a dejte **Importuj** vybrané tabulky (v případě opakovaného importu podruhé neprovádět !!!) 217 +** **{{html}}<span style="color: green;">Záložka Definice</span>{{/html}}** - vybrat postupně po jedné definiční tabulky a dejte **Importuj** vybrané tabulky (v případě opakovaného importu podruhé neprovádět !!!) 213 213 *** **Definici webů (DEFWEB)** importovat pouze pro REKSové knihovny (při převodu do sdílené knihovny je třeba založit ručně při registraci knihovny) 214 214 *** Pokud se nepodaří v případě knihovny, která má Carmen převést DEFWEB, tak stačí v Tritius založit ručně webovou definici a do import_id vyplnit ID, které se najde v databázi Clavia: 215 215 *** SELECT distinct defWebId FROM car_cloud; 216 216 217 -* 222 +* 218 218 ** //Doporučení - Pokud se jedná o převod větší knihovny, tak po importu větších dat (autorit, díla, poplatky, čtenáři, výpůjčky, ...) dělat zálohu databáze// 219 -** **Záložka Autority (u REKSovky zvážit neimportování!)**: 224 +** **{{html}}<span style="color: green;">Záložka Autority</span>{{/html}} {{html}}<span style="color: red;">(u REKSovky zvážit neimportování!)</span>{{/html}}**: 220 220 *** tlačítko Nahrát soubor nalistujeme **AUTORITY.TAG** a po jeho nahrání jej vybereme a dáme Importovat. Po importu jsou chybné, neimportované záznamy v souboru failed 221 221 ** Pokud je soubor velký desítky MB a nejde nahrát zkuste přímou adresu např. : [[http:~~/~~/192.168.0.250:8080/Tritius/>>url:http://192.168.0.250:8080/Tritius/cz.effectiva.tritius.Application/Application.html#Import_wizard]] takto obejdete Apache web server 222 -** **Záložka Díla a Svazky (u REKSovky zvážit ztitulování a neskládání autorit!):** 227 +** **{{html}}<span style="color: green;">Záložka Díla a Svazky </span>{{/html}} {{html}}<span style="color: red;">(u REKSovky zvážit ztitulování a neskládání autorit!)</span>{{/html}}:** 223 223 *** obsah složky **NAWEB** z Clavia (pokud existuje) - v průvodci importu dat je na záložce import děl tlačítko, které nahraje zabalenou složku (NAWEB.zip) do příslušné složky a rozbalí. (dříve - ručně nakopírovat do složky Tritia (\tritius\files\Clavius\WORK\NAWEB) 224 -*** Pozor: zkontrolovat názvy souborů pokud obsahují mezery nebo znaky s diakritikou nedojde k propojení !!! 229 +*** {{html}}<span style="color: red;">Pozor: zkontrolovat názvy souborů pokud obsahují mezery nebo znaky s diakritikou nedojde k propojení !!!</span>{{/html}} 225 225 *** Typ importu duplicit - kontroluje duplicitu podle typu dokumentu a ISBN, popřípadě podle typu dokumentu, názvu, autora a roku (Zkontrolovat duplicity ISBN v TAGu) 226 226 *** Přes Nahrát soubor vybereme **DATA.TAG** a po jeho nahrání jej vybereme a dáme Importovat. Po importu jsou chybné, neimportované záznamy v souboru failed 227 227 *** Problémové záznamy v souboru failed, které se nenaimportovaly, je potřeba hned řešit tzn. **opravit a opakovaně importovat teprve pak se může pokračovat**! 228 -** **Čtenáři:** 229 -*** Vybrat CTENARI nebo CTENARI_DO_VSECH_KNIHOVEN - neimportovat obě! 230 -** **MVS** 233 +** **{{html}}<span style="color: green;">Čtenáři:</span>{{/html}}** 234 +*** Vybrat CTENARI nebo CTENARI_DO_VSECH_KNIHOVEN - {{html}}<span style="color: red;">neimportovat obě!</span>{{/html}} 235 +** **{{html}}<span style="color: green;">MVS</span>{{/html}}** 231 231 *** Lepší Vytvářet nové záznamy, aby nedocházelo k propojení rezervací na MVS. 232 -** **Záložka Výpůjčky**: 233 -*** Vybrat KPUJCKY nebo KPUJCKY_REKS - neimportovat obě! 237 +** **{{html}}<span style="color: green;">Záložka Výpůjčky</span>{{/html}}**: 238 +*** Vybrat KPUJCKY nebo KPUJCKY_REKS - {{html}}<span style="color: red;">neimportovat obě!</span>{{/html}} 234 234 *** postupně po jednotlivých tabulkách importovat a v logu kontrolovat provedení. 235 235 *** **Poplatky **- způsob uhrazení (poplatek.kartou) 236 236 **** 0 - platba v hotovosti ... ... @@ -241,12 +241,12 @@ 241 241 242 242 === Odstranění importovaných dat === 243 243 244 -Pokud dojde během importu k problému s některou částí importu (kromě nastavení), tak ji lze smazat pomocí: [[Postup Odstranění importovaných dat>> url:https://confluence.tritius.cz/pages/viewpage.action?pageId=102925148]]249 +Pokud dojde během importu k problému s některou částí importu (kromě nastavení), tak ji lze smazat pomocí: [[Postup Odstranění importovaných dat>>doc:.Postup-Odstraneni-importovanych-dat.WebHome]] 245 245 246 246 == Nastavení po importu == 247 247 248 -* **Před ukončením importního módu je třeba vytvořit zálohu databáze.** 249 -* **Ukončit import mód - až v momentě, kdy jsou všechna data správně převedená! **(u velkého serveru může zastavení trvat i půl hodiny) 253 +* **{{html}}<span style="color: red;">Před ukončením importního módu je třeba vytvořit zálohu databáze.</span>{{/html}}** 254 +* **{{html}}<span style="color: red;">Ukončit import mód - až v momentě, kdy jsou všechna data správně převedená! **(u velkého serveru může zastavení trvat i půl hodiny)</span>{{/html}}** 250 250 * Pokud se převáděla konfigurace výpůjčního protokolu je potřeba projít a opravit podmínky v následujících částek nastavení, jinak by spadla reindexace: 251 251 ** Kategorie operací 252 252 ** Pravidla registrací ... ... @@ -261,81 +261,138 @@ 261 261 * **Restart Tomcatu pomocí tools** (vyčistí se paměť po importu) !!!((( 262 262 263 263 ))) 264 -* **Provést nastavení podle checklist!!!!** 265 -* **Přečíst 2.1 Tipy a Triky na začátku stránky!** 269 +* **{{html}}<span style="color: red;">Provést nastavení podle checklist!!!!</span>{{/html}}** 270 +* **{{html}}<span style="color: red;">Přečíst 2.1 Tipy a Triky na začátku stránky!</span>{{/html}}** 266 266 267 267 = Regulární výrazy pro opravy dat = 268 268 269 269 Všechny nové regulární výrazy je třeba nejprve otestovat vývojářem - **ReplaceHelperTest**. 270 270 271 -|((( 272 -== Autority == 276 +{{html}} 277 +<button onclick="toggleContent('content6')">Příkaz pro kontrolu</button> 278 +<div id="content6" style="display: none;"> 279 +<hr style="border: none; height: 5px; background-color: black;"> 273 273 274 - |=Popis problému|=Regulární výraz|=Vstup|=Výstup|=(% colspan="1" %)Poznámka275 - |Pole 100 obsahuje podpole 4.|281 +Autority 282 + Pole 100 obsahuje podpole 4. 276 276 277 - {{{100\\ [\\ 0-9]{2}\\ \\$4.*}}}|284 +100\\ [\\ 0-9]{2}\\ \\$4.* 278 278 279 - {{{100 1 $4070}}}| |(% colspan="1" %)Celé pole se zahodí.286 + 280 280 281 - |Obsahujepole1??|288 + 100 1 $4070 282 282 283 -{{{(1\?\?\ )(.*,.*)§100 $2}}} 290 + 291 + Celé pole se zahodí. 292 + Obsahuje pole 1?? 284 284 285 - {{{(1\?\?\ )(.*)§110 $2}}}|294 +(1\?\?\ )(.*,.*)§100 $2 286 286 287 - {{{1??$aAudoly,Sylvie}}}|296 +(1\?\?\ )(.*)§110 $2 288 288 289 - {{{100 $aAudoly, Sylvie}}}|(% colspan="1" %)Pokusí se rozpoznat zda se jedná o osobní jméno, nebo korporaci (pokud je osobní jméno, obsahuje hodnota čárku)298 + 290 290 291 - |(%colspan="1"%)Pole1XXajeprázdné|(% colspan="1"%)300 + 1?? $aAudoly, Sylvie 292 292 293 - {{{^1??.*\\$a$}}}|302 + 294 294 295 - {{{199$a}}}|(% colspan="1"%) |Odstranísecelé opakovánípole304 + 100 $aAudoly, Sylvie 296 296 297 -|(% colspan="1" %)Obsahuje pole 100 a 110|(% colspan="1" %) 306 + Pokusí se rozpoznat zda se jedná o osobní jméno, nebo korporaci (pokud je osobní jméno, obsahuje hodnota čárku) 307 +Pole 1XXa je prázdné 298 298 299 - {{{^110.*}}}|309 +^1??.*\\$a$ 300 300 301 - {{{100 1 $aRoni, Luigi 110 2 $aRoni, Luigii}}}|311 + 302 302 303 - {{{1001$aRoni,Luigi}}}|(%colspan="1" %)Odstraní opakování pole 110313 +199 $a 304 304 305 -== Díla == 315 + 316 + Odstraní se celé opakování pole 317 +Obsahuje pole 100 a 110 306 306 307 -|=Popis problému|=Regulární výraz|=Vstup|=Výstup|=(% colspan="1" %)Poznámka 308 -|Odkazy na soubory v NAWEB obsahují před adresářem neplatné znaky.| 319 +^110.* 309 309 310 - {{{(X00[\ ]{4}.*\$[uo]).*(NAWEB.*)(\$.*)§$1$2$3 (X00[\ ]{4}.*\$[uo]).*(NAWEB.*)§$1$2}}}|321 + 311 311 312 -{{{X00 $uW:\NAWEB\OBSAHY\N38492.pdf$tObsah$oNAWEB\2016_Knihy\N38492.jpg X00 $uW:\NAWEB\OBSAHY\N38492.pdf$tObsah$oW:\NAWEB\2016_Knihy\N38492.jpg X00 $uNAWEB\OBSAHY\N38492.pdf$tObsah$oW:\NAWEB\2016_Knihy\N38492.jpg X00 $oW:\NAWEB\OBSAHY\N38492.pdf$tObsah$uNAWEB\2016_Knihy\N38492.jpg X00 $oW:\NAWEB\OBSAHY\N38492.pdf$tObsah$uW:\NAWEB\2016_Knihy\N38492.jpg X00 $oNAWEB\OBSAHY\N38492.pdf$tObsah$uW:\NAWEB\2016_Knihy\N38492.jpg}}}| 323 +100 1 $aRoni, Luigi 324 +110 2 $aRoni, Luigii 313 313 314 - {{{X00 $uNAWEB\OBSAHY\N38492.pdf$tObsah$oNAWEB\2016_Knihy\N38492.jpg X00 $uNAWEB\OBSAHY\N38492.pdf$tObsah$oNAWEB\2016_Knihy\N38492.jpg X00 $uNAWEB\OBSAHY\N38492.pdf$tObsah$oNAWEB\2016_Knihy\N38492.jpg X00 $oNAWEB\OBSAHY\N38492.pdf$tObsah$uNAWEB\2016_Knihy\N38492.jpg X00 $oNAWEB\OBSAHY\N38492.pdf$tObsah$uNAWEB\2016_Knihy\N38492.jpg X00 $oNAWEB\OBSAHY\N38492.pdf$tObsah$uNAWEB\2016_Knihy\N38492.jpg}}}|(% colspan="1" %)Odstraní znaky co nepatří před NAWEB.326 + 315 315 316 - |(% colspan="1" %)X00odakzujenaadresář, kterýneexistujez důvoduvelikostipísmen na linuxu (velikost písmen se musí shodovat).|(% colspan="1" %)328 +100 1 $aRoni, Luigi 317 317 318 -{{{(X00[\ ]{4}\$[ou]NAWEB[\\/])OBSAHY([\\/].*)§$1Obsahy$2}}}| 330 + Odstraní opakování pole 110 331 +Díla 332 +Odkazy na soubory v NAWEB obsahují před adresářem neplatné znaky. 319 319 320 -{{{X00 $oNAWEB/OBSAHY/NC3404.pdf}}}| 334 +(X00[\ ]{4}.*\$[uo]).*(NAWEB.*)(\$.*)§$1$2$3 335 +(X00[\ ]{4}.*\$[uo]).*(NAWEB.*)§$1$2 321 321 322 - {{{X00 $oNAWEB/Obsahy/NC3404.pdf}}}|(% colspan="1" %)Změna velikosti písmen "OBSAHY" → "Obsahy". Regulární příkaz se musí dát až za regulární příkaz opravující validnost cesty.337 + 323 323 324 -|(% colspan="1" %)Obsahuje pole ???.|(% colspan="1" %) 339 +X00 $uW:\NAWEB\OBSAHY\N38492.pdf$tObsah$oNAWEB\2016_Knihy\N38492.jpg 340 +X00 $uW:\NAWEB\OBSAHY\N38492.pdf$tObsah$oW:\NAWEB\2016_Knihy\N38492.jpg 341 +X00 $uNAWEB\OBSAHY\N38492.pdf$tObsah$oW:\NAWEB\2016_Knihy\N38492.jpg 342 +X00 $oW:\NAWEB\OBSAHY\N38492.pdf$tObsah$uNAWEB\2016_Knihy\N38492.jpg 343 +X00 $oW:\NAWEB\OBSAHY\N38492.pdf$tObsah$uW:\NAWEB\2016_Knihy\N38492.jpg 344 +X00 $oNAWEB\OBSAHY\N38492.pdf$tObsah$uW:\NAWEB\2016_Knihy\N38492.jpg 325 325 326 - {{{^\?\?\?.*}}}|346 + 327 327 328 -{{{??? $aCzech Republic$eautomapa}}}|(% colspan="1" %) |Odstraní otazníkové pole. 348 +X00 $uNAWEB\OBSAHY\N38492.pdf$tObsah$oNAWEB\2016_Knihy\N38492.jpg 349 +X00 $uNAWEB\OBSAHY\N38492.pdf$tObsah$oNAWEB\2016_Knihy\N38492.jpg 350 +X00 $uNAWEB\OBSAHY\N38492.pdf$tObsah$oNAWEB\2016_Knihy\N38492.jpg 351 +X00 $oNAWEB\OBSAHY\N38492.pdf$tObsah$uNAWEB\2016_Knihy\N38492.jpg 352 +X00 $oNAWEB\OBSAHY\N38492.pdf$tObsah$uNAWEB\2016_Knihy\N38492.jpg 353 +X00 $oNAWEB\OBSAHY\N38492.pdf$tObsah$uNAWEB\2016_Knihy\N38492.jpg 329 329 330 -|(% colspan="1" %)1XX4 nebo 7XX4 obsahuje neexistující kód role|(% colspan="1" %) 355 + Odstraní znaky co nepatří před NAWEB. 356 +X00 odakzuje na adresář, který neexistuje z důvodu velikosti písmen na linuxu (velikost písmen se musí shodovat). 331 331 332 - {{{(^[710]{3}.*)(\$4sut)(.*)§$1$3}}}|358 +(X00[\ ]{4}\$[ou]NAWEB[\\/])OBSAHY([\\/].*)§$1Obsahy$2 333 333 334 - {{{100 1 $A1000239919$aLiker, Jeffrey K.$7xx0031426$4sut}}}|360 + 335 335 336 - {{{1001$A1000239919$aLiker,JeffreyK.$7xx0031426}}}|(% colspan="1" %)kódrole z autority Neznámý kód role odstraní.362 +X00 $oNAWEB/OBSAHY/NC3404.pdf 337 337 338 - 339 -))) 364 + 340 340 341 - ~{~{/html}}~{~{/html}} 366 +X00 $oNAWEB/Obsahy/NC3404.pdf 367 + 368 + Změna velikosti písmen "OBSAHY" → "Obsahy". Regulární příkaz se musí dát až za regulární příkaz opravující validnost cesty. 369 +Obsahuje pole ???. 370 + 371 +^\?\?\?.* 372 + 373 + 374 + 375 +??? $aCzech Republic$eautomapa 376 + 377 + 378 + Odstraní otazníkové pole. 379 +1XX4 nebo 7XX4 obsahuje neexistující kód role 380 + 381 +(^[710]{3}.*)(\$4sut)(.*)§$1$3 382 + 383 + 384 + 385 +100 1 $A1000239919$aLiker, Jeffrey K.$7xx0031426$4sut 386 + 387 + 388 + 389 +100 1 $A1000239919$aLiker, Jeffrey K.$7xx0031426 390 + 391 +<hr style="border: none; height: 5px; background-color: black;"> 392 +</div> 393 +<script> 394 + function toggleContent(contentId) { 395 + var content = document.getElementById(contentId); 396 + if (content.style.display === "none") { 397 + content.style.display = "block"; 398 + } else { 399 + content.style.display = "none"; 400 + } 401 + } 402 +</script> 403 +{{/html}}