cancel
Showing results for 
Search instead for 
Did you mean: 

Feedback request for Activiti/Spring/Alfresco/PHP solution.

jonvargas
Confirmed Champ
Confirmed Champ
Hi there,

We are designing a new workflows based application that will comprise Activiti, Spring and PHP, this way:


        - backend -                                     - frontend -
   [ Workflows Service ]  ——- REST/JSON ——- [ Workflows Portal ]
    (spring + activiti)                               (php + bootstrap)


The backend layer will embed Activiti Engine running inside Spring and expose a REST API to interact with the frontend web portal (somehow similar to Alfresco Explorer plus a lot more of features).

We decided this architecture because it will allow future reuse of the backend services to 3rd party apps. The decision to build an external Web portal is because of

Now I have some feedback requests I'd like to hear from you based on your experience:

<strong>1. Form Rendering</strong>: I know Activiti provides two form rendering approaches, Form Properties and Form Keys. As far as I can understand (please correct me if I am wrong), when using Form Properties the frontend portal will have to parse each task's form properties and render the input/label fields in the user interface, so there will be some kind of dynamic Form Renderer. In case of using Form Keys, the form keys would require a previously created form for each user task.

If so, the Forms Properties would make more sense for me to build a generic BPMS with less code. So, the question is:

<em>Q: ¿Is there some code or previous work that we could see on how to do dynamic form rendering without reinventing the wheel? Not necessary on PHP, any other UI rendering framework would help.</em>


<strong>2. REST API:</strong> Since we expect to build a REST API to expose our workflows' app to the frontend and maybe another systems, and considering that Activiti has a REST API by itself:

<em>Q: ¿Is Activiti REST API mature enough to do everything one would do from Java API? Which constraints would we face? Is Activiti REST API flexible enough to be extended and build a new API with our custom logic on it, or would be better to build a new REST API based on the Activiti Java API?</em>


<strong>3. Alfresco:</strong> We plan to use Alfresco as document repository for process instances. This means we expect that user uploaded documents fall on specific folder paths defined by a mix of process names, instances and tasks identifiers.

<em>Q: ¿What kind of CMIS/ECM integrations and previous work are available on Activiti so we could build this integration easier? Any recommendation on this integration?</em>


Thanks. Great work.
🙂
1 REPLY 1

jbarrez
Star Contributor
Star Contributor
1. Form keys are imho a better approach, as they totally decouple your forms. Since you have a custom REST layer, it's a matter of handling these forms there.

2. Yes. Altough exposing the Java api of activigti through your own rest api isn't hard at all.

3. OpenCmis is the easiest way here.