Documents Module. Alpha 1

Hi All!

Well, I’m closing my participation in the GsoC 2014, and in this post I will try to show all the things we’ve reached with my mentor Mauricio Salatino, aka salaboy.

First at all, I want to thank the GSoC organization members for giving me (and many other students around the work) this possibility and obviously to Mauricio for all the help and guidance provided not only for this project, but for how to work in an open source project. I’m very happy as this work was the way to get really inside the open source world and I’m interested to continue with this project and others to give my support to the community.

I have made a simple video to demo what can be done in the new module I created, that I expect it will continue being improved and help many people:

You can see here the new documents panel, where we are able to manage the documents stored in a CMIS server, in this case we are using Magnolia version 4.5.12 (Magnolia 5 does not support CMIS yet). This component includes the navigation panel which enables you the CRUD actions, and the configuration panel to set the configuration parameters required in the CMIS connection.

The key part of this integration, is that these documents can be used in our process instances. In a human task, you can upload documents, using  a new Variable Persistence Strategy, in the same CMIS server.

To enable this feature, you just need to modify the META-INF/kie-deployment-descriptor.xml as is described below:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<deployment-descriptor xsi:schemaLocation="http://www.jboss.org/jbpm deployment-descriptor.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <persistence-unit>org.jbpm.domain</persistence-unit>
   <audit-persistence-unit>org.jbpm.domain</audit-persistence-unit>
   <audit-mode>JPA</audit-mode>
   <persistence-mode>JPA</persistence-mode>
   <runtime-strategy>SINGLETON</runtime-strategy>
   <marshalling-strategies>
       <marshalling-strategy>
           <resolver>reflection</resolver>
           <identifier&gt
org.jbpm.console.ng.documents.backend.server.marshalling.CMISDocumentMarshallingStrategy
          </identifier>
       </marshalling-strategy>
   </marshalling-strategies>
   <event-listeners/>
   <task-event-listeners/>
   <globals/>
   <work-item-handlers/>
   <environment-entries/>
   <configurations/>
   <required-roles/>
</deployment-descriptor>

Here, another video to show how it is working!

 

Try it!

Do you want to try it? The code is here:

https://github.com/nicolasegomez/droolsjbpm-build-bootstrap/

https://github.com/nicolasegomez/jbpm-console-ng/

 

There are some steps required to set up everything the first time, so I will describe it with some good detail.

Downloading Magnolia

 

Installing magnolia and the CMIS module.

  • Extract magnolia-tomcat-bundle-4.5.12-tomcat-bundle.tar.gz, into a folder (e.g. magnolia-4.5.12)
  • Extract magnolia-module-cmis-1.0-bundle.tar.gz  content (all the jar files) inside magnoliaAuthor libs (magnolia-4.5.12/apache-tomcat-6.0.32/webapps/magnoliaAuthor/WEB-INF/lib/)
  • Also, manually add in the same folder 2 dependencies which are not included in the bundled: jaxb-api-2.1.jar and jaxb-impl-2.1.11.jar.
  • Execute ./startup.sh script which is in magnolia-4.5.12/apache-tomcat-6.0.32/bin folder.
  • Enter to localhost:8080 and press “Run the Web update on the author instance
  • Press “Start Install …
  • Wait for end of installation and press “Startup Magnolia”.
  • Magnolia installed, now you can access using default user and password: superuser:superuser

For more information you can check magnolia documentation:

https://documentation.magnolia-cms.com/display/DOCS45/Magnolia+4.5+Documentation

Running jbpm-console with the documents module

Configuring your project

As I mentioned earlier in the post, to enable the integration between the task forms and CMIS, you have to configure it in your kproject. Just include this file in your META-INF folder:

https://raw.githubusercontent.com/calcacuervo/jbpm-playground/6527ee4a5e44d7077251953db8d0aafe09dacced/translations/src/main/resources/META-INF/kie-deployment-descriptor.xml

 

And that’s it. This is the first step for making this new module more and more useful for jbpm users. If you have some ideas to share, just leave some comment, and also post in the jbpm community. I have seen that new ideas are always welcome by community members and commiters! Thanks a lot for reading, and stay tuned, this blog will continue sharing the evolution of this and more ideas!

 

Thanks,

Nico.

Documents Module. Alpha

Hello again!

I am here, writing again to show some of the progress I have been able to implement until now.

I have written the first integration with the CMS using CMIS protocol, using Apache Chemistry, for this integration. This will allow to change the CMS used for any that implements the CMIS protocol.

I have created a new module that is used in the console, which can be found here:

https://github.com/nicolasegomez/jbpm-console-documents

and also a fork of the jbpm console code

https://github.com/nicolasegomez/jbpm-console-ng

What I implemented until the moment is all the integration to CMIS, creating a facade service to consume it:

https://github.com/nicolasegomez/jbpm-console-documents/blob/master/jbpm-console-ng-documents-backend/src/main/java/org/jbpm/console/ng/documents/backend/server/CMISFacadeService.java

And also, the screens to consume and navigate the CMS tree, through the folders and download the content of the documents.

 

You can see how it is looking in this video:

 

I have work in progress for adding and removing documents, as well as editing its properties.

For next week, I am planing the finish this, and talk with salaboy about how to do this integration inside the process, so, stay tuned!

 

Thanks,

Nicolas

Use cases

Hi all,

The idea of this new post is describe a bit the integration points that I will develop during the GSOC 2014, to start to think about what will be covered and what could be done in a future.

First, a short description of the proposed project

jBPM allows you to improve your business in different ways. You can run the full BPM cycle using the new KIE Workbench functionalities. It’s often required that your business is around documents that needs to be stored, to be read by users of the system and take decisions about this in your processes.
The idea is to provide the possibility of upload documents from the KIE Workbench, taking into account user roles and rights, and then store them in process variables. This enable to the user to use the document properties inside custom tasks and human tasks.

Integration Points

Documents section

First of all, there will be a new section in the Workbench called “Documents”. This will be the entry point for managing the documents inside the workbench without having to log in in another system.

New Documents Section
This section will be available for only allowed users.

Document List

Under this section, there will be a section with a Document List. The user will see all the documents, filter by folder, name, and the different fields. In addition user will be able to add and remove files.

Documents List

Add a new Document

In the document list page, there will be a link for “Add Document”.
There, an editor for upload a new document will appear, with all the fields for the document properties, metadata and an upload file chooser.
The user will be able to choose the path where it will be uploaded, the name of the doc, etc.

Add Document Form

Remove document

The document list table will have the possibility of deleting documents.

Using Document in Processes

Business processes may need to use the documents which will be managed in the documents section.
First of all, there will be the possibility of using documents in the forms. This will include:
– Uploading documents from a human task.
– Showing documents into a human task.
– Showing and editing document metadata.

A typical scenario would be the following:

Example Process

In this process, a candidate will apply for a job position, and his application will go along all a set of reviews and interviews, ending in a proposal and a signed contract.

In the input form of the process, the user will put its name and upload his CV as a document.

image00

After this, the candidate request will reach some of the HR people, who will be able to see this CV along with other information provided and take some decision on what to do next.

image01
In this process, we could also use documents for the proposal, and the contract. The hired employee would sign the contract and then upload this in a document form, which will be stored as a backup in the CMS!

This CV could also be filled with metadata that the HR people fills. This will end up saved all with Magnolia, or the configured CMS.


 

Cool, isn’t it?

Then, the documents will be able to be attached to tasks, and also to processes. For audit purposes, you will be able to see not only documents in tasks, but in which processes each document is used.

Any feedback or idea is welcome! Please, just write me!.

So, this is the presentation of the work I have started doing for the GSOC 2014. I really hope that this helps jBPM Console users with its requirements, I think it will. I will be writing about the progress next week, so keep posted!

Thanks,

Nico

Hello World!

I am starting this blog to share my experiences that may be useful to other people. And the kick off for this, is the announce that I have been selected to participate in Google Summer of Code 2014 program. You can see my name listed in the accepted project list!

I am really happy for this opportunity and I expect that this idea can be very helpful for the jBPM community, and I also expect that more people of my country gets to know this program and can apply in the future. It is really important to help the open source community to grow, contributing whatever and from the place you can.

About the project I will be working in the next few months, I will provide more details in a new post in the next days. Basically, there is a common requirement to integrate a BPM System with some Content Management System. You may want to have for example, your digital documents in some a CMS to be used there, and you want to be able to manage them inside the business processes, upload them, take a look at them and take decisions based in this content.

The idea in this project in provide a module in the jBPM Workbench for integrating with a CMS in a generic and pluggable way so that any CMS could be used, using the capabilities of CMIS. The initial integration will be done with a powerful and cool product, which is also open source, which is Magnolia.

My mentor for this project will be Mauricio Salatino, aka salaboy. He has been building the new jBPM Workbench, he has extensive knowledge, not only technical, about jBPM and Drools world, and he will be able to help me with this integration.

If you have some opinion or ideas, please share them with me, as it will enrich this integration. Next post will have some ideas about the screens and integration points I have in mind, that I will be working with my mentor.

 

Thanks a lot and I will come back soon!
Nico.