Zdrojový kód wiki Postup převodu dat z Clavia

Version 17.1 by Jan Šimeček on 2024/06/28 10:13

Show last authors
1
2
3 = Záloha dat Clavia pro převod do Tritia =
4
5 Postup pro malé knihovny k poslání je zde: [[Záloha dat Clavia pro převod do Tritia>>doc:.Zaloha-dat-Clavia-pro-prevod-do-Tritia.WebHome]]
6
7 = Převod =
8
9 == Tipy a Triky ==
10
11 {{html}}
12 <button onclick="toggleContent()">Tipy a Triky - přečíst</button>
13 <div id="content" style="display: none;">
14 Revize se nepřevádí, musí být před zahájením převodu do Tritia uzavřena.
15 Dispečink Clavia se nepřevádí, pokud data potřebují, tak si je musí před vypnutím Clavia opsat.
16 Statistiky LWWW se nepřevádí, knihovna si je musí opsat.
17 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.
18 Neměnit zkratky v odděleních, nebude fungovat vazba výchozího oddělení čtenáře - měnit až po ostrém startu.
19 </div>
20 <script>
21 function toggleContent() {
22 var content = document.getElementById("content");
23 if (content.style.display === "none") {
24 content.style.display = "block";
25 } else {
26 content.style.display = "none";
27 }
28 }
29 </script>
30 {{/html}}
31
32 == Příprava převodu ==
33
34 * Zeptat se knihovny před převodem: [[Dotazy na knihovnu před převodem>>doc:.Dotazy-na-knihovnu-pred-prevodem.WebHome]]
35 * Zálohu rozbalovat přes **{{html}}<span style="color: red;">Total Commander </span>{{/html}}**- ne přes Windows průzkumníka!!!
36
37 1. **{{html}}<span style="color: green;">Aktualizovat Clavius</span>{{/html}}** na současnou verzi (Pomůcky → Update přes internet)
38 1. **{{html}}<span style="color: green;">Provést synchronizaci polí</span>{{/html}}** (Pomůcky → Editace polí → Sync → Aktualizovat)
39 1. **{{html}}<span style="color: green;">Provést kontrolu integrit dat </span>{{/html}}**(chyby opravovat !!! hlavně dogenerovat autority a smazat chybná pole)
40 1*. Katalogizace:
41 1**. **do integrit with .t.,.t. **( lze využít i příkazu **do tritius** , dělá to samé )
42 1***. vyzve ke sloučení slovníků C1 a C3 do C1 - dát ano
43 1**. **do OKindik with .T.**
44 1*. Výpůjčák
45 1**. Clex.exe → Systém → Provést Kontrolu integrity dat)
46 1. **{{html}}<span style="color: green;">pohled([select !s.scislo, s.pcislo, s.ucislo, #s.ckod from svazky s, (select ckod from svazky group by ckod having count(*)>1) s1 where s.ckod<>'' and s.ckod=s1.ckod order by s.ckod])</span>{{/html}}**
47 1*. duplicity čárových kódů svazků řešit ve foxíku tak že za čárový kód přídáte písmeno a,b,c ...  kromě prvního výskytu čárového kódu
48 1. **{{html}}select isxn, count(*) as pocet from tituly group by isxn order by pocet desc{{/html}}**
49 1*. kontrola na duplicitu ISBN
50
51 == Vlastní export dat z Clavia - automaticky (verze Clavia od 28.2.2019) ==
52
53 * **{{html}}<span style="color: red;">Pokud se jedná o reksové centrum, musí export probíhat pod uživatelem Správce Reksu!!</span>{{/html}}** ( Systém - Servis dat - Výběr jiné knihovny - zaškrtnout Správce REKSu - OK )
54 * Při importu REKS knihovny = přečíst oddíl 2.5 ( možná úprava svazků v Claviu )
55 * ve foxíku spustit:
56 * **do FULLEXPORT**
57 ** -vyzve ke kontrole OKAcisla - dát ano a lze jít spát, bude následně automaticky pokračovat export tagů
58 * TAG soubory se automaticky vygenerují do složky TXT ve složce Clavius
59
60 == Příprava CLAVIUS SQL ==
61
62 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.
63 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.
64
65 * postup vytvoření databáze clavius na SQL serveru a převodu dat Clavia pomocí **NASQL.EXE** viz: [[http:~~/~~/www.vkta.cz/LANius/diskety/sql/mssql.htm>>url:http://www.vkta.cz/LANius/diskety/sql/mssql.htm]] pro MSSQL
66 * není potřeba nic nastavovat pouze je potřeba SQL uživatel který má plná práva pro databázi clavius
67
68 == Importování knihovny pokud v cílovém Tritiu již je část svazků (např. Výměnné soubory) ==
69
70 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í:
71
72 |
73
74 {{{Kontrola dat v Claviu, jestli obsahují vygenerovaný správně ckod, kdy 31840 - je prefix nadřízené knihovny:
75  
76 browse for betw(val(pcislo),500000,599999) and !empt(ckod) and ckod<>'31840'
77  
78 Pokud nic nevrátí, tak netřeba dělat! V opačném případě je potřeba předem dogenerovat do svazky.ckod čárový kód s prefiem nadřízené knihovny:
79  
80 browse for betw(val(pcislo),500000,599999) and betw(len(allt(ckod)),0,8)
81
82 repl ckod with '31840'+padl(allt(pcislo),8,'0') for betw(val(pcislo),500000,599999) and betw(len(allt(ckod)),0,8)
83 repl ckod with '31840'+right(ckod,7) for betw(val(pcislo),500000,599999) and !empt(ckod) and ckod<>'31840' }}}
84
85 Je nutné zkontrolovat u VS, aby svazky měli **vyplněný **CKOD (viz výše) a poté **PIDKN **obsahovalo znak **˙ :**
86
87 |
88
89 {{{Kontrola:
90 pohled("SELECT * FROM svazky where ckod <> ' ' AND ckod not like 'prefixImportovaneREKSovky%' AND pidkn != '˙'")
91
92 Oprava:
93 pohled("UPDATE svazky SET pidkn = '˙' where ckod <> ' ' AND ckod not like 'prefixImportovaneREKSovky%' AND pidkn != '˙'")}}}
94
95 //Rozdíly oproti bodu 2.6.2 Import dat~://
96
97 1. **Díla:**
98
99 *
100 ** vybrat v roletce pro duplicity: Kontroluje duplicitu čárových kódů - duplicitní čárové kódy neimportuje a nepřidá je failed souboru
101 *** doporučuji použít až na druhý pokus a okem zkontrolovat, že jsou to opravdu duplicity s knihovnou, která už je na serveru
102
103 1. **Výpůjčky:**
104
105 *
106 ** Vybrat KPUJCKY_REKS a neimportovat KPUJCKY!
107
108 == Import dat v Tritiu, pokud v cílovém Tritiu není část svazků (např. Výměnné soubory) ==
109
110 === Založení knihovny v Tritiu ===
111
112 Je potřeba zaregistrovat novou knihovnu v Tritiu (Přihlášení do Tritia tlačítko Registrovat)
113
114 Při převádění REKSového Clavia nebo převádění knihovny, která má Carmen (Knihovna s REKSovkami - Clavius neobsahuje pouze jednu knihovnu) nedávat po registraci vytvořit webovou definici - vznikne naimportováním DEFWEB, kdy dojde k založení webové definice pro každou REKSovou knihovnu.
115
116 ~!!!Pokud se jedná o sdílený server, kde již běží knihovny na ostro, tak provést zálohu databáze, kdyby se něco zvrtlo co nedokáže [[Postup Odstranění importovaných dat>>url:https://confluence.tritius.cz/pages/viewpage.action?pageId=102925148]] vyřešit a bylo potřeba provést obnovení!!!
117
118 ~!!!Před zahájením zkontrolovat dostatek místa na disku VM!!!.
119
120 Kontrolu lze provést 2 způsoby:
121
122 1. přes putty pomocí příkazu df -h
123 1. v Zabixxu: Sledování → Obrazovky → VM Overview → Hostitel vybrat VM a podívat se na graf Disk space usage
124
125 === Import dat ===
126
127 Import REKS: nezapomenout **zamknout** slovníky (především klíčová slova, popřípadě dodavatele)
128
129 **POZOR!!!!**: kontrola na existenci A podpolí v Tritiu, které zbyli od minulého importu, pokud ano tak smazat před importem!:
130
131 |
132
133 {{{select count(*) from authority_data where subfield_definition in (
134 select id from subfield_definition where name_sub='A')
135
136 select count(*) from work_data where subfield_definition in (
137 select id from subfield_definition where name_sub='A')
138
139 dále:
140 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 . }}}
141
142 * 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.**
143 * 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ářů.
144 * V záložce **Systém** je volba **Import dat**
145 * Spustí se importní mód - běžní uživatelé se do knihovny v importním módu nemohou přihlásit
146 * //Doporučení - naimportovat dump databáze na VM s Tritiem pod uživatelem root (import je řádově rychlejší)//
147 * URL spojení databázi Clavius SQL kde jsou výpůjčky :
148 ** Pro MySQL: **jdbc:mysql:~/~/server.lanius.cz:3306///<databaseName>//?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Europe/Prague**
149 ** Pro MSSQL: **jdbc:sqlserver:~/~/192.168.0.24:1433;databaseName=//<databaseName>//**;SendStringParametersAsUnicode=False;
150 * 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**)
151 * **Start import mode**
152 * Postupně procházíme jednotlivé záložky zleva do prava. Vynecháváme ty které nejsou vždy (akvizice, webový katalog Carmen)
153 ** **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 !!!)
154 *** **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)
155 *** 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:
156 *** SELECT distinct defWebId FROM car_cloud;
157
158 *
159 ** //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//
160 ** **Záložka Autority (u REKSovky zvážit neimportování!)**:
161 *** 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
162 ** 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
163 ** **Záložka Díla a Svazky (u REKSovky zvážit ztitulování a neskládání autorit!):**
164 *** 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)
165 *** Pozor: zkontrolovat názvy souborů pokud obsahují mezery nebo znaky s diakritikou nedojde k propojení !!!
166 *** 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)
167 *** 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
168 *** 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**!
169 ** **Čtenáři:**
170 *** Vybrat CTENARI nebo CTENARI_DO_VSECH_KNIHOVEN - neimportovat obě!
171 ** **MVS**
172 *** Lepší Vytvářet nové záznamy, aby nedocházelo k propojení rezervací na MVS.
173 ** **Záložka Výpůjčky**:
174 *** Vybrat KPUJCKY nebo KPUJCKY_REKS - neimportovat obě!
175 *** postupně po jednotlivých tabulkách importovat a v logu kontrolovat provedení.
176 *** **Poplatky **- způsob uhrazení (poplatek.kartou)
177 **** 0 - platba v hotovosti
178 **** 1, 2, 3, 4 - platba kartou
179 **** 5, 6, 7 - platba na účet
180 **** 8, 9 - platba kreditem
181 * //Odstranit z VM databázi Clavia, pokud byla naimportována do VM.//
182
183 === Odstranění importovaných dat ===
184
185 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]]
186
187 == Nastavení po importu ==
188
189 * **Před ukončením importního módu je třeba vytvořit zálohu databáze.**
190 * **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)
191 * 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:
192 ** Kategorie operací
193 ** Pravidla registrací
194 ** Prohledávané oblasti
195 ** Definice webů - nastavit také výp. kategorii **Nezobrazovat na WWW** ((itemBorrowCategoryId IS NULL OR itemBorrowCategoryId <> 3)) - ID se liší podle převodu
196 * Na poslední záložce **Naplánované úlohy** spustit postupně od shora jednotlivé operace
197 ** u malé knihovny nečekat na dokončení a lze pustit od shora najednou
198 ** u velké knihovny pustit 1., 2., 3., počkat na dokončení a poté pustit 4. a po dokončení pustit 5. a po dokončení pustit 6.
199
200 == Závěrečné důležité operace ==
201
202 * **Restart Tomcatu pomocí tools** (vyčistí se paměť po importu) !!!(((
203
204 )))
205 * **Provést nastavení podle checklist!!!!**
206 * **Přečíst 2.1 Tipy a Triky na začátku stránky!**
207
208 = Regulární výrazy pro opravy dat =
209
210 Všechny nové regulární výrazy je třeba nejprve otestovat vývojářem - **ReplaceHelperTest**.
211
212 |(((
213 == Autority ==
214
215 |=Popis problému|=Regulární výraz|=Vstup|=Výstup|=(% colspan="1" %)Poznámka
216 | Pole 100 obsahuje podpole 4.|
217
218 {{{100\\ [\\ 0-9]{2}\\ \\$4.*}}}|
219
220 {{{100 1  $4070}}}| |(% colspan="1" %)Celé pole se zahodí.
221
222 | Obsahuje pole 1??|
223
224 {{{(1\?\?\ )(.*,.*)§100 $2}}}
225
226 {{{(1\?\?\ )(.*)§110 $2}}}|
227
228 {{{1??  $aAudoly, Sylvie}}}|
229
230 {{{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)
231
232 |(% colspan="1" %)Pole 1XXa je prázdné|(% colspan="1" %)
233
234 {{{^1??.*\\$a$}}}|
235
236 {{{199  $a}}}|(% colspan="1" %) |Odstraní se celé opakování pole
237
238 |(% colspan="1" %)Obsahuje pole 100 a 110|(% colspan="1" %)
239
240 {{{^110.*}}}|
241
242 {{{100 1 $aRoni, Luigi 110 2 $aRoni, Luigii}}}|
243
244 {{{100 1 $aRoni, Luigi}}}|(% colspan="1" %)Odstraní opakování pole 110
245
246 == Díla ==
247
248 |=Popis problému|=Regulární výraz|=Vstup|=Výstup|=(% colspan="1" %)Poznámka
249 |Odkazy na soubory v NAWEB obsahují před adresářem neplatné znaky.|
250
251 {{{(X00[\ ]{4}.*\$[uo]).*(NAWEB.*)(\$.*)§$1$2$3 (X00[\ ]{4}.*\$[uo]).*(NAWEB.*)§$1$2}}}|
252
253 {{{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}}}|
254
255 {{{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.
256
257 |(% colspan="1" %)X00 odakzuje na adresář, který neexistuje z důvodu velikosti písmen na linuxu (velikost písmen se musí shodovat).|(% colspan="1" %)
258
259 {{{(X00[\ ]{4}\$[ou]NAWEB[\\/])OBSAHY([\\/].*)§$1Obsahy$2}}}|
260
261 {{{X00 $oNAWEB/OBSAHY/NC3404.pdf}}}|
262
263 {{{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.
264
265 |(% colspan="1" %)Obsahuje pole ???.|(% colspan="1" %)
266
267 {{{^\?\?\?.*}}}|
268
269 {{{???  $aCzech Republic$eautomapa}}}|(% colspan="1" %) |Odstraní otazníkové pole.
270
271 |(% colspan="1" %)1XX4 nebo 7XX4 obsahuje neexistující kód role|(% colspan="1" %)
272
273 {{{(^[710]{3}.*)(\$4sut)(.*)§$1$3}}}|
274
275 {{{100 1  $A1000239919$aLiker, Jeffrey K.$7xx0031426$4sut}}}|
276
277 {{{100 1  $A1000239919$aLiker, Jeffrey K.$7xx0031426}}}|(% colspan="1" %)kód role z autority Neznámý kód role odstraní.
278
279
280 )))
281
282 ~{~{/html}}~{~{/html}}