Compare commits

...

181 Commits
v0.1 ... master

Author SHA1 Message Date
Felix Lohmeier 847239adcd fix 1108n 011F 2022-07-01 11:00:56 +02:00
Felix Lohmeier b339ca9b6e Regel Alephino 432 zu Pica 4025 entfernt 2022-06-30 16:19:29 +02:00
Felix Lohmeier 15a025c3fb 3010 um Alephino 100b, 100a und 100f ergänzt 2022-06-30 16:12:27 +02:00
Felix Lohmeier d70a0a71f9 Reihenfolge Unterfelder 2003 2022-06-30 16:04:13 +02:00
Felix Lohmeier 778a449e22 Code für Unterfeld a in 3100 3110 2022-06-30 15:53:15 +02:00
Felix Lohmeier e42b9aae77 Reihenfolge Unterfelder 3000 3010 2022-06-30 15:44:20 +02:00
Felix Lohmeier 50221376a5 4243 Ausnahme Riesa ohne Unterfeld p 2022-05-31 12:59:07 +02:00
Felix Lohmeier 96ec0d9ff5 4030 Reihenfolge Unterfelder 2022-05-20 22:12:52 +02:00
Felix Lohmeier 01ffca6905 4030: Feld obligatorisch und 418 auch nach ; aufteilen. 2022-05-20 21:58:20 +02:00
Felix Lohmeier d326a7dba7 2003 / 004P Unterfeld S statt f 2022-05-20 20:57:12 +02:00
Felix Lohmeier e42570ef71 2000 Formale Prüfung ISBN 2022-05-19 22:29:35 +02:00
Felix Lohmeier bc422ecfda 1100 auch aus 425a und 425b nur 4-stellig 2022-05-19 22:28:23 +02:00
Felix Lohmeier a8243af070 fix 4160 2022-05-19 09:05:24 +02:00
Felix Lohmeier 28c5a3760f 4170 GT1 GT2 GT3 GTU 2022-05-19 01:38:42 +02:00
Felix Lohmeier 8d602e05dc GT0: 4150, 4151, 4160 2022-05-18 22:59:03 +02:00
Felix Lohmeier 98fcec33c8 Ausnahme Titel fehlt 2022-05-15 22:00:43 +02:00
Felix Lohmeier 8b8de324ff 0500 Abschluss 2022-05-15 22:00:21 +02:00
Felix Lohmeier a8e10e2d5e Überordnungen 2022-05-15 20:53:31 +02:00
Felix Lohmeier 1538335843 Löschungen getrennt für RS und LE 2022-05-14 22:23:46 +02:00
Felix Lohmeier 895c86b426 Unterordnungen löschen, wenn Überordnung nicht konvertiert wird 2022-05-07 00:59:42 +02:00
Felix Lohmeier 447562609c ISSN 2010 / 542a entfernt 2022-05-07 00:01:55 +02:00
Felix Lohmeier 862fec7bb2 Korrektur Mehrfachbelegung 2022-04-30 20:53:37 +02:00
Felix Lohmeier 8dbbe44718 2201 2022-04-30 20:27:15 +02:00
Felix Lohmeier 6fe0c3fbea 2053 2022-04-30 19:41:23 +02:00
Felix Lohmeier 7e6878b7be 2010 2022-04-30 19:37:23 +02:00
Felix Lohmeier c5bf42f028 2009 2022-04-30 19:31:16 +02:00
Felix Lohmeier 260419c75a 2000 2022-04-30 19:27:58 +02:00
Felix Lohmeier df5f0990d9 4242 2022-04-30 19:11:02 +02:00
Felix Lohmeier 7aea84679c 4243 2022-04-30 19:07:24 +02:00
Felix Lohmeier de513593b4 4204 erweitert 2022-04-30 18:54:47 +02:00
Felix Lohmeier 41de223b34 4204 2022-04-30 18:45:46 +02:00
Felix Lohmeier b6222f7e11 4212 2022-04-30 18:38:49 +02:00
Felix Lohmeier 125e080c7c 4060, 4061, 4062, 4063 2022-04-30 18:14:29 +02:00
Felix Lohmeier ecfe4c5825 4025 2022-04-30 17:32:30 +02:00
Felix Lohmeier 85d64a2468 1108n 2022-04-30 17:31:06 +02:00
Felix Lohmeier 4084a80d5e 4030 2022-04-29 20:09:40 +02:00
Felix Lohmeier 2cc5bfb999 4020 und 4026 2022-04-29 12:03:34 +02:00
Felix Lohmeier bdebe051f6 4222 fix 2022-03-31 00:04:18 +02:00
Felix Lohmeier cd912dd99a Erweiterung 3260 2022-03-31 00:00:47 +02:00
Felix Lohmeier a909aede5f 4011 2022-03-31 00:00:36 +02:00
Felix Lohmeier 33b229624e 4222 2022-03-30 23:38:05 +02:00
Felix Lohmeier 2b0807f91d 4002 2022-03-30 22:43:57 +02:00
Felix Lohmeier 1b8c46b6d6 4000 2022-03-30 22:09:27 +02:00
Felix Lohmeier b54e12f417 3260 2022-03-30 21:55:34 +02:00
Felix Lohmeier 3af9635f35 3211 2022-03-30 21:39:34 +02:00
Felix Lohmeier 43cf7a8087 3210 2022-03-30 21:39:23 +02:00
Felix Lohmeier 4cde132f8e Wenn kein Erscheinungsdatum, dann 20XX setzen 2022-03-30 21:15:49 +02:00
Felix Lohmeier 4881f737ec Körperschaften 2022-03-22 17:52:44 +01:00
Felix Lohmeier 97caa1284b Optimierung Dokumentation 2022-03-22 16:18:32 +01:00
Felix Lohmeier 52c24c4bd7 fix nach Klärung Rückfragen 2022-03-17 15:06:22 +01:00
Felix Lohmeier 6ad79d03b6 Titeldaten bis Feld 196 2022-03-17 01:32:31 +01:00
Felix Lohmeier eb6bf9fa74 Alephino Exemplardaten 2022-03-12 00:16:50 +01:00
Felix Lohmeier f67c849593 Refactoring 2022-03-10 18:03:39 +01:00
Felix Lohmeier 35998bc0f9 Alephino Basis 2022-02-04 00:33:19 +01:00
Felix Lohmeier c44a328c9d Löschen von Exemplardaten umgestellt 2022-01-12 12:22:38 +01:00
Felix Lohmeier 78a01721f1 Weitere Felder löschen 2021-11-30 00:27:19 +01:00
Felix Lohmeier 18e572e6c9 Zuordnung Mehrfachexemplare korrigiert 2021-11-30 00:11:49 +01:00
Felix Lohmeier 101b41fa7b Export aus Task Alephino direkt in PICA+ 2021-05-03 12:54:14 +02:00
Felix Lohmeier c00d0d5e6e Abschlussarbeiten Korrektur Selektionsschlüssel BB 2021-04-28 20:06:46 +02:00
Felix Lohmeier ca117c422d Abschlussarbeiten Korrektur Zählung im Template 2021-04-28 19:59:49 +02:00
Felix Lohmeier 66a4e4616c Optimierung Abschlussarbeiten 2021-04-28 19:48:41 +02:00
Felix Lohmeier aa6395a25e Abschlussarbeiten aus Breitenbrunn 2021-04-28 11:28:25 +02:00
Felix Lohmeier 4a50eab9a4 TODO Fragmente in Taskfile löschen 2021-04-28 10:52:22 +02:00
Felix Lohmeier f2761f7edf E0XX Zugangsdatum auf 26-04-21, wenn nicht vorhanden 2021-04-28 10:41:58 +02:00
Felix Lohmeier d3f4decd96 2010 Keine Übernahme ISSN 2021-04-28 10:37:25 +02:00
Felix Lohmeier bc29ef5873 0100 Nachtrag HEB, ZDB und Korrektur 026k statt IDNR 2021-04-28 10:31:46 +02:00
Felix Lohmeier 088c0d1179 4030p aufteilen bei ; 2021-04-28 10:30:19 +02:00
Felix Lohmeier 4c03cd4e20 036D Zählung /00 entfernen 2021-04-20 17:16:15 +02:00
Felix Lohmeier ac31d9375e fix 3000 3010 Nachname 2021-04-20 17:15:04 +02:00
Felix Lohmeier 4dbbb46208 0110 nur eindeutig zuordnenbare SWNs 2021-04-19 20:36:41 +02:00
Felix Lohmeier 4d9b435d58 4170 das ; in GT1B berücksichtigen 2021-04-19 11:29:02 +02:00
Felix Lohmeier 815064d16a 4170 Refactoring (keine inhaltlichen Änderungen) 2021-04-18 19:37:40 +02:00
Felix Lohmeier d22bbcb02f 4170 036E Unterfeld l statt I 2021-04-18 17:04:11 +02:00
Felix Lohmeier 91a03e5197 67XX 245Z aufsplitten und nummerieren 2021-04-18 16:53:30 +02:00
Felix Lohmeier dfec265349 4030 033A p wenn leer, dann "[Erscheinungsort nicht ermittelbar] 2021-04-18 16:30:41 +02:00
Felix Lohmeier ed3c62941e Funktionsbezeichnungen auch mit :: leeren 2021-04-12 22:23:05 +02:00
Felix Lohmeier 88cd0cc746 Weitere Personen in 028C aus 3010 (statt 3100) 2021-04-12 21:52:50 +02:00
Felix Lohmeier 6d987ebd35 028A 3010 028C 3011 Reihenfolge 2021-04-12 11:15:47 +02:00
Felix Lohmeier 8c09d94e2c 029F 3110 Körperschaften Ordnungshilfe in statt 2021-04-12 11:06:20 +02:00
Felix Lohmeier 9d9a9dd366 033A 4030 Ort/Verlag Reihenfolge der Unterfelder korrigiert 2021-04-12 11:01:29 +02:00
Felix Lohmeier cecb94e3a1 2010 ISSN mit Bindestrich 2021-04-12 10:58:05 +02:00
Felix Lohmeier 3252729b3d Korrektur 4160 bzw. 036D Reihenfolge Unterfelder 2021-03-29 12:26:05 +02:00
Felix Lohmeier 91da292c62 Korrektur statt in 4160 bzw. 036D 2021-03-29 11:17:20 +02:00
Felix Lohmeier 9bde999979 Zweiter Korrekturversuch 8100 209C 2021-03-11 22:29:35 +01:00
Felix Lohmeier 6b881e6b74 Revert "Korrektur 8100 209C"
This reverts commit 3ba2577c30.
2021-03-11 22:27:33 +01:00
Felix Lohmeier 0619050332 Korrektur Transponieren mit Auswirkung auf 7100f 209A u.a. 2021-03-11 21:54:13 +01:00
Felix Lohmeier 3ba2577c30 Korrektur 8100 209C 2021-03-11 21:53:27 +01:00
Felix Lohmeier 898231694d Korrektur 4160x AUFL/JAHR 2021-03-10 13:37:31 +01:00
Felix Lohmeier ba14d359a0 Korrektur Unterfeld l statt I 2021-03-10 12:51:34 +01:00
Felix Lohmeier 1692106214 Schriftenreihen GT-Felder 4170 2021-03-08 12:57:33 +01:00
Felix Lohmeier 2a3c230f28 MTM 4150 4160 erledigt, Reihen 4170 vorbereitet 2021-03-06 00:18:50 +01:00
Felix Lohmeier 6c3ea423ad Nachtrag zu Prüfung NRPRE, spec_B_T_32 2021-03-05 17:42:25 +01:00
Felix Lohmeier 8842f97622 Prüfung NRPRE für MTM 2021-03-05 17:15:51 +01:00
Felix Lohmeier 7d9c1ca0a0 Paralleltitel 4002 2021-03-04 17:32:13 +01:00
Felix Lohmeier 98aa532df5 Einheitssachtitel 2310, lokale Systematik 67XX 2021-03-04 17:16:13 +01:00
Felix Lohmeier 509482349b Hochschulschriftenvermerk für Abschlussarbeiten 4204 2021-03-04 16:47:33 +01:00
Felix Lohmeier db28d39853 Kollationsvermerk 4060 4061 und Formatangabe 4062 2021-03-04 16:44:30 +01:00
Felix Lohmeier 9d34b64270 spec_B_T_19 Verfasserangabe zum Haupttitel 4000h 2021-03-04 16:35:01 +01:00
Felix Lohmeier d05c3aff93 Urheber (Körperschaft) in 3110 2021-03-04 16:30:52 +01:00
Felix Lohmeier 57f4f8e381 Typo in 3000 3010 2021-03-04 16:09:30 +01:00
Felix Lohmeier 788cde752d Verfasser/Personen 3000 und 3010 2021-03-04 15:22:19 +01:00
Felix Lohmeier 5ef2383a41 fix typos 2009 2010 2201 2240 2021-03-03 17:12:01 +01:00
Felix Lohmeier cfc75a81db formal falsche ISBNs in 2009 verschieben 2021-03-03 16:18:52 +01:00
Felix Lohmeier c46e807d73 Statusprüfung besser ohne Taskfile.yml
Sonst führt eine Änderung am Task refine-main auch zur unnötigen Ausführung von refine-pre
2021-03-03 15:48:40 +01:00
Felix Lohmeier 74c500025a 2240 ZDB-Nummer 2021-03-01 01:02:56 +01:00
Felix Lohmeier 2794a7d8a1 2201 EAN 2021-03-01 00:56:46 +01:00
Felix Lohmeier 95bed397e7 2000 ISBN verfeinert 2021-03-01 00:55:10 +01:00
Felix Lohmeier 4b3ee55d1d 2010 ISSN 2021-03-01 00:50:33 +01:00
Felix Lohmeier 4d1273af1c 2020 ISMN 2021-02-28 23:46:04 +01:00
Felix Lohmeier 9bad6aeb17 refactoring mit openrefine-task runner
https://github.com/opencultureconsulting/openrefine-task-runner
2021-02-25 16:45:46 +01:00
Felix Lohmeier b188267640 Export Barcodes für Barcode-Analyse 2021-02-08 16:37:36 +01:00
Felix Lohmeier 9a35fb37cf spec_Z_06 dublette Barcodes löschen 2021-02-08 16:11:24 +01:00
Felix Lohmeier 1bbab44b8b 8200 kein Präfix bei Barcodes 2021-02-08 16:02:16 +01:00
Felix Lohmeier 1c5cda8e9b Korrektur Ausgabe Barcode-Analyse 2021-02-07 22:20:36 +01:00
Felix Lohmeier 27eae7ebe4 Barcode-Analyse als Task und erweitert um Abgleich gegen generiertes PICA+ 2021-02-03 11:54:09 +01:00
Felix Lohmeier b28ab4ed0f Analyse dubletter Barcodes 2021-01-29 16:40:49 +01:00
Felix Lohmeier 18e25d4c57 Korrektur MEKZ ACQ 2021-01-13 10:56:11 +01:00
Felix Lohmeier 051424c406 Bei MEKZ ACQ auch Titeldaten löschen 2021-01-12 18:07:12 +01:00
Felix Lohmeier ab8a135425 Korrektur spec_B_T_22 4060 UMF 2021-01-11 15:08:30 +01:00
Felix Lohmeier fd89052b1c Revert "Korrektur spec_B_T_20 4020 AUFL"
This reverts commit 873ccbf8c0.
2021-01-11 15:07:41 +01:00
Felix Lohmeier 8874b8d1b1 Korrektur Template für 4060a / 034D und 0999 / 046W 2021-01-11 14:56:57 +01:00
Felix Lohmeier 873ccbf8c0 Korrektur spec_B_T_20 4020 AUFL 2021-01-11 14:51:58 +01:00
Felix Lohmeier 1545e9d32b Korrektur spec_B_T_16, spec_B_T_21, spec_B_T_22 2021-01-09 15:21:53 +01:00
Felix Lohmeier e2145e5f22 spec_B_T_16, spec_B_T_18, spec_B_T_20 spec_B_T_21, spec_B_T_22 2021-01-09 15:13:00 +01:00
Felix Lohmeier fdcbc6ee5b Template für Titeldaten vereinfacht 2021-01-09 14:57:45 +01:00
Felix Lohmeier 20c8b74c32 spec_B_T_17 Titel fingieren für HST leer und Materialart Monografie 2021-01-09 14:39:24 +01:00
Felix Lohmeier 7e45458b9e Makulierte Exemplare zu Beginn löschen 2021-01-09 13:52:06 +01:00
Felix Lohmeier 7d1a87b294 spec_B_T_03 1500 nur Unterfeld nicht Feld wiederholbar 2021-01-08 17:53:19 +01:00
Felix Lohmeier 79841401bc Unterfeld x00 für 8100 / 209C und 8600 / 209O 2021-01-08 17:41:01 +01:00
Felix Lohmeier c87f72cce1 Abhängigkeiten für task Alephino definiert 2020-12-15 17:39:52 +01:00
Felix Lohmeier 76cc6e81c0 Korrektur Template 2020-12-15 17:26:46 +01:00
Felix Lohmeier f7af6ec7cc Bibliotheca Pflichtfelder erledigt 2020-12-15 17:21:46 +01:00
Felix Lohmeier b705a7c21d Löschungen spec_Z_02 erweitert 2020-12-15 13:44:09 +01:00
Felix Lohmeier c7205fdd1e 1500 Sprachcodes spec_B_T_03 2020-12-14 00:36:47 +01:00
Felix Lohmeier df0499a8c7 1100b Jahr Ende spec_B_T_02 2020-12-13 23:12:55 +01:00
Felix Lohmeier 9d77af83cf spec_B_T_01 Aufteilung 0100 / 0110 aus M|IDNR 2020-12-13 00:13:53 +01:00
Felix Lohmeier 6264b76f0d Umbenennung 4000 in 4000a 2020-12-12 22:46:17 +01:00
Felix Lohmeier e05cda1026 spec_B_E_8 7100d und 7100f aus STA2 2020-12-12 22:27:16 +01:00
Felix Lohmeier 1b25b01fb5 Scripte auch für up-to-date-Prüfung 2020-12-12 18:11:39 +01:00
Felix Lohmeier d7547e3dda update go-task to stable 3.0.0 2020-12-11 12:50:32 +01:00
Felix Lohmeier cdfdfa3142 Ports für parallele Verarbeitung korrigiert 2020-12-10 17:22:02 +01:00
Felix Lohmeier b3a16a9360 Task für Plauen auskommentiert 2020-12-10 17:17:54 +01:00
Felix Lohmeier 0c1d06df3e Bibliotheca: Weitere MAB-Felder erhalten 2020-11-30 14:08:57 +01:00
Felix Lohmeier bf5e8dee89 7100d EXSTA P für BZ und GC zu AUI s 2020-11-23 10:42:06 +01:00
Felix Lohmeier 59a9f920af Korrektur 001st zu 001 2020-11-11 15:51:09 +01:00
Felix Lohmeier 0d5ddaf18d 7100a Signatur 2020-11-11 15:50:51 +01:00
Felix Lohmeier 798962462a Alephino Sortierung geändert 2020-11-09 16:38:41 +01:00
Felix Lohmeier 2bf7ffa6df Alephino Verarbeitung 2020-11-09 16:12:35 +01:00
Felix Lohmeier 39a54f55da update bash-refine to 1.3.4 2020-11-09 16:11:43 +01:00
Felix Lohmeier 251f22d1d8 7100d EXSTA E und ESORG K -> AUI u 2020-10-26 12:45:40 +01:00
Felix Lohmeier 462ee42675 Korrektur 0500 ART=P Spiel -> Van 2020-10-20 18:10:01 +02:00
Felix Lohmeier 7f8c238d3c Korrektur spec_Z_03 und neu spec_B_E16 2020-10-20 17:53:08 +02:00
Felix Lohmeier 828dbfcb9c Mehrfache Leerzeichen in 7100a entfernen 2020-10-20 11:44:31 +02:00
Felix Lohmeier ca6b788ed3 CBS-Exemplardaten Bibliotheca v50 2020-10-19 15:09:01 +02:00
Felix Lohmeier 79a4bb04e3 Exemplardaten Bibliotheca 7100d 8011 8100 8515 2020-10-06 23:30:58 +02:00
Felix Lohmeier 9d41e26755 Umstellung Clustern für OpenRefine 3.4 2020-09-07 17:54:10 +02:00
Felix Lohmeier f321fb1469 OpenRefine 3.4 2020-09-07 15:32:00 +02:00
Felix Lohmeier 346be287b1 2000: Prüfziffer in ISBN immer als Großbuchstabe (x -> X) 2020-08-25 23:17:08 +02:00
Felix Lohmeier 55b2615f9d Korrektur ISBN10 zu ISBN13 Konvertierung 2020-08-25 23:10:33 +02:00
Felix Lohmeier d1229b6c88 Kein Leerzeichen vor zweitem Unterfeld, hier 1100 / 011 2020-08-24 12:07:58 +02:00
Felix Lohmeier 3d8b649958 Korrektur temporäre Löschregel für Titel ohne Exemplare 2020-08-18 17:40:07 +02:00
Felix Lohmeier d49c31fd96 ISBN ohne Bindestriche spec_B_T_04 spec_B_T_05 2020-08-18 17:07:36 +02:00
Felix Lohmeier 964a3a793b Korrektur 1100 Jahr spec_B_T_02 2020-08-18 14:49:52 +02:00
Felix Lohmeier 10824d41e8 Update spec_B_T_49: geclusterte Titel je eine 2199 2020-08-18 14:46:28 +02:00
Felix Lohmeier 36cb5d95cf Debugging: OpenRefine-Projekt für Teil 03 2020-08-18 14:44:34 +02:00
Felix Lohmeier fa1430ef67 Korrektur Typo in 1140 / 013H 2020-08-18 12:08:02 +02:00
Felix Lohmeier 058190c0e7 1100 Jahr spec_B_T_02 2020-08-18 12:07:32 +02:00
Felix Lohmeier cfa4178d9a 1140 Veröffentlichungsart aus ART 2020-08-13 15:46:22 +02:00
Felix Lohmeier 68d63562a0 Nummerierung im Quellcode entfernt
um Neusortierung zu erleichtern und Diffs aussagekräftiger zu machen
2020-08-13 15:25:31 +02:00
Felix Lohmeier ebe2c6e45f fix typo 2020-08-13 15:21:04 +02:00
Felix Lohmeier 1daa57ee93 fix 8200 2020-08-12 18:13:40 +02:00
Felix Lohmeier 90feb1e086 fix typo 2020-08-12 17:54:27 +02:00
Felix Lohmeier fa5dfea222 fix 4000 und 8200 2020-08-12 17:52:44 +02:00
Felix Lohmeier a673ec7c2d fix 0500 2020-08-12 17:11:38 +02:00
Felix Lohmeier ce6220a075 Export OpenRefine-Projekt für Debugging 2020-08-12 17:01:26 +02:00
Felix Lohmeier 22e4ed4213 Verbuchungsnummer 8200 aus BARCO und Präfix 2020-08-12 16:31:36 +02:00
Felix Lohmeier 232c3ce637 Haupttitel 4000 aus HST 2020-08-12 16:12:22 +02:00
Felix Lohmeier db4da38b52 0500 spec_B_T_56 2020-08-11 17:36:22 +02:00
Felix Lohmeier a0e5225ffa für ersten Import Titel ohne Exemplare löschen 2020-08-11 16:46:49 +02:00
Felix Lohmeier 7cc1f8ecd2 Kürzel aus Dateiname und für Dresden nachrangig aus E|ZWGST 2020-08-10 15:47:03 +02:00
Felix Lohmeier 85d07a0456 fix codacy issue 2020-08-01 12:57:11 +02:00
149 changed files with 23392 additions and 2046 deletions

