Create Folders and Sub-folders on Uploading a CSV File in Alfresco

Create Folders and Sub-folders on Uploading a CSV File in Alfresco

A typical Document Management System use case in Alfresco would require creating multiple folders while implementing for the first time or any time in future as well. Those folders can be for each employee, branch or project in the organization. Creating them manually is a mundane, time-consuming and prone-to-error task. How if you can create these folders with a mere upload of a CSV file? Sounds interesting?

In this blog, we have provided you a code using which Alfresco developers would be able to set a mechanism for the users who would get the following functionality.

We need to have two folders, one in which we would upload the CSV and the other where the folders will be residing after auto-generation, let’s name it as target folder. We have considered that the auto-generated folder will be renamed as columnAvalue_comunBvalue (by using values in the adjoining columns in the same row of CSV). So, the CSV we upload in this case should have one row for each folder with two columns to be placed as folder names. The sub-folders will be fixed for any auto-generated folder (In this case we have named them child1…child6). You may amend the code as per the business requirements of your client.

Alfresco development related blog: Alfresco QCAD Integration for CAD Files Preview

Here are the steps to follow:

Step 1: For creating folders and sub-folders we need to write the script.

So first we create “csvUploadFolderCreation.js” file and put it in “Data Dictionary/Scripts”

var siteName = document.getSiteShortName();

var path = companyhome.childByNamePath("Sites/"+siteName+"/documentLibrary/Target");

var subFolders = ["child1","child2","child3","child4","child5","child6"];

var col1=null,col2=null;

if(!document.isContainer){

var fileContent = document.getContent();

var csvline = fileContent.split("\n");

var csvLineLength = csvline.length;

for (var i=1 ; i<csvline.length; i++){

var csv = csvline[i].split(";");

col0 = csv[0];

col1 = csv[1];

var folderName = col0+"_"+col1;

var parent = path.createFolder(folderName);

parent.properties["name"] = folderName;

createSubFolders(parent);

}

}

function createSubFolders(parent){

for(var i=0;i<subFolders.length;i++){

parent.createFolder(subFolders[i].toString());

}

}

Step 2: Create a folder (Csv Upload) in your site and go to the action “Manage Rules”.

Now create a new rule. Add other info wise requirment and goto to “Perform Action”, select execute script and select our custom script.

Step 3: Create folder “Target” Which Contains all the folders which are created from csv.

Step 4: Now upload the csv file in “CSV Upload” folder.

Sub-folder will be created in Target folder as per the csv data.

If you find any challenge in implementing the same, feel free to contact us.

IndiaSoft 2019 Technology Event is Here- ContCentric Participates as Exhibitor

Summary: ContCentric is participating in IndiaSoft 2019. The company is an exhibitor at the tech event for displaying innovative ECM and document management solutions.

The highly competitive business scenario demands assistance from technological advancements to manage a plethora of content. As a lot of content is generating on a daily basis in the corporate world, the companies need to tailor-made enterprise content or document management solutions. ContCentric plays a vital role in achieving this objective with the use of cutting-edge tools and technologies.

Since inception, ContCentric has achieved milestones in developing high-end Enterprise content management solutions for the global clientele. The company has assisted modern enterprises across various sectors like pharmaceuticals, healthcare, manufacturing, and utility to manage complex business processes. With an in-house team of expert professionals, ContCentric addresses the content-related challenges by using one of the best platforms Alfresco.

indiasoft

The company has recently announced to participate in IndiaSoft 2019 event in Hyderabad. Apart from showing expertise in the Alfresco services domain, the company has four major objectives behind participating in one of the most prestigious tech events, IndiaSoft 2019.

  • Showcasing innovative document management solutions
  • Building fruitful partnerships for boosting network
  • Expanding business through making relationships
  • Grabbing business opportunities

ContCentric participates in IndiaSoft 2019 in Hyderabad as an exhibitor.

More About IndiaSoft Event
IndiaSoft is basically a B2B IT show that aims at bringing foreign corporates and Indian IT firms together through a global IT networking. It is a stage to promote joint ventures and business expansion of software companies across different industry sectors like BFSI, Travel, Energy, Insurance, Logistics, Retail, Aviation, and the like. In brief, IndiaSoft bridges the gap between entrepreneurs and Indian IT services providers.

Approximately, over 250 Indian IT companies will come up with a plethora of innovative solutions that can add value and assist entrepreneurs to take their business to the next level. The IndiaSoft 2019 Hyderabad event is expected to witness over 400 foreign buyers from 60+ countries across the world. From meeting prospects to building relations, IndiaSoft 2019 is a perfect platform.

Highlights of ContCentric Services and Solutions
As a leading document management system builder, ContCentric focuses solely on addressing the challenges in the domain of enterprise content management.

ContCentric has also set milestones in providing high-quality enterprise-grade solutions including

  • Contract lifecycle management
  • Knowledge management process
  • Business process management
  • Document management system
  • Web content management

The company offers the following solutions under the hood of Alfresco content management services.

  • ECM Consultancy
  • Alfresco Development
  • Alfresco Support
  • Alfresco Performance Optimization
  • Content Migration

ContCentric thrives by valuing work ethics and assisting domestic and international entrepreneurs in leveraging the benefits of the advanced content marketing system.

Visit our Stall No. 117 at IndiaSoft Event 2019 in Hyderabad on 4 and 5 February 2019. Contact us and meet our experts, they will gladly assist you to get an insight into the latest trends in enterprise content management.

Alfresco QCAD Integration for CAD Files Preview

Alfresco is a widely used Document Management System across the manufacturing and EPC (Engineer, Procurement, Construction) industry. One of the key document types in this segment is 2D and 3D CAD files which are generated through AutoCAD and other such CAD software. Alfresco default document previewer doesn’t support these files, so the users can’t view the documents within Alfresco. However, we can integrate QCAD software with Alfresco to enable users to view these CAD files within Alfresco document viewer.

Integration Related blog: Alfresco Integration with Chronoscan

In this blog, we have provided QCAD – Alfresco integration steps in the Linux environment for the developers.

Install QCAD using the following steps. (Linux)

1. Download following file
https://www.dropbox.com/s/kwwolj6kzckysvf/qcad-3.17.3-trial-linux-x86_64.run

2. Install QCAD using the following command
Go to the path where the above file is copied.

./qcad-3.17.3-trial-linux-x86_64.run press enter

3. Copy and paste the following lines at the starting of alfresco.sh file located at /opt/alfresco-community/
(These are the environment variables which are need to be set before starting QCAD)

export QT_STYLE_OVERRIDE=""
export QT_QPA_PLATFORM=offscreen
export DISPLAY=""
export QT_QPA_FONTDIR="/usr/local/share/fonts/type1"

4. Place the following files at alfresco-community/tomcat/shared/classes/alfresco/extension/
https://www.dropbox.com/s/vhvp4ka1doym675/dwg2swf-transform-context.xml
https://www.dropbox.com/s/ns2rdh8vpl1nmhb/dxf2swf-transform-context.xml
https://www.dropbox.com/s/xaeiag05898z5pc/web-preview.get.config.xml

5. Add following in alfresco-community/tomcat/shared/classes/alfresco/extension/mimetype/mimetyps-extension-map.xml

<mimetype mimetype="image/vnd.dxf" display="DXF Mimetype">
<extension>dxf</extension>
</mimetype>
<mimetype mimetype="application/dxf" display="DXF-Mimetype">
<extension>.dxf</extension>
</mimetype>

6. Add the following at alfresco-global.properties file

# QCAD Configuration Properties #
transformer.strict.mimetype.check=false
dwg2pdf.root=/root/opt/qcad-3.17.3-trial-linux-x86_64
dwg2pdf.root=C:/Program Files/QCAD

content.transformer.dwg2pdf.priority=50
content.transformer.dwg2pdf.extensions.dwg.pdf.supported=true
content.transformer.dwg2pdf.extensions.dwg.pdf.priority=50
content.transformer.dxf2pdf.priority=50
content.transformer.dxf2pdf.extensions.dxf.pdf.supported=true
content.transformer.dxf2pdf.extensions.dxf.pdf.priority=50

7. Restart the server

8. To test the QCAD
Upload the .dxf or .dwg file, they should be previewed in Alfresco.

qcad-screenshot

QCAD integration will support popular file extensions such as DWG, DXF, PDF, PNG, JPEG, TIF, GIF, BMP, WRL, TIF, PSD in 2D and OBJ, 3DS, STL, WRL in 3D.

As an Alfresco ECM & BPM expert, ContCentric team has been associated with several clients where Alfresco was deployed to store, govern and retrieve the CAD files. It is not essential to do the Alfresco AutoCAD integration, but the previewer would suffice. The rest of the functionality would be leveraged from the Alfresco Enterprise Content Management platform. Do contact us for the case study on this topic.

How to Add Barcode to Documents in Alfresco

When the world is heading towards digitization, a barcode is no longer a new term for the enterprises. Tracking and storing information about goods, from individual items to large stocks of millions of items, barcode has provided ease and relief to the system. Barcode allows you to accurately track large stocks and also look up any single piece of merchandise in a matter of second. There are many other cases where the barcode is applied to the documents. We, at ContCentric, have come up with the solution to add the barcode to the document stored in the Alfresco system.

Here is the technical approach on how to generate a barcode in Alfresco. If you want to explore the QR code, then please visit this link.

  1. Java action – To allow users to generate and decide where to place barcode in the document
  2. Evaluator – To show action only on PDF documents (share side class)
  3. A Java PDF library (iText) – Provides classes and functions to edit PDF documents

