Please advice good practice for BPT to invoke

Please advice good practice for BPT to invoke

  

Hi All,

I am pulling emails from Outlook using Timer and storing it in My Outsystem table.As soon as I create new message in my table, I start a BPT process and that process has one automatic activity. In that activity we do some processing on mail and based on outputs received we send mail contents to other system using REST webservice.

So when I am pulling 100 emails, it starts 100 instances of the process and my CPU consumption is around 97%.

Please advice is this the right way of doing or can we move with some other approach.

Thanks and Regards,

Suraj Borade

Hi,

If the process is only one automatic activity why you need it? Cant you use a timer for it?

You can have a timer to create the emails on Outsystems and than other timer that process emails that need to be process.

Regards,

Marcelo

Hi Marcelo,

Thanks for the reply. So are you suggesting I should have another timer for processing emails when new email is inserted in my table and invoke that timer every time new email is inserted? or shall I run timers separately one for pulling from outlook and one for processing emails? will that improve the performance?

Thanks and Regards,

Suraj Borade

Hello Suraj,

Use a common pattern in those cases that is:

1. Fetch the data from the source and store it.
2. Awake a new timer that will process the new items.

You will have to know wich items to process (probably a status or flag in the entoty), and you will have to create a system to guarantee that you don't have timeouts. You can do this defining a "treshold time", based on the timeout defined for the timer (usually 20 minutes?) that is smaller than it (like, lets say, 15-18 minutes). After every record processed you check if the current time is over the threshold. If it is, you just awake the timer again and end the execution of the current instance of it.

Cheers,
Eduardo Jauch