i have a couple of questions on Alfresco.
Is Alfresco workflow module, point and click configurable or is programming needed?
Can Visio diagrams be used to set workflow?
Can Alfresco process 1-D and 2-D barcodes?
Regards
vish
Currently Alfresco workflows can be developed using the JBPM Graphical Process Designer, which produces XML files you directly upload into Alfresco. Be aware of the fact that in the future the default workflow engine of Alfresco will change to be Activiti.
Barcode generation/scanning is not supported by Alfresco.
At the Alfresco Devcon in New York (2010) Neil McErlean did a presentation on the Alfresco Action Framework where he demoed an example of working with QR codes.
The presentation can be found at http://www.slideshare.net/alfresco/custom-action-framework
I am not sure where the source code lives for this customization. So while it can't be done OTB, it is a customization that is possible and has been done as a POC.
More recently, the Activiti workflow engine is the default in Alfresco (though jBPM is still available). There is an Eclipse plugin that can be used to do the initial workflow design graphically (and output BPMN XML files).
However, the BPMN is not useful until it has been manually enhanced with Alfresco-specific features such as the assignee (person or group) for a task, the form to use to display the task, and scripts to create and maintain process and task variables, and/or hook into events triggered during the workflow. Further work may be needed to define the task model (the variables that each type of task needs) and to customise the Share user interface to display the tasks correctly to users. See this article for an example.
So although the initial draft design can be done graphically, detailed programming is also needed. The Alfresco training materials for workflows specifically state that end users cannot create new workflows without assistance from a developer.
The exception is "simple workflows", which don't use BPMN or jBPM, and are simple one-step Accept/Reject decisions that can be created by end users.
You can use whatever BPMN tool as long as it generates an xml BPMN xml output so you can import it into Alfresco activiti
Related
I am able to create workflows using SharePoint designer; however, can this (including the adding of actions and conditions) also be accomplished in PowerShell? Is this demonstrated in a book or in some resource online?
Short Answer:
No
Long Answer
Sharepoint 2013 Workflows uses the Workflow Manager service. Windows Workflow Foundation (WF), in turn, is built on the messaging functionality that is provided by Windows Communication Foundation (WCF).
Workflows are a structured collection of workflow "activities," each of which represents a functional component of a business process.
The activities, which are implementations of activity classes, are implemented declaratively by using XAML.
See MSDN
XAML file is like an XML file, so if you want you can edit this file in PowerShell as if it were an XML file, but I think is better to use Sharepoint Designer or Visual Studio.
One of the main driving factors to use a modern work flow engine like Activiti is it’s support for cloud and multiple tenancy. Our current in house work flow engine lacks these features. So, we are planning to replace it with Activiti.
The current thought process is that we would run Activiti as a standalone (independent) application. Our Application (multiple instances) would interact with the Activiti App using the REST APIs.
Since our current work flow engine is embedded, so is its UI. This means that the work flow pages like user forms etc are rendered as part of our application. We want the UI to remain same so that the transitions for the end users is transparent. So, we cannot reuse the Activiti Explorer, let’s say be rendering Explorer pages within our UI or redirecting to Explorer UI.
This means that we would need to create a UI for Activiti within our web application. Our web application is Struts and Applet based. We are open to use HTML5 but not Spring. My thoughts are that we would need to develop a generic UI framework that would render the BPMN user forms. Are there any Struts/Applet based framework available for this. Behind the scene, an Java API would need to be developed that interact with Activiti Engine using the REST APIs.
Any thoughts/references about how I can go about developing the UI.
Even I am looking for custom UI for Activiti. Little googling has given me the below (apart from Vaadin), but did not found much help around using it for Activiti
http://www.jorambarrez.be/blog/2013/09/03/brazos-for-activiti/
https://github.com/minikomi/Bootstrap-Form-Builder
Also it seems the out-of-the-box activiti explorer UI is hard-wired and not customizable - http://forums.activiti.org/content/ui-customization. Does it mean...no one is using Activiti explorer in production?
Guidance from someone who has someone has gone through this cycle and used custom UI will be really helpful.
Another approach could be XForms. For example, Orbeon (http://www.orbeon.com/) is a java-based XForms Engine which can be used as stand-alone server. In addition, orbeon offers a servlet filter to integrate the XForms-Rendering in your own application.
We realized an XForms-Integration with Activiti and it works very well. Hope this helps.
We are evaluating Activiti as a process engine to replace our existing home grown work flow engine. We are quite impressed by the capabilities of Activiti especially related to multi tenancy and REST WS.
However, one of the biggest challenge (and probably blocker) to adopt Activiti would be - How we can run or migrate our existing work flow definitions.
As I mentioned earlier, our work flow solution is a home grown one and doesn't adheres to BPMN specifications. There are thousands of templates out there. We can't simply ask our customers to redefine their templates using Activiti. These definitions are stored in proprietary XML format.
Looking at the level of customization in the templates, it would be very difficult to migrate these definitions to BPMN format.
So, does Activiti provides any hooks to run such custom templates. Alternatively, please share your thoughts about migrating the templates from proprietary format to BPMN format.
I suppose such scenario would be common and other people would have faced the same.
I know I am being very vague with this query but at this stage I don't have specific problems that I can discuss.
One option is implement your own proprietary XML parser and parser handlers. Look at org.activiti.engine.impl.bpmn.parser.BpmnParse and org.activiti.engine.impl.bpmn.parser.handler.AbstractBpmnParseHandler and its descendants.
We did it and worked fine.
Does anyone know a workflow system based on Zend (or php), which is open source and can be integrated in a project? What do I understand as workflow system:
User starts a workflow through submitting some start parameter (e.g. SOAP/HTML request)
Zend runs the workflow in the background (on high server load the operations are lined up in a queue)
Workflow may be build out of several modules/actions e.g. export xml > create pdf > send pdf to user > send email (Backend)
User sees current status of the running workflow online and gets the result as soon as finished through ajax requests to the server. (User Interface)
Admin has a overview of general running workflows (Admin Interface)
Thanks for your hints!
If I understand correctly, the workflow is just a pre-defined set of actions.
I don't believe there is a ready tool for this, but I think you may be interested in running a set of cron jobs from the Zend Framework CLI (e.g. building your own Zend_Tool Provider) and in Zend_Queue.
You might want to use the right tool for such task - eg. Gearman. It is a piece of software solely for the requirements you described. See more here:
http://www.slideshare.net/felixdv/high-gear-php-with-gearman
http://weierophinney.net/matthew/archives/240-Writing-Gearman-Workers-in-PHP.html
You may want to try eZ Components Workflow library: http://www.ezcomponents.org/docs/api/trunk/introduction_Workflow.html
This post describes how to integrate the eZ Components library with Zend:
http://devzone.zend.com/article/156
Other than that I haven't found any real examples of integrating the eZ workflow classes with a Zend MVC application.
Symfony has a component for this. http://symfony.com/doc/current/components/workflow.html
Oro platform has a bundle for this.
https://github.com/oroinc/platform/blob/master/src/Oro/Bundle/WorkflowBundle/Resources/doc/index.md
Otherwise, you could build your own implementation based on maybe the State design pattern. Here is a nice example from Sebastian Bergman.
https://github.com/sebastianbergmann/state
We currently have an application that is based on an in-house developed workflow engine with YAML based DSL. We are looking to move parts of it to Java.
I have discovered a number of java solutions like Intalio, JBPM, Drools Expert, Drools Flow etc.
They appear to be aimed at businesses where the business analyst creates the workflows using a graphical editor and submits them to the workflow engine. They seem geared towards ease of use for non-technical people rather than for developers with a focus on human interaction.
The workflows tend to look like.
Discover-a-file -\
-> join -> process-file -> move-file -> register-file
Discover-some-metadata -/
If any step fails we need to retry it X times. We also need to be able to stop the system and be able to restart it and have it continue from where it was (durable).
Some of our workflows can be defined by a set of goals we need to achieve so Jess's backwards rule chaining sounds interesting but it is not open source.
It might be that what we are after is a Finite State Machine engine or just an Enterprise Service Bus and do everything as JMS queues.
Is there a good open source workflow engine that is both standards-based but also geared towards developers. We don't particular want to use a graphical workflow designer or write reams of XML and it should ideally be in Java or language agnostic (makes REST/Soap calls to external services).
Thanks,
Tom
Both Activiti and Bonita are open source and standard based (BPMN2). See for example this blog post.
Ruote is not standard based but seems close to your DSL approach and runs on a JVM thanks to JRuby.
Intaloi an open source BPM engine it offers a BPMN-support Designer and a BPEL engine. it's written in Java.
Camunda BPM is a developer-friendly Open Source workflow engine that is based on the open standards BPMN 2.0, DMN 1.1 and CMMN 1.1.
While it does come with a comfortable graphical workflow designer it also ships with a fluent API to build workflows programmatically. Camunda is written in Java, but can also be invoked from other languages via its REST API and it can make REST/Soap calls to external services.
jBPM 5 (open source, ASL, BPMN2) is just released and it's the best of Drools Flow and jBPM 4. It's lightweight but it can also integrate deeply with the Drools rule engine to make decisions.
For anyone looking for Python based enterprise grade solution.
Zengine, is GPL3 BPMN workflow based framework with Tornado, Rabbit AMQP, advanced permissions, extensible scaffolding features and more.
Built on top of following major components;
SpiffWorkflow: Powerful workflow engine with BPMN 2.0 support.
Tornado: Tornado is a Python web framework and asynchronous networking library.
Pyoko: Django esque ORM for Riak KV store.
RabbitMQ: Fast, ultrasharp AMQP server written with legendary Erlang lang.