IMIXS ADMIN CLIENT 2.1.1
HIDING ACTIVIES FROM USER
Today I stumbled into an issue with hidden workflow activities. Normally you can simple hide an activity to unauthorized users by adding an application specific access role to the property section ‘Visiblity and Access’. For example you can add the role ‘org.imixs.ACCESSLEVEL.MANAGERACCESS’ to allow only Managers to use this workflow activity.
But this seems not to work. The reason is that the Imixs Modeler stores the read-access restriction into the property ‘namReaders’. And this is no read-access property per default. Only the property ‘$readAccess’ will be recognized by the workflow system to protect workitems.
But the solution is quite simple. You only need to add the field name to the Imixs EntityService Bean declaration from the ejb-jar.xml descriptor:
<ejb-name>EntityServiceBean</ejb-name> <ejb-class>org.imixs.workflow.jee.ejb.EntityServiceBean</ejb-class> <session-type>Stateless</session-type> <env-entry> <description>Additional Reader Field for Workflow Model</description> <env-entry-name>READ_ACCESS_FIELDS</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>namreaders</env-entry-value> </env-entry> </session>
No the property ‘namReaders’ is treated by the Imixs Workflow System as a reader field.
I think we will change the Imixs Modeler in the next release to support also the default field ‘$readAccess’. So no further configuration will be necesary here.
MYSQL AND BLOB FIELD SIZE
Using the Imixs Workflow together with mysql can lead into a problem with large data stored in a single workitem. The Database schema use by the Imixs Workflow will be generated automatically by the OR-Mapper (e.g. Toplink, Eclipslink). This is all done well. But the Data table ‘EntityData’ used by the Imixs Workflow engine contains the column ‘itemcollection’. This column will store all undstuctured data. And in some cases this data can become very large. For example when storing a attachment into a workitem the field can be serveral MB in size. The default field type in mysql is ‘BLOB’. And this fieldtype is restricted to a maximum size of 64KB. So the Imixs workflow engine can not store large workitems. This will result into a SQL Execption.
To avoid this problem the Datatype can be changed from ‘BLOB’ to ‘MEDIUMBLOB’ (=16MB) or ‘LONGBLOB’ (=4GB). This can be done with the MySQL Admin Client or from the MySQL command line.
ALTER TABLE <Tabellenname> CHANGE <columnname> <columnname> LONGBLOB;
To change the datatype for a example database ‘imixsdb’ use the following command:
ALTER TABLE ENTITYDATA CHANGE ITEMCOLLECTION ITEMCOLLECTION LONGBLOB;
HOW TO SKIP VALIDATION IN A JSF FORM
The Imixs Web-Tools providing a set of business components which can be integrated easily in any modern JSF based Web application. This makes it easy to develop workflow forms in a fast and easy way where the users input can be fully controlled by the Imixs Workflow. Continue reading “HOW TO SKIP VALIDATION IN A JSF FORM”
BPM SOLUTION FOR GLASSFISH AND JBOSS
Imixs Software Solutions GmbH presents with the Open Source project “Imixs Workflow” a Business Process Management (BPM) solution for Glassfish and JBoss Application Servers. Glassfish and JBoss are open source application servers based on the Java EE specification. These server platforms are widely-used by a lot of small and medium companies. The Imixs JEE Workflow components can be seamlessly integrated into Glassfish 2.1, 3.0 and JBoss 5.0 and 6.0 infrastructure. Thus the project provides a highly scalable and robust BPM solution. The Imixs workflow project makes use from the powerful component framework provided by the Java EE specification. All Imixs Workflow Java EE components are implemented as Enterprise Session and Entity EJBs. This makes it very easy to integrate these components in a new or existing enterprise software project. Continue reading “BPM SOLUTION FOR GLASSFISH AND JBOSS”
BPM AND JSF
Today I added a new example page illustrating how to integrate the Imixs JEE components into a JSF application. As the Imixs Workflow project provides a full featured Workflow Management Systembased on EJB and JSF components, it’s not so difficult to extend a JSF application with BPM functionality.
Read more about this at: http://www.imixs.org/jee/examples/jsf_example.html
SWITCHING JDK FOR GLASSFISH APPLICATION SERVER
Since the latest Imixs Workflow release 2.1.0 we recommend to run Imixs Workflow Applications on Glassfish Application Server using JDK 1.6.
If you use Linux Debian as your Server platform – which is a nice choice – the upgrade from JDK 1.5 to JDK 1.6 is a little bit tricky. So make sure to pay attention to the following points:
- Java 1.6 for debian 4 (etch) is available in backports, so just add backports.org to sources.list:
>vi /etc/apt/sources.list
and add the following line to the list of repositories:
deb http://www.backports.org/debian etch-backports main contrib non-free - Next you can install the JDK 1.6 with following command
>aptitude update
>aptitude -t etch-backports install sun-java6-jdk - Now you be able to switch to the new java version using the following command:
>update-alternatives –config java
You will see an output like this:
There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-6-sun/jre/bin/java 63 auto mode 1 /usr/lib/jvm/java-1.5.0-sun/jre/bin/java 53 manual mode * 2 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode Press enter to keep the current choice[*], or type selection number:
now you can choose the new JDK.
After you have upgraded the Java Version you can check the version number with
>java -version
You should now see something like this:
java version "1.6.0_07" Java(TM) SE Runtime Environment (build 1.6.0_07-b06) Java HotSpot(TM) 64-Bit Server VM (build 10.0-b23, mixed mode)
UPDATE THE GLASSFISH ENVIRONMENT
After you have changed the JDK on your OS you need to change also the JDK setting used by the Glassfish Server.
The JDK which is used to start the Glassfish Server is configured in the file
GLASSFISH_INSTALL/config/asenv.conf
Edit the file with
>vi asenv.conf
and change the line
AS_JAVA="/usr/lib/jvm/java-1.5.0-sun-1.5.0.14/jre/.."
into
AS_JAVA="/usr/lib/jvm/java-6-sun/jre/.."
Now you can restart Glassfish Server which will now run with the new JDK 1.6.
IMIXS WORKFLOW RUNS ON JBOSS APPLICATION SERVER
The Imixs JEE Workflow components are successfully tested on the latest release of JBoss Application Server V 5.1.0.GA (JBossAS 5). The JBoss Application Server is the one of the most widely used Java application servers on the market.
The Imixs JEE Workflow is a full featured Workflow Management System (WFMS) based on the Java EE5 specification and fulfills the requirements to a scalable, transactional, robust and simple deployable Java EE Workflow System.
JBoss 5 for the Java EE5 codebase fully complies with the Java EE5 specification. So the JBossAS 5 is an ideal platform for Workflow Management Systems based on the Imixs Open Source Workflow.
The Imixs JEE Project site provides additional Installation guides for JBoss and also informations about deployment strategies to get best results running the Imixs Worklow on JBoss Application Server.
Read more about the Imixs Java EE Workflow System.
ORACLE-FIX 2.0.1
Running the latest stable release of the Imixs JEE Workflow components (imixs-workflow-jee-impl-2.0.1) on a Oracle database can lead into a situation where users did not find any entities or can process new workitems.
The reason for this issue is a query optimizer used in one of the core EJBs. The Problem did not occur on MySQL Database Pools but on Oracle Database Pools.
To fix this problem please use on oracle based workflow systems the following hot fix release:
imixs-workflow-jee-impl-2.0.1-ORACLE-FIX
This patch is available in the subversion repository in /branches. Please let us know if you have any problems. The bug will be fixed in upcoming new 2.0.2 release. Please see also details at Issue Tracker Issue #55.