diff --git a/bibliotheca/Taskfile.yml b/bibliotheca/Taskfile.yml index 73d86e3..7b96aec 100644 --- a/bibliotheca/Taskfile.yml +++ b/bibliotheca/Taskfile.yml @@ -137,6 +137,8 @@ tasks: "$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 diff --git a/bibliotheca/config/main/3110.json b/bibliotheca/config/main/3110.json new file mode 100644 index 0000000..aa799ea --- /dev/null +++ b/bibliotheca/config/main/3110.json @@ -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": 110, + "description": "Create column 3110 at index 110 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, '\u001fc' + 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, '\u001fc' + x, '')\n+ forNonBlank(v.split('/')[1].trim(), x, '\u001fb' + x, '')\n).join('␟')" + } +] diff --git a/bibliotheca/config/main/template.txt b/bibliotheca/config/main/template.txt index 529d610..1913052 100644 --- a/bibliotheca/config/main/template.txt +++ b/bibliotheca/config/main/template.txt @@ -26,6 +26,7 @@ with( '2240', '3000', '3010', + '3110', '4000a', '4000d', '4020a', diff --git a/pica+/config/template.txt b/pica+/config/template.txt index dea16eb..57569f4 100644 --- a/pica+/config/template.txt +++ b/pica+/config/template.txt @@ -21,6 +21,7 @@ if(row.index - row.record.fromRowIndex == 0, + forNonBlank(cells['4000a'].value, v, '021A ' + 'a' + v + forNonBlank(cells['4000d'].value, v, 'd' + v, '') + '\n', '') + forNonBlank(cells['3000'].value, v, '028A ' + v + '\n', '') + forNonBlank(cells['3100'].value, v, forEach(v.split('␟'),x,'028C ' + x + '\n').join(''), '') ++ forNonBlank(cells['3110'].value, v, forEach(v.split('␟'),x,'029F ' + x + '\n').join(''), '') + forNonBlank(cells['4020a'].value, v, '032@ ' + 'a' + v + '\n', '') + if(or(isNonBlank(cells['4030n'].value),isNonBlank(cells['4030p'].value)),'033A ' + forNonBlank(cells['4030n'].value, v, 'n' + v,'') + forNonBlank(cells['4030p'].value, v, 'p' + v, '') + '\n', '') + forNonBlank(cells['4060a'].value, v, '034D ' + 'a' + v + '\n', '')