0
votes

I am using Business Central (JBPM) and I am trying to use the Custom Task Transform that transforms a Java input Object to an output Object.

As you see, I have installed the work task and the corresponding handler is in place.

enter image description here

enter image description here

enter image description here

In the corresponding data assignments I have set the input and output objects, but when I start the process i get the following.

09:57:05,321 ERROR [org.jbpm.process.workitem.transform.TransformWorkItemHandler] (default task-44) Failed to find a transform

That means that I didn't include the related transformation methods annotated with @Transformer. In the handler class I see that there is the method registerTransformer(Class<?> transformer) that must be called in order to load the transformers.

I don't know how to invoke the previous mentioned method withing Business Central. Is there a specific menu that I should go in order to do the registration?

Thanks in advance!

1

1 Answers

1
votes

If you are talking about this handler: https://github.com/jhonfx/jbpm-examples/blob/master/krisv-jbpm/jbpm-workitems/src/main/java/org/jbpm/process/workitem/transform/TransformWorkItemHandler.java It's a very old one - not maintained for 8 years. It's not part of the core jBPM repo anymore. However, if you really need to use it..

This is how it's used:

        TransformWorkItemHandler transformWorkItemHandler = new TransformWorkItemHandler();
        transformWorkItemHandler.registerTransformer(FileTransformer.class);
        ksession.getWorkItemManager().registerWorkItemHandler("Transform", transformWorkItemHandler);

Unfortunately, this way of calling "registerTransformer" method, can't be easily replicated in RHPAM 7 (jBPM7) where registration of handlers is done in declarative way. Therefore, I would advise to extend this handler, introduce new parameter in constructor (i.e. Class transformer) and register this transformer in the constructor (basically copy paste the code of registerTransformer inside constructor).