FlowableRule Exception: no processes deployed with key

Hi. I’m trying to write unit tests for my JavaDelegate but an unable to run JUnit 4 test with FlowableRule.

Exception:

org.flowable.engine.common.api.FlowableObjectNotFoundException: no processes deployed with key ‘myProcess’

Test:

@Test
@Deployment (resources = {"org/flowable/MyProcess.bmpn20.xml"})
public void canStartProcessAndExecuteTask() throws Exception
{
    RuntimeService runtimeService = FlowableRule.getRuntimeService();

    runtimeService.startProcessInstanceByKey("myProcess");
}

BPMN:

<process id="myProcess" name="My Process" isExecutable="true">

    <startEvent id="startEvent"/>

    <sequenceFlow sourceRef="startEvent" targetRef="endEvent" />

    <endEvent id="endEvent"/>

</process>

In the logs I see:

  • — starting DeployCmd --------------------------------------------------------

    Preparing: insert into ACT_RE_DEPLOYMENT
  • <== Updates: 1

    Preparing: insert into ACT_GE_BYTEARRAY
  • <== Updates: 1
  • — DeployCmd finished --------------------------------------------------------
  • — starting StartProcessInstanceCmd --------------------------------------------------------
  • ==> Preparing: select * from ACT_RE_PROCDEF
  • <== Total: 0
  • — StartProcessInstanceCmd finished --------------------------------------------------------

i.e. the DeployCmd inserts to ACT_RE_DEPLOYMENT and ACT_GE_BYTEARRAY, but the StartProcessInstanceCmd selects from ACT_RE_PROCDEF.
Seems like an insert to ACT_RE_PROCDEF is missing from Deploy.

What am I missing?

Thanks.

I’m using flowable 6.2.1 and here my cfg:

<property name="jdbcUrl" value="jdbc:h2:mem:flowable;DB_CLOSE_DELAY=1000;MVCC=TRUE" />
<property name="jdbcDriver" value="org.h2.Driver" />
<property name="jdbcUsername" value="sa" />
<property name="jdbcPassword" value="" />

<property name="databaseSchemaUpdate" value="true" />

Argh! I found my problem. The BMPM file was named bpnm20.xml rather than bpmn20.xml
How devious… :frowning:

1 Like

Thanks for posting this, I didn’t realize the .bpmn20.xml extension was important at all and had just called mine “file.xml”, which also completely didn’t work, was stepping through flowable code in the debugger trying to work out what was going on.

Just a heads up, you can configure the extensions by setting flowable.process-definition-location-suffixes! :slight_smile: