This article is based on the presentation we gave at the FourPees/callas/axaio VIP Event 2019.
A variable and scalable flow
That’s a wish we all have!
Make our workflow as variable as possible, so that we do not have to make changes all the time, and allow it to take into account new use cases without recasting the flow.
The case study
We have a customer who has expressed this wish, particularly because he very often has new requests to which he must respond. In addition, the idea is to have a (internal) customer front-end that is simple and where users do not have to enter dozens of parameters each time.
We have taken this case study here and simplified it in order to make the demonstration easier.
Our workflow is obviously based on Enfocus Switch, our preferred workflow tool!
We know that pdfToolbox is able to vary processes, especially through the process plans. We will therefore choose this tool for PDF processing. Indeed, it is possible to inject variables into the process plans that will be used to trigger or not specific actions (color conversion, outline fonts, cropping, etc.).
For the front-end, we used a web page that allows to send the job to the workflow. We used the Switch WebServices module to create a customized page. As explained above, the user will simply have to choose a process type (customer-defined name) to perform all the processing.
Now, regarding the variable part, we could have used XML files, JSON, etc. to submit the information to pdfToolbox, but we chose a simpler approach, and especially much easier to update… the use of a database 😉
For each process type (use case), we have a list of available processes and it is then just about to enter values in each column to create a specific process plan!
Modify a use case? Just change the values in the database’s table.
Add a new use case? Just add a new line in the database’s table.
Eternity- Royalty-free music from https://audiohub.fr – License: CC BY (https://creativecommons.org/licenses/by/4.0/)
You really like it, but you find it difficult to implement? You don’t know where to start?
Do not hesitate to contact us and we will see together how to support you on such a project.
Still having questions? Post a comment below!