Solved

Is the workflow engine custom or is it a modified version of another workflow engine?

  • 16 March 2022
  • 5 replies
  • 125 views

Userlevel 5
Badge +16

I was trying to google some of the internal workflow entity information and I started to realize that Java itself provides a way of implementing workflows and that there are several third party workflow activity engines.

 

That is to say a way to work on the workflows at a slightly lower level where the XML of the workflow is edited directly. 

The reason I ask is that I am looking for a way to manage not only the workflows but different reusable bits of the workflows like common SQL queries and custom bits of code for building java objects.

If there is a third party engine in use then it becomes much easier to manager these elements.

 

Thanks.

Chris.

icon

Best answer by Amey Karandikar 17 March 2022, 00:48

View original

If you have a question or comment, please create a topic

5 replies

Userlevel 7
Badge +23

I'll defer to @Chris Sunderland .

I’ll also investigate internally.

Userlevel 3
Badge +6

Hi @christopherlecky , the commvault workflow engine is a custom implementation. There are other workflow implementations, in fact in many languages, but they are written for general use cases, hard to extend for commvault specific features and very heavy weight. Many years ago we had evaluated jbpm but was dropped for the same reason.

 

If you want to extract SQL queries out of workflows then you can create shared datasets and call the datasets using rest api. this way if you need to update the sql query then you dont have to update the workflows (unless the input or output is changing)

https://documentation.commvault.com/11.24/essential/106859_creating_shared_data_set.html

 

You could also use datasets to write javascript code if you want to extract it outside the workflow.

 

Userlevel 5
Badge +16

Hi @christopherlecky , the commvault workflow engine is a custom implementation. There are other workflow implementations, in fact in many languages, but they are written for general use cases, hard to extend for commvault specific features and very heavy weight. Many years ago we had evaluated jbpm but was dropped for the same reason.

 

If you want to extract SQL queries out of workflows then you can create shared datasets and call the datasets using rest api. this way if you need to update the sql query then you dont have to update the workflows (unless the input or output is changing)

https://documentation.commvault.com/11.24/essential/106859_creating_shared_data_set.html

 

You could also use datasets to write javascript code if you want to extract it outside the workflow.

 

Thank you Amy this makes sense.

Internally we are using CI/CD so as you might understand the current process of working on workflows has to live outside of the CI/CD system. I have started exporting workflows to track changes directly but as you can imagine this is unwieldy. 

 

You could also use datasets to write javascript code if you want to extract it outside the workflow.

 

This is really interesting, and could potentially solve several problems I am currently working on.

Specifically populating fields in the dynamic input forms, which is what I assume you are referring to.

If this is the case can you provide a snippet, I do not necessarily need an entire primer just something that allows me to integrate the call to the dataset into the workflow.

Thanks much. This is very enlightening. 

Userlevel 3
Badge +6

@christopherlecky  datasets are primarily used for fetching data from commserve db or other supported datasources. There is a type of dataset called script that is meant to manipulate the data before its returned to the caller. How you use it is entirely up to you. You can use it for manipulating workflow inputs or anything else. If you are looking to run programs maybe it makes sense to just encapsulate it into python, javascript, java kind of code and execute it as external program.

If you want we can have a zoom session with @Chris to evaluate your use cases and go over some of these features.

 

Userlevel 5
Badge +16

@christopherlecky  datasets are primarily used for fetching data from commserve db or other supported datasources. There is a type of dataset called script that is meant to manipulate the data before its returned to the caller. How you use it is entirely up to you. You can use it for manipulating workflow inputs or anything else. If you are looking to run programs maybe it makes sense to just encapsulate it into python, javascript, java kind of code and execute it as external program.

If you want we can have a zoom session with @Chris to evaluate your use cases and go over some of these features.

 

That would be awesome. 

I’ll send you a PM regarding timing.