Most of the ECM systems we implement have some sort of document upload interface to allow users to add documents to the system. For this post, we will take a look at the common requirements for adding documents and will compare differences between HPI vs. Alfresco Share.
Adding Documents to Alfresco
The common requirements that we often see for add documents include:
- Ability to add multiple documents at once via drag and drop.
- Ability to add a document from a template rather than uploading a document from the user’s machine.
- Ability for the system to smartly suggest available document types, or auto-select the type if only one is possible.
- Ability for the user to set metadata on the documents. Additional related requirements include:
- Enforce required attributes to be set.
- Allow the user to choose from a picklist for certain attributes.
- When uploading more than one document, allow the user to set attributes in bulk.
Many of the above requirements are surprisingly difficult to satisfy when uploading documents in Alfresco Share.
- Adding a document from a template is not supported.
- While Alfresco Share allows users to drag and drop one or more documents into a folder, the document is always created with the base ‘cm:content’ document type.
- There is no option in Alfresco Share to set metadata attributes when adding documents to the system.
To remedy the document object restrictions, Alfresco Share provides the ability to configure rules on a folder that can affect what document types are used for documents placed in the folder. However, if the requirement is that the user needs to select what the document type should be during the upload, this cannot be done with configuration and custom coding is required. For one client, we customized Share’s ‘Upload File(s)’ dialog to allow the user to select from a list of custom document types. Unfortunately because Share does not launch this dialog when a user drags a document onto a folder, we had to disable drag and drop. Here’s what it looks like:
For setting attributes, while users can add multiple documents at once, users must wait until all documents are uploaded and then go to each document individually to set attributes. There is no option to edit document attributes in bulk. This limitation can be a difficult when working with required attributes. With no interface to set attributes from the beginning, documents with required attributes cannot be placed into a folder. The only options is to remove the ‘required’ designation for the attribute, or set the attribute automatically using rules configuration. However, this latter option is only possible if rules configuration can actually set the attribute. If the user adding the document must set the required attribute, there is no work around.
All of the requirements mentioned above are fully configurable in the HPI admin interface. No custom coding is required. Check out the video below to take a look at how uploading documents works in out of the box Alfresco Share vs. HPI:
We see some combination of the requirements mentioned above in almost all of our Alfresco projects. Unless custom coding is involved, Alfresco Share lacks the ability to allow the user to choose document type(s) and set metadata on documents during the upload process, whereas HPI provides for all of the scenarios mentioned with a configuration-only approach.