[rules-users] UserTask parameters mapping and gwt-console
Kris Verlaenen
kris.verlaenen at cs.kuleuven.be
Thu Nov 4 00:36:00 EDT 2010
Juan,
You're pretty close to the actual solution ;)
The only problem is that you can't just map values to new work item
parameters and expect them to show up in the task somehow. There is one
parameter called "Content" that can be used to put in data that might be
needed / relevant during task execution. If you for example have only
one variable, you could map that to the Content parameter and access
that from inside the form. In case you have multiple values, we
recommend you use a Map to put the different values in (you can create
that in a simple action node or on-entry action and store it in an
additional variable) and then map that to the Content parameter. Note
that we've tried to make your life easier by making sure that each of
the entries in the map are known as a variable in your form so you
should be able to use your forms as you defined them already.
Now, I know we could also extend our implementation to generate a Map
for all unknown work item parameters and then put that as the Content
(or merge with the Content), would people prefer this approach? But
then again, it's probably only 5 minutes work to create your own version
of the WSHumanTaskHandler and tweak it so it does as I described above,
and then use that as your integration code instead of our default one ;)
Kris
Juan Ignacio Barisich wrote:
> Hi.
> I'm using the gwt-console and trying to set a parameter mapping to
> send some variables from the process to a task.
> First, the variables are setted in the process like:
> <header>
> <variables>
> <variable name="myVariableA" >
> <type
> name="org.drools.process.core.datatype.impl.type.ObjectDataType"
> className="String" />
> </variable>
> <variable name="myVariableB" >
> <type
> name="org.drools.process.core.datatype.impl.type.ObjectDataType"
> className="String" />
> </variable>
> </variables>
> </header>
> The parameter mapping is:
> <humanTask id="3" name="Revisar Solicitud" x="119" y="143" width="162"
> height="48" >
> <work name="Human Task" >
> ...
> </work>
> <mapping type="in" from="myVariableA" to="myVariableA" />
> <mapping type="in" from="myVariableB" to="myVariableB" />
> </humanTask>
> Then I have a ftl file for the task form like:
> <html>
> ...
> <body>
> A value: ${myVariableA}</br>
> Another value: ${myVariableB}</br>
> ...
> </body>
> </html>
>
> With this code, when I select a task and click "View", I get the
> following exception:
> ---------------------------------------------------------------------------------------------------------------------------------------------------------
> org.jboss.resteasy.spi.UnhandledException: java.lang.RuntimeException:
> Failed to process form template
>
> org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319)
>
> org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:230)
>
> org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:206)
>
> org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:360)
>
> org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
>
> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
>
> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>
> org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
>
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> causa raíz
>
> java.lang.RuntimeException: Failed to process form template
>
> org.drools.integration.console.forms.AbstractFormDispatcher.processTemplate(AbstractFormDispatcher.java:104)
>
> org.drools.integration.console.forms.TaskFormDispatcher.provideForm(TaskFormDispatcher.java:111)
>
> org.drools.integration.console.forms.FormDispatcherComposite.provideForm(FormDispatcherComposite.java:50)
>
> org.jboss.bpm.console.server.FormProcessingFacade.provideForm(FormProcessingFacade.java:203)
>
> org.jboss.bpm.console.server.FormProcessingFacade.renderTaskUI(FormProcessingFacade.java:125)
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> java.lang.reflect.Method.invoke(Method.java:597)
>
> org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117)
>
> org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260)
> org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232)
> org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166)
>
> org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142)
>
> org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
>
> org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
>
> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
>
> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>
> org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
>
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> causa raíz
>
> freemarker.core.InvalidReferenceException: Expression myVariableA is
> undefined on line 5, column 39 in Evaluacion.
> freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
> freemarker.core.Expression.getStringValue(Expression.java:118)
> freemarker.core.Expression.getStringValue(Expression.java:93)
> freemarker.core.DollarVariable.accept(DollarVariable.java:76)
> freemarker.core.Environment.visit(Environment.java:209)
> freemarker.core.MixedContent.accept(MixedContent.java:92)
> freemarker.core.Environment.visit(Environment.java:209)
> freemarker.core.Environment.process(Environment.java:189)
> freemarker.template.Template.process(Template.java:237)
>
> org.drools.integration.console.forms.AbstractFormDispatcher.processTemplate(AbstractFormDispatcher.java:87)
>
> org.drools.integration.console.forms.TaskFormDispatcher.provideForm(TaskFormDispatcher.java:111)
>
> org.drools.integration.console.forms.FormDispatcherComposite.provideForm(FormDispatcherComposite.java:50)
>
> org.jboss.bpm.console.server.FormProcessingFacade.provideForm(FormProcessingFacade.java:203)
>
> org.jboss.bpm.console.server.FormProcessingFacade.renderTaskUI(FormProcessingFacade.java:125)
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> java.lang.reflect.Method.invoke(Method.java:597)
>
> org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117)
>
> org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260)
> org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232)
> org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166)
>
> org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142)
>
> org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
>
> org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
>
> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
>
> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>
> org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
>
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> ---------------------------------------------------------------------------------------------------------------------------------------------------------
> Is this a bug? or I'm doing something wrong?
>
> Thanks in advance
> --
>
> *Juan Ignacio Barisich*
> juan.barisich at fluxit.com.ar <mailto:juan.barisich at fluxit.com.ar>
> www.fluxit.com.ar <http://www.fluxit.com.ar/>
> 53 n366, piso 9
> La Plata / Buenos Aires / Argentina
> (54)-221-427-5781 int:308
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
More information about the rules-users
mailing list