Skip to main content
Question

Wait / Delay in datamappers

  • July 10, 2026
  • 2 replies
  • 36 views

Forum|alt.badge.img+10

Is it possible to pause an ETM datamapper or otherwise to introduce a delay before the next processing step takes place, either directly inside a mapper, within an iteration loop, or a filter expression?

I've been able to achieve this using a simple busy loop like the example below:

var start = new Date().getTime();

while ((new Date().getTime() - start) < 30000) {
// wait 30 seconds
}

However, while testing this I've noticed that CPU usage can become quite high for what is effectively just a delay (which I suppose is expected with a busy wait).

My concern is that on a busy ETM installation, tying up CPU resources in this way could potentially have consequences elsewhere in the system.


While this seems to be functional for this limited job I'm wondering whether there is any ETM functionality that I'm not aware of which would allow a less resource-intensive way of introducing a delay.

The reason i need this is to allow a physical process initiated by an HTTP datamapper to complete before a second datamapper runs to trigger an RPA to check the result. 

 

Any advice or recommended approaches would be appreciated. Thanks

2 replies

Forum|alt.badge.img+6
  • Sidekick (Customer)
  • July 15, 2026

Hi Richard,

We do this in various ways however, I think the most practical way which would be less resource demanding in my opinion is to provide the RPA team an actual stage in the process. By doing this your previous stages will complete and then your RPA stage can trigger your second mapper although, you will need to create a new channel if you go with this route. For us though, we trigger RPA processes without the ETM.


SGrant89
Hero (Employee)
Forum|alt.badge.img+6
  • Hero (Employee)
  • July 15, 2026

Hi Richard,

Is the requirement here to handle what is an asynchronous operation in a synchronous manner?

  1. Datamapper makes call to HTTP API which kicks off some background process
  2. Datamapper calls back to HTTP API to check on status

And you are looking to have the 2nd Datamapper in the chain here effectively wait until the status of the kicked off task is done.

If this is the case, then the “Do While” looping mode added in 1.12 could perform this: https://wiki.axiossystems.com/assyst25R2Wiki/index.php/Integrations:assystETM_1.12_-_Channel_Configuration#Do_While_Mode

The 2nd Datamapper would be configured to repeatedly call the API to fetch the status of the task, with a configured max attempts and delay between attempts, until the task is done, and then move onto the 3rd Datamapper in the chain to continue your workflow.