Git Product home page Git Product logo

camunda-formio-accelerator's People

Contributors

dependabot[bot] avatar mike-vasylchenko avatar softcannery-ltd avatar volkotyk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

camunda-formio-accelerator's Issues

As a developer, I need a single API to request a collection of submissions for a provided collection of Process Instances, so I can do this in one call.

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Start or End Event Listener on the Start Event seems to break the Accelerator

The submission data does not seem to end up in the accelerator's Camunda variable: formio.start.json variable.

The following Hello World.bpmn file is an example that will recreate the problem.

Start Event | Event Listener | javascript expression:

execution.setVariable("variableName", true);

Attached is the Hello World.formio file

Following is the Hello World BPMN XML that demonstrates the issue.

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_05fei88" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.15.1" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.19.0">
  <bpmn:process id="helloWorld" name="Hello World" isExecutable="true" camunda:historyTimeToLive="180">
    <bpmn:extensionElements>
      <camunda:properties>
        <camunda:property name="processType" value="Admin" />
      </camunda:properties>
    </bpmn:extensionElements>
    <bpmn:startEvent id="StartEvent_1" name="Start" camunda:formHandlerClass="org.softcannery.camunda.FormioStartFormHandler" camunda:formKey="embedded:app:formio.html">
      <bpmn:extensionElements>
        <camunda:properties>
          <camunda:property name="formio.variable" value="start" />
          <camunda:property name="formio.outputDataSource" value="start" />
          <camunda:property name="formio.file" value="Hello World.formio" />
          <camunda:property name="formio.form" value="case" />
        </camunda:properties>
        <camunda:executionListener event="start">
          <camunda:script scriptFormat="javascript">execution.setVariable("variableName", true);</camunda:script>
        </camunda:executionListener>
      </bpmn:extensionElements>
      <bpmn:outgoing>Flow_039ivcy</bpmn:outgoing>
      <bpmn:dataOutputAssociation id="DataOutputAssociation_1vlaqwe">
        <bpmn:targetRef>DataStoreReference_0gccua2</bpmn:targetRef>
      </bpmn:dataOutputAssociation>
    </bpmn:startEvent>
    <bpmn:sequenceFlow id="Flow_039ivcy" sourceRef="StartEvent_1" targetRef="Activity_1kueh7l" />
    <bpmn:dataStoreReference id="DataStoreReference_0gccua2" name="start" />
    <bpmn:userTask id="Activity_1kueh7l" name="Show start Data" camunda:formKey="embedded:app:formio.html" camunda:assignee="[email protected]">
      <bpmn:extensionElements>
        <camunda:properties>
          <camunda:property name="formio.variable" value="Activity_1kueh7l" />
          <camunda:property name="formio.inputDataSource" value="start" />
          <camunda:property name="formio.outputDataSource" value="start" />
          <camunda:property name="formio.file" value="Hello World.formio" />
          <camunda:property name="formio.form" value="case" />
        </camunda:properties>
        <camunda:inputOutput>
          <camunda:inputParameter name="Activity_1kueh7l">${formio.start.json}</camunda:inputParameter>
        </camunda:inputOutput>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_039ivcy</bpmn:incoming>
      <bpmn:outgoing>Flow_0blo8ha</bpmn:outgoing>
      <bpmn:property id="Property_130sf3r" name="__targetRef_placeholder" />
      <bpmn:dataInputAssociation id="DataInputAssociation_18ys0mj">
        <bpmn:sourceRef>DataStoreReference_0gccua2</bpmn:sourceRef>
        <bpmn:targetRef>Property_130sf3r</bpmn:targetRef>
      </bpmn:dataInputAssociation>
      <bpmn:dataOutputAssociation id="DataOutputAssociation_1hqnuu1">
        <bpmn:targetRef>DataStoreReference_0gccua2</bpmn:targetRef>
      </bpmn:dataOutputAssociation>
    </bpmn:userTask>
    <bpmn:endEvent id="Event_0ps9rih">
      <bpmn:incoming>Flow_0blo8ha</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="Flow_0blo8ha" sourceRef="Activity_1kueh7l" targetRef="Event_0ps9rih" />
  </bpmn:process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="helloWorld">
      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
        <dc:Bounds x="152" y="82" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="158" y="52" width="24" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="DataStoreReference_0gccua2_di" bpmnElement="DataStoreReference_0gccua2">
        <dc:Bounds x="145" y="143" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="159" y="200" width="22" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_1bkawer_di" bpmnElement="Activity_1kueh7l">
        <dc:Bounds x="240" y="60" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_0ps9rih_di" bpmnElement="Event_0ps9rih">
        <dc:Bounds x="392" y="82" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="DataOutputAssociation_1vlaqwe_di" bpmnElement="DataOutputAssociation_1vlaqwe">
        <di:waypoint x="170" y="118" />
        <di:waypoint x="170" y="143" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_039ivcy_di" bpmnElement="Flow_039ivcy">
        <di:waypoint x="188" y="100" />
        <di:waypoint x="240" y="100" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="DataInputAssociation_18ys0mj_di" bpmnElement="DataInputAssociation_18ys0mj">
        <di:waypoint x="195" y="154" />
        <di:waypoint x="240" y="128" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="DataOutputAssociation_1hqnuu1_di" bpmnElement="DataOutputAssociation_1hqnuu1">
        <di:waypoint x="240" y="128" />
        <di:waypoint x="195" y="154" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0blo8ha_di" bpmnElement="Flow_0blo8ha">
        <di:waypoint x="340" y="100" />
        <di:waypoint x="392" y="100" />
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn:definitions>

Groovy vs. JavaScript

I tried to run a process that uses a javascript event listener and got the following error message:

The process could not be started. :
Cannot instantiate process definition quoteToClose:2:d88fe0a5-4fd5-11ee-8755-0242ac120005: Can't find scripting engine for 'javascript': scriptEngine is null

I assume this means that javascript is not configured for the camunda image packaged with the accelerator. Is there any issue including javascript?
Thanks,

Incomplete README and Wiki/Getting Started leaves me with questions

Is your feature request related to a problem? Please describe.
Questions not answered in the current documentation:

<< Assume, because it's true, that I have 0 (zero) Java knowledge, but am familiar with Docker, Camunda, Form.io, BPMN, DMN separately >>

Deployment of custom models and forms:

  1. Must the .formio and .bpmn (and .dmn) files all gave the same name as in the example?
  2. Conversely, I have a N244.formio and jk-formio-camunda.bpmn generated through the Modeller, but the Deploy Process page doesn't do anything once these files are selected. Is there an error? Is the deployment allowed (ie security passed) given I haven't logged in anywhere? How long should I wait for something to happen?
  3. Trying Camunda Modeller's (rocket) deployment, a http://localhost:8080/engine-rest endpoint is default. I remove the :8080 part to match the documentation, but validation continues to fail. Testing via the browser, nothing happens. Is the rest endpoint enabled? Is it mapped through NginX? Is it allowed, given I haven't logged in?
  4. Installing the releases/deployment plugin, and using the kermit/password credentials, the engine-rest endpoint still fails validation. How can I deploy without using the UI, eg using the file system or CD approach (multi-repo)?

Getting the latest .formio for a task / event in the Modeller:

  1. When does the formio Modeller plugin save set of .formio files across a .bpmn map?
  2. How can I force it to overwrite the specific .formio for a given event or task node?
  3. Sometimes the Form editor doesn't allow the component name or API id to be edited. I reload the whole Modeller as workaround
  4. How does one rename the .formio, data store, and have these "sync" between the Form editor and event / task properties?

Form.IO features configuration:

  1. How does one enable PDF forms?
  2. How does one enable multi-step (Wizard) forms, and dynamically skip steps using field values (if field.value = X then goto page3 else goto page2)
  3. I notice the form editor has a "browse" button. How can one edit a .formio file without going through the event / task's Edit button (bypass the disabled features, UI navigation, limited components, ID fields freezing)? Conversely, if I use Form.IO's full features (as in "bring my own form, created elsewhere"), and "browse" to select into a event / task, will all of the .formio work after deployment, or only what the Modeller plugin currently supports?

Using submissions in the process:

<< Of course I haven't gotten past a deployment, so this is rather thinking ahead based on what's already observed...>>

  1. One of the properties is variable which I assume will be the name of the process variable generated upon a submission and/or start event. I assume this variable will be populated with the JSON of the submission. How does one parse this JSON to extract a specific field value for eXclusive gateway branching, for example?
  2. Is FEEL, Groovy, JavaScript, Spin all enabled in the docker image? Is there a FormIO-aware submission accessor available? Will PDF, multi-step, multiple forms across a .bpmn, and form submissions (simple, pdf, and multi-step) from loop tasks or called sub-processes all access consistently?

Security:

Currently the Docker Compose doesn't require any login. This isn't realistic:

  1. How do I get access to the Camunda Task List, and other web apps?
  2. How do I enable / return Camunda's multi-tenant and multi-user login?
  3. How to I enable SSO or OpenId login via a 3rd provider eg Keycloack or Auth0?
  4. How to I disable the custom / over-simplified UI?
  5. How does the custom / over-simplified UI support X roles can start process A, Y roles do some tasks, z roles do others?

Describe the solution you'd like
Detailed documentation. I would happily update and create documentation as answers come. In the meantime, I'm stuck / blocked.

how to fix the situation where the default Kermit user is locked out

I've somehow managed to lock myself out.

2023-09-12 02:29:33 2023-09-12 06:29:33.447 INFO 1 --- [ main] org.camunda.bpm.spring.boot : STARTER-SB011 Skip creating initial Admin User, user does exist: UserEntity[id=kermit, revision=14, firstName=Kermit, lastName=Kermit, email=kermit@localhost, password=******, salt=******, lockExpirationTime=Tue Sep 12 06:25:54 GMT 2023, attempts=10]

I've tried to reinstall everything and continue to get the above message in the log.

Can you please tell me how to resolve this issue?

Thanks,

add a feature to select from a list of .formio files to associate with a BPMN file

As a modeler using the Camunda Modeler, when I select the option to add a form to a User Task I would like the option to be able to select which .formio file I want to use, making it much easier to use the accelerator for projects requiring multiple bpmn files.

As an example, I have a BPMN process with a file called

process1.bpmn

When I use the modeler plugin provided with the accelerator it will download the forms and resources associated with a formio project (actually a stage) from Form.io Cloud (https://portal.form.io) in to a file in the same directory as process1.bpmn called process1.formio.

Assuming I have a subprocess (call activity or an independent process) in a separate BPMN file called

process2.bpmn

I would like to be able to use the same formio file called process1.bpmn; otherwise if I have process3.bpmn, process4.bpmn ... processn.bpmn it very quickly becomes unmanageable.

As such we need an easy way to have one .formio file that can be used by a collection of bpmn processes.

Please let me know if I can provide any additional detail.

Thanks,
Paul

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.