• Icon: Feature Request Feature Request
    • Resolution: Fixed
    • Icon: L3 - Default L3 - Default
    • 7.12.0, 7.12.0-alpha5
    • None
    • engine
    • None

      I've worked with the "Activiti-family" of process engines for over 10 years: from jBPMN to Activiti, Flowable and recently Camunda. So far I've always written my own form handling functionality using custom commands.

      My intention now is to work with instead of around the workflow engine as much as possible, so I'm trying to use the built-in form functionality this time. The most obviously way to do this seems to be using a ProcessEnginePlugin that configures a custom FormEngine. This worked quite well for providing customized rendering. But then I ran into some roadblocks.

      Since form rendering and submission are each other's dual, I expect these concerns to be located in the same class. In reality, whereas FormEngine is responsible for rendering, it's the FormHandler that's responsible for submission. This is quite awkward for several reasons:

      • the functionality that is common to rendering and submission is needed by these two classes.
      • the FormHandler.submitFormVariables method has no access to the FormData.
      • the only way to provide a custom FormHandler is by putting the camunda:formHandlerClass attribute on every task.

      Sure, I can find ways around these issues, but it quickly becomes quite messy.

      Am I missing something, or is this just the result of organically grown functionality over the years? I would be happy to propose (and implement) some improvements if that's the case.

        This is the controller panel for Smart Panels app

            [CAM-10622] Custom form handling

            Marcus Klimstra created issue -
            Marcus Klimstra made changes -
            Description Original: I've worked with the "Activiti-family" of process engines for over 10 years: from jBPMN to Activiti, Flowable and recently Camunda. So far I've always written my own form handling functionality using custom commands.

            My intention now is to work _with_ instead of _around_ the workflow engine as much as possible, so I'm trying to use the built-in form functionality this time. The most obviously way to do this seems to be using a ProcessEnginePlugin that configures a custom FormEngine. This worked quite well for providing customized rendering. But then I ran into some roadblocks.

            Since form rendering and submission are each other's dual, I expect these concerns to be located in the same class. In reality, whereas FormEngine is responsible for rendering, it's the FormHandler that's responsible for submission. This is quite awkward for several reasons:
            - the functionality that is common to rendering and submission is needed by these two classes.
            - the FormHandler.submitFormVariables method has no access to the FormData.
            - the only way to provide a custom FormHandler is by putting the camunda:formHandlerClass attribute on every task.
            Sure, I can find ways around these issues, but it quickly becomes quite messy.

            Am I missing something, or is this just the result of organically grown functionality over the years? I would be happy to propose (and implement) some improvements if that's the case.
            New: I've worked with the "Activiti-family" of process engines for over 10 years: from jBPMN to Activiti, Flowable and recently Camunda. So far I've always written my own form handling functionality using custom commands.

            My intention now is to work _with_ instead of _around_ the workflow engine as much as possible, so I'm trying to use the built-in form functionality this time. The most obviously way to do this seems to be using a ProcessEnginePlugin that configures a custom FormEngine. This worked quite well for providing customized rendering. But then I ran into some roadblocks.

            Since form rendering and submission are each other's dual, I expect these concerns to be located in the same class. In reality, whereas FormEngine is responsible for rendering, it's the FormHandler that's responsible for submission. This is quite awkward for several reasons:
            - the functionality that is common to rendering and submission is needed by these two classes.
            - the FormHandler.submitFormVariables method has no access to the FormData.
            - the only way to provide a custom FormHandler is by putting the camunda:formHandlerClass attribute on every task.

            Sure, I can find ways around these issues, but it quickly becomes quite messy.

            Am I missing something, or is this just the result of organically grown functionality over the years? I would be happy to propose (and implement) some improvements if that's the case.
            Yana Vasileva made changes -
            Assignee New: Yana Vasileva [ yana.vasileva ]
            Yana Vasileva made changes -
            Link New: This issue is related to CAMTEAM-31 [ CAMTEAM-31 ]
            Yana Vasileva made changes -
            Resolution New: None [ 10100 ]
            Status Original: Open [ 1 ] New: Closed [ 6 ]
            Tassilo Weidner made changes -
            Resolution Original: None [ 10100 ]
            Status Original: Closed [ 6 ] New: Reopened [ 4 ]
            Yana Vasileva made changes -
            Fix Version/s New: 7.12.0 [ 15387 ]
            Yana Vasileva made changes -
            Resolution New: Fixed [ 1 ]
            Status Original: Reopened [ 4 ] New: Resolved [ 5 ]
            Remaining Estimate New: 0 minutes [ 0 ]
            Original Estimate New: 0 minutes [ 0 ]
            Yana Vasileva made changes -
            Assignee Original: Yana Vasileva [ yana.vasileva ]
            Status Original: Resolved [ 5 ] New: Closed [ 6 ]
            Miklas Boskamp made changes -
            Fix Version/s New: 7.12.0-alpha5 [ 15544 ]

              Unassigned Unassigned
              marcusk Marcus Klimstra
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: