DigitalState / Platform-legacy

DigitalState Platform: Digital Public Services Platform for Government
http://www.digitalstate.ca/
Other
8 stars 7 forks source link

Re-Introduce Formio Forms support #33

Open StephenOTT opened 7 years ago

StephenOTT commented 7 years ago

Re-introduce Formio forms support to allow BPM process (Start Events and Human Tasks) (DS Services) to use Formio Forms.

WIP Sequence flow Representation:

title OroBAP-Formio-Camunda Integration
User 1 -> OroBAP: Activate Service
OroBAP ->+ Camunda: Request Start FormKey for Process
Camunda ->- OroBAP: Start Form Key
OroBAP ->+ Formio: Request Form Schema using Form Key
Formio ->- OroBAP: Form JSON Schema
OroBAP -> User 1: Form JSON Schema (Formio Directive)
User 1 ->+ OroBAP: Submit Form
OroBAP ->+ Formio: Dry Run Validation of Formio
Formio ->- OroBAP: Dry Run Results
alt Dry Run == Validation Errors
        OroBAP -> User 1: Error Messages
else Dry Run == No Validation Errors
    OroBAP -> Camunda: Submit Data
    Camunda -> OroBAP: Submission Response
    OroBAP ->- User 1: Submission Response
end

screen shot 2017-01-25 at 11 59 12 am


Variant Version for showing differences between Symfony Form and Formio Form loads. Version assumes a non-error response in the form. (no error handling is shown in the diagram).

title Authentication Sequence

User 1 -> OroBAP: Activate Service
OroBAP ->+ Camunda: Get Form Key for Process
Camunda ->- OroBAP: Return Form Key

alt Symfony Form Key
    OroBAP -> OroBAP: Load Symfony Form
    OroBAP -> User 1: Return Rendered Form
    User 1 ->+ OroBAP: Submit Form
    OroBAP ->+ Camunda: Start Process Instance
    Camunda ->- OroBAP: Return Instance Response
    OroBAP ->- User 1: Return Form Response
else Formio Form Key
    OroBAP ->+ Formio: Get Formio Form
    Formio ->- OroBAP: Form Schema
    OroBAP -> User 1: Return Form Schema
    User 1 ->+ OroBAP: Submit Form
    OroBAP ->+ Formio: DryRun Validation
    Formio ->- OroBAP: Validation Response
    OroBAP ->+ Camunda: Start Process Instance
    Camunda ->- OroBAP: Return Instance Response
    OroBAP ->- User 1: Return Form Response
end

screen shot 2017-02-13 at 10 55 19 am

sadortun commented 7 years ago

@StephenOTT it would vbe very nice if this could be used without Camuda. It might not solve your use case, but I am sure other users might like this :wink: