kiegroup / jbpmmigration

Migration tool for process definitions from jbpm 3 PDL to standard BPMN2
http://community.jboss.org/wiki/jBPM5migrationtoolproject
16 stars 15 forks source link

insuranceMainProcess: Fix mapping of sub-process variables (dataInput / dataOutput) #34

Closed eschabell closed 13 years ago

eschabell commented 13 years ago

Process is mapping enough to display, but the variable mappings in the process-state-bpmn.xsl file are not yet right. We need to take into account for more than one variable (current status is one var only) and fix input/output mapping.

eschabell commented 13 years ago

Investigating why we are dropping more than one passed context variable, seems we are just pasting each context variable onto the back of the first and only variable we map. This give a really strange mashup of our variables. ;-)

We need to use the 'variable' xslt sheet but expand it out to map the entire variable so we can iterate over them loops and create them.

This is the original variables:

variable access="read,write" name="requestId" mapped-name="requestId" variable access="read,write" name="ORIGINAL_REQUEST" mapped-name="ORIGINAL_REQUEST"

It is being turned into bpmn2:

dataInput id="Initialize_and_validate_Request_requestIdORIGINAL_REQUESTInput" name="requestIdORIGINAL_REQUEST" dataOutput id="Initialize_and_validate_Request_requestIdORIGINAL_REQUESTOutput" name="requestIdORIGINAL_REQUEST"

Needs to be:

dataInput id="_4_ORIGINAL_REQUEST_SUBInput" name="ORIGINAL_REQUEST_SUB" dataInput id="_4_requestIdSubInput" name="requestIdSub"

Working on this last night, just need to apply-templates like transitions are done in a fork, but then make them variables. ;-)

eschabell commented 13 years ago

Sorted out the problem and this fix reveals another 'migration strategy' issue, namely that passing a context variable of the same name through the process to be mapped into sub processes is not possible or we need to ensure that their id's in bpmn2 are unique.

For now we position that it will fail the bpmn2 validation if the context variables are the same throughout.

I have adjusted this process flow to use unique names in process.