Related blog: Step-by-Step Guide to Add QR Code to Document in Alfresco

1.Java Action

  • Create a Java class with following code at alfresco/src/main/java
public class BarcodePdfActionExecuter extends ActionExecuterAbstractBase {
      private static Log logger = LogFactory.getLog(BarcodePdfActionExecuter.class);
      private ServiceRegistry serviceRegistry;
      public static final String PARAM_PAGE_NO = "page-no";
      public void setServiceRegistry(ServiceRegistry serviceRegistry) {
            this.serviceRegistry = serviceRegistry;
}
@Override
protected void addParameterDefinitions(List paramList) {
       for (String s : new String[] {PARAM_PAGE_NO}) {
           paramList.add(new ParameterDefinitionImpl(s, DataTypeDefinition.TEXT, true, getParamDisplayLabel(s)));
       }
}
@Override
protected void executeImpl(Action action, NodeRef actionedUponNodeRef) {
       logger.debug("Page No " + action.getParameterValue(PARAM_PAGE_NO));

       String barcodeString = "abcd0001";
    
       ContentWriter writer =
 serviceRegistry.getContentService().getWriter(actionedUponNodeRef,
           ContentModel.PROP_CONTENT, true);

       
       ContentReader reader =
serviceRegistry.getContentService().getReader(actionedUponNodeRef,
       
       ContentModel.PROP_CONTENT);
       int pageNo = Integer.parseInt((String) 
action.getParameterValue(PARAM_PAGE_NO));
       try {
       PdfReader pdfReader = new PdfReader(inputStream);
       PdfStamper stamper = new PdfStamper(pdfReader, outputStream);
       PdfContentByte over = stamper.getOverContent(1);
      
       Barcode128 barcode128 = new Barcode128();
       barcode128.setCode(barcodeString);
       barcode128.setCodeType(Barcode.CODE128);
       Image code128Image = barcode128.createImageWithBarcode(over, null, null);
       code128Image.setAbsolutePosition(10,10);
       over.addImage(code128Image);
       stamper.close();
       pdfReader.close();
} catch (ContentIOException e) {
e.printStackTrace();
} catch (IOException e) {
     e.printStackTrace();
} catch (DocumentException e) {
     e.printStackTrace();
     }
   }
}
  • Create a separate <bean> at

alfresco/src/main/amp/config/alfresco/module/${project-name}/context/ to register action class.

<bean id="barcode-pdf"
      class="com.contcentric.bar_repo.BarcodePdfActionExecuter"
      parent="action-executer">
      <property name="serviceRegistry">
           <ref bean="ServiceRegistry" />
      </property>
</bean>
  • Create an extension module at

share/src/main/amp/config/alfresco/web-extension/site-data/extensions/ in separate or existing xml file.

<config evaluator="string-compare" condition="DocLibActions">
     <actions>
          <action id="alfresco.doclib.action.barcodePdf"
              icon="barcode" type="javascript"
              label="alfresco.doclib.action.barcodePdf.label">
              <param name="function">onActionFormDialog</param>
              <param name="itemKind">action</param>
              <param name="itemId">barcode-pdf</param> <!-- Repository action id = Spring Bean id -->
              <param name="mode">create</param>
              <param name="destination">{node.nodeRef}</param>
              <param name="successMessage">alfresco.doclib.action.barcodePdf.msg.success
              </param>
              <param name="failureMessage">alfresco.doclib.action.barcodePdf.msg.failure
              </param>
              <evaluator>alfresco.barcodePdf.evaluator.checkPDFFileType
              </evaluator>
         </action>
</actions>
<actionGroups>
         <actionGroup id="document-browse">
              <action index="400" id="alfresco.doclib.action.barcodePdf" />
         </actionGroup>
         <actionGroup id="document-details">
               <action index="400" id="alfresco.doclib.action.barcodePdf" />
         </actionGroup>
    </actionGroups>
</config>
<config evaluator="string-compare" condition="barcode-pdf"> ID for the Repository Action that this form is associated with
      <forms>
      <form>
            <field-visibility>
               <show id="page-no" />
            </field-visibility>
            <appearance>
               <field id="page-no"
                      label-id="alfresco.doclib.action.barcodePdf.form.field.pageNo">
               </field>
           </appearance>
       </form>
   </forms>
</config>
  • Create a properties file for Label at

share/src/main/amp/config/alfresco/web-extension/messages/

alfresco.doclib.action.barcodePdf.label=Barcode Pdf
alfresco.doclib.action.barcodePdf.msg.success=Pdf have been barcoded.
alfresco.doclib.action.barcodePdf.msg.failure=Problem in barcoding Pdf, please contact Administrator
alfresco.doclib.action.barcodePdf.form.field.pageNo=Page Number
  • You have to add images for the action icon at