9
.gitignore vendored
View File

@ -1,5 +1,6 @@
input
lib
log
output
.task
.openrefine
*/input
*/output
*/tmp
*/log/*

View File

@ -1,29 +1,72 @@
# Transformation von Bibliotheca und Alephino nach PICA+ für die Bibliotheken der Berufsakademie Sachsen
## Vorbereitung
1. Exporte bereitstellen mit folgenden Dateinamen:
* alephino/input/leipzig-exemplare.txt
* alephino/input/leipzig-titel.txt
* alephino/input/riesa-exemplare.txt
* alephino/input/riesa-titel.txt
* bibliotheca/input/bautzen.imp
* bibliotheca/input/breitenbrunn.imp
* bibliotheca/input/dresden.imp
* bibliotheca/input/glauchau.imp
* bibliotheca/input/plauen.imp
2. Installation Task 3.2.2
a) RPM-based (Fedora, CentOS, SLES, etc.)
```sh
wget https://github.com/go-task/task/releases/download/v3.2.2/task_linux_amd64.rpm
sudo dnf install ./task_linux_amd64.rpm && rm task_linux_amd64.rpm
```
b) DEB-based (Debian, Ubuntu etc.)
```sh
wget https://github.com/go-task/task/releases/download/v3.2.2/task_linux_amd64.deb
sudo apt install ./task_linux_amd64.deb && rm task_linux_amd64.deb
```
3. Installation OpenRefine 3.4.1 und openrefine-client 0.3.10
```
task install
```
## Nutzung
1. Exporte bereitstellen mit folgenden Dateinamen:
* input/bautzen.imp
* input/breitenbrunn.imp
* input/dresden.imp
* input/glauchau.imp
* input/leipzig-exemplare.txt
* input/leipzig-titel.txt
* input/plauen.imp
* input/riesa-exemplare.txt
* input/riesa-titel.txt
2. Installation und initiale Datenverarbeitung: `./main.sh`
3. Weitere Datenverarbeitungen:
* `lib/task` um den gesamten Workflow zu starten
* `lib/task --list` für eine Liste der verfügbaren Tasks
Datenverarbeitung sequentiell
```
task default
```
Datenverarbeitung (teil)parallelisiert (benötigt bis zu 16 GB RAM)
```
task pica+:main
```
Analyse dubletter Barcodes
```
task barcodes:main
```
## Hinweise
* Ursprünglich war eine Zusammenführung der Daten aus Bibliotheca und Alephino bei der Datenmigration geplant. Der Task "pica+" ist dafür ausgelegt, aber wurde letztlich nur für Bibliotheca genutzt. Für Alephino erfolgt der Export in pica+ direkt im Job "Alephino" ohne Zwischenschritt.
## Systemvoraussetzungen
* Linux mit Bash, cURL und JAVA (getestet auf Fedora 32)
* 7 GB freien Arbeitsspeicher
* GNU/Linux (getestet auf Fedora 32)
* JAVA 8+ (für OpenReifne)
* 8 GB freien Arbeitsspeicher
## Verwendete Tools
* [OpenRefine](https://openrefine.org/)
* [bash-refine](https://gist.github.com/felixlohmeier/d76bd27fbc4b8ab6d683822cdf61f81d)
* [openrefine-client](https://github.com/opencultureconsulting/openrefine-client)
* [Task](https://github.com/go-task/task)

View File

@ -1,134 +1,99 @@
# https://taskfile.dev
# https://github.com/opencultureconsulting/openrefine-task-runner
version: '3'
output: 'group'
includes:
alephino: alephino
barcodes: barcodes
bibliotheca: bibliotheca
pica+: pica+
vars:
DATE: '{{ now | date "20060102_150405"}}'
silent: true
output: prefixed
env:
REFINE_MEMORY: 8g
REFINE_ENDPOINT: http://localhost:3334
OPENREFINE:
sh: readlink -m .openrefine/refine
CLIENT:
sh: readlink -m .openrefine/client
tasks:
default:
desc: Generierung PICA+
deps: [bibliotheca]
desc: Datenverarbeitung sequentiell
cmds:
- tasks/03-ba-sachsen.sh "output/02-bibliotheca-main"
sources:
- output/02-bibliotheca-main/bibliotheca.csv
generates:
- output/03-ba-sachsen/ba-sachsen.pic
env:
REFINE_WORKDIR: output/03-ba-sachsen
REFINE_LOGFILE: log/03-ba-sachsen/{{.DATE}}.log
- task: alephino:main
- task: bibliotheca:main
- task: pica+:refine
bibliotheca:
desc: Bibliotheca Hauptverarbeitung
# deps: [bautzen, breitenbrunn, dresden, glauchau, plauen]
install:
desc: (re)install OpenRefine and openrefine-client into subdirectory .openrefine
cmds:
- task: bautzen
- task: breitenbrunn
- task: dresden
- task: glauchau
- task: plauen
- tasks/02-bibliotheca-main.sh "output/01-bibliotheca-pre"
sources:
- output/01-bibliotheca-pre/*.tsv
generates:
- output/02-bibliotheca-main/bibliotheca.csv
env:
REFINE_WORKDIR: output/02-bibliotheca-main
REFINE_LOGFILE: log/02-bibliotheca-main/{{.DATE}}.log
- | # delete existing install and recreate folder
rm -rf .openrefine
mkdir -p .openrefine
- > # download OpenRefine archive
wget --no-verbose -O openrefine.tar.gz
https://github.com/OpenRefine/OpenRefine/releases/download/3.4.1/openrefine-linux-3.4.1.tar.gz
- | # install OpenRefine into subdirectory .openrefine
tar -xzf openrefine.tar.gz -C .openrefine --strip 1
rm openrefine.tar.gz
- | # optimize OpenRefine for batch processing
sed -i 's/cd `dirname $0`/cd "$(dirname "$0")"/' ".openrefine/refine" # fix path issue in OpenRefine startup file
sed -i '$ a JAVA_OPTIONS=-Drefine.headless=true' ".openrefine/refine.ini" # do not try to open OpenRefine in browser
sed -i 's/#REFINE_AUTOSAVE_PERIOD=60/REFINE_AUTOSAVE_PERIOD=1440/' ".openrefine/refine.ini" # set autosave period from 5 minutes to 25 hours
- > # download openrefine-client into subdirectory .openrefine
wget --no-verbose -O .openrefine/client
https://github.com/opencultureconsulting/openrefine-client/releases/download/v0.3.10/openrefine-client_0-3-10_linux
- chmod +x .openrefine/client # make client executable
bautzen:
desc: Bibliotheca Vorverarbeitung
start:
dir: ./{{.DIR}}
cmds:
- tasks/01-bibliotheca-pre.sh "{{.INPUT}}"
sources:
- '{{.INPUT}}'
generates:
- output/01-bibliotheca-pre/bautzen.tsv
vars:
INPUT: '{{.INPUT | default "input/bautzen.imp"}}'
env:
REFINE_MEMORY: '{{.REFINE_MEMORY | default "6G"}}'
REFINE_ENDPOINT: http://localhost:3335
REFINE_WORKDIR: output/01-bibliotheca-pre
REFINE_LOGFILE: log/01-bibliotheca-pre/{{.DATE}}}_bautzen.log
- | # verify that OpenRefine is installed
if [ ! -f "$OPENREFINE" ]; then
echo 1>&2 "OpenRefine missing; try task install"; exit 1
fi
- | # delete temporary files and log file of previous run
rm -rf ./*.project* workspace.json
rm -rf "{{.PROJECT}}.log"
- > # launch OpenRefine with specific data directory and redirect its output to a log file
"$OPENREFINE" -v warn -p {{.PORT}} -m {{.RAM}}
-d ../{{.DIR}}
>> "{{.PROJECT}}.log" 2>&1 &
- | # wait until OpenRefine API is available
timeout 30s bash -c "until
wget -q -O - http://localhost:{{.PORT}} | cat | grep -q -o OpenRefine
do sleep 1
done"
breitenbrunn:
desc: Bibliotheca Vorverarbeitung
stop:
dir: ./{{.DIR}}
cmds:
- tasks/01-bibliotheca-pre.sh "{{.INPUT}}"
sources:
- '{{.INPUT}}'
generates:
- output/01-bibliotheca-pre/breitenbrunn.tsv
vars:
INPUT: '{{.INPUT | default "input/breitenbrunn.imp"}}'
env:
REFINE_MEMORY: '{{.REFINE_MEMORY | default "4G"}}'
REFINE_ENDPOINT: http://localhost:3335
REFINE_WORKDIR: output/01-bibliotheca-pre
REFINE_LOGFILE: log/01-bibliotheca-pre/{{.DATE}}_breitenbrunn.log
- | # shut down OpenRefine gracefully
PID=$(lsof -t -i:{{.PORT}})
kill $PID
while ps -p $PID > /dev/null; do sleep 1; done
- > # archive the OpenRefine project
tar cfz
"{{.PROJECT}}.openrefine.tar.gz"
-C $(grep -l "{{.PROJECT}}" *.project/metadata.json | cut -d '/' -f 1)
.
- rm -rf ./*.project* workspace.json # delete temporary files
dresden:
desc: Bibliotheca Vorverarbeitung
kill:
dir: ./{{.DIR}}
cmds:
- tasks/01-bibliotheca-pre.sh "{{.INPUT}}"
sources:
- '{{.INPUT}}'
generates:
- output/01-bibliotheca-pre/dresdeb.tsv
vars:
INPUT: '{{.INPUT | default "input/dresden.imp"}}'
env:
REFINE_MEMORY: '{{.REFINE_MEMORY | default "7G"}}'
REFINE_ENDPOINT: http://localhost:3336
REFINE_WORKDIR: output/01-bibliotheca-pre
REFINE_LOGFILE: log/01-bibliotheca-pre/{{.DATE}}_dresden.log
- | # shut down OpenRefine immediately to save time and disk space
PID=$(lsof -t -i:{{.PORT}})
kill -9 $PID
while ps -p $PID > /dev/null; do sleep 1; done
- rm -rf ./*.project* workspace.json # delete temporary files
glauchau:
desc: Bibliotheca Vorverarbeitung
check:
desc: check OpenRefine log for any warnings and exit on error
dir: ./{{.DIR}}
cmds:
- tasks/01-bibliotheca-pre.sh "{{.INPUT}}"
sources:
- '{{.INPUT}}'
generates:
- output/01-bibliotheca-pre/glauchau.tsv
vars:
INPUT: '{{.INPUT | default "input/glauchau.imp"}}'
env:
REFINE_MEMORY: '{{.REFINE_MEMORY | default "4G"}}'
REFINE_ENDPOINT: http://localhost:3337
REFINE_WORKDIR: output/01-bibliotheca-pre
REFINE_LOGFILE: log/01-bibliotheca-pre/{{.DATE}}_glauchau.log
plauen:
desc: Bibliotheca Vorverarbeitung
cmds:
- tasks/01-bibliotheca-pre.sh "input/plauen.imp"
sources:
- input/plauen.imp
generates:
- output/01-bibliotheca-pre/plauen.tsv
env:
REFINE_MEMORY: '{{.REFINE_MEMORY | default "2G"}}'
REFINE_ENDPOINT: http://localhost:3338
REFINE_WORKDIR: output/01-bibliotheca-pre
REFINE_LOGFILE: log/01-bibliotheca-pre/{{.DATE}}_plauen.log
clean:
desc: Alle Daten löschen (reset auf Ausgangszustand)
cmds:
- rm -r lib log output
mkdir:
desc: Ordner erstellen
cmds:
- mkdir -p output/01-bibliotheca-pre log/01-bibliotheca-pre
- mkdir -p output/02-bibliotheca-main log/02-bibliotheca-main
- mkdir -p output/03-ba-sachsen log/03-ba-sachsen
- | # find log file(s) and check for "exception" or "error"
if grep -i 'exception\|error' $(find . -name '*.log'); then
echo 1>&2 "log contains warnings!"; exit 1
fi

147
alephino/Taskfile.yml Normal file
View File

@ -0,0 +1,147 @@
version: '3'
tasks:
main:
desc: Konvertierung von Alephino nach PICA3/CSV
vars:
DIR: '{{splitList ":" .TASK | first}}' # results in the task namespace, which is identical to the directory name
cmds:
- task: refine-pre
vars: {PROJECT: leipzig}
- task: refine-pre
vars: {PROJECT: riesa}
- task: refine-main
refine-pre:
dir: ./{{.DIR}}
label: '{{.TASK}}-{{.PROJECT}}'
vars:
DIR: '{{splitList ":" .TASK | first}}'
PORT: 3335 # assign a different port for each project
RAM: 8192M # maximum RAM for OpenRefine java heap space
LOG: '>(tee -a "log/{{.PROJECT}}.log") 2>&1'
cmds:
- echo "{{now | date "2006-01-02 15:04:05"}} {{.PROJECT}}"
- task: :start # launch OpenRefine
vars: {DIR: '{{.DIR}}/log', PROJECT: '{{.PROJECT}}', PORT: '{{.PORT}}', RAM: '{{.RAM}}'}
- > # Import Titel
"$CLIENT" -P {{.PORT}}
--create "$(readlink -m input/{{.PROJECT}}-titel.txt)"
--format fixed-width
--encoding UTF-8
--columnWidths 5
--skipDataLines 0
--storeBlankRows false
--projectName titel
> {{.LOG}}
- > # Import Exemplare
"$CLIENT" -P {{.PORT}}
--create "$(readlink -m input/{{.PROJECT}}-exemplare.txt)"
--format fixed-width
--encoding UTF-8
--columnWidths 5
--skipDataLines 0
--storeBlankRows false
--projectName exemplare
> {{.LOG}}
- | # Titel: Korrekturen Einzelfälle
"$CLIENT" -P {{.PORT}} titel --apply config/pre/titel-einzelfaelle.json > {{.LOG}}
- | # Prefix M bzw. E für Feldnamen
"$CLIENT" -P {{.PORT}} titel --apply config/pre/titel-prefix.json > {{.LOG}}
"$CLIENT" -P {{.PORT}} exemplare --apply config/pre/exemplare-prefix.json > {{.LOG}}
- | # Datensätze und Feldnamen sortieren
"$CLIENT" -P {{.PORT}} titel --apply config/pre/titel-sortieren.json > {{.LOG}}
"$CLIENT" -P {{.PORT}} exemplare --apply config/pre/exemplare-sortieren.json > {{.LOG}}
- | # Mehrfachbelegungen zusammenführen
"$CLIENT" -P {{.PORT}} titel --apply config/pre/titel-mehrfachbelegungen.json > {{.LOG}}
"$CLIENT" -P {{.PORT}} exemplare --apply config/pre/exemplare-mehrfachbelegungen.json > {{.LOG}}
- | # Felder löschen
"$CLIENT" -P {{.PORT}} titel --apply config/pre/titel-loeschen.json > {{.LOG}}
- | # Transponieren
"$CLIENT" -P {{.PORT}} titel --apply config/pre/titel-transponieren.json > {{.LOG}}
"$CLIENT" -P {{.PORT}} exemplare --apply config/pre/exemplare-transponieren.json > {{.LOG}}
- | # Titel-ID separieren
"$CLIENT" -P {{.PORT}} titel --apply config/pre/titel-id-separieren.json > {{.LOG}}
"$CLIENT" -P {{.PORT}} exemplare --apply config/pre/exemplare-id-separieren.json > {{.LOG}}
- | # Titel: Exemplare anreichern
"$CLIENT" -P {{.PORT}} titel --apply config/pre/titel-anreichern.json > {{.LOG}}
- mkdir -p output
- > # Export
"$CLIENT" -P {{.PORT}} titel
--output "$(readlink -m output/{{.PROJECT}}.tsv)"
> {{.LOG}}
- | # print allocated system resources
PID="$(lsof -t -i:{{.PORT}})"
echo "used $(($(ps --no-headers -o rss -p "$PID") / 1024)) MB RAM" > {{.LOG}}
echo "used $(ps --no-headers -o cputime -p "$PID") CPU time" > {{.LOG}}
- task: :kill # shut down OpenRefine immediately to save time and disk space
vars: {DIR: '{{.DIR}}/log', PORT: '{{.PORT}}'}
- task: :check # check OpenRefine log for any warnings and exit on error
vars: {DIR: '{{.DIR}}'}
sources:
- input/{{.PROJECT}}*.txt
- config/pre/**
generates:
- output/{{.PROJECT}}*.tsv
ignore_error: true # workaround to avoid an orphaned Java process on error https://github.com/go-task/task/issues/141
refine-main:
dir: ./{{.DIR}}
vars:
DIR: '{{splitList ":" .TASK | first}}'
PROJECT: alephino
PORT: 3335 # assign a different port for each project
RAM: 8192M # maximum RAM for OpenRefine java heap space
LOG: '>(tee -a "log/{{.PROJECT}}.log") 2>&1'
cmds:
- echo "{{now | date "2006-01-02 15:04:05"}} {{.PROJECT}}"
- task: :start # launch OpenRefine
vars: {DIR: '{{.DIR}}/log', PROJECT: '{{.PROJECT}}', PORT: '{{.PORT}}', RAM: '{{.RAM}}'}
- > # Zip-Archiv mit Output der Vorverarbeitung erstellen
zip -j tmp.zip
output/leipzig.tsv
output/riesa.tsv
- > # Import Zip-Archiv
"$CLIENT" -P {{.PORT}}
--create "$(readlink -m tmp.zip)"
--format tsv
--includeFileSources true
--projectName {{.PROJECT}}
> {{.LOG}}
&& rm tmp.zip
- | # Transformationen anwenden
for f in config/main/*.json; do
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply "$f" > {{.LOG}}
done
- > # Export der Barcodes; golang requires strange escaping https://stackoverflow.com/questions/17641887/how-do-i-escape-and-delimiters-in-go-templates/17642427#17642427
"$CLIENT" -P {{.PORT}} {{.PROJECT}}
--output "$(readlink -m output/barcodes.txt)"
--template "{{"{{"}}forNonBlank(cells['8200'].value, v, v + '\n', ''){{"}}"}}"
--rowSeparator ""
> {{.LOG}}
- > # Export als PICA+
"$CLIENT" -P {{.PORT}} {{.PROJECT}}
--output "$(readlink -m output/{{.PROJECT}}.pica)"
--template "$(< config/main/template.txt)"
--rowSeparator ""
> {{.LOG}}
- | # print allocated system resources
PID="$(lsof -t -i:{{.PORT}})"
echo "used $(($(ps --no-headers -o rss -p "$PID") / 1024)) MB RAM" > {{.LOG}}
echo "used $(ps --no-headers -o cputime -p "$PID") CPU time" > {{.LOG}}
- task: :stop # shut down OpenRefine and archive the OpenRefine project
vars: {DIR: '{{.DIR}}/log', PROJECT: '{{.PROJECT}}', PORT: '{{.PORT}}'}
- task: :check # check OpenRefine log for any warnings and exit on error
vars: {DIR: '{{.DIR}}'}
sources:
- output/*.tsv
- config/main/**
generates:
- log/{{.PROJECT}}.openrefine.tar.gz
- output/alephino.pica
- output/barcodes.txt
ignore_error: true # workaround to avoid an orphaned Java process on error https://github.com/go-task/task/issues/141
default: # enable standalone execution (running `task` in project directory)
cmds:
- DIR="${PWD##*/}:main" && cd .. && task "$DIR"

View File

@ -0,0 +1,14 @@
[
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "File",
"expression": "grel:with([ ['leipzig.tsv','LE'], ['riesa.tsv','RS'] ], mapping, forEach(mapping, m, if(value == m[0], m[1], '')).join(''))",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
}
]

View File

@ -0,0 +1,17 @@
[
{
"op": "core/column-move",
"columnName": "File",
"index": 0
},
{
"op": "core/column-move",
"columnName": "E|001",
"index": 0
},
{
"op": "core/column-move",
"columnName": "M|IDN",
"index": 0
}
]

View File

@ -0,0 +1,189 @@
[
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A87",
"expression": "value",
"columnName": "E|A87",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "050",
"l": "050"
}
},
{
"v": {
"v": "100",
"l": "100"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A95",
"expression": "value",
"columnName": "E|A95",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "05",
"l": "05"
}
},
{
"v": {
"v": "10",
"l": "10"
}
},
{
"v": {
"v": "21",
"l": "21"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A87",
"expression": "value",
"columnName": "E|A87",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "99",
"l": "99"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A95",
"expression": "value",
"columnName": "E|A95",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "99",
"l": "99"
}
},
{
"v": {
"v": "lo",
"l": "lo"
}
},
{
"v": {
"v": "ex",
"l": "ex"
}
},
{
"v": {
"v": "vm",
"l": "vm"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A97",
"expression": "value",
"columnName": "E|A97",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "99",
"l": "99"
}
},
{
"v": {
"v": "04",
"l": "04"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"starred": true,
"description": "Star rows"
}
]

View File

@ -0,0 +1,88 @@
[
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "RS",
"l": "RS"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "E|A95",
"expression": "value",
"columnName": "E|A95",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "21",
"l": "21"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "RS",
"l": "RS"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "E|100",
"columnName": "E|100",
"query": "^\u001faDA:",
"mode": "regex",
"caseSensitive": false,
"invert": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
}
]

View File

@ -0,0 +1,219 @@
[
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|FMT",
"expression": "value",
"columnName": "M|FMT",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "MS",
"l": "MS"
}
},
{
"v": {
"v": "MY",
"l": "MY"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|659",
"expression": "isBlank(value)",
"columnName": "M|659",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "M|078e",
"columnName": "M|078e",
"query": "^zdb",
"mode": "regex",
"caseSensitive": false,
"invert": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|542b",
"expression": "isBlank(value)",
"columnName": "M|542b",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "M|331",
"columnName": "M|331",
"query": "Kurzkatalogisat",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "M|331",
"columnName": "M|331",
"query": "Testdummy 123",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "M|331",
"columnName": "M|331",
"query": "fehlkatalogis",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "M|LDR",
"columnName": "M|LDR",
"query": "DELETED",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|QUE",
"expression": "isBlank(value)",
"columnName": "M|QUE",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
}
]

View File

@ -0,0 +1,149 @@
[
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|076b",
"expression": "value",
"columnName": "M|076b",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "zd",
"l": "zd"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "M|078",
"columnName": "M|078",
"query": "zeitschriftenartige|zeitschrift",
"mode": "regex",
"caseSensitive": false,
"invert": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|052",
"expression": "grel:value[0]",
"columnName": "M|052",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "p",
"l": "p"
}
},
{
"v": {
"v": "z",
"l": "z"
}
},
{
"v": {
"v": "j",
"l": "j"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|ABO",
"expression": "isBlank(value)",
"columnName": "E|ABO",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|542",
"expression": "isBlank(value)",
"columnName": "M|542",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
}
]

View File

@ -0,0 +1,248 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "LE",
"l": "LE"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "deleteLE",
"columnInsertIndex": 1,
"description": "Create column deleteLE at index 1 based on column M|IDN using expression grel:value"
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "RS",
"l": "RS"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "deleteRS",
"columnInsertIndex": 1,
"description": "Create column deleteRS at index 1 based on column M|IDN using expression grel:value"
},
{
"op": "core/row-removal",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "LE",
"l": "LE"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|GT0",
"expression": "grel:forNonBlank(forNonBlank(filter(value.split('\u001f'), f, f[0] == 'L')[0].slice(1), x, x, null).cross('alephino','deleteLE')[0],v,'delete','')",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "delete",
"l": "delete"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"description": "Remove rows"
},
{
"op": "core/row-removal",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "RS",
"l": "RS"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|GT0",
"expression": "grel:forNonBlank(forNonBlank(filter(value.split('\u001f'), f, f[0] == 'L')[0].slice(1), x, x, null).cross('alephino','deleteRS')[0],v,'delete','')",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "delete",
"l": "delete"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"description": "Remove rows"
},
{
"op": "core/column-removal",
"columnName": "deleteRS",
"description": "Remove column deleteRS"
},
{
"op": "core/column-removal",
"columnName": "deleteLE",
"description": "Remove column deleteLE"
}
]

View File

@ -0,0 +1,136 @@
[
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|076b",
"expression": "value",
"columnName": "M|076b",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "se",
"l": "se"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|078",
"expression": "value",
"columnName": "M|078",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "Schriftenreihe",
"l": "Schriftenreihe"
}
},
{
"v": {
"v": "Reihe",
"l": "Reihe"
}
},
{
"v": {
"v": "Serie",
"l": "Serie"
}
},
{
"v": {
"v": "Schritenreihe",
"l": "Schritenreihe"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|052",
"expression": "grel:value[7]",
"columnName": "M|052",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "z",
"l": "z"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|052",
"expression": "grel:value[0]",
"columnName": "M|052",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "r",
"l": "r"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": true,
"description": "Star rows"
}
]

View File

@ -0,0 +1,30 @@
[
{
"op": "core/row-removal",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"description": "Remove rows"
}
]

View File

@ -0,0 +1,280 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "E|125",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "4801",
"columnInsertIndex": 3,
"description": "Create column 4801 at index 3 based on column E|125 using expression grel:value"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A87",
"expression": "value",
"columnName": "E|A87",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "500",
"l": "500"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "4801",
"columnName": "4801",
"query": "cd",
"mode": "text",
"caseSensitive": false,
"invert": true
}
],
"mode": "row-based"
},
"columnName": "4801",
"expression": "grel:'CD'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4801 using expression grel:'CD'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A87",
"expression": "value",
"columnName": "E|A87",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "510",
"l": "510"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "4801",
"columnName": "4801",
"query": "cd-rom",
"mode": "text",
"caseSensitive": false,
"invert": true
}
],
"mode": "row-based"
},
"columnName": "4801",
"expression": "grel:[ 'CD-ROM', value ].join('\u001fa')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4801 using expression grel:[ 'CD-ROM', value ].join('\u001fa')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A87",
"expression": "value",
"columnName": "E|A87",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "520",
"l": "520"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "4801",
"columnName": "4801",
"query": "dvd",
"mode": "text",
"caseSensitive": false,
"invert": true
}
],
"mode": "row-based"
},
"columnName": "4801",
"expression": "grel:[ 'DVD', value ].join('\u001fa')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4801 using expression grel:[ 'DVD', value ].join('\u001fa')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A95",
"expression": "value",
"columnName": "E|A95",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "50",
"l": "50"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "4801",
"columnName": "4801",
"query": "cd",
"mode": "text",
"caseSensitive": false,
"invert": true
}
],
"mode": "row-based"
},
"columnName": "4801",
"expression": "grel:[ 'CD', value ].join('\u001fa')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4801 using expression grel:[ 'CD', value ].join('\u001fa')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A95",
"expression": "value",
"columnName": "E|A95",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "51",
"l": "51"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "4801",
"columnName": "4801",
"query": "cd-rom",
"mode": "text",
"caseSensitive": false,
"invert": true
}
],
"mode": "row-based"
},
"columnName": "4801",
"expression": "grel:[ 'CD-ROM', value ].join('\u001fa')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4801 using expression grel:[ 'CD-ROM', value ].join('\u001fa')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A95",
"expression": "value",
"columnName": "E|A95",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "52",
"l": "52"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "4801",
"columnName": "4801",
"query": "dvd",
"mode": "text",
"caseSensitive": false,
"invert": true
}
],
"mode": "row-based"
},
"columnName": "4801",
"expression": "grel:[ 'DVD', value ].join('\u001fa')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4801 using expression grel:[ 'DVD', value ].join('\u001fa')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "4801",
"expression": "value.trim()",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4801 using expression value.trim()"
}
]

View File

@ -0,0 +1,86 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "E|100",
"expression": "grel:value.split('\u001f')[0].slice(1).trim()",
"onError": "set-to-blank",
"newColumnName": "7100a",
"columnInsertIndex": 3,
"description": "Create column 7100a at index 3 based on column E|100 using expression grel:value.split('\u001f')[0].slice(1).trim()"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "LE",
"l": "LE"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "E|001",
"expression": "isBlank(value)",
"columnName": "E|001",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "E|100",
"expression": "isBlank(value)",
"columnName": "E|100",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "7100a",
"expression": "grel:cells['E|107'].value.replace('\u001fa','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 7100a using expression grel:cells['E|107'].value.replace('\u001fa','')"
}
]

View File

@ -0,0 +1,290 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "RS",
"l": "RS"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "E|072",
"expression": "value",
"columnName": "E|072",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "||||l",
"l": "||||l"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "E|072",
"expression": "grel:'s'",
"onError": "set-to-blank",
"newColumnName": "7100d",
"columnInsertIndex": 3,
"description": "Create column 7100d at index 3 based on column E|072 using expression grel:'s'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "4801",
"expression": "value.trim()",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4801 using expression value.trim()"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A95",
"expression": "value",
"columnName": "E|A95",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "bs",
"l": "bs"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "7100d",
"expression": "grel:'g'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 7100d using expression grel:'g'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A95",
"expression": "value",
"columnName": "E|A95",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "ig",
"l": "ig"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "7100d",
"expression": "grel:'a'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 7100d using expression grel:'a'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A95",
"expression": "value",
"columnName": "E|A95",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "ka",
"l": "ka"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "7100d",
"expression": "grel:'i'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 7100d using expression grel:'i'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A95",
"expression": "value",
"columnName": "E|A95",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "pr",
"l": "pr"
}
},
{
"v": {
"v": "ls",
"l": "ls"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "7100d",
"expression": "grel:'s'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 7100d using expression grel:'s'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|A97",
"expression": "value",
"columnName": "E|A97",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "02",
"l": "02"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "7100d",
"expression": "grel:'a'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 7100d using expression grel:'a'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|001",
"expression": "isBlank(value)",
"columnName": "E|001",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "7100d",
"expression": "isBlank(value)",
"columnName": "7100d",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "7100d",
"expression": "grel:'u'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 7100d using expression grel:'u'"
}
]

View File

@ -0,0 +1,148 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|001",
"expression": "isBlank(value)",
"columnName": "E|001",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "LE",
"l": "LE"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "File",
"expression": "grel:'LE'",
"onError": "set-to-blank",
"newColumnName": "7100f",
"columnInsertIndex": 3,
"description": "Create column 7100f at index 3 based on column File using expression grel:'LE'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|001",
"expression": "isBlank(value)",
"columnName": "E|001",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "RS",
"l": "RS"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "7100f",
"expression": "grel:if(cells['E|107'].value.contains('Beuth'),'RS-BD', if(cells['E|105'].value == '00002','RS-MAG', if(cells['E|105'].value == '00003','RS-TH', if(cells['E|105'].value == '00004','RS-ZS','RS'))))",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 7100f using expression grel:if(cells['E|107'].value.contains('Beuth'),'RS-BD', if(cells['E|105'].value == '00002','RS-MAG', if(cells['E|105'].value == '00003','RS-TH', if(cells['E|105'].value == '00004','RS-ZS','RS'))))"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|105",
"expression": "value",
"columnName": "E|105",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "00003",
"l": "00003"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "E|125",
"columnName": "E|125",
"query": "cd|dvd",
"mode": "regex",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "7100f",
"expression": "grel:'RS-MS'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 7100f using expression grel:'RS-MS'"
}
]

View File

@ -0,0 +1,35 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|001",
"expression": "isBlank(value)",
"columnName": "E|001",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "File",
"expression": "grel:if(value == 'LE', '0005', '0006')",
"onError": "set-to-blank",
"newColumnName": "7100j",
"columnInsertIndex": 3,
"description": "Create column 7100j at index 3 based on column File using expression grel:if(value == 'LE', '0005', '0006')"
}
]

View File

@ -0,0 +1,15 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "E|115",
"expression": "grel:cells['File'].value + ' ' + value.split(',')[0].trim()",
"onError": "set-to-blank",
"newColumnName": "8100",
"columnInsertIndex": 3,
"description": "Create column 8100"
}
]

View File

@ -0,0 +1,15 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "E|120",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "8200",
"columnInsertIndex": 3,
"description": "Create column 8200 at index 3 based on column E|120 using expression grel:value"
}
]

View File

@ -0,0 +1,68 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|001",
"expression": "isBlank(value)",
"columnName": "E|001",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "File",
"expression": "grel:'n' + value.toLowercase()",
"onError": "set-to-blank",
"newColumnName": "E0XXb",
"columnInsertIndex": 3,
"description": "Create column E0XXb at index 3 based on column File using expression grel:'n' + value.toLowercase()"
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "E|001",
"expression": "isBlank(value)",
"columnName": "E|001",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "E|002a",
"expression": "grel:value[6,8] + '-' + value[4,6] + '-' + value[2,4]",
"onError": "set-to-blank",
"newColumnName": "E0XX",
"columnInsertIndex": 3,
"description": "Create column E0XX at index 3 based on column E|002a using expression grel:value[6,8] + '-' + value[4,6] + '-' + value[2,4]"
}
]

View File

@ -0,0 +1,560 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:if(\nor(\ncells['M|076a'].value == 'vide',\ncells['M|076c'].value.contains('dvdv'),\ncells['M|076c'].value.contains('vika'),\ncells['M|077'].value.contains('videodisc')\n),\n'B',null)",
"onError": "set-to-blank",
"newColumnName": "0500",
"columnInsertIndex": 3,
"description": "Create column 0500"
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:if(\nor(\ncells['M|076a'].value == 'vide',\ncells['M|076c'].value.contains('dvdv'),\ncells['M|076c'].value.contains('vika'),\ncells['M|077'].value.contains('videodisc')\n),\n'vide',null)",
"onError": "set-to-blank",
"newColumnName": "1140",
"columnInsertIndex": 3,
"description": "Create column 1140"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "0500",
"expression": "isBlank(value)",
"columnName": "0500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:if(\nor(\ncells['M|050'].value[8] == 'd',\ncells['M|076a'].value.contains('crom')\n),\n'S',value)",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 0500"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "0500",
"expression": "isBlank(value)",
"columnName": "0500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "M|076c",
"columnName": "M|076c",
"query": "cdda",
"mode": "text",
"caseSensitive": false,
"invert": false
},
{
"type": "text",
"name": "M|077",
"columnName": "M|077",
"query": "cd-rom|compact",
"mode": "regex",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:'S'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 0500 using expression grel:'S'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "0500",
"expression": "isBlank(value)",
"columnName": "0500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|050",
"expression": "grel:value[5,7]",
"columnName": "M|050",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "aa",
"l": "aa"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "1140",
"expression": "grel:'soto'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 1140 using expression grel:'soto'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "0500",
"expression": "isBlank(value)",
"columnName": "0500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|050",
"expression": "grel:value[5,7]",
"columnName": "M|050",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "aa",
"l": "aa"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:'B'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 0500 using expression grel:'B'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "0500",
"expression": "isBlank(value)",
"columnName": "0500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|050",
"expression": "grel:value[10]",
"columnName": "M|050",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "a",
"l": "a"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "1140",
"expression": "grel:'kart'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 1140 using expression grel:'kart'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "0500",
"expression": "isBlank(value)",
"columnName": "0500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|050",
"expression": "grel:value[10]",
"columnName": "M|050",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "a",
"l": "a"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:'A'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 0500 using expression grel:'A'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "0500",
"expression": "isBlank(value)",
"columnName": "0500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "M|077",
"columnName": "M|077",
"query": "karte",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "1140",
"expression": "grel:'kart'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 1140 using expression grel:'kart'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "0500",
"expression": "isBlank(value)",
"columnName": "0500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "M|077",
"columnName": "M|077",
"query": "karte",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:'A'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 0500 using expression grel:'A'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "0500",
"expression": "isBlank(value)",
"columnName": "0500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|050",
"expression": "grel:value[5,7]",
"columnName": "M|050",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "dc",
"l": "dc"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "1140",
"expression": "grel:'bild'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 1140 using expression grel:'bild'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "0500",
"expression": "isBlank(value)",
"columnName": "0500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|050",
"expression": "grel:value[5,7]",
"columnName": "M|050",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "dc",
"l": "dc"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:'B'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 0500 using expression grel:'B'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "0500",
"expression": "isBlank(value)",
"columnName": "0500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDN",
"expression": "isBlank(value)",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:'A'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 0500 using expression grel:'A'"
}
]

View File

@ -0,0 +1,145 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:coalesce(cells['M|425'].value.split('␟')[0], forNonBlank(cells['M|419'].value.split('␟')[0].split('\u001fc')[1],v,v,null))",
"onError": "set-to-blank",
"newColumnName": "1100n",
"columnInsertIndex": 3,
"description": "Create column 1100n"
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:coalesce(cells['M|425a'].value, cells['M|425b'].value).find(/\\d{4}/)[0]",
"onError": "set-to-blank",
"newColumnName": "1100a",
"columnInsertIndex": 3,
"description": "Create column 1100a"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "1100n",
"expression": "isBlank(value)",
"columnName": "1100n",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "1100a",
"expression": "isBlank(value)",
"columnName": "1100a",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "1100a",
"expression": "grel:cells['1100n'].value.find(/\\d{4}/)[0]",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 1100a using expression grel:cells['1100n'].value.find(/\\d{4}/)[0]"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDN",
"expression": "isBlank(value)",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "1100a",
"expression": "isBlank(value)",
"columnName": "1100a",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "1100a",
"expression": "grel:'20XX'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 1100a using expression grel:'20XX'"
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:cells['M|425c'].value.find(/\\d{4}/)[0]",
"onError": "set-to-blank",
"newColumnName": "1100b",
"columnInsertIndex": 3,
"description": "Create column 1100b"
}
]

View File

@ -0,0 +1,15 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|419d",
"expression": "grel:value.slice(2).replace('©Copyright','©').replace('@','©').replace('© ','©').replace('©','© ')",
"onError": "set-to-blank",
"newColumnName": "1108n",
"columnInsertIndex": 3,
"description": "Create column 1108n"
}
]

View File

@ -0,0 +1,88 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:[forNonBlank(cells['M|064'].value, v, v, null) , forNonBlank(cells['M|064a'].value, v ,v, null)].join('␟')",
"onError": "set-to-blank",
"newColumnName": "1131",
"columnInsertIndex": 3,
"description": "Create column 1131"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "1131",
"expression": "isBlank(value)",
"columnName": "1131",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "1131",
"expression": "grel:forEach(value.split('␟'), x, filter(x.split('\u001f'), v, or(v.startsWith('a'),v.startsWith('y'),v.startsWith('z'))).join('\u001f')).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 1131"
},
{
"op": "core/mass-edit",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "1131",
"expression": "isBlank(value)",
"columnName": "1131",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "1131",
"expression": "value",
"edits": [
{
"from": [
"aSoftware"
],
"fromBlank": false,
"fromError": false,
"to": ""
}
],
"description": "Mass edit cells in column 1131"
}
]

View File

@ -0,0 +1,28 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:forEach(forEach(cells['M|037b'].value.split('␟'),v,v.replace('; ','‡').replace(',','‡').replace('\\\\','‡')).join('‡').split('‡'), x, x.trim()).join('‡')",
"onError": "set-to-blank",
"newColumnName": "1500",
"columnInsertIndex": 3,
"description": "Create column 1500"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "1500",
"expression": "grel:forEach(value.split('‡'), v, v.replace(/^dt$/,'ger').replace(/^deu$/,'ger').replace(/^engl.$/,'eng').replace(/^engl$/,'eng')).uniques().join('‡')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 1500"
}
]

View File

@ -0,0 +1,35 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:filter(cells['M|036a'].value.split('␟'),v,v.startsWith('X')).join('‡')",
"onError": "set-to-blank",
"newColumnName": "1700",
"columnInsertIndex": 3,
"description": "Create column 1700"
},
{
"op": "core/mass-edit",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "1700",
"expression": "value",
"edits": [
{
"from": [
"XA-DE++XA-AT++XA-CH"
],
"fromBlank": false,
"fromError": false,
"to": "XA-DE‡XA-AT‡XA-CH"
}
],
"description": "Mass edit cells in column 1700"
}
]

View File

@ -0,0 +1,114 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|540a",
"expression": "grel:[ cells['M|540a'].value, cells['M|540'].value ].join('␟')",
"onError": "set-to-blank",
"newColumnName": "2000",
"columnInsertIndex": 3,
"description": "Create column 2000"
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "2000",
"expression": "isBlank(value)",
"columnName": "2000",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "2000",
"expression": "grel:forEach(value.split('␟'), v, forNonBlank(filter(v.split('\u001f'), f, f[0] == 'a')[0].slice(1).replace('-','').replace('x','X'), isbn, if(isbn.length() == 10, if(with(round(sum(forRange(1,10,1,i,toNumber(isbn[i-1])*i))%11),x,if(x == 10, 'X', x)).toString() == isbn[9], null, '\u001f0' + isbn), if(isbn.length() == 13, if(((10-(sum(forRange(0,12,1,i,toNumber(isbn[i])*(1+(i%2*2)) )) %10)) %10).toString()[0] == isbn[12], null, '\u001f0' + isbn), null)) + forNonBlank(filter(v.split('\u001f'), f, f[0] == 'b')[0].slice(1), x, '\u001ff' + x, ''), null) ).join('␟')",
"onError": "set-to-blank",
"newColumnName": "2009",
"columnInsertIndex": 4,
"description": "Create column 2009"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "2000",
"expression": "isBlank(value)",
"columnName": "2000",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "2000",
"expression": "grel:forEach(value.split('␟'), v, forNonBlank(filter(v.split('\u001f'), f, f[0] == 'a')[0].slice(1).replace('-','').replace('x','X'), isbn, if(isbn.length() == 10, if(with(round(sum(forRange(1,10,1,i,toNumber(isbn[i-1])*i))%11),x,if(x == 10, 'X', x)).toString() == isbn[9], '\u001f0' + isbn, null), if(isbn.length() == 13, if(((10-(sum(forRange(0,12,1,i,toNumber(isbn[i])*(1+(i%2*2)) )) %10)) %10).toString()[0] == isbn[12], '\u001f0' + isbn, null), null)) + forNonBlank(filter(v.split('\u001f'), f, f[0] == 'b')[0].slice(1), x, '\u001ff' + x, ''), null) ).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 2000"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|540b",
"expression": "isBlank(value)",
"columnName": "M|540b",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "2009",
"expression": "grel:forNonBlank(value, v, v + '␟', '') + \nforNonBlank(forEach(cells['M|540b'].value.split('␟'), v, forNonBlank(filter(v.split('\u001f'), f, f[0] == 'a')[0].slice(1), x, '\u001f0' + x.replace('-','').replace('x','X'), '') + forNonBlank(filter(v.split('\u001f'), f, f[0] == 'b')[0].slice(1), x, '\u001ff' + x, '') ).join('␟'), z, z, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 2009"
}
]

View File

@ -0,0 +1,94 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:[forNonBlank(cells['M|087'].value, v, forEach(v.split('␟'), x, x + '\u001fSo').join('␟'), null), forNonBlank(cells['M|087b'].value, v, v + '\u001fSa', null), forNonBlank(cells['M|087o'].value, v, v + '\u001fSo', null)].join('␟')",
"onError": "set-to-blank",
"newColumnName": "2003",
"columnInsertIndex": 3,
"description": "Create column 2003"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "2003",
"expression": "grel:value.replace('-','').replace('.','').replace(' ','').replace('=','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 2003"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "2003",
"expression": "isBlank(value)",
"columnName": "2003",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "2003",
"expression": "grel:forEach(value.split('␟'), v, '\u001f0' + v).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 2003 using expression grel:forEach(value.split('␟'), v, '\u001f0' + v).join('␟')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "2003",
"expression": "isBlank(value)",
"columnName": "2003",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "2003",
"expression": "grel:forEach(value.split('␟'), v, forEach(v.split('\u001f'), x, x).sort().reverse().join('\u001f')).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 2003 using expression grel:forEach(value.split('␟'), v, forEach(v.split('\u001f'), x, x).sort().reverse().join('\u001f')).join('␟')"
}
]

