TaskBox external system consolidation

Hi, 

We have a case in which we are developing an "Task Manager" module. User can monitor all task list from Outsystems (Human Activity Process) + various external Apps tasklist in 1 single list, using external REST API (to get tasklist, and task action like Approve, etc)


My question is, what is the best approach to consolidate the Tasklist from Outsystems and external apps?

I was thinking about creating this step:

1. Create an Entity named ExternalTask

2. Create a Process named GeneralExternalProcess with a single HumanActivity, and the procees is triggered by ExternalTask creation. 

3. Expose an API named SendTask, so that if external Apps call this API, it will create an ExternalTask record, and trigger a Process instance.


This way, I can monitor all the tasks (internal & External) and can process the task. Is this a good solution?

Or is there a better way to do this? 

Thanks



Hi Henry,

Personally I would opt for a REST API exposed by the external system, so that you can retrieve live data. You typically don't want to store external data in your system, as the syncing becomes more difficult. Of course, if the task list is to be viewed on many different computers, you do want to cache it, but still I would rather ask the external system, than have it send data.

Kilian Hekhuis wrote:

Hi Henry,

Personally I would opt for a REST API exposed by the external system, so that you can retrieve live data. You typically don't want to store external data in your system, as the syncing becomes more difficult. Of course, if the task list is to be viewed on many different computers, you do want to cache it, but still I would rather ask the external system, than have it send data.

Hi, thanks for the answer, yes I also think consuming external API tasklist is a good idea and would opt for this option if there are 2 different task menu types (internal and external).

But in my case, our client wants the task list combined in 1 task list (both internal and external). Is it possible to approach this case by consuming external API and using the OutSystems task box?


This is what we have done so far:

Currently, we created a custom task box function using the advance query (based on https://www.outsystems.com/forums/discussion/6311/bpt-custom-taskbox/) with additional ACTIVITY_INBOX Entity for common additional Fields and can be used for external task common vital information (like transaction id, title, description).  ExternalTask is used to trigger Process Instance so that if an external system consumes "SendTask" API, new tasks will appear on the taskbox, and if the external system closes the task (outside the OutSystems), they need to consume our "CloseTask" API , so the task will not appear on Outsystems task box. But since I am new on OutSystems, I don't know if there is any concern/issue using this approach, or if it is a good practice.


Thanks