share/src/main/amp/web/components/documentlibrary/actions/

2.Evaluator

  • Create a separate <bean> with following code at

share/src/main/amp/config/alfresco/web-extension/

<bean id="alfresco.barcodePdf.evaluator.checkPDFFileType"
       parent="evaluator.doclib.action.isMimetype">
       <property name="mimetypes">
             <list>
                  <value>application/pdf</value>
             </list>
       </property>
</bean>

3. A Java PDF library (iText)

  • iText Library

Add the following dependency to pom.xml to use this library.

<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
<dependency>
    <groupId>com.itextpdf</groupId>
      <artifactId>itextpdf</artifactId>
      <version>5.0.6</version>
</dependency>

document management system

Feel free to contact us if there is any help you need while executing this code.

Edit Documents Online (ONLYOFFICE Integration)

Alfresco, the leading open source technology serving plenitude of large enterprises, helping them to manage their large chunk of documents in a structured and easily accessible system. Being an open source technology, Alfresco has vast possibilities of customization within it. Thinking from the end-users’ angle gives birth to the idea of new customization. We, at ContCentric, are always eager to provide useful tools to bridge the requirement gaps. We have been providing such customizations to Alfresco fraternity across the globe since inception.

Current Document Editing Feature:
When it comes to editing text-based documents (MS Word files at large), Out-of-The-Box Alfresco ECM provides a facility to edit the document in two ways. Either go through ‘Edit Offline’ route to check-out the documents for offline editing on the local machine, or user the ‘Edit using Google Docs’ way.

What’s New with Online Editor?
We have come up with an alternative to this in which user doesn’t need to download the document or check-out to Google Docs. The module will enable users to edit the document online and after closing it, changes will be directly reflected the document as a new version! Sounds good?

Read blog: Top 8 Reasons Why You Need Alfresco Document Management System

We need to select the option “Edit In ONLYOFFICE” given in Document Action box to edit it online as shown below.

Document management system

Test Document.docx version 1.0 has the following content.

Document management system

After selecting the Edit in ONLYOFFICE, the user will be redirected to the ONLYOFFICE window where he can easily edit the documents.

Document management system

Above are the edits done in the document online. Once a user will save it and close the document, changes will be reflected the document. The user just needs to unlock the document and open it to check it, a new version will be uploaded with all the changes.

Document management system

As you can see Version of the document is changed to 1.1 and edits are also reflected in the document.

If you want to enhance the user experience of your Alfresco DMS, please contact us for the demo and consulting!

Step-by-Step Guide to Add QR Code to Document in Alfresco

The QR code is no longer a new term for techies as well as non-technical persons. Out of many possible applications of QR code, one is to apply it to the documents that have stored or associated information. For those who want a technical definition of a QR code, we can mention here what Wikipedia says: A QR code is an optical and machine-readable representation of data; here, the data describes something about the object that carries the QR code.

Alfresco, as a document management system, requires the documents to be printed with QR codes. These QR codes contain some associated data of the said documents.

We, at ContCentric, have developed a solution wherein you can directly pick the document metadata from PDF files in the form of the QR code in Alfresco.

Related Blog: How to Add Barcode to Documents in Alfresco

Here is the technical approach on how to generate a QR code in Alfresco:

  • Java action – To allow users to generate and decide where to place the QR code in the document
  • Evaluator – To show action only on PDF documents (share side class)
  • A Java PDF library (iText) – Provides classes and functions to edit PDF documents

Java Action

Create a Java class with following code at alfresco/src/main/java

public class BarcodeQRCodePdfActionExecuter extends ActionExecuterAbstractBase {
	private static Log logger = LogFactory.getLog(BarcodeQRCodePdfActionExecuter.class);
	private ServiceRegistry serviceRegistry;

	public static final String PARAM_PAGE_NO = "page-no";

	public void setServiceRegistry(ServiceRegistry serviceRegistry) {
		this.serviceRegistry = serviceRegistry;
	}

	@Override
	protected void addParameterDefinitions(List paramList) {
		for (String s : new String[] {PARAM_PAGE_NO}) {
			paramList.add(new ParameterDefinitionImpl(s, DataTypeDefinition.TEXT, true, getParamDisplayLabel(s)));
		}
	}

	@Override
	protected void executeImpl(Action action, NodeRef actionedUponNodeRef) {

		logger.debug("Page No " + action.getParameterValue(PARAM_PAGE_NO));
		
		Map<QName, Serializable> props = serviceRegistry.getNodeService().getProperties(actionedUponNodeRef);
		String qrCodeString = new String();
		for (Map.Entry<QName,Serializable> entry : props.entrySet()){ 
            qrCodeString += entry.getKey().getLocalName()+" : "+entry.getValue()+"\n";
		}
		
		ContentWriter writer = serviceRegistry.getContentService().getWriter(actionedUponNodeRef,
				ContentModel.PROP_CONTENT, true);
		ContentReader reader = serviceRegistry.getContentService().getReader(actionedUponNodeRef,
				ContentModel.PROP_CONTENT);
		int pageNo = Integer.parseInt((String) action.getParameterValue(PARAM_PAGE_NO));
		try {

			PdfReader pdfReader = new PdfReader(reader.getContentInputStream());
			PdfStamper stamper = new PdfStamper(pdfReader, writer.getContentOutputStream());
			PdfContentByte over = stamper.getOverContent(pageNo);
			BarcodeQRCode barcodeQRCode = new BarcodeQRCode(qrCodeString, 1, 1, null);
			Image qrcodeImage = barcodeQRCode.getImage();
			qrcodeImage.setAbsolutePosition(10,10);
			over.addImage(qrcodeImage);
			stamper.close();
			pdfReader.close();

		} catch (ContentIOException e) {

			e.printStackTrace();
		} catch (IOException e) {

			e.printStackTrace();
		} catch (DocumentException e) {

			e.printStackTrace();
		}
	}
}

Create a separate <bean> at alfresco/src/main/amp/config/alfresco/module/${project-name}/context/ to register action class.

	<bean id="barcodeQRCode-pdf"
		class="com.contcentric.bar_repo.BarcodeQRCodePdfActionExecuter"
		parent="action-executer">
		<property name="serviceRegistry">
			<ref bean="ServiceRegistry" />
		</property>
	</bean>

Create an extension module at share/src/main/amp/config/alfresco/web-extension/site-data/extensions/ in separate or existing xml file.

<config evaluator="string-compare" condition="DocLibActions">
	<actions>
		<action id="alfresco.doclib.action.barcodeQRCodePdf"
			icon="qrcode" type="javascript"
			label="alfresco.doclib.action.barcodeQRCodePdf.label">
			<param name="function">onActionFormDialog</param>
			<param name="itemKind">action</param>
			<param name="itemId">barcodeQRCode-pdf</param> <!-- Repository action id = Spring Bean id -->
			<param name="mode">create</param>
			<param name="destination">{node.nodeRef}</param>
			<param name="successMessage">alfresco.doclib.action.barcodeQRCodePdf.msg.success
			</param>
			<param name="failureMessage">alfresco.doclib.action.barcodeQRCodePdf.msg.failure
			</param>
			<evaluator>alfresco.barcodeQRCodePdf.evaluator.checkPDFFileType
			</evaluator>
		</action>
	</actions>

	<actionGroups>
		<actionGroup id="document-browse">
			<action index="400" id="alfresco.doclib.action.barcodeQRCodePdf" />
		</actionGroup>
		<actionGroup id="document-details">
			<action index="400" id="alfresco.doclib.action.barcodeQRCodePdf" />
		</actionGroup>
	</actionGroups>
</config>

<config evaluator="string-compare" condition="barcodeQRCode-pdf"> ID for the Repository Action that this form is associated with
	<forms>
		<form>
			<field-visibility>
				<show id="page-no" />
			</field-visibility>
			<appearance>
				<field id="page-no"
					label-id="alfresco.doclib.action.barcodeQRCodePdf.form.field.pageNo">
				</field>
			</appearance>
		</form>
	</forms>
</config>

Create a properties file for Label at share/src/main/amp/config/alfresco/web-extension/messages/

alfresco.doclib.action.barcodeQRCodePdf.label=QRCode Pdf
alfresco.doclib.action.barcodeQRCodePdf.msg.success=Pdf have been QRcoded.
alfresco.doclib.action.barcodeQRCodePdf.msg.failure=Problem in qrcoding Pdf, please contact Administrator
alfresco.doclib.action.barcodeQRCodePdf.form.field.pageNo=Page Number

 

Note: You have to add images for the action icon at

share/src/main/amp/web/components/documentlibrary/actions/

Evaluator (Shows action only on PDF document)

Create a separate <bean> with the following code at

share/src/main/amp/config/alfresco/web-extension/
<bean id="alfresco.barcodeQRCodePdf.evaluator.checkPDFFileType"
	parent="evaluator.doclib.action.isMimetype">
	<property name="mimetypes">
		<list>
			<value>application/pdf</value>
		</list>
	</property>
</bean>

iText Library

Add the following dependency to pom.xml to use this library.

<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.0.6</version>
</dependency>

12

aaaa

 

That’s it for now! If you have any feedback or suggestions regarding this approach, we would love to hear from you. We certainly hope that this article will guide you when you need to address QR code document management requirement in Alfresco. Though you must have come across an online barcode generator, we believe that this technique will add value to the Alfresco practice.

What’s more, as Alfresco deals with digitization projects, integration with Ephesoft helps you achieve OCR indexing, i.e. to extract values from the scanned documents and pushing it to the database. The application is widely used in Purchase Document Management and Pharmaceutical Document Management.

ContCentric team would be happy to help! Please feel free to approach us for a free consultation of the high-level requirement understanding.

Thanks for reading. Happy Developing!

Top 8 Reasons Why You Need Alfresco Document Management System

A DMS is a simple way of organizing, securing, capturing, digitizing, and tagging your business content. Document management software can help your business to increase productivity and efficiency, reduce costs, become more organized. A document management system has many benefits that can help your company to reach new levels of success.

Alfresco document management system

Related blog: 9 Points to Remember While Presenting Enterprise Content Management Software

Here are 8 reasons why do you need to consider utilizing Alfresco as the document management software.

1:- Increased Productivity and Efficiency
Document management system inevitably increases both productivity and efficiency. With this software, all of the company’s documents and content are digitally stored in one place, making it easily accessible from any computer with Internet access. A large number of document types can be viewed online without the downloading or opening the document in a different application. Alfresco document viewer can support a range of formats including most office files, images, photographs, scanned documents, video files, and audio files.

2:- Easier Search & Retrieval
With the Using Alfresco software built-in document and data search function, you can access any file – old or new – within seconds, instead of having to search through potentially thousands of folders to find the file. Once the file is found, it’s easy to share the file with other team members or email it to a client. Alfresco uses Solr engine for search by default, which makes this activity strong.

3:- Document Management Audit Trail
Alfresco is an open source document management system that can handle any of your business-critical content. Alfresco services allow users to track who changed what and when.

4:- Open Source
You can deploy Alfresco Community Edition on your own server and set it up without spending money for the license, which is quite similar to the enterprise edition, and good enough for most of the small and medium enterprises. For more powerful, complex and wide-spread use, Enterprise Edition is recommended.

5:- No Vendor Lock-in
When you deploy a proprietary software, you are bound to take the support and further customization services from the same vendor. In open-source technology such as Alfresco, the customers don’t have to rely on the same vendor who customized and deployed the solution. Since the source code is with the customers, they have full liberty to change the Alfresco service vendor in case of dissatisfaction with the earlier vendor.

6:- Scanning Capabilities:
If you have a lot of documents for the scan to create a digital archive of them and that’s where Alfresco DMS shows up as a great help. You can integrate it with the scanner to move the scanned document directly to Alfresco. You can also integrate OCR indexing tools like Ephesoft or Chronoscan to extract the values from the scanned documents and using in Alfresco as metadata. It reduced the human-intervention in data-entry jobs and makes the process faster, more accurate and cheaper.

7:- On-Premise as well as Cloud
Alfresco can be deployed on-premise if the IT infrastructure management is suitable for the client organization. It can be deployed on the open-source stack combination server and database such as Linux and PostgreSQL. Many organizations are now moving towards the cloud to have a seamless experience of the system without having to worry about the IT infrastructure. Alfresco is a cloud-ready platform.

8:- Scalable
One of the biggest advantages of Alfresco is that is a highly scalable as an Enterprise Content Management platform. It has the capacity to cover documents and processes covering different workflows, departments, locations, and functions. An Alfresco deployment starting with a small functionality keeps on spreading through the intersections of different collaborating teams and keeps being adopted by more users.

At ContCentric we have Alfresco certified developers who design and develop a document management system as per your business needs. Do contact us for knowing more about how DMS can improve the digital business flow of your organization.

9 Points to Remember While Presenting Enterprise Content Management Software

I have been selling Enterprise software products and solutions for the last five years. It requires a specific skill set to become a salesperson in this field. One of the key skills is the presentation or demonstration of the software. For the last couple of years, I am selling Alfresco, an Enterprise Content Management and Business Process Management Software.

introduction-3195427__340

In this blog, I have made an attempt to list out some check-points to prepare and deliver a quality demonstration to the prospect. Hope it will be helpful in your journey to make your professional life better.

