Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-10430

BPMN Layout issue in Java-Api for gateways

XMLWordPrintable

    • Icon: Bug Report Bug Report
    • Resolution: Won't Fix
    • Icon: L3 - Default L3 - Default
    • None
    • 7.10.6
    • bpmn model api
    • None
    • java-api
      windows

      Creating a BPMN-Model via (Fluent) Java-API there is an layout issue for "closing" gateways.
      If you have different long branches, you have to start with the longest one to achieve a feasible layout.
      In other cases you end up with a little poor layout. (see screenshot in attachment)

      Is there any other possibility to control the layout for these gateway cases?

      Example code (based on Fluent-Api example):

              BpmnModelInstance modelInstance = Bpmn.createProcess()
                      .name(pdtName)
                      .startEvent()
                      .exclusiveGateway("fork")
                      .name("Invoice approved?")
                      //--- Condition with one Tasks
                      .condition("no", "${!approved}")
                      .userTask()
                      .name("Review Invoice")
                      // - Add join Gateway
                      .exclusiveGateway("join")
                      .moveToNode("fork")
                      //--- Condition with two Tasks
                      .condition("yes", "${approved}")
                      .userTask()
                      .name("Prepare Bank Transfer")
                      .camundaCandidateGroups("accounting")
                      .serviceTask()
                      .name("Archive Invoice")
                      .camundaClass("org.camunda.bpm.example.invoice.service.ArchiveInvoiceService")
                      .connectTo("join")
                      .moveToNode("fork")
                      //--- Condition with one Tasks
                      .condition("unknown", "${!unknown}")
                      .userTask()
                      .name("Do something unkown")
                      .connectTo("join")
                      // --- End Task
                      .moveToNode("join")
                      .userTask()
                      .name("Do end work")
                      .endEvent()
                      .name("End")
                      .done();
      
              // Validate Modell
              Bpmn.validateModel(modelInstance);
              ...
      

        This is the controller panel for Smart Panels app

              Unassigned Unassigned
              tkoerner Thomas Körner
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: