Issue with connectors when importing cmmn

Hello,

I recently switched to using the cloud version of the designer.
I modelled my cases, but when importing them back in the modeler, some of the connectors disapear.
Is anybody else having this issue ? any idea how to work around it ?

Hi @fdawagne

Can you share your case model xml so we can try this out and look for the problem?

Regards
Bert

Hi @BertMatthys !

Here is the pasted CMMN file (as the extention .cmmn is not allowed here as an upload).

I don’t know if the error occurs during the export, or the import.

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/CMMN/20151109/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:flowable="http://flowable.org/cmmn" xmlns:cmmndi="http://www.omg.org/spec/CMMN/20151109/CMMNDI" xmlns:dc="http://www.omg.org/spec/CMMN/20151109/DC" xmlns:di="http://www.omg.org/spec/CMMN/20151109/DI" xmlns:design="http://flowable.org/design" targetNamespace="http://flowable.org/cmmn" design:palette="flowable-work-case-palette">
  <case id="CMMN_OPTeMAP_PREP" name="CMMN OPTeMAP PREP" flowable:initiatorVariableName="initiator" flowable:candidateStarterGroups="flowableUser">
    <casePlanModel id="emapPrep" name="Préparer le marché" flowable:formFieldValidation="false">
      <extensionElements>
        <flowable:default-menu-navigation-size><![CDATA[expanded]]></flowable:default-menu-navigation-size>
        <flowable:work-form-field-validation><![CDATA[false]]></flowable:work-form-field-validation>
        <design:stencilid><![CDATA[CasePlanModel]]></design:stencilid>
      </extensionElements>
      <planItem id="planItemfaireApprouvDossLancTask" name="Faire approuver le dossier de lancement" definitionRef="faireApprouvDossLancTask">
        <itemControl>
          <repetitionRule flowable:counterVariable="repetitionCounter">
            <extensionElements></extensionElements>
          </repetitionRule>
        </itemControl>
        <entryCriterion id="cmmnEntrySentry_3" sentryRef="sentrycmmnEntrySentry_3"></entryCriterion>
        <entryCriterion id="cmmnEntrySentry_17" sentryRef="sentrycmmnEntrySentry_17"></entryCriterion>
        <exitCriterion id="cmmnExitSentry_9" sentryRef="sentrycmmnExitSentry_9"></exitCriterion>
      </planItem>
      <planItem id="planItemvalidPassLancTask" name="Valider le passage à la phase de lancement" definitionRef="validPassLancTask">
        <itemControl>
          <repetitionRule flowable:counterVariable="repetitionCounter">
            <extensionElements></extensionElements>
          </repetitionRule>
        </itemControl>
        <entryCriterion id="cmmnEntrySentry_6" sentryRef="sentrycmmnEntrySentry_6"></entryCriterion>
        <exitCriterion id="cmmnExitSentry_15" sentryRef="sentrycmmnExitSentry_15"></exitCriterion>
      </planItem>
      <planItem id="planItemelabDossLancTask" name="Élaborer le dossier de lancement" definitionRef="elabDossLancTask">
        <itemControl>
          <repetitionRule flowable:counterVariable="repetitionCounter">
            <extensionElements></extensionElements>
          </repetitionRule>
        </itemControl>
        <entryCriterion id="cmmnEntrySentry_11" sentryRef="sentrycmmnEntrySentry_11"></entryCriterion>
      </planItem>
      <planItem id="planItemgoBackFromFaireApprouvDossLancTask" name="Retour arrière" definitionRef="goBackFromFaireApprouvDossLancTask"></planItem>
      <planItem id="planItemgoBackFromValidPassLancTask" name="Retour arrière" definitionRef="goBackFromValidPassLancTask"></planItem>
      <sentry id="sentrycmmnEntrySentry_3" name="Entry criterion">
        <extensionElements>
          <design:stencilid><![CDATA[EntryCriterion]]></design:stencilid>
        </extensionElements>
      </sentry>
      <sentry id="sentrycmmnEntrySentry_17">
        <extensionElements>
          <design:stencilid><![CDATA[EntryCriterion]]></design:stencilid>
        </extensionElements>
      </sentry>
      <sentry id="sentrycmmnExitSentry_9">
        <extensionElements>
          <design:stencilid><![CDATA[ExitCriterion]]></design:stencilid>
        </extensionElements>
      </sentry>
      <sentry id="sentrycmmnEntrySentry_6" name="Entry criterion">
        <extensionElements>
          <design:stencilid><![CDATA[EntryCriterion]]></design:stencilid>
        </extensionElements>
      </sentry>
      <sentry id="sentrycmmnExitSentry_15">
        <extensionElements>
          <design:stencilid><![CDATA[ExitCriterion]]></design:stencilid>
        </extensionElements>
      </sentry>
      <sentry id="sentrycmmnEntrySentry_11">
        <extensionElements>
          <design:stencilid><![CDATA[EntryCriterion]]></design:stencilid>
        </extensionElements>
      </sentry>
      <humanTask id="faireApprouvDossLancTask" name="Faire approuver le dossier de lancement" flowable:assignee="${initiator}" flowable:formFieldValidation="false">
        <extensionElements>
          <flowable:task-candidates-type><![CDATA[all]]></flowable:task-candidates-type>
          <design:stencilid><![CDATA[HumanTask]]></design:stencilid>
          <design:stencilsuperid><![CDATA[Task]]></design:stencilsuperid>
        </extensionElements>
      </humanTask>
      <humanTask id="validPassLancTask" name="Valider le passage à la phase de lancement" flowable:assignee="${initiator}" flowable:formFieldValidation="false">
        <extensionElements>
          <flowable:task-candidates-type><![CDATA[all]]></flowable:task-candidates-type>
          <design:stencilid><![CDATA[HumanTask]]></design:stencilid>
          <design:stencilsuperid><![CDATA[Task]]></design:stencilsuperid>
        </extensionElements>
      </humanTask>
      <humanTask id="elabDossLancTask" name="Élaborer le dossier de lancement" flowable:assignee="${initiator}" flowable:formFieldValidation="false">
        <extensionElements>
          <flowable:task-candidates-type><![CDATA[all]]></flowable:task-candidates-type>
          <design:stencilid><![CDATA[HumanTask]]></design:stencilid>
          <design:stencilsuperid><![CDATA[Task]]></design:stencilsuperid>
        </extensionElements>
      </humanTask>
      <userEventListener id="goBackFromFaireApprouvDossLancTask" name="Retour arrière">
        <extensionElements>
          <design:stencilid><![CDATA[UserEventListener]]></design:stencilid>
          <design:stencilsuperid><![CDATA[EventListener]]></design:stencilsuperid>
          <design:display_ref_in_diagram><![CDATA[true]]></design:display_ref_in_diagram>
        </extensionElements>
      </userEventListener>
      <userEventListener id="goBackFromValidPassLancTask" name="Retour arrière">
        <extensionElements>
          <design:stencilid><![CDATA[UserEventListener]]></design:stencilid>
          <design:stencilsuperid><![CDATA[EventListener]]></design:stencilsuperid>
          <design:display_ref_in_diagram><![CDATA[true]]></design:display_ref_in_diagram>
        </extensionElements>
      </userEventListener>
    </casePlanModel>
  </case>
  <cmmndi:CMMNDI>
    <cmmndi:CMMNDiagram id="CMMNDiagram_CMMN_OPTeMAP_PREP">
      <cmmndi:CMMNShape id="CMMNShape_emapPrep" cmmnElementRef="emapPrep">
        <dc:Bounds height="400.0" width="741.0" x="365.0" y="120.0"></dc:Bounds>
        <cmmndi:CMMNLabel></cmmndi:CMMNLabel>
      </cmmndi:CMMNShape>
      <cmmndi:CMMNShape id="CMMNShape_planItemfaireApprouvDossLancTask" cmmnElementRef="planItemfaireApprouvDossLancTask">
        <dc:Bounds height="93.80000000000001" width="140.0" x="610.0" y="263.0"></dc:Bounds>
        <cmmndi:CMMNLabel></cmmndi:CMMNLabel>
      </cmmndi:CMMNShape>
      <cmmndi:CMMNShape id="CMMNShape_cmmnEntrySentry_3" cmmnElementRef="cmmnEntrySentry_3">
        <dc:Bounds height="28.0" width="18.0" x="601.0" y="289.0"></dc:Bounds>
        <cmmndi:CMMNLabel></cmmndi:CMMNLabel>
      </cmmndi:CMMNShape>
      <cmmndi:CMMNShape id="CMMNShape_cmmnEntrySentry_17" cmmnElementRef="cmmnEntrySentry_17">
        <dc:Bounds height="28.0" width="18.0" x="703.0" y="342.8"></dc:Bounds>
        <cmmndi:CMMNLabel></cmmndi:CMMNLabel>
      </cmmndi:CMMNShape>
      <cmmndi:CMMNShape id="CMMNShape_cmmnExitSentry_9" cmmnElementRef="cmmnExitSentry_9">
        <dc:Bounds height="28.0" width="18.0" x="631.0" y="342.8"></dc:Bounds>
        <cmmndi:CMMNLabel></cmmndi:CMMNLabel>
      </cmmndi:CMMNShape>
      <cmmndi:CMMNShape id="CMMNShape_planItemvalidPassLancTask" cmmnElementRef="planItemvalidPassLancTask">
        <dc:Bounds height="93.80000000000001" width="128.0" x="824.0" y="263.0"></dc:Bounds>
        <cmmndi:CMMNLabel></cmmndi:CMMNLabel>
      </cmmndi:CMMNShape>
      <cmmndi:CMMNShape id="CMMNShape_cmmnEntrySentry_6" cmmnElementRef="cmmnEntrySentry_6">
        <dc:Bounds height="28.0" width="18.0" x="815.0" y="296.0"></dc:Bounds>
        <cmmndi:CMMNLabel></cmmndi:CMMNLabel>
      </cmmndi:CMMNShape>
      <cmmndi:CMMNShape id="CMMNShape_cmmnExitSentry_15" cmmnElementRef="cmmnExitSentry_15">
        <dc:Bounds height="28.0" width="18.0" x="843.0" y="342.8"></dc:Bounds>
        <cmmndi:CMMNLabel></cmmndi:CMMNLabel>
      </cmmndi:CMMNShape>
      <cmmndi:CMMNShape id="CMMNShape_planItemelabDossLancTask" cmmnElementRef="planItemelabDossLancTask">
        <dc:Bounds height="80.0" width="126.0" x="395.0" y="263.0"></dc:Bounds>
        <cmmndi:CMMNLabel></cmmndi:CMMNLabel>
      </cmmndi:CMMNShape>
      <cmmndi:CMMNShape id="CMMNShape_cmmnEntrySentry_11" cmmnElementRef="cmmnEntrySentry_11">
        <dc:Bounds height="28.0" width="18.0" x="483.0" y="329.0"></dc:Bounds>
        <cmmndi:CMMNLabel></cmmndi:CMMNLabel>
      </cmmndi:CMMNShape>
      <cmmndi:CMMNShape id="CMMNShape_planItemgoBackFromFaireApprouvDossLancTask" cmmnElementRef="planItemgoBackFromFaireApprouvDossLancTask">
        <dc:Bounds height="30.0" width="30.0" x="568.0" y="386.0"></dc:Bounds>
        <cmmndi:CMMNLabel></cmmndi:CMMNLabel>
      </cmmndi:CMMNShape>
      <cmmndi:CMMNShape id="CMMNShape_planItemgoBackFromValidPassLancTask" cmmnElementRef="planItemgoBackFromValidPassLancTask">
        <dc:Bounds height="30.0" width="30.0" x="784.0" y="386.0"></dc:Bounds>
        <cmmndi:CMMNLabel></cmmndi:CMMNLabel>
      </cmmndi:CMMNShape>
    </cmmndi:CMMNDiagram>
  </cmmndi:CMMNDI>
</definitions>

While experimenting, i found some connectors disapeared while other didn’t :
connectors that are placed automatically always disapear, while connectors I place manually disapear only some of the time.

Hi @fdawagne

It seems to be an issue with the export, as there are no connectors in the cmmndi:CMMNDI tag in the xml.

I haven’t been able to reproduce the issue yet. Can you give detailed steps to reproduce, starting from creating a new case?

Regards
Bert

Hi @BertMatthys !
I’ve manage to concistently reproduce the error :

  1. In your CMMN, drag and drop a new task (t1). While its name is highlighted, rename it, and press enter.
  2. From t1, create a second task (t2). Rename it in the same way.
  3. Change their ModelId. Press enter to confirm changes
  4. Drag and drop a User event listener (e1), aligning it with t2.
  5. Create an entry criterion from e1 to t1.
  6. Create an exit criterion from e1 to t2.
  7. Edit the properties Name and ModelId of e1, using Tab and Enter keys to navigate and confirm changes.
  8. Save and download the model.

Hi @fdawagne

Thank you for the information. We were able to reproduce it and we will work on fixing this.

Regards
Bert

thank you for share with us.

Hi @BertMatthys,

Is there any ETA for the fix? Can we track its progress somewhere?

Thanks.

The workaround is to manually edit the exported cmmn model and add the missing planItemOnPart elements to the respective sentry element.

<cmmn>
    <planItem id="planItemTaskA" name="Task A" definitionRef=".."></planItem>
    <planItem id="planItemTaskB" name="Task B" definitionRef="..">
        <entryCriterion id="entrySentryA" sentryRef="sentryEntrySentryA"></entryCriterion>
    </planItem>
    <sentry id="sentryEntrySentryA">
        <extensionElements>
            <design:stencilid><![CDATA[EntryCriterion]]></design:stencilid>
        </extensionElements>
        <planItemOnPart id="sentryOnPart_entrySentryA" sourceRef="planItemTaskA"> <!-- this one is missing after the export -->
            <standardEvent>complete</standardEvent>
        </planItemOnPart>
    </sentry>
</cmmn>

Hi,
We found another workaround : do the basic modeling in the cloud version, import your cmmn in the old modeler to edit the ids, then reimport your cmmn in the cloud modeler (to compensate for the export issues in the old modeler).