diff --git a/bibliotheca/Taskfile.yml b/bibliotheca/Taskfile.yml index 3cf3448..6854a28 100644 --- a/bibliotheca/Taskfile.yml +++ b/bibliotheca/Taskfile.yml @@ -204,8 +204,8 @@ tasks: "$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 -#TODO "$CLIENT" -P {{.PORT}} {{.PROJECT}} --apply config/main/4170.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}} diff --git a/bibliotheca/config/main/4170.json b/bibliotheca/config/main/4170.json index 95f8991..183d4d7 100644 --- a/bibliotheca/config/main/4170.json +++ b/bibliotheca/config/main/4170.json @@ -1,3 +1,210 @@ [ -{} + { + "op": "core/column-addition", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "M|GT1", + "expression": "grel:or(isNonBlank(cells['M|GT1'].value), isNonBlank(cells['M|GT1B'].value))", + "columnName": "M|GT1", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": true, + "l": "true" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "list", + "name": "M|GT1B", + "expression": "isBlank(value)", + "columnName": "M|GT1B", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": true, + "l": "true" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "baseColumnName": "M|GT1", + "expression": "grel:with(value.split(' ; '), x, forNonBlank(x[0].split(': ')[0], v, '\u001fa' + v.trim(), '') + forNonBlank(x[0].split(': ')[1], v, '\u001fh' + v.trim(), '') + forNonBlank(x[1].split(' : ')[0], v, '\u001fI' + v.trim(), '') + forNonBlank(x[1].split(' : ')[1], v, '\u001fp' + v.trim(), '') )", + "onError": "set-to-blank", + "newColumnName": "4170_1", + "columnInsertIndex": 80, + "description": "Create column 4170_1 at index 80 based on column M|GT1 using expression grel:with(value.split(' ; '), x, forNonBlank(x[0].split(': ')[0], v, '\u001fa' + v.trim(), '') + forNonBlank(x[0].split(': ')[1], v, '\u001fh' + v.trim(), '') + forNonBlank(x[1].split(' : ')[0], v, '\u001fI' + v.trim(), '') + forNonBlank(x[1].split(' : ')[1], v, '\u001fp' + v.trim(), '') )" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "M|GT1", + "expression": "grel:or(isNonBlank(cells['M|GT1'].value), isNonBlank(cells['M|GT1B'].value))", + "columnName": "M|GT1", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": true, + "l": "true" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "list", + "name": "M|GT1B", + "expression": "isBlank(value)", + "columnName": "M|GT1B", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": false, + "l": "false" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "4170_1", + "expression": "grel:forNonBlank(cells['M|GT1B'].value.split(': ')[0], v, '\u001fa' + v.trim(), '') + forNonBlank(cells['M|GT1B'].value.split(': ')[1], v, '\u001fh' + v.trim(), '') +\nforNonBlank(cells['M|GT1Z'].value.split(' : ')[0], v, '\u001fI' + v.trim(), '') + forNonBlank(cells['M|GT1Z'].value.split(' : ')[1], v, '\u001fp' + v.trim(), '')", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column 4170_1 using expression grel:forNonBlank(cells['M|GT1B'].value.split(': ')[0], v, '\u001fa' + v.trim(), '') + forNonBlank(cells['M|GT1B'].value.split(': ')[1], v, '\u001fh' + v.trim(), '') +\nforNonBlank(cells['M|GT1Z'].value.split(' : ')[0], v, '\u001fI' + v.trim(), '') + forNonBlank(cells['M|GT1Z'].value.split(' : ')[1], v, '\u001fp' + v.trim(), '')" + }, + { + "op": "core/column-addition", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "M|GT2", + "expression": "grel:or(isNonBlank(cells['M|GT2'].value), isNonBlank(cells['M|GT2B'].value))", + "columnName": "M|GT2", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": true, + "l": "true" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "list", + "name": "M|GT2B", + "expression": "isBlank(value)", + "columnName": "M|GT2B", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": true, + "l": "true" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "baseColumnName": "M|GT2", + "expression": "grel:with(value.split(' ; '), x, forNonBlank(x[0].split(': ')[0], v, '\u001fa' + v.trim(), '') + forNonBlank(x[0].split(': ')[1], v, '\u001fh' + v.trim(), '') + forNonBlank(x[1].split(' : ')[0], v, '\u001fI' + v.trim(), '') + forNonBlank(x[1].split(' : ')[1], v, '\u001fp' + v.trim(), '') )", + "onError": "set-to-blank", + "newColumnName": "4170_2", + "columnInsertIndex": 80, + "description": "Create column 4170_2 at index 80 based on column M|GT2 using expression grel:with(value.split(' ; '), x, forNonBlank(x[0].split(': ')[0], v, '\u001fa' + v.trim(), '') + forNonBlank(x[0].split(': ')[1], v, '\u001fh' + v.trim(), '') + forNonBlank(x[1].split(' : ')[0], v, '\u001fI' + v.trim(), '') + forNonBlank(x[1].split(' : ')[1], v, '\u001fp' + v.trim(), '') )" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "M|GT2", + "expression": "grel:or(isNonBlank(cells['M|GT2'].value), isNonBlank(cells['M|GT2B'].value))", + "columnName": "M|GT2", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": true, + "l": "true" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "list", + "name": "M|GT2B", + "expression": "isBlank(value)", + "columnName": "M|GT2B", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": false, + "l": "false" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "4170_2", + "expression": "grel:forNonBlank(cells['M|GT2B'].value.split(': ')[0], v, '\u001fa' + v.trim(), '') + forNonBlank(cells['M|GT2B'].value.split(': ')[1], v, '\u001fh' + v.trim(), '') +\nforNonBlank(cells['M|GT2Z'].value.split(' : ')[0], v, '\u001fI' + v.trim(), '') + forNonBlank(cells['M|GT2Z'].value.split(' : ')[1], v, '\u001fp' + v.trim(), '')", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column 4170_2 using expression grel:forNonBlank(cells['M|GT2B'].value.split(': ')[0], v, '\u001fa' + v.trim(), '') + forNonBlank(cells['M|GT2B'].value.split(': ')[1], v, '\u001fh' + v.trim(), '') +\nforNonBlank(cells['M|GT2Z'].value.split(' : ')[0], v, '\u001fI' + v.trim(), '') + forNonBlank(cells['M|GT2Z'].value.split(' : ')[1], v, '\u001fp' + v.trim(), '')" + } ] diff --git a/bibliotheca/config/main/template.txt b/bibliotheca/config/main/template.txt index cc11a1f..0d22361 100644 --- a/bibliotheca/config/main/template.txt +++ b/bibliotheca/config/main/template.txt @@ -40,7 +40,8 @@ with( '4062', '4150', '4160', - '4170', + '4170_1', + '4170_2', '4204', '67XX', '7100j', diff --git a/pica+/config/template.txt b/pica+/config/template.txt index 78596f5..8a5213f 100644 --- a/pica+/config/template.txt +++ b/pica+/config/template.txt @@ -31,7 +31,8 @@ if(row.index - row.record.fromRowIndex == 0, + forNonBlank(cells['4061'].value, v, '034M ' + 'a' + v + '\n', '') + forNonBlank(cells['4150'].value, v, '036C/00 ' + v + '\n', '') + forNonBlank(cells['4160'].value, v, '036D/00 ' + v + '\n', '') -+ forNonBlank(cells['4170'].value, v, '036E/00 ' + v + '\n', '') ++ forNonBlank(cells['4170_1'].value, v, '036E/00 ' + v + '\n', '') ++ forNonBlank(cells['4170_2'].value, v, '036E/01 ' + v + '\n', '') + forNonBlank(cells['4204'].value, v, '037C ' + 'a' + v + '\n', '') + forNonBlank(cells['0999'].value, v, '046W ' + 'a' + v + '\n', '') ,'')