Related Blog: Top 8 Reasons Why You Need Alfresco Document Management System

  1. Schedule: Schedule the demo in advance to get time to tune your hardware and software right to avoid any surprises. Use tools like Google Calendar to send invites (even if the prospect finds this practice new). This will increase the chances of having a demo with the undivided attention of the client. The time of the meeting should also be such that the group of attendees can sit through the entire session.
  1. Profile of Attendees: Ask your prospect contact point about the profiles of the attendees who are going to remain present. Based on this, you can make a list of expected questions. You will also get to find whether the demonstration will require any extra module or customization to make a better effect on prospects. In my case, the vanilla Alfresco comes up with OOTB features. At times, I take the help of my colleagues to make Alfresco development customization.
  1. Time & Day: Set the demo at the time your prospect is least occupied with his work. I have been requested by clients to carry demo sessions on a weekend, which is good to accept.
  1. Peripherals: Ask your prospect whether a projector or LED TV would be available to have a large screen view. Check whether your laptop is equipped with the right sockets for RGB or HDMI cable. You must ask the prospect to keep the relevant connectors ready and tested or carry them yourself. Since Alfresco is an Enterprise Document Management System, I request the prospects to provide me with sample documents beforehand to give them a better feeling of the end product that they are envisaging.
  1. Internet Connection: Check whether you are going to use localhost (where the software is installed on your machine itself and it doesn’t require an internet connection), or online. In the case of an online demo, it is very important to check whether the server is up and running before you leave for the demo. It is always advisable to have a good internet source devise with you like a mobile phone or a wi-pad. If you do not trust your internet connection, then request the same to the prospect and check feasibility.
  1. Machine: Your laptop should have all the required applications running before you leave for the demo. You should keep the laptop into hibernate or sleep mode. If you dare shut down the laptop to power it on in from of a prospect, it might eat up healthy time. The last thing that can happen is your operating system starts updating as soon as you power it on! Ensure that you are carrying your power cable with you. You must close down all the unwanted applications or web pages.
  1. Start with a PPT: Just not jump into the demo right away. Enterprise Content Management applications are complex to understand for new users and by viewing pages of your application without any background information, the attendees are going to get confused only. It is a strict no-no. I generally prepare a 4-5 slide PPT presentation with the introduction of the company & the software, scope of the demo, business processes that it is going to adhere to, demo user groups details, etc. This PPT will help channel the expectations of attendees.
  1. Use Right Terminology: Depending on the profile of attendees, use the right terminology. You may be technically very sound, but the software jargon is for the programmers and not for functional personnel. Try to be familiar with the terms that your target industry uses more often.

Request you to help lengthen this list with more such tips and tricks. Let’s make the community of salespersons more powerful! Contact us

Happy selling!

Online Form Builder with Alfresco

A number of official communications happen on day to day basis within enterprises which are form based. These are an integral aspect of the Document Management System of the organization. There will be more than one internal or external stakeholders involved while that communication is being distributed across the channel. Some of such communications could be:

1] IT request forms

2] Leave request forms

3] Vendor register

4] Asset specification forms

5] Feedback form for training sessions

6] Employee detail forms

7] QA form

8] Product batch forms

9] Customer information form

10] Checklists for various processes

It is observed that only some companies handle the forms through their Document Management System. More often, there are physical forms/ print-outs which flow around, to say the least. The physical forms have severe limitations and challenges.

Read Alfresco development related blog: Edit Documents Online (ONLYOFFICE Integration)

Common Challenges for Enterprises to Handle Physical Forms:

1] Inefficiency in Tracking Physical Forms: Many of these forms used in the paper format where the employees would take a print of a prescribed form, will fill up with a pen to physically submit it for the approval. The physical paper-trail will lead to inefficiency as there is no system available to track the form.

2] Difficulties in Search Retrieval: The physical forms are stored at separate locations after the process is over. Retrieving the forms for audit or any other query is time-consuming. It may also happen that the physical form is misplaced.

3] Time & Cost Implications: The physical forms take time to pass through the persons involved. The paper cost is also a factor. The storage space and retrieval of the physical document is also a hidden cost.

4] No Analytics: It will be close to impossible to do any analysis on any form type. If the numbers and pattern are not clear, it is difficult to improve the business.

Online Form Builder with Alfresco:

As an Alfresco development company, we have leveraged the Alfresco Enterprise Content Management platform to derive a solution which comes up with a custom form builder where the authorized users can build a form of their choice without coding a single line. The online forms are not readily available in the standard Alfresco installation but we have developed the same through customization. Speaking a bit technical, In Alfresco, forms can be configured in share-custom-config.xml or form-config.xml files, and it requires the intervention of Administrators/Developers, as users cannot configure it.

With our customs form builder solution, no Alfresco development knowledge required to create the forms. It is very simple to build. As shown in the diagram, one needs to create the form type, give the title, build it using different field options like text area, drop down fields, check-boxes, radio buttons, action buttons etc. We can make any field mandatory or optional while preparing the same. Once the format is ready, it can be made available for the users to initiate a process. A response can be collected in form of a document as well as the customized and automated folder structure.

alfresco-form-builder

Why Alfresco for Online Form Builder:

1] Improved Information Capturing: Users fill the information in the available structure only. The information uniformity is maintained. There are reduced chances of human error which occur in the physical forms.

2] Workflow Capabilities: Alfresco has a strong case to cater to Business Process Management. We can create workflows in Alfresco as per the business processes. The user can attach the form to a particular workflow which will proceed to the next user groups as defined.

3] Task Notifications and Reminders: The form submission will be notified to the relevant users within the system. We can also include email notifications. We can set up the reminders if there is no action taken within a prescribed time. That expedites the flow of information within the organization.