View File

@ -0,0 +1,35 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|552a",
"expression": "isBlank(value)",
"columnName": "M|552a",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|552a",
"expression": "grel:value.replace('DOI: ','').replace('DOI:','').replace('DOI','')",
"onError": "set-to-blank",
"newColumnName": "2053",
"columnInsertIndex": 3,
"description": "Create column 2053"
}
]

View File

@ -0,0 +1,15 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:'BA' + cells['File'].value + value",
"onError": "set-to-blank",
"newColumnName": "2199",
"columnInsertIndex": 3,
"description": "Create column 2199"
}
]

View File

@ -0,0 +1,35 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|553a",
"expression": "isBlank(value)",
"columnName": "M|553a",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|553a",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "2201",
"columnInsertIndex": 3,
"description": "Create column 2201"
}
]

View File

@ -0,0 +1,63 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:filter(cells['M|100'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1)",
"onError": "set-to-blank",
"newColumnName": "3000",
"columnInsertIndex": 3,
"description": "Create column 3000"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "3000",
"expression": "grel:if(\nvalue.contains(','),\n'\u001fa' + value.split(',')[0].trim() + '\u001fd' + value.split(',')[1].trim(),\n'\u001fP' + value\n)",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3000"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "3000",
"columnName": "3000",
"query": "¬",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "3000",
"expression": "grel:value.split('¬')[0].trim() + '\u001fc' + value.split('¬')[1].trim()",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3000"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "3000",
"expression": "grel:forEach(value.split('␟'), v, forEach(v.split('\u001f'), x, x).sort().reverse().join('\u001f')).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
}
]

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,141 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:filter(cells['M|200'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1)",
"onError": "set-to-blank",
"newColumnName": "3100",
"columnInsertIndex": 3,
"description": "Create column 3100"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "3100",
"expression": "isBlank(value)",
"columnName": "3100",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "3100",
"columnName": "3100",
"query": " / ",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "3100",
"expression": "grel:value.replace(' / ', '\u001fb')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3100 using expression grel:value.replace(' / ', '\u001fb')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "3100",
"expression": "isBlank(value)",
"columnName": "3100",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "3100",
"columnName": "3100",
"query": "¬",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "3100",
"expression": "grel:value.replace(/¬.*¬/,'').trim()",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3100 using expression grel:value.replace(/¬.*¬/,'').trim()"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "3100",
"expression": "isBlank(value)",
"columnName": "3100",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "3100",
"columnName": "3100",
"query": "<",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "3100",
"expression": "grel:value.replace(/<.*>/, '').trim() + '\u001fx' + value.find(/<.*>/)[0].replace('<', '').replace('>', '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3100 using expression grel:value.replace(/<.*>/, '').trim() + '\u001fx' + value.find(/<.*>/)[0].replace('<', '').replace('>', '')"
}
]

View File

@ -0,0 +1,141 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:[\nforNonBlank(filter(cells['M|200a'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null),\nforNonBlank(filter(cells['M|200b'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null),\nforNonBlank(filter(cells['M|204'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null),\nforNonBlank(filter(cells['M|204a'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null),\nforNonBlank(filter(cells['M|204b'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null),\nforNonBlank(filter(cells['M|208b'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null),\nforNonBlank(filter(cells['M|212b'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null),\nforNonBlank(filter(cells['M|216b'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null)].join('␟')",
"onError": "set-to-blank",
"newColumnName": "3110",
"columnInsertIndex": 3,
"description": "Create column 3110 at index 3 based on column M|IDN using expression grel:[\nforNonBlank(filter(cells['M|200a'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null),\nforNonBlank(filter(cells['M|200b'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null),\nforNonBlank(filter(cells['M|204'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null),\nforNonBlank(filter(cells['M|204a'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null),\nforNonBlank(filter(cells['M|204b'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null),\nforNonBlank(filter(cells['M|208b'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null),\nforNonBlank(filter(cells['M|212b'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null),\nforNonBlank(filter(cells['M|216b'].value.split('\u001f'), v, v.startsWith('a'))[0].slice(1), x, x, null)].join('␟')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "3110",
"expression": "isBlank(value)",
"columnName": "3110",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "3110",
"columnName": "3110",
"query": " / ",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "3110",
"expression": "grel:forEach(value.split('␟'), v, v.replace(' / ', '\u001fb').trim()).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3110"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "3110",
"expression": "isBlank(value)",
"columnName": "3110",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "3110",
"columnName": "3110",
"query": "¬",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "3110",
"expression": "grel:forEach(value.split('␟'), v, v.replace(/ ¬.*¬/,'').trim()).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3110"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "3110",
"expression": "isBlank(value)",
"columnName": "3110",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "3110",
"columnName": "3110",
"query": "<",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "3110",
"expression": "grel:forEach(value.split('␟'), v, v.replace(/ <.*>/, '').trim() + forNonBlank(v.find(/<.*>/)[0], x, '\u001fx' + x.replace('<', '').replace('>', ''), '')).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3110"
}
]

View File

@ -0,0 +1,166 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:filter(cells['M|303'].value.split('␟')[0].split('\u001f'), v, v.startsWith('t'))[0].slice(1)",
"onError": "set-to-blank",
"newColumnName": "3210",
"columnInsertIndex": 3,
"description": "Create column 3210"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "3210",
"expression": "isBlank(value)",
"columnName": "3210",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "3210",
"expression": "grel:value + forNonBlank(filter(cells['M|303'].value.split('\u001f'), v, v.startsWith('u'))[0].slice(1), x, '\u001fp' + x, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3210"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "3210",
"expression": "isBlank(value)",
"columnName": "3210",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|304",
"expression": "isBlank(value)",
"columnName": "M|304",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "3210",
"expression": "grel:cells['M|304'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3210 using expression grel:cells['M|304'].value"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "3210",
"expression": "isBlank(value)",
"columnName": "3210",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "3210",
"expression": "grel:value.replace('¬', '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3210 using expression grel:value.replace('¬', '')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "3210",
"expression": "isBlank(value)",
"columnName": "3210",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "3210",
"expression": "grel:with(['a', 'das', 'dem', 'den', 'der', 'des', 'die', 'ein', 'eine', 'einem', 'einen', 'einer', 'eines', 'the'], x, if(inArray(x, value.split(' ')[0].toLowercase()), value.split(' ')[0] + ' @' + value.split(' ').slice(1).join(' '), value))",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3210"
}
]

View File

@ -0,0 +1,147 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:filter(cells['M|303t'].value.split('␟')[0].split('\u001f'), v, v.startsWith('t'))[0].slice(1)",
"onError": "set-to-blank",
"newColumnName": "3211",
"columnInsertIndex": 3,
"description": "Create column 3211"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "3211",
"expression": "isBlank(value)",
"columnName": "3211",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "3211",
"expression": "grel:value + forNonBlank(filter(cells['M|303t'].value.split('␟')[0].split('\u001f'), v, v.startsWith('u'))[0].slice(1), x, '\u001fp' + x, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3211"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "3211",
"expression": "isBlank(value)",
"columnName": "3211",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "3211",
"expression": "grel:value + forNonBlank(filter(cells['M|303t'].value.split('␟')[0].split('\u001f'), v, v.startsWith('f'))[0].slice(1), x, '\u001ff' + x, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3211"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "3211",
"expression": "isBlank(value)",
"columnName": "3211",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "3211",
"expression": "grel:value.replace('¬', '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3211 using expression grel:value.replace('¬', '')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "3211",
"expression": "isBlank(value)",
"columnName": "3211",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "3211",
"expression": "grel:with(['a', 'das', 'dem', 'den', 'der', 'des', 'die', 'ein', 'eine', 'einem', 'einen', 'einer', 'eines', 'the'], x, if(inArray(x, value.split(' ')[0].toLowercase()), value.split(' ')[0] + ' @' + value.split(' ').slice(1).join(' '), value))",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3211"
}
]

View File

@ -0,0 +1,106 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|310",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "3260",
"columnInsertIndex": 3,
"description": "Create column 3260"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "3260",
"expression": "grel:forNonBlank([ forNonBlank(value, v, v, null), forNonBlank(cells['M|375'].value, v, v.slice(2), null) ].join('␟'), x, x, null)",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3260"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "3260",
"expression": "grel:forNonBlank([ forNonBlank(value, v, v, null), forNonBlank(cells['M|375e'].value, v, v.slice(2), null) ].join('␟'), x, x, null)",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3260"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "3260",
"expression": "grel:forNonBlank([ forNonBlank(value, v, v, null), forNonBlank(cells['M|370'].value, v, v, null) ].join('␟'), x, x, null)",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3260"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "3260",
"expression": "grel:forNonBlank([ forNonBlank(value, v, v, null), forNonBlank(cells['M|370a'].value, v, v, null) ].join('␟'), x, x, null)",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3260"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "3260",
"expression": "grel:forNonBlank([ forNonBlank(value, v, v, null), forNonBlank(cells['M|370b'].value, v, v, null) ].join('␟'), x, x, null)",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3260"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "3260",
"expression": "grel:value.replace('¬', '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3260"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "3260",
"expression": "grel:with(['a', 'das', 'dem', 'den', 'der', 'des', 'die', 'ein', 'eine', 'einem', 'einen', 'einer', 'eines', 'the'], x, if(inArray(x, value.split(' ')[0].toLowercase()), value.split(' ')[0] + ' @' + value.split(' ').slice(1).join(' '), value))",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3260"
}
]

View File

@ -0,0 +1,166 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|331",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "4000",
"columnInsertIndex": 3,
"description": "Create column 4000"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|331",
"expression": "isBlank(value)",
"columnName": "M|331",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "4000",
"expression": "grel:cells['M|331a'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4000"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "4000",
"expression": "grel:value + forNonBlank(cells['M|335'].value, v, '\u001fd' + v, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4000"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "4000",
"expression": "grel:value + forNonBlank(cells['M|333'].value, v, '\u001fh' + v, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4000"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|333",
"expression": "isBlank(value)",
"columnName": "M|333",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "4000",
"expression": "grel:value + forNonBlank(cells['M|359'].value, v, '\u001fh' + v, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4000"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|333",
"expression": "isBlank(value)",
"columnName": "M|333",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "4000",
"expression": "grel:value + forNonBlank(cells['M|359'].value, v, ' ; ' + v, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4000"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "4000",
"expression": "grel:value.replace('¬', '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4000"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "4000",
"expression": "grel:with(['a', 'das', 'dem', 'den', 'der', 'des', 'die', 'ein', 'eine', 'einem', 'einen', 'einer', 'eines', 'the'], x, if(inArray(x, value.split(' ')[0].toLowercase()), value.split(' ')[0] + ' @' + value.split(' ').slice(1).join(' '), value))",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4000"
}
]

View File

@ -0,0 +1,67 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|340",
"expression": "grel:coalesce(cells['M|340'].value, cells['M|341'].value, cells['M|341a'].value) + forNonBlank(cells['M|343'].value, v, '\u001fd' + v, '')",
"onError": "set-to-blank",
"newColumnName": "4002",
"columnInsertIndex": 3,
"description": "Create column 4002"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "4002",
"expression": "grel:value + forNonBlank(cells['M|345'].value, v, '␟' + v, '') + forNonBlank(cells['M|347'].value, v, '\u001fd' + v, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4002"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "4002",
"expression": "grel:value + forNonBlank(cells['M|349'].value, v, '␟' + v, '') + forNonBlank(cells['M|351'].value, v, '\u001fd' + v, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4002"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "4002",
"expression": "grel:value.replace('¬', '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4002"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "4002",
"expression": "grel:forEach(value.split('␟'), v, with(['a', 'das', 'dem', 'den', 'der', 'des', 'die', 'ein', 'eine', 'einem', 'einen', 'einer', 'eines', 'the'], x, if(inArray(x, v.split(' ')[0].toLowercase()), v.split(' ')[0] + ' @' + v.split(' ').slice(1).join(' '), v))).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4002"
}
]

View File

@ -0,0 +1,15 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|369",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "4011",
"columnInsertIndex": 3,
"description": "Create column 4011"
}
]

View File

@ -0,0 +1,15 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "record-based"
},
"baseColumnName": "M|403",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "4020",
"columnInsertIndex": 3,
"description": "Create column 4020"
}
]

View File

@ -0,0 +1,15 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "record-based"
},
"baseColumnName": "M|407",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "4026",
"columnInsertIndex": 3,
"description": "Create column 4026"
}
]

View File

@ -0,0 +1,191 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDN",
"expression": "isBlank(value)",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:[ forNonBlank(forEach(cells['M|410'].value.split(';'), v, '\u001fp' + v.trim()).join(''), x, x, '') + forNonBlank(forEach(cells['M|412'].value.split(';'), v, '\u001fn' + v.trim()).join(''), x, x, null), forNonBlank(forEach(cells['M|415'].value.split(';'), v, '\u001fp' + v.trim()).join(''), x, x, '') + forNonBlank(forEach(cells['M|417'].value.split(';'), v, '\u001fn' + v.trim()).join(''), x, x, null), forNonBlank(forEach(cells['M|418'].value.split('␟'), v, [ forEach(filter(v.split('\u001f'), f, f[0] == 'a'), sub, forEach(sub.split(';'), part, '\u001fp' + part.slice(1).trim()).join('')).join(''), forEach(filter(v.split('\u001f'), f, f[0] == 'g'), sub, forEach(sub.split(';'), part, '\u001fn' + part.slice(1).trim()).join('')).join('')\n, forEach(filter(v.split('\u001f'), f, f[0] == 'h'), sub, forEach(sub.split(';'), part, '\u001fh' + part.slice(1).trim()).join('')).join('') ].join('') ).join('␟'), x, x, null), forNonBlank(forEach(cells['M|419'].value.split('␟'), v, forEach(filter(v.split('\u001f'), f, 'ab'.contains(f[0])), sub, if(sub[0] == 'a', forEach(sub.slice(1).split(';'), a, '\u001fp' + a.trim()).join(''), '\u001fn' + sub.slice(1) )).join('')).join('␟'), x, x, null) ].join('␟')",
"onError": "set-to-blank",
"newColumnName": "4030",
"columnInsertIndex": 3,
"description": "Create column 4030"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDN",
"expression": "isBlank(value)",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "4030",
"expression": "isBlank(value)",
"columnName": "4030",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "4030",
"expression": "grel:forEach(value.split('␟'), v, if(v.contains('\u001fp'), v, '\u001fp[Erscheinungsort nicht ermittelbar]' + v)).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4030"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDN",
"expression": "isBlank(value)",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "4030",
"expression": "isBlank(value)",
"columnName": "4030",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "4030",
"expression": "grel:forEach(value.split('␟'), v, if(v.contains('\u001fn'), v, v + '\u001fn[Verlag nicht ermittelbar]')).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4030"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDN",
"expression": "isBlank(value)",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "4030",
"expression": "isBlank(value)",
"columnName": "4030",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "4030",
"expression": "grel:'\u001fp[Erscheinungsort nicht ermittelbar]' + '\u001fn[Verlag nicht ermittelbar]'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4030"
}
]

View File

@ -0,0 +1,80 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|433",
"expression": "grel:coalesce(value, cells['M|433c'].value).split(' : ')[0].split('␟')[0]",
"onError": "set-to-blank",
"newColumnName": "4060",
"columnInsertIndex": 3,
"description": "Create column 4060"
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|433",
"expression": "grel:coalesce(value, cells['M|433c'].value).split(' : ')[1].split(' ; ')[0].split('␟')[0]",
"onError": "set-to-blank",
"newColumnName": "4061",
"columnInsertIndex": 3,
"description": "Create column 4061"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "4061",
"expression": "grel:[ value, forEach(cells['M|434'].value.split('␟'), v, v).join('; ') ].join('; ')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4061"
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|433",
"expression": "grel:coalesce(value, cells['M|433c'].value).split(' : ')[1].split(' ; ')[1].split('␟')[0]",
"onError": "set-to-blank",
"newColumnName": "4062",
"columnInsertIndex": 3,
"description": "Create column 4062"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "4062",
"expression": "grel:coalesce(value, cells['M|435'].value)",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4062"
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|437",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "4063",
"columnInsertIndex": 3,
"description": "Create column 4063"
}
]

View File

@ -0,0 +1,48 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|519",
"expression": "grel:'\u001fa' + value",
"onError": "set-to-blank",
"newColumnName": "4204",
"columnInsertIndex": 3,
"description": "Create column 4204 at index 3 based on column M|519 using expression grel:'\u001fa' + value"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|520",
"expression": "isBlank(value)",
"columnName": "M|520",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "4204",
"expression": "grel:coalesce(forNonBlank(filter(cells['M|520'].value.split('\u001f'), f, f[0] == 'a')[0].slice(1), x, '\u001fa' + x, '') + forNonBlank(filter(cells['M|520'].value.split('\u001f'), f, f[0] == 'b')[0].slice(1), x, '\u001fd' + x, '') + forNonBlank(filter(cells['M|520'].value.split('\u001f'), f, f[0] == 'c')[0].slice(1), x, '\u001fe' + x, '') + forNonBlank(filter(cells['M|520'].value.split('\u001f'), f, f[0] == 'd')[0].slice(1), x, '\u001ff' + x, ''), value)",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4204 using expression grel:coalesce(forNonBlank(filter(cells['M|520'].value.split('\u001f'), f, f[0] == 'a')[0].slice(1), x, '\u001fa' + x, '') + forNonBlank(filter(cells['M|520'].value.split('\u001f'), f, f[0] == 'b')[0].slice(1), x, '\u001fd' + x, '') + forNonBlank(filter(cells['M|520'].value.split('\u001f'), f, f[0] == 'c')[0].slice(1), x, '\u001fe' + x, '') + forNonBlank(filter(cells['M|520'].value.split('\u001f'), f, f[0] == 'd')[0].slice(1), x, '\u001ff' + x, ''), value)"
}
]

View File

@ -0,0 +1,35 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|505",
"expression": "isBlank(value)",
"columnName": "M|505",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|505",
"expression": "grel:forNonBlank(filter(value.split('\u001f'), f, f[0] == 'p')[0].slice(1), x, '\u001fi' + x, '\u001fiAbweichender Titel') + forNonBlank(filter(value.split('\u001f'), f, f[0] == 'a')[0].slice(1), x, '\u001fa' + with(['a', 'das', 'dem', 'den', 'der', 'des', 'die', 'ein', 'eine', 'einem', 'einen', 'einer', 'eines', 'the'], y, if(inArray(y, x.split(' ')[0].toLowercase()), x.split(' ')[0] + ' @' + x.split(' ').slice(1).join(' '), x)), '')",
"onError": "set-to-blank",
"newColumnName": "4212",
"columnInsertIndex": 3,
"description": "Create column 4212"
}
]

View File

@ -0,0 +1,41 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|361",
"expression": "grel:value.split(' : ')[0] + forNonBlank(value.split(' : ')[1], v, '\u001fd' + v, '')",
"onError": "set-to-blank",
"newColumnName": "4222",
"columnInsertIndex": 3,
"description": "Create column 4222"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "4222",
"expression": "grel:value.split(' / ')[0] + forNonBlank(value.split(' / ')[1], v, '\u001fh' + v, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4222"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "4222",
"expression": "grel:value.replace('¬', '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4222"
}
]

View File

@ -0,0 +1,35 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|529",
"expression": "isBlank(value)",
"columnName": "M|529",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|529",
"expression": "grel:forEach(value.split('␟'), v, forNonBlank(filter(v.split('\u001f'), f, f[0] == 'p')[0].slice(1), x, '\u001fi' + x, '') + forNonBlank(filter(v.split('\u001f'), f, f[0] == 'a')[0].slice(1), x, '\u001fa' + x.replace('¬','').replace(/^:\\s?/,''), '')).join('␟')",
"onError": "set-to-blank",
"newColumnName": "4242",
"columnInsertIndex": 3,
"description": "Create column 4242"
}
]

View File

@ -0,0 +1,54 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|527",
"expression": "isBlank(value)",
"columnName": "M|527",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|527",
"expression": "grel:if(and(cells['File'].value == 'RS', not(value.contains('\u001fp'))), true, false)",
"columnName": "M|527",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|527",
"expression": "grel:forEach(value.split('␟'), v, forNonBlank(filter(v.split('\u001f'), f, f[0] == 'p')[0].slice(1), x, '\u001fi' + x, '') + forNonBlank(filter(v.split('\u001f'), f, f[0] == 'a')[0].slice(1), x, '\u001fa' + x.replace('¬','').replace(/^:\\s?/,''), '')).join('␟')",
"onError": "set-to-blank",
"newColumnName": "4243",
"columnInsertIndex": 3,
"description": "Create column 4243"
}
]

View File

@ -0,0 +1,182 @@
[
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|GT0",
"expression": "grel:forNonBlank(filter(value.split('\u001f'), f, f[0] == 'L')[0].slice(1), x, 'L', null)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [],
"selectBlank": true,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "M|GT0",
"expression": "null",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column M|GT0 using expression null"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT1",
"expression": "isBlank(value)",
"columnName": "M|GT1",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|GT1",
"expression": "grel:forNonBlank(filter(value.split('\u001f'), f, f[0] == 'L')[0].slice(1), x, 'L', null)",
"columnName": "M|GT1",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [],
"selectBlank": true,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "M|GT1",
"expression": "null",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column M|GT1 using expression null"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT2",
"expression": "isBlank(value)",
"columnName": "M|GT2",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|GT2",
"expression": "grel:forNonBlank(filter(value.split('\u001f'), f, f[0] == 'L')[0].slice(1), x, 'L', null)",
"columnName": "M|GT2",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [],
"selectBlank": true,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "M|GT2",
"expression": "null",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column M|GT2 using expression null"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT3",
"expression": "isBlank(value)",
"columnName": "M|GT3",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|GT3",
"expression": "grel:forNonBlank(filter(value.split('\u001f'), f, f[0] == 'L')[0].slice(1), x, 'L', null)",
"columnName": "M|GT3",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [],
"selectBlank": true,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "M|GT3",
"expression": "null",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column M|GT3 using expression null"
}
]

View File

@ -0,0 +1,106 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "LE",
"l": "LE"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|GT0",
"expression": "grel:value[2,11]",
"onError": "set-to-blank",
"newColumnName": "gt0LE",
"columnInsertIndex": 3,
"description": "Create column gt0LE at index 3 based on column M|GT0 using expression grel:value[2,11]"
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "RS",
"l": "RS"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|GT0",
"expression": "grel:value[2,11]",
"onError": "set-to-blank",
"newColumnName": "gt0RS",
"columnInsertIndex": 3,
"description": "Create column gt0RS at index 3 based on column M|GT0 using expression grel:value[2,11]"
}
]

View File

@ -0,0 +1,368 @@
[
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "RS",
"l": "RS"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "gt0RS",
"expression": "grel:forEach(value.cross('alephino','M|IDN'),r,r.cells['File'].value)",
"columnName": "gt0RS",
"invert": true,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "RS",
"l": "RS"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "LE",
"l": "LE"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "gt0LE",
"expression": "grel:forEach(value.cross('alephino','M|IDN'),r,r.cells['File'].value)",
"columnName": "gt0LE",
"invert": true,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "LE",
"l": "LE"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|GT1",
"expression": "isBlank(value)",
"columnName": "M|GT1",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "M|GT2",
"expression": "grel:cells['M|GT0'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column M|GT2 using expression grel:cells['M|GT0'].value"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|GT1",
"expression": "isBlank(value)",
"columnName": "M|GT1",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "M|GT1",
"expression": "grel:cells['M|GT0'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column M|GT1 using expression grel:cells['M|GT0'].value"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "M|GT0",
"expression": "grel:null",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column M|GT0 using expression grel:null"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "gt0RS",
"expression": "grel:null",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column gt0RS using expression grel:null"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "gt0LE",
"expression": "grel:null",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column gt0LE using expression grel:null"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"starred": false,
"description": "Unstar rows"
}
]

View File

@ -0,0 +1,681 @@
[
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "LE",
"l": "LE"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDN",
"expression": "grel:forNonBlank(value.cross('alephino','gt0LE')[0],v,'gt0','')",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "gt0",
"l": "gt0"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "RS",
"l": "RS"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDN",
"expression": "grel:forNonBlank(value.cross('alephino','gt0RS')[0],v,'gt0','')",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "gt0",
"l": "gt0"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"starred": true,
"description": "Star rows"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDN",
"expression": "isBlank(value)",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:value + 'c'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 0500 using expression grel:value + 'c'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDN",
"expression": "isBlank(value)",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|331",
"expression": "isBlank(value)",
"columnName": "M|331",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:value + 'F'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 0500 using expression grel:value + 'F'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDN",
"expression": "isBlank(value)",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|331",
"expression": "isBlank(value)",
"columnName": "M|331",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:value + 'f'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 0500 using expression grel:value + 'f'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDN",
"expression": "isBlank(value)",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:value + 'a'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 0500 using expression grel:value + 'a'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDN",
"expression": "isBlank(value)",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:value + 'n'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 0500 using expression grel:value + 'n'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "E0XX",
"expression": "grel:'␟' + 'neu'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column E0XX using expression grel:'␟' + 'neu'"
},
{
"op": "core/multivalued-cell-split",
"columnName": "E0XX",
"keyColumnName": "M|IDN",
"mode": "separator",
"separator": "␟",
"regex": false,
"description": "Split multi-valued cells in column E0XX"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "E0XX",
"columnName": "E0XX",
"query": "neu",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "File",
"expression": "grel:row.record.cells['File'].value[0]",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column File using expression grel:row.record.cells['File'].value[0]"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "E0XX",
"columnName": "E0XX",
"query": "neu",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "E0XXb",
"expression": "grel:'n' + cells['File'].value.toLowercase()",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column E0XXb using expression grel:'n' + cells['File'].value.toLowercase()"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "E0XX",
"columnName": "E0XX",
"query": "neu",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "7100f",
"expression": "grel:cells['File'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 7100f using expression grel:cells['File'].value"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "E0XX",
"columnName": "E0XX",
"query": "neu",
"mode": "text",
"caseSensitive": false,
"invert": false
},
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "LE",
"l": "LE"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "7100j",
"expression": "grel:'0005'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 7100j using expression grel:'0005'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "E0XX",
"columnName": "E0XX",
"query": "neu",
"mode": "text",
"caseSensitive": false,
"invert": false
},
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "RS",
"l": "RS"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "7100j",
"expression": "grel:'0006'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 7100j using expression grel:'0006'"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "E0XX",
"columnName": "E0XX",
"query": "neu",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "E0XX",
"expression": "grel:'15-05-22'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column E0XX using expression grel:'15-05-22'"
},
{
"op": "core/row-star",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Starred Rows",
"expression": "row.starred",
"columnName": "",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"starred": false,
"description": "Unstar rows"
}
]

View File

@ -0,0 +1,144 @@
[
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "LE",
"l": "LE"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "0500",
"expression": "grel:value[1]",
"columnName": "0500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "c",
"l": "c"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDN",
"expression": "grel:forEach(value.cross('alephino','gt0LE'), r, r.cells['0500'].value[0]).uniques().length() > 1",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:'Z' + value.slice(1)",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 0500 using expression grel:'Z' + value.slice(1)"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "RS",
"l": "RS"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "0500",
"expression": "grel:value[1]",
"columnName": "0500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "c",
"l": "c"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDN",
"expression": "grel:forEach(value.cross('alephino','gt0RS'), r, r.cells['0500'].value[0]).uniques().length() > 1",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:'Z' + value.slice(1)",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 0500 using expression grel:'Z' + value.slice(1)"
}
]

View File

@ -0,0 +1,54 @@
[
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "0500",
"expression": "value",
"columnName": "0500",
"invert": true,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "Afn",
"l": "Afn"
}
}
],
"selectBlank": true,
"selectError": false
},
{
"type": "list",
"name": "4000",
"expression": "isBlank(value)",
"columnName": "4000",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "4000",
"expression": "grel:'Titel fehlt'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4000 using expression grel:'Titel fehlt'"
}
]

View File

@ -0,0 +1,388 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|GT0",
"expression": "grel:forNonBlank(filter(cells['M|GT0'].value.split('\u001f'), f, f[0] == 'a')[0].slice(1), x, '\u001fa' + x, '')",
"onError": "set-to-blank",
"newColumnName": "415X",
"columnInsertIndex": 3,
"description": "Create column 415X at index 107 based on column M|GT0 using expression grel:forNonBlank(filter(cells['M|GT0'].value.split('\u001f'), f, f[0] == 'a')[0].slice(1), x, '\u001fa' + x, '')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "LE",
"l": "LE"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "415X",
"expression": "grel:forNonBlank(value, v, v, '') + forNonBlank(cells['gt0LE'].value.cross('alephino','M|IDN').cells['M|335'].value[0], x, '\u001fd' + x, '') + forNonBlank(cells['gt0LE'].value.cross('alephino','M|IDN').cells['M|359'].value[0], x, '\u001fh' + x, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 415X using expression grel:forNonBlank(value, v, v, '') + forNonBlank(cells['gt0LE'].value.cross('alephino','M|IDN').cells['M|335'].value[0], x, '\u001fd' + x, '') + forNonBlank(cells['gt0LE'].value.cross('alephino','M|IDN').cells['M|359'].value[0], x, '\u001fh' + x, '')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "RS",
"l": "RS"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "415X",
"expression": "grel:forNonBlank(value, v, v, '') + forNonBlank(cells['gt0RS'].value.cross('alephino','M|IDN').cells['M|335'].value[0], x, '\u001fd' + x, '') + forNonBlank(cells['gt0RS'].value.cross('alephino','M|IDN').cells['M|359'].value[0], x, '\u001fh' + x, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 415X using expression grel:forNonBlank(value, v, v, '') + forNonBlank(cells['gt0RS'].value.cross('alephino','M|IDN').cells['M|335'].value[0], x, '\u001fd' + x, '') + forNonBlank(cells['gt0RS'].value.cross('alephino','M|IDN').cells['M|359'].value[0], x, '\u001fh' + x, '')"
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|GT0",
"expression": "grel:filter(cells['M|GT0'].value.split('\u001f'), f, f[0] == 'b')[0].slice(1)",
"onError": "set-to-blank",
"newColumnName": "gt0b",
"columnInsertIndex": 107,
"description": "Create column gt0b at index 107 based on column M|GT0 using expression grel:filter(cells['M|GT0'].value.split('\u001f'), f, f[0] == 'b')[0].slice(1)"
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|GT0",
"expression": "grel:filter(cells['M|GT0'].value.split('\u001f'), f, f[0] == 's')[0].slice(1)",
"onError": "set-to-blank",
"newColumnName": "gt0s",
"columnInsertIndex": 3,
"description": "Create column gt0s at index 107 based on column M|GT0 using expression grel:filter(cells['M|GT0'].value.split('\u001f'), f, f[0] == 's')[0].slice(1)"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "gt0b",
"columnName": "gt0b",
"query": " ; ",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"columnName": "415X",
"expression": "grel:forNonBlank(value, v, v + '␟', '') + forNonBlank(cells['gt0b'].value.split(' ; ')[0], v, '\u001fa' + v, '') + forNonBlank(cells['gt0b'].value.split(' ; ')[1], v, '\u001fl' + v, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 415X using expression grel:forNonBlank(value, v, v + '␟', '') + forNonBlank(cells['gt0b'].value.split(' ; ')[0], v, '\u001fa' + v, '') + forNonBlank(cells['gt0b'].value.split(' ; ')[1], v, '\u001fl' + v, '')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "gt0b",
"columnName": "gt0b",
"query": " ; ",
"mode": "text",
"caseSensitive": false,
"invert": true
},
{
"type": "list",
"name": "gt0b",
"expression": "isBlank(value)",
"columnName": "gt0b",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "415X",
"expression": "grel:forNonBlank(value, v, v, '') + forNonBlank(cells['gt0b'].value, v, '\u001fl' + v, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 415X using expression grel:forNonBlank(value, v, v, '') + forNonBlank(cells['gt0b'].value, v, '\u001fl' + v, '')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "gt0b",
"columnName": "gt0b",
"query": " ; ",
"mode": "text",
"caseSensitive": false,
"invert": true
},
{
"type": "list",
"name": "gt0b",
"expression": "isBlank(value)",
"columnName": "gt0b",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "gt0s",
"expression": "isBlank(value)",
"columnName": "gt0s",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "415X",
"expression": "grel:forNonBlank(value, v, v, '') + forNonBlank(cells['gt0s'].value, v, '\u001fl' + v, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 415X using expression grel:forNonBlank(value, v, v, '') + forNonBlank(cells['gt0s'].value, v, '\u001fl' + v, '')"
}
]

View File

@ -0,0 +1,262 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "gt0s",
"expression": "isBlank(value)",
"columnName": "gt0s",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "gt0s",
"expression": "grel:'\u001fX' + value",
"onError": "set-to-blank",
"newColumnName": "4160",
"columnInsertIndex": 4,
"description": "Create column 4160 at index 4 based on column gt0s using expression grel:'\u001fX' + value"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "gt0s",
"expression": "isBlank(value)",
"columnName": "gt0s",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "gt0b",
"expression": "isBlank(value)",
"columnName": "gt0b",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "4160",
"expression": "grel:'\u001fX' + if(value.contains(' ; '), cells['gt0b'].value.split(' ; ')[1], cells['gt0b'].value)",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4160 using expression grel:'\u001fX' + if(value.contains(' ; '), cells['gt0b'].value.split(' ; ')[1], cells['gt0b'].value)"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "gt0s",
"expression": "isBlank(value)",
"columnName": "gt0s",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "gt0b",
"expression": "isBlank(value)",
"columnName": "gt0b",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|331",
"expression": "isBlank(value)",
"columnName": "M|331",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "4160",
"expression": "grel:forNonBlank(cells['M|331'].value, v, '\u001fX' + v.find(/[A-Za-z0-9]{3}/)[0].toLowercase(), '') + forNonBlank(cells['M|425'].value, v, '.' + v.find(/\\d{4}/)[0], '') + forNonBlank(cells['M|425a'].value, v, '.' + v.find(/\\d{4}/)[0], '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4160 using expression grel:forNonBlank(cells['M|331'].value, v, '\u001fX' + v.find(/[A-Za-z0-9]{3}/)[0].toLowercase(), '') + forNonBlank(cells['M|425'].value, v, '.' + v.find(/\\d{4}/)[0], '') + forNonBlank(cells['M|425a'].value, v, '.' + v.find(/\\d{4}/)[0], '')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "4160",
"expression": "grel:forNonBlank(value, v, v, '') + forNonBlank(coalesce(cells['gt0RS'].value, cells['gt0LE'].value), v, '\u001f7' + 'BA' + cells['File'].value + v, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4160 using expression grel:forNonBlank(value, v, v, '') + forNonBlank(coalesce(cells['gt0RS'].value, cells['gt0LE'].value), v, '\u001f7' + 'BA' + cells['File'].value + v, '')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|GT0",
"expression": "isBlank(value)",
"columnName": "M|GT0",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "4160",
"expression": "grel:forNonBlank(value, v, v, '') + forNonBlank(coalesce(cells['gt0b'].value, cells['gt0s'].value), v, '\u001fl' + v, '')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 4160 using expression grel:forNonBlank(value, v, v, '') + forNonBlank(coalesce(cells['gt0b'].value, cells['gt0s'].value), v, '\u001fl' + v, '')"
}
]

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,35 @@
[
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "8200",
"expression": "facetCount(value, 'value', '8200') > 1",
"columnName": "8200",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "8200",
"expression": "null",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 8200 using expression null"
}
]

View File

@ -0,0 +1,158 @@
[
{
"op": "core/row-removal",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDN",
"expression": "isBlank(value)",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "E|001",
"expression": "grel:isBlank(row.record.cells['E|001'].value.join(''))",
"columnName": "E|001",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "LE",
"l": "LE"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDN",
"expression": "grel:forNonBlank(value.cross('alephino','gt0LE')[0],v,'gt0','')",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [],
"selectBlank": true,
"selectError": false
}
],
"mode": "row-based"
},
"description": "Remove rows"
},
{
"op": "core/row-removal",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDN",
"expression": "isBlank(value)",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "E|001",
"expression": "grel:isBlank(row.record.cells['E|001'].value.join(''))",
"columnName": "E|001",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "RS",
"l": "RS"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDN",
"expression": "grel:forNonBlank(value.cross('alephino','gt0RS')[0],v,'gt0','')",
"columnName": "M|IDN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [],
"selectBlank": true,
"selectError": false
}
],
"mode": "row-based"
},
"description": "Remove rows"
}
]

View File

@ -0,0 +1,52 @@
{{
if(row.index - row.record.fromRowIndex == 0,
'' + '\n'
+ forNonBlank(cells['0500'].value, v, '002@ ' + '0' + v + '\n', '')
+ forNonBlank(cells['2000'].value, v, forEach(v.split('␟'), x, '004A ' + x + '\n').join(''), '')
+ forNonBlank(cells['2009'].value, v, forEach(v.split('␟'), x, '004D ' + x + '\n').join(''), '')
+ forNonBlank(cells['2201'].value, v, forEach(v.split('␟'), x, '004L ' + '0' + x + '\n').join(''), '')
+ forNonBlank(cells['2003'].value, v, forEach(v.split('␟'), x, '004P ' + '' + x + '\n').join(''), '')
+ forNonBlank(cells['2053'].value, v, '004W ' + '0' + v + '\n', '')
+ forNonBlank(cells['2199'].value, v, '006Y ' + '0' + v + '\n', '')
+ forNonBlank(cells['1500'].value, v, '010@ ' + forEach(v.split('‡'),x,'a' + x).join('') + '\n', '')
+ forNonBlank(cells['1100a'].value, v, '011@ ' + 'a' + v + forNonBlank(cells['1100b'].value, v, 'b' + v, '') + forNonBlank(cells['1100n'].value, v, 'n' + v, '') + '\n', '')
+ forNonBlank(cells['1108n'].value, v, '011F ' + 'n' + v + '\n', '')
+ forNonBlank(cells['1131'].value, v, forEach(v.split('␟'),x,'013D ' + '' + x + '\n').join(''), '')
+ forNonBlank(cells['1140'].value, v, '013H ' + 'a' + v + '\n', '')
+ forNonBlank(cells['1700'].value, v, '019@ ' + forEach(v.split('‡'),x,'a' + x).join('') + '\n', '')
+ forNonBlank(cells['4000'].value, v, '021A ' + 'a' + v + '\n', '')
+ forNonBlank(cells['4002'].value, v, forEach(v.split('␟'), x, '021G ' + 'a' + x + '\n').join(''), '')
+ forNonBlank(cells['4011'].value, v, '021N ' + 'a' + v + '\n', '')
+ forNonBlank(cells['3210'].value, v, '022A/00 ' + 'a' + v + '\n', '')
+ forNonBlank(cells['3211'].value, v, '022A/01 ' + 'a' + v + '\n', '')
+ forNonBlank(cells['3260'].value, v, forEach(v.split('␟'), x, '027A ' + 'a' + x + '\n').join(''), '')
+ forNonBlank(cells['3000'].value, v, '028A ' + '' + v + '\n', '')
+ forNonBlank(cells['3010'].value, v, forEach(v.split('␟'), x, '028C ' + '' + x + '\n').join(''), '')
+ forNonBlank(cells['3100'].value, v, '029A ' + 'a' + v + '\n', '')
+ forNonBlank(cells['3110'].value, v, forEach(v.split('␟'), x, '029F ' + 'a' + x + '\n').join(''), '')
+ forNonBlank(cells['4020'].value, v, '032@ ' + 'a' + v + '\n', '')
+ forNonBlank(cells['4030'].value, v, forEach(v.split('␟'), x, '033A ' + x + '\n').join(''), '')
+ forNonBlank(cells['4060'].value, v, '034D ' + 'a' + v + '\n', '')
+ forNonBlank(cells['4061'].value, v, '034M ' + 'a' + v + '\n', '')
+ forNonBlank(cells['4062'].value, v, '034I ' + 'a' + v + '\n', '')
+ forNonBlank(cells['4063'].value, v, '034K ' + 'a' + v + '\n', '')
+ forNonBlank(cells['4026'].value, v, '035E ' + 'a' + v + '\n', '')
+ forNonBlank(cells['415X'].value, v, forEachIndex(v.split('␟'), i, x, '036C/0' + i + ' ' + x + '\n').join(''), '')
+ forNonBlank(cells['4160'].value, v, '036D ' + v + '\n', '')
+ forNonBlank(cells['417X'].value, v, forEachIndex(v.split('␟'), i, x, '036E/0' + i + ' ' + x + '\n').join(''), '')
+ forNonBlank(cells['4204'].value, v, '037C ' + v + '\n', '')
+ forNonBlank(cells['4242'].value, v, forEach(v.split('␟'), x, '039C ' + x + '\n').join(''), '')
+ forNonBlank(cells['4243'].value, v, forEach(v.split('␟'), x, '039I ' + x + '\n').join(''), '')
+ forNonBlank(cells['4212'].value, v, '046C ' + v + '\n', '')
+ forNonBlank(cells['4222'].value, v, '046M ' + 'a' + v + '\n', '')
,'')
}}{{
if(isNonBlank(cells['E0XXb'].value),
with(with(rowIndex - row.record.fromRowIndex, i, '00'[0,2-i.length()] + i),exnr,
'208@/' + exnr + ' a' + cells['E0XX'].value + 'b' + cells['E0XXb'].value + '\n'
+ '209A/' + exnr + ' b4736' + 'j' + cells['7100j'].value + 'f' + cells['7100f'].value + forNonBlank(cells['7100a'].value, v, 'a' + v, '') + forNonBlank(cells['7100d'].value, v, 'd' + v, '') + 'x00' + '\n'
+ forNonBlank(cells['8100'].value, v, '209C/' + exnr + ' a' + v + 'x00' + '\n', '')
+ forNonBlank(cells['8200'].value, v, '209G/' + exnr + ' a' + v + '\n', '')
+ forNonBlank(cells['4801'].value, v, '237A/' + exnr + ' a' + v + '\n', '')
), '')
}}

View File

@ -0,0 +1,15 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "E|BIB",
"expression": "grel:value.split('\u001f')[0].slice(1).replace(/^0+/,'')",
"onError": "set-to-blank",
"newColumnName": "titel_id",
"columnInsertIndex": 18,
"description": "Create column titel_id at index 18 based on column E|BIB using expression grel:value.split('\u001f')[0].slice(1).replace(/^0+/,'')"
}
]

View File

@ -0,0 +1,18 @@
[
{
"op": "core/blank-down",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "Column 1",
"description": "Blank down cells in column Column 1"
},
{
"op": "core/multivalued-cell-join",
"columnName": "Column 2",
"keyColumnName": "Column 1",
"separator": "␟",
"description": "Join multi-valued cells in column Column 2"
}
]

View File

@ -0,0 +1,15 @@
[
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "Column 1",
"expression": "grel:'E|' + value.replace(' ','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column Column 1 using expression grel:'E|' + value.replace(' ','')"
}
]

View File

@ -0,0 +1,80 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Column 1",
"expression": "value",
"columnName": "Column 1",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "E|IDN",
"l": "E|IDN"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "Column 2",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "id",
"columnInsertIndex": 2,
"description": "Create column id at index 2 based on column Column 2 using expression grel:value"
},
{
"op": "core/column-move",
"columnName": "id",
"index": 0,
"description": "Move column id to position 0"
},
{
"op": "core/fill-down",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "id",
"description": "Fill down cells in column id"
},
{
"op": "core/row-reorder",
"mode": "row-based",
"sorting": {
"criteria": [
{
"valueType": "string",
"column": "id",
"blankPosition": 2,
"errorPosition": 1,
"reverse": false,
"caseSensitive": false
},
{
"valueType": "string",
"column": "Column 1",
"blankPosition": 2,
"errorPosition": 1,
"reverse": false,
"caseSensitive": false
}
]
},
"description": "Reorder rows"
},
{
"op": "core/column-removal",
"columnName": "id",
"description": "Remove column id"
}
]

View File

@ -0,0 +1,9 @@
[
{
"op": "core/key-value-columnize",
"keyColumnName": "Column 1",
"valueColumnName": "Column 2",
"noteColumnName": "",
"description": "Columnize by key column Column 1 and value column Column 2 with note column "
}
]

View File

@ -0,0 +1,546 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|001'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|001",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|001",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|001",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|002a'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|002a",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|002a",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|002a",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|003'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|003",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|003",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|003",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|100'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|100",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|100",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|100",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|115'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|115",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|115",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|115",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|120'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|120",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|120",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|120",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|A87'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|A87",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|A87",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|A87",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|A95'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|A95",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|A95",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|A95",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|BIB'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|BIB",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|BIB",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|BIB",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|IDN'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|IDN",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|IDN",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|IDN",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|105'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|105",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|105",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|105",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|107'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|107",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|107",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|107",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|125'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|125",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|125",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|125",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|072'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|072",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|072",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|072",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|A98'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|A98",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|A98",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|A98",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|ABO'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|ABO",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|ABO",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|ABO",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "id",
"expression": "grel:forNonBlank(forEach(value.cross('exemplare','titel_id'),r,forNonBlank(r.cells['E|A97'].value,v,v,'␀')).join('␞'),x,'␀␞'+x,null)",
"onError": "set-to-blank",
"newColumnName": "E|A97",
"columnInsertIndex": 13
},
{
"op": "core/multivalued-cell-split",
"columnName": "E|A97",
"keyColumnName": "M|001",
"mode": "separator",
"separator": "␞",
"regex": false
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "E|A97",
"expression": "grel:value.replace('␀','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
}
]

View File

@ -0,0 +1,22 @@
[
{
"op": "core/mass-edit",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "Column 1",
"expression": "value",
"edits": [
{
"from": [
"001st"
],
"fromBlank": false,
"fromError": false,
"to": "001"
}
],
"description": "Mass edit cells in column Column 1"
}
]

View File

@ -0,0 +1,15 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|IDN",
"expression": "grel:value.replace(/^0+/,'')",
"onError": "set-to-blank",
"newColumnName": "id",
"columnInsertIndex": 12,
"description": "Create column id at index 12 based on column M|IDN using expression grel:value.replace(/^0+/,'')"
}
]

View File

@ -0,0 +1,904 @@
[
{
"op": "core/row-removal",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Column 1",
"expression": "value",
"columnName": "Column 1",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "M|004",
"l": "M|004"
}
},
{
"v": {
"v": "M|011",
"l": "M|011"
}
},
{
"v": {
"v": "M|016",
"l": "M|016"
}
},
{
"v": {
"v": "M|025",
"l": "M|025"
}
},
{
"v": {
"v": "M|025_",
"l": "M|025_"
}
},
{
"v": {
"v": "M|025a",
"l": "M|025a"
}
},
{
"v": {
"v": "M|025b",
"l": "M|025b"
}
},
{
"v": {
"v": "M|025e",
"l": "M|025e"
}
},
{
"v": {
"v": "M|025f",
"l": "M|025f"
}
},
{
"v": {
"v": "M|025l",
"l": "M|025l"
}
},
{
"v": {
"v": "M|025o",
"l": "M|025o"
}
},
{
"v": {
"v": "M|026a",
"l": "M|026a"
}
},
{
"v": {
"v": "M|026d",
"l": "M|026d"
}
},
{
"v": {
"v": "M|026g",
"l": "M|026g"
}
},
{
"v": {
"v": "M|027",
"l": "M|027"
}
},
{
"v": {
"v": "M|030",
"l": "M|030"
}
},
{
"v": {
"v": "M|037z",
"l": "M|037z"
}
},
{
"v": {
"v": "M|039z",
"l": "M|039z"
}
},
{
"v": {
"v": "M|038b",
"l": "M|038b"
}
},
{
"v": {
"v": "M|070",
"l": "M|070"
}
},
{
"v": {
"v": "M|070_",
"l": "M|070_"
}
},
{
"v": {
"v": "M|070a",
"l": "M|070a"
}
},
{
"v": {
"v": "M|073",
"l": "M|073"
}
},
{
"v": {
"v": "M|076z",
"l": "M|076z"
}
},
{
"v": {
"v": "M|077a",
"l": "M|077a"
}
},
{
"v": {
"v": "M|077b",
"l": "M|077b"
}
},
{
"v": {
"v": "M|077c",
"l": "M|077c"
}
},
{
"v": {
"v": "M|077e",
"l": "M|077e"
}
},
{
"v": {
"v": "M|077f",
"l": "M|077f"
}
},
{
"v": {
"v": "M|077g",
"l": "M|077g"
}
},
{
"v": {
"v": "M|077h",
"l": "M|077h"
}
},
{
"v": {
"v": "M|077u",
"l": "M|077u"
}
},
{
"v": {
"v": "M|077v",
"l": "M|077v"
}
},
{
"v": {
"v": "M|078c",
"l": "M|078c"
}
},
{
"v": {
"v": "M|078k",
"l": "M|078k"
}
},
{
"v": {
"v": "M|080",
"l": "M|080"
}
},
{
"v": {
"v": "M|082",
"l": "M|082"
}
},
{
"v": {
"v": "M|082_",
"l": "M|082_"
}
},
{
"v": {
"v": "M|082a",
"l": "M|082a"
}
},
{
"v": {
"v": "M|082l",
"l": "M|082l"
}
},
{
"v": {
"v": "M|082p",
"l": "M|082p"
}
},
{
"v": {
"v": "M|088",
"l": "M|088"
}
},
{
"v": {
"v": "M|088_",
"l": "M|088_"
}
},
{
"v": {
"v": "M|088r",
"l": "M|088r"
}
},
{
"v": {
"v": "M|503",
"l": "M|503"
}
},
{
"v": {
"v": "M|504",
"l": "M|504"
}
},
{
"v": {
"v": "M|507",
"l": "M|507"
}
},
{
"v": {
"v": "M|509",
"l": "M|509"
}
},
{
"v": {
"v": "M|510",
"l": "M|510"
}
},
{
"v": {
"v": "M|511",
"l": "M|511"
}
},
{
"v": {
"v": "M|516",
"l": "M|516"
}
},
{
"v": {
"v": "M|517",
"l": "M|517"
}
},
{
"v": {
"v": "M|524",
"l": "M|524"
}
},
{
"v": {
"v": "M|525z",
"l": "M|525z"
}
},
{
"v": {
"v": "M|527y",
"l": "M|527y"
}
},
{
"v": {
"v": "M|528",
"l": "M|528"
}
},
{
"v": {
"v": "M|530y",
"l": "M|530y"
}
},
{
"v": {
"v": "M|533z",
"l": "M|533z"
}
},
{
"v": {
"v": "M|534",
"l": "M|534"
}
},
{
"v": {
"v": "M|536",
"l": "M|536"
}
},
{
"v": {
"v": "M|537",
"l": "M|537"
}
},
{
"v": {
"v": "M|540o",
"l": "M|540o"
}
},
{
"v": {
"v": "M|542z",
"l": "M|542z"
}
},
{
"v": {
"v": "M|546",
"l": "M|546"
}
},
{
"v": {
"v": "M|550",
"l": "M|550"
}
},
{
"v": {
"v": "M|551a",
"l": "M|551a"
}
},
{
"v": {
"v": "M|552b",
"l": "M|552b"
}
},
{
"v": {
"v": "M|553",
"l": "M|553"
}
},
{
"v": {
"v": "M|556a",
"l": "M|556a"
}
},
{
"v": {
"v": "M|564",
"l": "M|564"
}
},
{
"v": {
"v": "M|566",
"l": "M|566"
}
},
{
"v": {
"v": "M|568",
"l": "M|568"
}
},
{
"v": {
"v": "M|574",
"l": "M|574"
}
},
{
"v": {
"v": "M|574_",
"l": "M|574_"
}
},
{
"v": {
"v": "M|574g",
"l": "M|574g"
}
},
{
"v": {
"v": "M|580",
"l": "M|580"
}
},
{
"v": {
"v": "M|610",
"l": "M|610"
}
},
{
"v": {
"v": "M|610_",
"l": "M|610_"
}
},
{
"v": {
"v": "M|610a",
"l": "M|610a"
}
},
{
"v": {
"v": "M|611u",
"l": "M|611u"
}
},
{
"v": {
"v": "M|613u",
"l": "M|613u"
}
},
{
"v": {
"v": "M|614u",
"l": "M|614u"
}
},
{
"v": {
"v": "M|616u",
"l": "M|616u"
}
},
{
"v": {
"v": "M|619",
"l": "M|619"
}
},
{
"v": {
"v": "M|620",
"l": "M|620"
}
},
{
"v": {
"v": "M|620b",
"l": "M|620b"
}
},
{
"v": {
"v": "M|621b",
"l": "M|621b"
}
},
{
"v": {
"v": "M|634a",
"l": "M|634a"
}
},
{
"v": {
"v": "M|637",
"l": "M|637"
}
},
{
"v": {
"v": "M|638",
"l": "M|638"
}
},
{
"v": {
"v": "M|640",
"l": "M|640"
}
},
{
"v": {
"v": "M|646",
"l": "M|646"
}
},
{
"v": {
"v": "M|649",
"l": "M|649"
}
},
{
"v": {
"v": "M|649c",
"l": "M|649c"
}
},
{
"v": {
"v": "M|649d",
"l": "M|649d"
}
},
{
"v": {
"v": "M|654",
"l": "M|654"
}
},
{
"v": {
"v": "M|655",
"l": "M|655"
}
},
{
"v": {
"v": "M|655_",
"l": "M|655_"
}
},
{
"v": {
"v": "M|655e",
"l": "M|655e"
}
},
{
"v": {
"v": "M|673a",
"l": "M|673a"
}
},
{
"v": {
"v": "M|673b",
"l": "M|673b"
}
},
{
"v": {
"v": "M|674a",
"l": "M|674a"
}
},
{
"v": {
"v": "M|675",
"l": "M|675"
}
},
{
"v": {
"v": "M|675_",
"l": "M|675_"
}
},
{
"v": {
"v": "M|675a",
"l": "M|675a"
}
},
{
"v": {
"v": "M|678",
"l": "M|678"
}
},
{
"v": {
"v": "M|700_",
"l": "M|700_"
}
},
{
"v": {
"v": "M|700a",
"l": "M|700a"
}
},
{
"v": {
"v": "M|700b",
"l": "M|700b"
}
},
{
"v": {
"v": "M|700c",
"l": "M|700c"
}
},
{
"v": {
"v": "M|700d",
"l": "M|700d"
}
},
{
"v": {
"v": "M|700g",
"l": "M|700g"
}
},
{
"v": {
"v": "M|700ga",
"l": "M|700ga"
}
},
{
"v": {
"v": "M|700G",
"l": "M|700G"
}
},
{
"v": {
"v": "M|700h",
"l": "M|700h"
}
},
{
"v": {
"v": "M|700m",
"l": "M|700m"
}
},
{
"v": {
"v": "M|700x",
"l": "M|700x"
}
},
{
"v": {
"v": "M|700z",
"l": "M|700z"
}
},
{
"v": {
"v": "M|705",
"l": "M|705"
}
},
{
"v": {
"v": "M|705b",
"l": "M|705b"
}
},
{
"v": {
"v": "M|705g",
"l": "M|705g"
}
},
{
"v": {
"v": "M|711",
"l": "M|711"
}
},
{
"v": {
"v": "M|711a",
"l": "M|711a"
}
},
{
"v": {
"v": "M|711b",
"l": "M|711b"
}
},
{
"v": {
"v": "M|711d",
"l": "M|711d"
}
},
{
"v": {
"v": "M|711f",
"l": "M|711f"
}
},
{
"v": {
"v": "M|740",
"l": "M|740"
}
},
{
"v": {
"v": "M|740_",
"l": "M|740_"
}
},
{
"v": {
"v": "M|740a",
"l": "M|740a"
}
},
{
"v": {
"v": "M|740c",
"l": "M|740c"
}
},
{
"v": {
"v": "M|740f",
"l": "M|740f"
}
},
{
"v": {
"v": "M|740g",
"l": "M|740g"
}
},
{
"v": {
"v": "M|740p",
"l": "M|740p"
}
},
{
"v": {
"v": "M|740s",
"l": "M|740s"
}
},
{
"v": {
"v": "M|740u",
"l": "M|740u"
}
},
{
"v": {
"v": "M|750",
"l": "M|750"
}
},
{
"v": {
"v": "M|753",
"l": "M|753"
}
},
{
"v": {
"v": "M|756",
"l": "M|756"
}
},
{
"v": {
"v": "M|800s",
"l": "M|800s"
}
},
{
"v": {
"v": "M|802",
"l": "M|802"
}
},
{
"v": {
"v": "M|808b",
"l": "M|808b"
}
},
{
"v": {
"v": "M|853",
"l": "M|853"
}
},
{
"v": {
"v": "M|863",
"l": "M|863"
}
},
{
"v": {
"v": "M|CAT",
"l": "M|CAT"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
}
},
{
"op": "core/row-removal",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "Column 1",
"columnName": "Column 1",
"query": "^M\\|9",
"mode": "regex",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
}
}
]

View File

@ -0,0 +1,18 @@
[
{
"op": "core/blank-down",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "Column 1",
"description": "Blank down cells in column Column 1"
},
{
"op": "core/multivalued-cell-join",
"columnName": "Column 2",
"keyColumnName": "Column 1",
"separator": "␟",
"description": "Join multi-valued cells in column Column 2"
}
]

View File

@ -0,0 +1,15 @@
[
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "Column 1",
"expression": "grel:'M|' + value.replace(' ','')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column Column 1 using expression grel:'M|' + value.replace(' ','')"
}
]

View File

@ -0,0 +1,80 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "Column 1",
"expression": "value",
"columnName": "Column 1",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "M|IDN",
"l": "M|IDN"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "Column 2",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "id",
"columnInsertIndex": 2,
"description": "Create column id at index 2 based on column Column 2 using expression grel:value"
},
{
"op": "core/column-move",
"columnName": "id",
"index": 0,
"description": "Move column id to position 0"
},
{
"op": "core/fill-down",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "id",
"description": "Fill down cells in column id"
},
{
"op": "core/row-reorder",
"mode": "row-based",
"sorting": {
"criteria": [
{
"valueType": "string",
"column": "id",
"blankPosition": 2,
"errorPosition": 1,
"reverse": false,
"caseSensitive": false
},
{
"valueType": "string",
"column": "Column 1",
"blankPosition": 2,
"errorPosition": 1,
"reverse": false,
"caseSensitive": false
}
]
},
"description": "Reorder rows"
},
{
"op": "core/column-removal",
"columnName": "id",
"description": "Remove column id"
}
]

View File

@ -0,0 +1,9 @@
[
{
"op": "core/key-value-columnize",
"keyColumnName": "Column 1",
"valueColumnName": "Column 2",
"noteColumnName": "",
"description": "Columnize by key column Column 1 and value column Column 2 with note column "
}
]

38
barcodes/Taskfile.yml Normal file
View File

@ -0,0 +1,38 @@
version: '3'
tasks:
main:
desc: Ermitteln von dubletten Barcodes
dir: ./{{.DIR}}
vars:
DIR: '{{splitList ":" .TASK | first}}'
cmds:
- rm -rf tmp
- mkdir -p tmp output
# Bibliotheca Barcodes extrahieren
- for f in ../bibliotheca/input/*.imp; do grep '^\*I BARCO ' "$f" | dos2unix | cut -c 10- | sort > "tmp/$(f=${f##*/}; echo ${f%.*}).raw"; done
# Alephino Barcodes extrahieren
- for f in ../alephino/input/*-exemplare.txt; do grep '^120 ' "$f" | cut -c 6- | sort > "tmp/$(f=${f##*/}; echo ${f%-*}).raw"; done
# Extrahierte Barcodes gegen generiertes PICA+ abgleichen
- for f in tmp/*.raw; do comm -12 "$f" <(sort ../pica+/output/barcodes.txt) > "tmp/$(f=${f##*/}; echo ${f%.*}).filtered"; done
# Plauen, Leipzig, Riesa vorübergehend nicht filtern
- for f in leipzig riesa plauen; do cp tmp/$f.raw tmp/$f.filtered; done
# Dublette Barcodes Gesamtdubletten ermitteln
- sort tmp/*.filtered | uniq -d > tmp/duplicates
# Dubletten für jeden Teil ermitteln
- (cd tmp && for f in *.filtered ; do grep -FxH -f duplicates "$f" | sort | join -o 2.1 -t ':' -a1 -2 2 duplicates - | cut -d '.' -f 1 > "${f}".tmp; done)
# Ergebnisse in Tabelle zusammenführen
- paste tmp/duplicates tmp/*.tmp | awk -F $'\t' '{sub($1, "\"&\""); print}' > output/duplicates.tsv
# Datei mit Gesamtdubletten in Verzeichnis output schieben
- mv tmp/duplicates output/duplicates
# Bearbeitungsstand ausgeben
- 'echo "Seit Juli 2019 neu hinzugekommene Dubletten: $(comm -13 input/duplicates-2019-07-10.txt output/duplicates | wc -l)"'
- 'echo "Seit Juli 2019 bearbeitete Dubletten: $(comm -23 input/duplicates-2019-07-10.txt output/duplicates | wc -l)"'
- 'echo "Noch zu bearbeitende Dubletten: $(wc -l < output/duplicates)"'
preconditions:
- sh: test -f ../pica+/output/barcodes.txt
msg: Barcode-Datei fehlt; versuche "task default"
default: # enable standalone execution (running `task` in project directory)
cmds:
- DIR="${PWD##*/}:main" && cd .. && task "$DIR"

View File

