kitodo / kitodo-production

Kitodo.Production is a workflow management tool for mass digitization and is part of the Kitodo Digital Library Suite.
http://www.kitodo.org/software/kitodoproduction/
GNU General Public License v3.0
62 stars 63 forks source link

Creation of processes for volumes of multivolume works is not possible #3416

Closed andre-hohmann closed 4 years ago

andre-hohmann commented 4 years ago

Problem

It is not possible to create processes for volumes of multivolume works. There are two options working wrongly in different ways.

Option 1: import dephts =2

It is possible to

It is not possible to:

Option 1: import dephts =1

It is possible to

However, only the process for the volume is created. Thus, there is no linking to the parent process.

Example-PPN of the volumes of multivolume works:

Solution

It should be possible to create processes for the volumes of multivolume works.

See also the following issues:

solth commented 4 years ago

The first option (with import depth=2) produces a NullPointerException with the following partial stack trace:

 java.lang.NullPointerException
        at org.kitodo.production.forms.createprocess.ProcessFieldedMetadata.getMetadata(ProcessFieldedMetadata.java:441)
        at org.kitodo.production.forms.createprocess.ProcessFieldedMetadata.preserve(ProcessFieldedMetadata.java:520)
        at org.kitodo.production.services.data.ImportService.transformToProcessDetails(ImportService.java:830)
        at org.kitodo.production.services.data.ImportService.processTempProcess(ImportService.java:1024)
        at org.kitodo.production.forms.createprocess.CreateProcessForm.processAncestors(CreateProcessForm.java:471)
        at org.kitodo.production.forms.createprocess.CreateProcessForm.createProcessHierarchy(CreateProcessForm.java:368)
        at org.kitodo.production.forms.createprocess.CreateProcessForm.createNewProcess(CreateProcessForm.java:286)

@matthias-ronge isn't this something you fixed not very long ago with #3357 ?

matthias-ronge commented 4 years ago

This error occurs because the ruleset has a <restriction division="MultiVolumeWork" unspecified="forbidden"> which does not <permit key="slub_serialGroup">, but the imported data contains a metadata group “slub_serialGroup”. Nevertheless, the ruleset should be tolerant of this, which it is not at the moment. This needs to be fixed.

andre-hohmann commented 4 years ago

I think an error- or warning-message describing the problem would be appropriate.

We have still the discussion, how to cope with differing metadata between import and ruleset. However, that will be discussed in another issue.

matthias-ronge commented 4 years ago

Closed as currently not reproducible.