4] Digital Signature: Some processes require the form to be signed. Implementing digital signature or electronic signature capabilities addresses the problem with ease.

5] Indexing of the data: We can capture the form fields as metadata and can index them in the system. The indexing can be used in creating a structured approach to the Alfresco document management.

6] Advanced Search: The search is probably the most powerful facility. We can search it using the title, content, metadata, user involved, date of creation or modification etc. This saves a lot of time otherwise being spent in mundane search of physical forms in store-rooms.

So, if your organization is looking for this kind of solution, do contact us. We will understand the depth you require around the use cases and will deliver a solution of your needs.

Thanks for reading this blog!

Alfresco Backup Script for Linux Instance

A number of Enterprises have trusted Alfresco for Enterprise Content Management and Business Process Management since years. IT team of the enterprises or the Alfresco support vendor requires conducting certain operations during Alfresco support or Alfresco content migration activities.

One such operation is taking backup of Alfresco. In this blog, we have described the steps for the same.

alfresco content migratione

First of all, why and when you should backup Alfresco?  There are three such activities before which it is strongly recommended to have a backup of Alfresco production data:

  1. Deploying customization to the Alfresco production instance
  2. Alfresco server migration
  3. Alfresco version upgrade

Backup of Alfresco involves two things:

  1. Content (content stores)
  2. Database (metadata)

Here, we have prepared the Alfresco backup script (for Linux) – which can help you take a complete backup of Alfresco.

This script can also help you retain latest few backups (e.g. last 3 backups). This will help you especially when you are performing backup operations at regular intervals using cronjobs.

#!/bin/bash

### Created by ContCentric IT Services Pvt. Ltd.- http//www.contcentric.com ###

### This script takes following arguments in sequence
### DBUSER: Postgresql databse user
### DBPASS: Postgresql database password
### DBPORT: Port on which your postgresql is running
### SOURCE: Alfresco home path - e.g. /opt/alfresco-community
### DESTINATION: Path to the directory where you want to store backup e.g /home/admin/backup

### e.g. sh alfresco-backup.sh alfresco admin 5432 /opt/alfresco-community /home/admin/backup

### *note - Destination folder must be present
###       - Default database host name is taken 'localhost', you have to change it accordingly

DBUSER=$1
DBPASS=$2
DBPORT=$3
SOURCE=$4
DESTINATION=$5

OUTPUT=$(${SOURCE}/alfresco.sh status postgresql)
POSTGRES_STATUS=`echo $OUTPUT`
CHECK="postgresql already running"
NOW=$(date +"%m-%d-%Y-%H-%M-%S")
FORMAT="%m-%d-%Y-%H-%M-%S"

if [ "$POSTGRES_STATUS" = "$CHECK" ]; then 
CONTENTSTORE=${SOURCE}/alf_data/ 
POSTGRESQL=${SOURCE}/postgresql/ 

echo [$(date +${FORMAT})]"Performing Database Backup" 
echo "--------------------------------------------\n" 

cd / 
cd $DESTINATION 
mkdir "$NOW" 
cd "$NOW" 
mkdir alf_data 
mkdir database 

cd $POSTGRESQL/bin 
PGPASSWORD=${DBPASS} ${POSTGRESQL}bin/pg_dump -h localhost -p ${DBPORT} -U ${DBUSER} > "${DESTINATION}/${NOW}/database/alfresco_db_dump" 
echo [$(date +${FORMAT})]"Performing ContentStore backup" 

echo "--------------------------------------------\n" 
cp -R ${CONTENTSTORE} "${DESTINATION}/$NOW" 
echo [$(date +${FORMAT})]"Backup Completed" 

echo "--------------------------------------------\n" 

#echo [$(date +${FORMAT})]"Deleting old backups" 
### Following two lines are meant to retain only last 5 backups at destination 
#cd ${DESTINATION} #ls -1tr | head -n -5 | xargs -d '\n' rm -rf -f -- 
#echo "--------------------------------------------\n" 

else 

echo [$(date +${FORMAT})]"Postgresql Database Server is not running, aborting alfresco backup" 

fi

Please note:

  • The script is meant for Alfresco with PostgreSQL database hosted on Linux servers.
  • We have not considered the backup of Alfresco Module Packages and alfresco-global.properties file in this script. However, you can take a backup of these files manually before you migrate to new Alfresco instance.

Hope you find this blog useful. Please contact us if you want to know more from us. Special thanks to Francesco Corti and Jeff Potts for suggesting improvements in the code.

    Have a Business Inquiry ?

    Let us collaborate and break yet another barrier to digitalization. Connect with us to discuss the project!





    Let us connect the digital dots!

    We are seeking dynamic professionals and unstoppable talents to craft distinct solutions for our clients to enhance their businesses. Come, join our fair & focused, optimistic & thoughtful world and deliver excellence together.

    Discipline

    Innovation

    Growth