@ -1,240 +0,0 @@
#!/bin/bash
# bash-refine v1.3.2: bash-refine.sh, Felix Lohmeier, 2020-08-01
# https://gist.github.com/felixlohmeier/d76bd27fbc4b8ab6d683822cdf61f81d
# license: MIT License https://choosealicense.com/licenses/mit/
# TODO: support for macOS
# ================================== CONFIG ================================== #
endpoint="${REFINE_ENDPOINT:-http://localhost:3333}"
memory="${REFINE_MEMORY:-1400M}"
csrf="${REFINE_CSRF:-true}"
date="$(date +%Y%m%d_%H%M%S)"
if [[ -n "$(readlink -e "${REFINE_WORKDIR}")" ]]; then
workdir="$(readlink -e "${REFINE_WORKDIR}")"
else
workdir="$(readlink -m "${BASH_SOURCE%/*}/output/${date}")"
fi
if [[ -n "$(readlink -f "${REFINE_LOGFILE}")" ]]; then
logfile="$(readlink -f "${REFINE_LOGFILE}")"
else
logfile="$(readlink -m "${BASH_SOURCE%/*}/log/${date}.log")"
fi
if [[ -n "$(readlink -e "${REFINE_JQ}")" ]]; then
jq="$(readlink -e "${REFINE_JQ}")"
else
jq="$(readlink -m "${BASH_SOURCE%/*}/lib/jq")"
fi
if [[ -n "$(readlink -e "${REFINE_REFINE}")" ]]; then
refine="$(readlink -e "${REFINE_REFINE}")"
else
refine="$(readlink -m "${BASH_SOURCE%/*}/lib/openrefine/refine")"
fi
declare -A checkpoints # associative array for stats
declare -A pids # associative array for monitoring background jobs
declare -A projects # associative array for OpenRefine projects
# =============================== REQUIREMENTS =============================== #
function requirements {
# check existence of java and cURL
if [[ -z "$(command -v java 2> /dev/null)" ]] ; then
echo 1>&2 "ERROR: OpenRefine requires JAVA runtime environment (jre)" \
"https://openjdk.java.net/install/"
exit 1
fi
if [[ -z "$(command -v curl 2> /dev/null)" ]] ; then
echo 1>&2 "ERROR: This shell script requires cURL" \
"https://curl.haxx.se/download.html"
exit 1
fi
# download jq and OpenRefine if necessary
if [[ -z "$(readlink -e "${jq}")" ]]; then
echo "Download jq..."
mkdir -p "$(dirname "${jq}")"
# jq 1.4 has much faster startup time than 1.5 and 1.6
curl -L --output "${jq}" \
"https://github.com/stedolan/jq/releases/download/jq-1.4/jq-linux-x86_64"
chmod +x "${jq}"; echo
fi
if [[ -z "$(readlink -e "${refine}")" ]]; then
echo "Download OpenRefine..."
mkdir -p "$(dirname "${refine}")"
curl -L --output openrefine.tar.gz \
"https://github.com/OpenRefine/OpenRefine/releases/download/3.3/openrefine-linux-3.3.tar.gz"
echo "Install OpenRefine in subdirectory $(dirname "${refine}")..."
tar -xzf openrefine.tar.gz -C "$(dirname "${refine}")" --strip 1 --totals
rm -f openrefine.tar.gz
# do not try to open OpenRefine in browser
sed -i '$ a JAVA_OPTIONS=-Drefine.headless=true' \
"$(dirname "${refine}")"/refine.ini
# set min java heap space to allocated memory
sed -i 's/-Xms$REFINE_MIN_MEMORY/-Xms$REFINE_MEMORY/' \
"$(dirname "${refine}")"/refine
# set autosave period from 5 minutes to 25 hours
sed -i 's/#REFINE_AUTOSAVE_PERIOD=60/REFINE_AUTOSAVE_PERIOD=1500/' \
"$(dirname "${refine}")"/refine.ini
echo
fi
}
# ============================== OPENREFINE API ============================== #
function refine_start {
echo "start OpenRefine server..."
local dir
dir="$(readlink -e "${workdir}")"
${refine} -v warn -m "${memory}" -p "${endpoint##*:}" -d "${dir}" &
pid_server=${!}
timeout 30s bash -c "until curl -s \"${endpoint}\" \
| cat | grep -q -o 'OpenRefine' ; do sleep 1; done" \
|| error "starting OpenRefine server failed!"
}
function refine_stats {
# print server load
ps -o start,etime,%mem,%cpu,rss -p "${pid_server}"
}
function refine_kill {
# kill OpenRefine immediately; SIGKILL (kill -9) prevents saving projects
{ kill -9 "${pid_server}" && wait "${pid_server}"; } 2>/dev/null
# delete temporary OpenRefine projects
(cd "${workdir}" && rm -rf ./*.project* && rm -f workspace.json)
}
function refine_check {
if grep -i 'exception\|error' "${logfile}"; then
error "log contains warnings!"
else
log "checked log file, all good!"
fi
}
function refine_stop {
echo "stop OpenRefine server and print server load..."
refine_stats
echo
refine_kill
echo "check log for any warnings..."
refine_check
}
function refine_csrf {
# get CSRF token (introduced in OpenRefine 3.3)
if [[ "${csrf}" = true ]]; then
local response
response=$(curl -fs "${endpoint}/command/core/get-csrf-token")
if [[ "${response}" != '{"token":"'* ]]; then
error "getting CSRF token failed!"
else
echo "?csrf_token=$(echo "$response" | cut -d \" -f 4)"
fi
fi
}
function refine_store {
# check and store project id from import in associative array projects
if [[ $# = 2 ]]; then
projects[$1]=$(cut -d '=' -f 2 "$2")
else
error "invalid arguments supplied to import function!"
fi
if [[ "${#projects[$1]}" != 13 ]]; then
error "returned project id is not valid!"
else
rm "$2"
fi
# check if project contains at least one row (may be skipped to gain ~40ms)
local rows
rows=$(curl -fs --get \
--data project="${projects[$p]}" \
--data limit=0 \
"${endpoint}/command/core/get-rows" \
| tr "," "\n" | grep total | cut -d ":" -f 2)
if [[ "$rows" = "0" ]]; then
error "imported project contains 0 rows!"
fi
}
# ============================ SCRIPT ENVIRONMENT ============================ #
function log {
# log status message
echo "$(date +%H:%M:%S.%3N) [ client] $1"
}
function error {
# log error message and exit
echo 1>&2 "ERROR: $1"
refine_kill; pkill -P $$; exit 1
}
function monitor {
# store pid of last execution
pids[$1]="$!"
}
function monitoring {
# wait for stored pids, remove them from array and check log for errors
for pid in "${!pids[@]}"; do
wait "${pids[$pid]}" \
|| error "${pid} (${projects[$pid]}) failed!" \
&& unset pids["$pid"]
done
refine_check
}
function checkpoint {
# store timestamp in associative array checkpoints and print checkpoint
checkpoints[$1]=$(date +%s.%3N)
printf '%*.*s %s %*.*s\n' \
0 "$(((80-2-${#1})/2))" "$(printf '%0.1s' ={1..40})" \
"${#checkpoints[@]}. $1" \
0 "$(((80-1-${#1})/2))" "$(printf '%0.1s' ={1..40})"
}
function checkpoint_stats {
# calculate run time based on checkpoints
local k keys values i diffsec
echo "starting time and run time (hh:mm:ss) of each step..."
# sort keys by value and store in array key
readarray -t keys < <(
for k in "${!checkpoints[@]}"; do
echo "${checkpoints[$k]}:::$k"
done | sort | awk -F::: '{print $2}')
# remove milliseconds from corresponding values and store in array values
readarray -t values < <(
for k in "${keys[@]}" ; do
echo "${checkpoints[$k]%.*}"
done)
# add final timestamp for calculation
values+=("$(date +%s)")
# calculate and print run time for each step
for i in "${!keys[@]}"; do
diffsec=$(( values[$((i + 1))] - values[i] ))
printf "%35s %s %s %s\n" "${keys[$i]}" "($((i + 1)))" \
"$(date -d @"${values[$i]}")" \
"($(date -d @${diffsec} -u +%H:%M:%S))"
done
# calculate and print total run time
diffsec=$(( values[${#keys[@]}] - values[0] ))
printf "%80s\n%80s\n" "----------" "($(date -d @${diffsec} -u +%H:%M:%S))"
}
function count_output {
# word count on all files in workdir
echo "files (number of lines / size in bytes) in ${workdir}..."
(cd "${workdir}" && wc -c -l ./*)
}
function init {
# check requirements and download software if necessary
requirements
# set trap, create directories and tee to log file
trap 'error "script interrupted!"' HUP INT QUIT TERM
mkdir -p "${workdir}" "$(dirname "${logfile}")"
exec &> >(tee -i -a "${logfile}")
}

234
bibliotheca/Taskfile.yml Normal file
View File

@ -0,0 +1,234 @@
version: '3'
tasks:
main:
desc: Konvertierung von BIBLIOTHECA nach PICA3/CSV
vars:
DIR: '{{splitList ":" .TASK | first}}' # results in the task namespace, which is identical to the directory name
cmds:
- task: refine-pre
vars: {PROJECT: bautzen}
- task: refine-pre
vars: {PROJECT: breitenbrunn}
- task: refine-pre
vars: {PROJECT: dresden}
- task: refine-pre
vars: {PROJECT: glauchau}
# - task: refine-pre
# vars: {PROJECT: plauen}
- task: refine-main
refine-pre:
dir: ./{{.DIR}}
label: '{{.TASK}}-{{.PROJECT}}'
vars:
DIR: '{{splitList ":" .TASK | first}}'
PORT: 3334 # assign a different port for each project
RAM: 8192M # maximum RAM for OpenRefine java heap space
LOG: '>(tee -a "log/{{.PROJECT}}.log") 2>&1'
cmds:
- echo "{{now | date "2006-01-02 15:04:05"}} {{.PROJECT}}"
- task: :start # launch OpenRefine
vars: {DIR: '{{.DIR}}/log', PROJECT: '{{.PROJECT}}', PORT: '{{.PORT}}', RAM: '{{.RAM}}'}
- > # Import
"$CLIENT" -P {{.PORT}}
--create "$(readlink -m input/{{.PROJECT}}.imp)"
--encoding ISO-8859-1
--ignoreLines 1
--storeBlankRows false
--projectName {{.PROJECT}}
> {{.LOG}}
- > # spec_Z_03: Makulierte Medien löschen; löscht alle Titel und deren Exemplare, die nur makulierte Ex. enthalten; löscht dann alle verbliebenen makulierten Ex.
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/pre/makuliert.json > {{.LOG}}
- > # ACQ Datensätze löschen; löscht alle Titel und deren Exemplare, die das Kennzeichen ACQ enthalten; löscht dann alle verbliebenen Exemplare mit Kennzeichen ACQ
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/pre/acq.json > {{.LOG}}
- > # Mehrzeilige Inhalte extrahieren
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/pre/mehrzeiliges-extrahieren.json > {{.LOG}}
- > # Leerzeilen löschen
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/pre/leerzeilen.json > {{.LOG}}
- > # Felder und Werte aufteilen
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/pre/feld-wert-separieren.json > {{.LOG}}
- > # Mehrzeilige Inhalte (mit #) zusammenführen; Trennzeichen: U+241F
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/pre/mehrzeiliges-zusammen.json > {{.LOG}}
- > # Feldnamen um M| oder E| ergänzen, weil gleiche Feldnamen in Medien und Exemplaren vorkommen
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/pre/feldname-prefix.json > {{.LOG}}
- > # Mehrfachbelegungen zusammenführen
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/pre/mehrfachbelegungen.json > {{.LOG}}
- > # Titeldaten-Felder mit Zahlen löschen (außer 025z 026 026k 052 076b 076d)
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/pre/reduzieren.json > {{.LOG}}
- > # Transponieren
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/pre/transponieren.json > {{.LOG}}
- mkdir -p output
- > # Export
"$CLIENT" -P {{.PORT}} {{.PROJECT}}
--output "$(readlink -m output/{{.PROJECT}}.tsv)"
> {{.LOG}}
- | # print allocated system resources
PID="$(lsof -t -i:{{.PORT}})"
echo "used $(($(ps --no-headers -o rss -p "$PID") / 1024)) MB RAM" > {{.LOG}}
echo "used $(ps --no-headers -o cputime -p "$PID") CPU time" > {{.LOG}}
- task: :kill # shut down OpenRefine immediately to save time and disk space
vars: {DIR: '{{.DIR}}/log', PORT: '{{.PORT}}'}
- task: :check # check OpenRefine log for any warnings and exit on error
vars: {DIR: '{{.DIR}}'}
sources:
- input/{{.PROJECT}}.imp
- config/pre/**
generates:
- output/{{.PROJECT}}.tsv
ignore_error: true # workaround to avoid an orphaned Java process on error https://github.com/go-task/task/issues/141
refine-main:
dir: ./{{.DIR}}
vars:
DIR: '{{splitList ":" .TASK | first}}'
PROJECT: bibliotheca
PORT: 3334 # assign a different port for each project
RAM: 8192M # maximum RAM for OpenRefine java heap space
LOG: '>(tee -a "log/{{.PROJECT}}.log") 2>&1'
cmds:
- echo "{{now | date "2006-01-02 15:04:05"}} {{.PROJECT}}"
- task: :start # launch OpenRefine
vars: {DIR: '{{.DIR}}/log', PROJECT: '{{.PROJECT}}', PORT: '{{.PORT}}', RAM: '{{.RAM}}'}
- > # Zip-Archiv mit Output der Vorverarbeitung erstellen
zip -j tmp.zip
output/bautzen.tsv
output/breitenbrunn.tsv
output/dresden.tsv
output/glauchau.tsv
# output/plauen.tsv
- > # Import Zip-Archiv
"$CLIENT" -P {{.PORT}}
--create "$(readlink -m tmp.zip)"
--format tsv
--includeFileSources true
--projectName {{.PROJECT}}
> {{.LOG}}
&& rm tmp.zip
- > # Spalten sortieren: Beginnen mit 1. M|MEDNR, 2. E|EXNR, 3. File, damit Records-Mode erhalten bleibt
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/sortieren.json > {{.LOG}}
- > # spec_Z_01: E-Books löschen (Bautzen)
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/ebooks.json > {{.LOG}}
- > # spec_Z_02: Zeitschriften und Reihen löschen; siehe auch Spezifikation in CBS-Titeldaten Bibliotheca
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/zeitschriften.json > {{.LOG}}
- > # Bibliothekskürzel aus Import-Dateiname
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/file.json > {{.LOG}}
- > # spec_B_T_32: MTM Überordnungen löschen, wenn keine Unterordnung mit BANDB/BANDN über NRPRE darauf verweist; erstellt Felder "id", "ueber" und "unter"; siehe auch Spezifikation in CBS-Titeldaten Bibliotheca
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/nrpre.json > {{.LOG}}
- > # spec_B_T_01: PPNs in 0100 (K10plus) und 0110 (SWB); 8-stellige aus Dresden sind SWN ohne Prüfziffer, dort wird Prüfziffer ergänzt; Zuordnung 9-stellige abhängig von ersten Zeichen und M026 / M026k; Zuordnung 10-stellige abhängig von erstem Zeichen
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/0100-0110.json > {{.LOG}}
- > # spec_B_T_49: Nummern aus Datenkonversion 2199
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/2199.json > {{.LOG}}
- > # spec_B_E_15: Abteilungsnummer 7100j
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/7100j.json > {{.LOG}}
- > # spec_B_E_13, spec_Z_03 und spec_B_E_08: Zweigstelle 7100f
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/7100f.json > {{.LOG}}
- > # spec_B_E_07: Standort 7100a
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/7100a.json > {{.LOG}}
- > # spec_B_T_04, spec_B_T_05: ISBN 2000
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/2000.json > {{.LOG}}
- > # spec_B_T_57: Formal falsche ISBNs in 2009 verschieben
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/2009.json > {{.LOG}}
- > # spec_B_T_04, spec_B_T_05: ISMN 2020
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/2020.json > {{.LOG}}
- > # spec_B_T_06: EAN 2201
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/2201.json > {{.LOG}}
- > # spec_B_T_55: ZDB-ID 2240
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/2240.json > {{.LOG}}
- > # spec_B_T_07, spec_B_T_08: 1. Verfasser in 3000 und weitere in 3100; Ausnahme Glauchau: PERS1 bis PERS5 vorher leeren
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/3000-3010.json > {{.LOG}}
- > # spec_B_T_10: Urheber (Körperschaft) in 3110
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/3110.json > {{.LOG}}
- > # spec_B_E_10: Zugangsdatum E0XX
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/e0xx.json > {{.LOG}}
- > # spec_B_E_14, spec_Z_03, spec_B_E16: Selektionsschlüssel E0XXb
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/e0xxb.json > {{.LOG}}
- > # spec_B_T_56_1: Gattung/Status 0500 und Veröffentlichungsart 1140
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/0500-1140.json > {{.LOG}}
- > # spec_B_T_56_2: F/f für Überordnungen 0500; abhängig von Feld "ueber" aus spec_B_T_32
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/0500-ueber.json > {{.LOG}}
- > # spec_B_T_56_3: Lax für Abschlussarbeiten 0500
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/0500-lax.json > {{.LOG}}
- > # spec_B_T_50, spec_B_T_51, spec_B_T_52, spec_B_T_56: IMD-Felder 0501a, 0501b, 0502a, 0502b, 0503a, 0503b, 0999
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/0501-0502-0503-0999.json > {{.LOG}}
- > # spec_B_T_17: Haupttitel 4000a
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/4000a.json > {{.LOG}}
- > # spec_B_T_18: Titelzusatz 4000d
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/4000d.json > {{.LOG}}
- > # spec_B_T_19: Verfasserangabe zum Haupttitel 4000h
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/4000h.json > {{.LOG}}
- > # spec_B_T_26: Paralleltitel in 4002
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/4002.json > {{.LOG}}
- > # spec_B_T_20: Ausgabevermerk 4020a
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/4020a.json > {{.LOG}}
- > # spec_B_T_16: Verlagsname 4030n
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/4030n.json > {{.LOG}}
- > # spec_B_T_21: Erscheinungsort 4030p
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/4030p.json > {{.LOG}}
- > # spec_B_T_22: Umfang 4060
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/4060.json > {{.LOG}}
- > # spec_B_T_22: Illustrationsangabe 4061
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/4061.json > {{.LOG}}
- > # spec_B_T_23: Formatangabe 4062
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/4062.json > {{.LOG}}
- > # spec_B_E_02: Verbuchungsnummer 8200
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/8200.json > {{.LOG}}
- > # spec_B_T_02: Jahresangaben 1100a und 1100n; 1100a normiert mit zahlreichen Ersetzungen
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/1100a-1100n.json > {{.LOG}}
- > # spec_B_E_01: Ausleihhinweis 8515; nur für Bautzen
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/8515.json > {{.LOG}}
- > # spec_B_E_04, spec_B_E_05 und spec_B_E_08: Exemplarstatus 7100d
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/7100d.json > {{.LOG}}
- > # spec_B_E_06: Mediengruppe 8011
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/8011.json > {{.LOG}}
- > # spec_B_E_11 und spec_B_E_12: Zugangsnummer 8100
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/8100.json > {{.LOG}}
- > # spec_B_T_03: Sprachcode 1500
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/1500.json > {{.LOG}}
- > # spec_B_T_54: Text für Abschlussarbeiten 1131
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/1131.json > {{.LOG}}
- > # spec_B_T_55: Text für Abschlussarbeiten 8600
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/8600.json > {{.LOG}}
- > # spec_B_T_24: Hochschulschriftenvermerk für Abschlussarbeiten 4204
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/4204.json > {{.LOG}}
- > # Exemplarspezifisches Schlagwort aus GT1B für Abschlussarbeiten aus Breitenbrunn in 6800
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/6800.json > {{.LOG}}
- > # spec_B_T_25: Einheitssachtitel 3210
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/3210.json > {{.LOG}}
- > # spec_B_T_48: Lokale Systematik in 67XX (Exemplarsatz!) für BB, BZ, GC
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/67XX.json > {{.LOG}}
- > # spec_B_T_33: MTM: Leerexemplare in Überordnungen mit E0XX und 7100; abhängig von Feld "0500" aus spec_B_T_56_2
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/mtm-leerexemplare.json > {{.LOG}}
- > # spec_B_T_34: MTM: Anreicherungen der Unterordnungen mit 4150 und 4160; abhängig von Feld "ueber" aus spec_B_T_32
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/4150-4160.json > {{.LOG}}
- > # spec_B_T_35: Schriftrenreihen: GT-Felder für Reihenstücktitel in 4170_1 und 4170_2
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/4170.json > {{.LOG}}
# Die folgende Transformationsregel muss direkt vor dem Export stehen
- > # Abschließend Titel ohne Exemplare löschen
"$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/abschluss.json > {{.LOG}}
- > # Export der PICA3-Spalten als CSV; Spalte 2199 muss vorne stehen, weil später für Sortierung benötigt
mkdir -p output &&
"$CLIENT" -P {{.PORT}} {{.PROJECT}}
--output "$(readlink -m output/{{.PROJECT}}.csv)"
--template "$(< config/main/template.txt)"
--rowSeparator ""
> {{.LOG}}
- | # print allocated system resources
PID="$(lsof -t -i:{{.PORT}})"
echo "used $(($(ps --no-headers -o rss -p "$PID") / 1024)) MB RAM" > {{.LOG}}
echo "used $(ps --no-headers -o cputime -p "$PID") CPU time" > {{.LOG}}
- task: :stop # shut down OpenRefine and archive the OpenRefine project
vars: {DIR: '{{.DIR}}/log', PROJECT: '{{.PROJECT}}', PORT: '{{.PORT}}'}
- task: :check # check OpenRefine log for any warnings and exit on error
vars: {DIR: '{{.DIR}}'}
sources:
- output/*.tsv
- config/main/**
generates:
- log/{{.PROJECT}}.openrefine.tar.gz
- output/{{.PROJECT}}.csv
ignore_error: true # workaround to avoid an orphaned Java process on error https://github.com/go-task/task/issues/141
default: # enable standalone execution (running `task` in project directory)
cmds:
- DIR="${PWD##*/}:main" && cd .. && task "$DIR"

View File

@ -0,0 +1,996 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value.length()",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": 8,
"l": "8"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|IDNR",
"expression": "grel:value + with(11 - mod(sum(forRange(0,9,1,i,toNumber(value[i])*(9-i))),11),pz,if(pz == 11, '0', if(pz == 10, 'X', pz)))",
"onError": "set-to-blank",
"newColumnName": "0110",
"columnInsertIndex": 4
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value.length()",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": 9,
"l": "9"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value[0,2]",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "53",
"l": "53"
}
},
{
"v": {
"v": "54",
"l": "54"
}
},
{
"v": {
"v": "55",
"l": "55"
}
},
{
"v": {
"v": "56",
"l": "56"
}
},
{
"v": {
"v": "57",
"l": "57"
}
},
{
"v": {
"v": "13",
"l": "13"
}
},
{
"v": {
"v": "14",
"l": "14"
}
},
{
"v": {
"v": "58",
"l": "58"
}
},
{
"v": {
"v": "15",
"l": "15"
}
},
{
"v": {
"v": "59",
"l": "59"
}
},
{
"v": {
"v": "16",
"l": "16"
}
},
{
"v": {
"v": "17",
"l": "17"
}
},
{
"v": {
"v": "18",
"l": "18"
}
},
{
"v": {
"v": "19",
"l": "19"
}
},
{
"v": {
"v": "21",
"l": "21"
}
},
{
"v": {
"v": "22",
"l": "22"
}
},
{
"v": {
"v": "23",
"l": "23"
}
},
{
"v": {
"v": "24",
"l": "24"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|IDNR",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "0100",
"columnInsertIndex": 4
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value.length()",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": 9,
"l": "9"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value[0,1]",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "6",
"l": "6"
}
},
{
"v": {
"v": "7",
"l": "7"
}
},
{
"v": {
"v": "8",
"l": "8"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0100",
"expression": "grel:cells['M|IDNR'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value.length()",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": 9,
"l": "9"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value[0,2]",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "00",
"l": "00"
}
},
{
"v": {
"v": "10",
"l": "10"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0110",
"expression": "grel:cells['M|IDNR'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value.length()",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": 9,
"l": "9"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "0100",
"expression": "isBlank(value)",
"columnName": "0100",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "0110",
"expression": "isBlank(value)",
"columnName": "0110",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|026",
"expression": "grel:value[0,3]",
"columnName": "M|026",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "GBV",
"l": "GBV"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|026k",
"expression": "grel:value == cells['M|IDNR'].value",
"columnName": "M|026k",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0100",
"expression": "grel:cells['M|IDNR'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value.length()",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": 9,
"l": "9"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "0100",
"expression": "isBlank(value)",
"columnName": "0100",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "0110",
"expression": "isBlank(value)",
"columnName": "0110",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|026",
"expression": "grel:value[0,3]",
"columnName": "M|026",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "GBV",
"l": "GBV"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|026k",
"expression": "grel:value != cells['M|IDNR'].value",
"columnName": "M|026k",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0110",
"expression": "grel:cells['M|IDNR'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value.length()",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": 9,
"l": "9"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "0100",
"expression": "isBlank(value)",
"columnName": "0100",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "0110",
"expression": "isBlank(value)",
"columnName": "0110",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|026",
"expression": "grel:value[0,3]",
"columnName": "M|026",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "HBZ",
"l": "HBZ"
}
},
{
"v": {
"v": "HEB",
"l": "HEB"
}
},
{
"v": {
"v": "KXP",
"l": "KXP"
}
},
{
"v": {
"v": "OBV",
"l": "OBV"
}
},
{
"v": {
"v": "DNB",
"l": "DNB"
}
},
{
"v": {
"v": "BVB",
"l": "BVB"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|026k",
"expression": "isBlank(value)",
"columnName": "M|026k",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0100",
"expression": "grel:cells['M|026k'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value.length()",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": 9,
"l": "9"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "0100",
"expression": "isBlank(value)",
"columnName": "0100",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "0110",
"expression": "isBlank(value)",
"columnName": "0110",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|026",
"expression": "grel:value[0,3]",
"columnName": "M|026",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "BSZ",
"l": "BSZ"
}
},
{
"v": {
"v": "ZDB",
"l": "ZDB"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0110",
"expression": "grel:cells['M|IDNR'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value.length()",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": 9,
"l": "9"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "0100",
"expression": "isBlank(value)",
"columnName": "0100",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "0110",
"expression": "isBlank(value)",
"columnName": "0110",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|026",
"expression": "grel:value[0,3]",
"columnName": "M|026",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "HBZ",
"l": "HBZ"
}
},
{
"v": {
"v": "HEB",
"l": "HEB"
}
},
{
"v": {
"v": "KXP",
"l": "KXP"
}
},
{
"v": {
"v": "OBV",
"l": "OBV"
}
},
{
"v": {
"v": "DNB",
"l": "DNB"
}
},
{
"v": {
"v": "BVB",
"l": "BVB"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|026k",
"expression": "isBlank(value)",
"columnName": "M|026k",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0110",
"expression": "grel:cells['M|IDNR'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value.length()",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": 10,
"l": "10"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value[0]",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "1",
"l": "1"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0100",
"expression": "grel:cells['M|IDNR'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value.length()",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": 10,
"l": "10"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|IDNR",
"expression": "grel:value[0]",
"columnName": "M|IDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "9",
"l": "9"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0110",
"expression": "grel:cells['M|IDNR'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
}
]

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,122 @@
[
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|MEDGR",
"expression": "value",
"columnName": "M|MEDGR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "BAC",
"l": "BAC"
}
},
{
"v": {
"v": "DIP",
"l": "DIP"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "E0XXb",
"expression": "grel:'d' + value[1,3]",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|MEDGR",
"expression": "value",
"columnName": "M|MEDGR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "DI",
"l": "DI"
}
},
{
"v": {
"v": "MA",
"l": "MA"
}
},
{
"v": {
"v": "BA",
"l": "BA"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "E0XXb",
"expression": "grel:'n' + value[1,3]",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|MEDGR",
"expression": "value",
"columnName": "M|MEDGR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "BAC",
"l": "BAC"
}
},
{
"v": {
"v": "DIP",
"l": "DIP"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:'Lax'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
}
]

View File

@ -0,0 +1,34 @@
[
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "ueber",
"expression": "isBlank(value)",
"columnName": "ueber",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "0500",
"expression": "grel:if(isNonBlank(cells['M|HST'].value), value[0] + 'F' + value[2] ,value[0] + 'f' + value[2])",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
}
]

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,139 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|MEDNR",
"expression": "isBlank(value)",
"columnName": "M|MEDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|JAHR",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "1100n",
"columnInsertIndex": 3
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|MEDNR",
"expression": "isBlank(value)",
"columnName": "M|MEDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|JAHR",
"expression": "grel:with(with(with(value.replace('[','').replace(']','').replace('(','').replace(')','').replace(' ','').replace('?','').replace('.','').replace('ca','').replace('c','').replace('ff',''),x,forNonBlank(x.split('/')[1],v,v,x)),y,y.split('-')[0]),z,if(and(z.length()==4,isNumeric(z)),z,if(z=='19XX','19XX',null))))",
"onError": "set-to-blank",
"newColumnName": "1100a",
"columnInsertIndex": 3
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|MEDNR",
"expression": "isBlank(value)",
"columnName": "M|MEDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "1100a",
"expression": "isBlank(value)",
"columnName": "1100a",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "1100a",
"expression": "grel:if(cells['M|JAHR'].value.contains('19'),'19XX','20XX')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "text",
"name": "M|JAHR",
"columnName": "M|JAHR",
"query": "-",
"mode": "text",
"caseSensitive": false,
"invert": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|JAHR",
"expression": "grel:value.split('-')[1].replace('[','').replace(']','').replace('(','').replace(')','').replace(' ','').replace('?','').replace('.','')",
"onError": "set-to-blank",
"newColumnName": "1100b",
"columnInsertIndex": 3
}
]

View File

@ -0,0 +1,58 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|MEDGR",
"expression": "value",
"columnName": "M|MEDGR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "BAC",
"l": "BAC"
}
},
{
"v": {
"v": "DI",
"l": "DI"
}
},
{
"v": {
"v": "DIP",
"l": "DIP"
}
},
{
"v": {
"v": "MA",
"l": "MA"
}
},
{
"v": {
"v": "BA",
"l": "BA"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "File",
"expression": "grel:'Hochschulschrift'",
"onError": "set-to-blank",
"newColumnName": "1131",
"columnInsertIndex": 3
}
]

View File

@ -0,0 +1,77 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|SPRA",
"expression": "grel:forEach(value.split(/,|#|\\+|;/),v,forNonBlank(v.replace('.','').replace('-','').replace(' ','').\nreplace(/^arab$/,'ara').\nreplace(/^Arabisch$/,'ara').\nreplace(/^aram$/,'arc').\nreplace(/^daen$/,'dan').\nreplace(/^Deutsch$/,'ger').\nreplace(/^DEUTSCH$/,'ger').\nreplace(/^deutsch$/,'ger').\nreplace(/^dt$/,'ger').\nreplace(/^engl$/,'eng').\nreplace(/^Englisch$/,'eng').\nreplace(/^ENGLISCH$/,'eng').\nreplace(/^englisch$/,'eng').\nreplace(/^Finnisch$/,'fin').\nreplace(/^franz$/,'fre').\nreplace(/^Französisch$/,'fre').\nreplace(/^griech$/,'gre').\nreplace(/^hebr$/,'heb').\nreplace(/^hrv$/,'').\nreplace(/^ital$/,'ita').\nreplace(/^Italienisch$/,'ita').\nreplace(/^ITALIENISCH$/,'ita').\nreplace(/^Litauisch$/,'lit').\nreplace(/^n$/,'').\nreplace(/^Niederländisch$/,'dut').\nreplace(/^pers$/,'per').\nreplace(/^poln$/,'pol').\nreplace(/^Polnisch$/,'pol').\nreplace(/^polygl$/,'mul').\nreplace(/^portug$/,'por').\nreplace(/^Portugiesisch$/,'por').\nreplace(/^Portugisisch$/,'por').\nreplace(/^ru$/,'rus').\nreplace(/^Rumänisch$/,'rum').\nreplace(/^russ$/,'rus').\nreplace(/^Russisch$/,'rus').\nreplace(/^schwed$/,'swe').\nreplace(/^Schwedisch$/,'swe').\nreplace(/^slowak$/,'slo').\nreplace(/^sp$/,'spa').\nreplace(/^span$/,'spa').\nreplace(/^Spanisch$/,'spa').\nreplace(/^tschech$/,'cze').\nreplace(/^Tschechisch$/,'cze').\nreplace(/^tuerk$/,'tur').\nreplace(/^Türkisch$/,'tur').\nreplace(/^Ukrainisch$/,'ukr').\nreplace(/^ungar$/,'hun').\nreplace(/^Ungarisch$/,'hun')\n,x,x,null)).join('␟')",
"onError": "set-to-blank",
"newColumnName": "1500",
"columnInsertIndex": 3
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "1500",
"expression": "grel:forEachIndex(value.split('␟'),i,v,if(i != 0, if(inArray(value.split('␟')[0,i],v),null,v), v)).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|MEDNR",
"expression": "isBlank(value)",
"columnName": "M|MEDNR",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "1500",
"expression": "isBlank(value)",
"columnName": "1500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "1500",
"expression": "grel:'und'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
}
]

View File

@ -0,0 +1,14 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "record-based"
},
"baseColumnName": "M|ISBN",
"expression": "grel:[ forNonBlank(cells['M|ISBN'].value.replace('-',''),v,if(and(isNumeric(v), or(v.length() == 10, v.length() == 13)), v, null), null), forNonBlank(cells['M|ISBN2'].value.replace('-',''),v,if(and(isNumeric(v), or(v.length() == 10, v.length() == 13)), v, null), null) ].uniques().join('␟').toUppercase()",
"onError": "set-to-blank",
"newColumnName": "2000",
"columnInsertIndex": 3
}
]

View File

@ -0,0 +1,26 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "record-based"
},
"baseColumnName": "2000",
"expression": "grel:forEach(value.split('␟'), isbn, if(isbn.length() == 10, if(with(round(sum(forRange(1,10,1,i,toNumber(isbn[i-1])*i))%11),x,if(x == 10, 'X', x)).toString() == isbn[9], null, isbn), if(isbn.length() == 13, if(((10-(sum(forRange(0,12,1,i,toNumber(isbn[i])*(1+(i%2*2)) )) %10)) %10).toString()[0] == isbn[12], null, isbn), null))).join('␟')",
"onError": "set-to-blank",
"newColumnName": "2009",
"columnInsertIndex": 4
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "record-based"
},
"columnName": "2000",
"expression": "grel:forEach(value.split('␟'), isbn, if(isbn.length() == 10, if(with(round(sum(forRange(1,10,1,i,toNumber(isbn[i-1])*i))%11),x,if(x == 10, 'X', x)).toString() == isbn[9], isbn, null), if(isbn.length() == 13, if(((10-(sum(forRange(0,12,1,i,toNumber(isbn[i])*(1+(i%2*2)) )) %10)) %10).toString()[0] == isbn[12], isbn, null), null))).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
}
]

View File

@ -0,0 +1,34 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|ISBN",
"expression": "grel:value[0]",
"columnName": "M|ISBN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "M",
"l": "M"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|ISBN",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "2020",
"columnInsertIndex": 3
}
]

View File

@ -0,0 +1,14 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|MEDNR",
"expression": "grel:'BA' + cells['File'].value + value",
"onError": "set-to-blank",
"newColumnName": "2199",
"columnInsertIndex": 3
}
]

View File

@ -0,0 +1,34 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|EAN",
"expression": "grel:and(value.length() == 13, isNumeric(value))",
"columnName": "M|EAN",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|EAN",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "2201",
"columnInsertIndex": 3
}
]

View File

@ -0,0 +1,34 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|026",
"expression": "grel:value[0,3]",
"columnName": "M|026",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "ZDB",
"l": "ZDB"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|026",
"expression": "grel:value.slice(3)",
"onError": "set-to-blank",
"newColumnName": "2240",
"columnInsertIndex": 3
}
]

View File

@ -0,0 +1,407 @@
[
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "GC",
"l": "GC"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|PERS1",
"expression": "isBlank(value)",
"columnName": "M|PERS1",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "M|PERS1",
"columnName": "M|PERS1",
"query": ",",
"mode": "text",
"caseSensitive": false,
"invert": true
},
{
"type": "text",
"name": "M|PERS1",
"columnName": "M|PERS1",
"query": "^Alain|^Anonymous|^Aristoteles|^Brüder Grimm ¬[ErwähnteR]¬|^Bstan-vdzin-rgya-mtsho <Dalai Lama XIV.>|^Domenica|^Eckart (Meister)|^Eckehart (Meister)|^El Bocho|^Epictetus|^Epicurus|^Eusebius <Caesariensis>|^Gabo|^Hildegard von Bingen|^Hildegardis <Bingensis>|^Hippocrates|^Ignatius <Antiochenus>|^Ishmael|^Janosch|^Johannes <Apostolus>|^Johannes Paul II.|^Kuba|^Laotse|^Le Corbusier|^Leila|^Muhammad|^Muhammad Ali|^Paul VI.|^Piero|^Plato|^Platon|^Polycarpus <Smyrnaeus>|^Sick [VerfasserIn]|^Starhawk|^Sting <Musiker>|^Sunyata ¬[IllustratorIn]¬|^Tintoretto|^Tom|^Trio Virilent|^Xenophon",
"mode": "regex",
"caseSensitive": false,
"invert": true
}
],
"mode": "row-based"
},
"columnName": "M|PERS1",
"expression": "grel:null",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column M|PERS1 using expression grel:null"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "GC",
"l": "GC"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|PERS2",
"expression": "isBlank(value)",
"columnName": "M|PERS2",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "M|PERS2",
"columnName": "M|PERS2",
"query": ",",
"mode": "text",
"caseSensitive": false,
"invert": true
},
{
"type": "text",
"name": "M|PERS2",
"columnName": "M|PERS2",
"query": "^Alain|^Anonymous|^Aristoteles|^Brüder Grimm ¬[ErwähnteR]¬|^Bstan-vdzin-rgya-mtsho <Dalai Lama XIV.>|^Domenica|^Eckart (Meister)|^Eckehart (Meister)|^El Bocho|^Epictetus|^Epicurus|^Eusebius <Caesariensis>|^Gabo|^Hildegard von Bingen|^Hildegardis <Bingensis>|^Hippocrates|^Ignatius <Antiochenus>|^Ishmael|^Janosch|^Johannes <Apostolus>|^Johannes Paul II.|^Kuba|^Laotse|^Le Corbusier|^Leila|^Muhammad|^Muhammad Ali|^Paul VI.|^Piero|^Plato|^Platon|^Polycarpus <Smyrnaeus>|^Sick [VerfasserIn]|^Starhawk|^Sting <Musiker>|^Sunyata ¬[IllustratorIn]¬|^Tintoretto|^Tom|^Trio Virilent|^Xenophon",
"mode": "regex",
"caseSensitive": false,
"invert": true
}
],
"mode": "row-based"
},
"columnName": "M|PERS2",
"expression": "grel:null",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column M|PERS2 using expression grel:null"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "GC",
"l": "GC"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|PERS3",
"expression": "isBlank(value)",
"columnName": "M|PERS3",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "M|PERS3",
"columnName": "M|PERS3",
"query": ",",
"mode": "text",
"caseSensitive": false,
"invert": true
},
{
"type": "text",
"name": "M|PERS3",
"columnName": "M|PERS3",
"query": "^Alain|^Anonymous|^Aristoteles|^Brüder Grimm ¬[ErwähnteR]¬|^Bstan-vdzin-rgya-mtsho <Dalai Lama XIV.>|^Domenica|^Eckart (Meister)|^Eckehart (Meister)|^El Bocho|^Epictetus|^Epicurus|^Eusebius <Caesariensis>|^Gabo|^Hildegard von Bingen|^Hildegardis <Bingensis>|^Hippocrates|^Ignatius <Antiochenus>|^Ishmael|^Janosch|^Johannes <Apostolus>|^Johannes Paul II.|^Kuba|^Laotse|^Le Corbusier|^Leila|^Muhammad|^Muhammad Ali|^Paul VI.|^Piero|^Plato|^Platon|^Polycarpus <Smyrnaeus>|^Sick [VerfasserIn]|^Starhawk|^Sting <Musiker>|^Sunyata ¬[IllustratorIn]¬|^Tintoretto|^Tom|^Trio Virilent|^Xenophon",
"mode": "regex",
"caseSensitive": false,
"invert": true
}
],
"mode": "row-based"
},
"columnName": "M|PERS3",
"expression": "grel:null",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column M|PERS3 using expression grel:null"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "GC",
"l": "GC"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|PERS4",
"expression": "isBlank(value)",
"columnName": "M|PERS4",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "M|PERS4",
"columnName": "M|PERS4",
"query": ",",
"mode": "text",
"caseSensitive": false,
"invert": true
},
{
"type": "text",
"name": "M|PERS4",
"columnName": "M|PERS4",
"query": "^Alain|^Anonymous|^Aristoteles|^Brüder Grimm ¬[ErwähnteR]¬|^Bstan-vdzin-rgya-mtsho <Dalai Lama XIV.>|^Domenica|^Eckart (Meister)|^Eckehart (Meister)|^El Bocho|^Epictetus|^Epicurus|^Eusebius <Caesariensis>|^Gabo|^Hildegard von Bingen|^Hildegardis <Bingensis>|^Hippocrates|^Ignatius <Antiochenus>|^Ishmael|^Janosch|^Johannes <Apostolus>|^Johannes Paul II.|^Kuba|^Laotse|^Le Corbusier|^Leila|^Muhammad|^Muhammad Ali|^Paul VI.|^Piero|^Plato|^Platon|^Polycarpus <Smyrnaeus>|^Sick [VerfasserIn]|^Starhawk|^Sting <Musiker>|^Sunyata ¬[IllustratorIn]¬|^Tintoretto|^Tom|^Trio Virilent|^Xenophon",
"mode": "regex",
"caseSensitive": false,
"invert": true
}
],
"mode": "row-based"
},
"columnName": "M|PERS4",
"expression": "grel:null",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column M|PERS4 using expression grel:null"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "File",
"expression": "value",
"columnName": "File",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "GC",
"l": "GC"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "M|PERS5",
"expression": "isBlank(value)",
"columnName": "M|PERS5",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "text",
"name": "M|PERS5",
"columnName": "M|PERS5",
"query": ",",
"mode": "text",
"caseSensitive": false,
"invert": true
},
{
"type": "text",
"name": "M|PERS5",
"columnName": "M|PERS5",
"query": "^Alain|^Anonymous|^Aristoteles|^Brüder Grimm ¬[ErwähnteR]¬|^Bstan-vdzin-rgya-mtsho <Dalai Lama XIV.>|^Domenica|^Eckart (Meister)|^Eckehart (Meister)|^El Bocho|^Epictetus|^Epicurus|^Eusebius <Caesariensis>|^Gabo|^Hildegard von Bingen|^Hildegardis <Bingensis>|^Hippocrates|^Ignatius <Antiochenus>|^Ishmael|^Janosch|^Johannes <Apostolus>|^Johannes Paul II.|^Kuba|^Laotse|^Le Corbusier|^Leila|^Muhammad|^Muhammad Ali|^Paul VI.|^Piero|^Plato|^Platon|^Polycarpus <Smyrnaeus>|^Sick [VerfasserIn]|^Starhawk|^Sting <Musiker>|^Sunyata ¬[IllustratorIn]¬|^Tintoretto|^Tom|^Trio Virilent|^Xenophon",
"mode": "regex",
"caseSensitive": false,
"invert": true
}
],
"mode": "row-based"
},
"columnName": "M|PERS5",
"expression": "grel:null",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column M|PERS5 using expression grel:null"
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|VERF1",
"expression": "grel:[ cells['M|VERF1'].value, cells['M|VERF2'].value, cells['M|VERF3'].value, cells['M|PERS1'].value, cells['M|PERS2'].value, cells['M|PERS3'].value, cells['M|PERS4'].value, cells['M|PERS5'].value ].join('␟')",
"onError": "set-to-blank",
"newColumnName": "tmp",
"columnInsertIndex": 3,
"description": "Create column tmp at index 3 based on column M|VERF1 using expression grel:[ cells['M|VERF1'].value, cells['M|VERF2'].value, cells['M|VERF3'].value, cells['M|PERS1'].value, cells['M|PERS2'].value, cells['M|PERS3'].value, cells['M|PERS4'].value, cells['M|PERS5'].value ].join('␟')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "tmp",
"expression": "grel:forEach(value.split('␟'),v,v.replace(/\\s(¬?|::)\\[.*/,'')).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column tmp using expression grel:forEach(value.split('␟'),v,v.replace(/\\s(¬?|::)\\[.*/,'')).join('␟')"
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "tmp",
"expression": "grel:forEach(value.split('␟').slice(0,1), v, if(v.contains(','), '\u001fd' + v.split(',')[1].replace(/¬.*¬/,'').trim() + forNonBlank(v.find(/¬.+¬/)[0].replace('¬',''), x, '\u001fc' + x, '') + '\u001fa' + v.split(',')[0].trim(), '\u001fP' + v)).join('␟')",
"onError": "set-to-blank",
"newColumnName": "3000",
"columnInsertIndex": 3
},
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "tmp",
"expression": "grel:forEach(value.split('␟').slice(1), v, if(v.contains(','), '\u001fd' + v.split(',')[1].replace(/¬.*¬/,'').trim() + forNonBlank(v.find(/¬.+¬/)[0].replace('¬',''), x, '\u001fc' + x, '') + '\u001fa' + v.split(',')[0].trim(), '\u001fP' + v)).join('␟')",
"onError": "set-to-blank",
"newColumnName": "3010",
"columnInsertIndex": 3
},
{
"op": "core/column-removal",
"columnName": "tmp",
"description": "Remove column tmp"
}
]

View File

@ -0,0 +1,101 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "tmp",
"expression": "isBlank(value)",
"columnName": "tmp",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|URH1",
"expression": "grel:[ cells['M|URH1'].value, cells['M|URH2'].value, cells['M|URH3'].value ].join('␟')",
"onError": "set-to-blank",
"newColumnName": "3110",
"columnInsertIndex": 3,
"description": "Create column 3110 at index 3 based on column M|URH1 using expression grel:[ cells['M|URH1'].value, cells['M|URH2'].value, cells['M|URH3'].value ].join('␟')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "tmp",
"expression": "isBlank(value)",
"columnName": "tmp",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "3110",
"expression": "grel:forEach(value.split('␟'),v,v.replace(/\\s(¬?|::)\\[.*/,'')).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3110 using expression grel:forEach(value.split('␟'),v,v.replace(/\\s(¬?|::)\\[.*/,'')).join('␟')"
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "tmp",
"expression": "isBlank(value)",
"columnName": "tmp",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "3110",
"expression": "grel:forEach(value.split('␟'), v,\nforNonBlank(v.split('/')[0].replace(/<.*>/,'').trim(), x, '\u001fa' + x, '')\n+ forNonBlank(v.split('/')[0].find(/<.+>/)[0].replace('<','').replace('>',''), x, '\u001fx' + x, '')\n+ forNonBlank(v.split('/')[1].trim(), x, '\u001fb' + x, '')\n).join('␟')",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10,
"description": "Text transform on cells in column 3110 using expression grel:forEach(value.split('␟'), v,\nforNonBlank(v.split('/')[0].replace(/<.*>/,'').trim(), x, '\u001fa' + x, '')\n+ forNonBlank(v.split('/')[0].find(/<.+>/)[0].replace('<','').replace('>',''), x, '\u001fx' + x, '')\n+ forNonBlank(v.split('/')[1].trim(), x, '\u001fb' + x, '')\n).join('␟')"
}
]

View File

@ -0,0 +1,14 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|EST",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "3210",
"columnInsertIndex": 3
}
]

View File

@ -0,0 +1,65 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "record-based"
},
"baseColumnName": "M|HST",
"expression": "grel:if(value.contains('¬'),with(value.split('¬'), v, v[0].trim() + ' @' + v[1].trim()),value)",
"onError": "set-to-blank",
"newColumnName": "4000a",
"columnInsertIndex": 3
},
{
"op": "core/text-transform",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "4000a",
"expression": "isBlank(value)",
"columnName": "4000a",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
],
"selectBlank": false,
"selectError": false
},
{
"type": "list",
"name": "0500",
"expression": "grel:value[1]",
"columnName": "0500",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": "a",
"l": "a"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"columnName": "4000a",
"expression": "grel:'Titel fehlt'",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
}
]

View File

@ -0,0 +1,14 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "M|HSTZU",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "4000d",
"columnInsertIndex": 3
}
]

View File

@ -0,0 +1,35 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "tmp",
"expression": "isBlank(value)",
"columnName": "tmp",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "row-based"
},
"baseColumnName": "M|VERFA",
"expression": "grel:value",
"onError": "set-to-blank",
"newColumnName": "4000h",
"columnInsertIndex": 3,
"description": "Create column 4000h at index 3 based on column M|VERFA using expression grel:value"
}
]

View File

@ -0,0 +1,35 @@
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [
{
"type": "list",
"name": "M|PST",
"expression": "isBlank(value)",
"columnName": "M|PST",
"invert": false,
"omitBlank": false,
"omitError": false,
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
],
"selectBlank": false,
"selectError": false
}
],
"mode": "record-based"
},
"baseColumnName": "M|PST",
"expression": "grel:if(value.contains('¬'),with(value.split('¬'), v, v[0].trim() + ' @' + v[1].trim()),value)",
"onError": "set-to-blank",
"newColumnName": "4002",
"columnInsertIndex": 3,
"description": "Create column 4002 at index 3 based on column M|PST using expression grel:if(value.contains('¬'),with(value.split('¬'), v, v[0].trim() + ' @' + v[1].trim()),value)"
}
]

Some files were not shown because too many files have changed in this diff Show More