Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In the current DSpace implementation, a workflow system is present that allows content submitters to ingest an item in the repository, that can be reviewed by simply accepting the submitted content, changing some of the submitted metadata or rejecting the item so it can be altered by the submitter. The current collection workflow system contains up to three steps for the submission of files. Except for the metadata changes, there are no possibilities for changing any of the submission content during the different steps of the workflow system.

Image RemovedImage Added

Workflow Step

Possible actions

1)

Can accept submission for inclusion, or reject submission.

2)

Can edit metadata provided by the user with the submission, but cannot change the submitted files. Can accept submission for inclusion, or reject submission.

3)

Can edit metadata provided by the user with the submission, but cannot change the submitted files. Must then commit to archive; may not reject submission.

...

An example of a more elaborate workflow is a peer reviewing workflow in which reviewers are invited who each have to review the given item, so that afterwards the appropriate manager can either approve or decline an item based on the individual reviews.
Differences in the editing possibilities could be that a submission initially just contains a short description and some metadata.
After the approval of these contents, extra files and information can be added to the submission and the reviewing process can continue.
Of course the existing functionalities of the workflow system will be preserved.
These contain the notification of the groups assigned to a step in the system, editing control and many more.
The new system will be completely backwards compatible with the current.

Image RemovedImage Added

Goal Breakdown

...

Configuration for a simple collection workflow (submit/accept-reject/accept-reject-edit metadata):

Code Block

<actions>
&#09;<action id="editMetadata" name="Edit Metadata" />
&#09;<action id="acceptRejectAbstract" type="acceptReject" />
&#09;<action id="uploadFullAbstract" type="uploadDocument" />
&#09;<action id="uploadFullText" type="uploadDocument" />
&#09;<action id="..." type="..." />
</actions>

<roles>
&#09;<role id="submitter" name="Author" />
&#09;<role id="convener" name="Convener" />
&#09;<role id="editorInChief" name="Editor-in-chief" />
</roles>

<workflow>
&#09;<step id="StartSubmission" name="Submit paper">
&#09;&#09;<action id="editMetadata" />
&#09;&#09;<action id="uploadAbstract" />
&#09;</step>
&#09;<step id="acceptRejectAbstractStep" name="Awaiting abstract approval">
&#09;&#09;<>
&#09;</step>
</workflow>

Example configuration for an elaborate (peer-reviewing) collection workflow:

Code Block

<actions>
&#09;<action id="editMetadata" type="EditMetadata">
&#09;&#09;<inputforms value="default" />
&#09;&#09;<continuationaction id="uploadAbstract" />
&#09;</action>
&#09;<action id="uploadAbstract" type="uploadDocument">
&#09;&#09;<uploadrequired value="true" />
&#09;&#09;<continuationaction id="acceptLicense" />
&#09;</action>
&#09;<action id="acceptLicense" type="acceptLicense">
&#09;&#09;<nextstep id="acceptRejectAbstractStep" />
&#09;</action>
&#09;<action id="uploadFullText" type="uploadDocument" />
&#09;<action id="assignReviewersForItem" type="assignRoleMembers">
&#09;&#09;<selectFromRole value="reviewer" />
&#09;&#09;<addToRole value="assignedReviewer" />
&#09;&#09;<assignmentMethod value="manual" />
&#09;&#09;<assignmentMethod value="SomeClass.biddingAlgorithm()" />
&#09;</action>
&#09;<action id="acceptAbstract" type="accept" />
&#09;<action id="returnAbstract" type="return" />
&#09;<action id="commitToArchive" type="archive" />

</actions>

<roles>
&#09;<role id="submitter" name="Author" />
&#09;<role id="metadataeditor1" name="Metadata Editor (1)" />
&#09;<role id="metadataeditor2" name="Metadata Editor (2)" />
&#09;<role id="metadataeditor3" name="Metadata Editor (3)" />
&#09;<role id="reviewer" name="Reviewer" />
&#09;<role id="assignedReviewer" name="Assigned Reviewer" />
&#09;<role id="convener" name="Convener" />
&#09;<role id="editorInChief" name="Editor-in-chief" />
</roles>

<workflow id="default">
&#09;<step id="StartSubmission" name="Submit paper" role="submitter">
&#09;&#09;<action id="editMetadata" nextStep="acceptRejectAbstractStep"/> <!-- list of actions to be chosen from -->
&#09;</step>
&#09;<step id="acceptRejectAbstractStep" name="Awaiting abstract approval" role="metadataeditor1"  defaultNextStep="editMetadataStep">
&#09;&#09;<action id="acceptAbstract" nextstep="EditMetadataStep" /> <!-- list of actions to be chosen from -->
&#09;&#09;<action id="returnAbstract" nextstep="StartSubmission" />
&#09;</step>
&#09;<step id="editMetadataStep" name="Awaiting abstract approval" role="metadataeditor2">
&#09;&#09;<action id="editMetadata" /> <!-- list of actions to be chosen from -->
&#09;&#09;<action id="acceptAbstract" nextStep="..." />
&#09;</step>
...
&#09;<step id="assignReviewers" name="..." role="convener">
&#09;&#09;<action id="assignReviewersForItem" nextstep="reviewFullText" /> <!-- list of actions to be chosen from -->
&#09;</step>
&#09;<step id="reviewFullText" name="Awaiting abstract approval" role="assignedReviewer">
&#09;&#09;<action id="editMetadata" /> <!-- list of actions to be chosen from -->
&#09;&#09;<action id="uploadDocument" />
&#09;&#09;<action id="acceptFullText" waitForAll="assignedReviwer" nextStep="..." />
&#09;</step>
&#09;<step id="commitArchive" name="Add to archive" role="convener">
&#09;&#09;<action id="commitToArchive" />
&#09;</step>
</workflow>

<workflow id="123456789/6546">
</workflow>

...

Design

Domain model analysis

Image RemovedImage Added

Action

  • These are the basic building blocks of the new workflow system
  • Different types of actions
  • Can be performed in a step
  • Can be linked to a next action for the same user to create a sequence of actions
  • Can be linked to a next step

...

  • More action types could be added
  • The interface for the exisiting existing actions could be improved