Skip to main content
Question

Timeliness Check with parameters not working (v 15.4 on prem)

  • May 4, 2026
  • 4 replies
  • 55 views

Forum|alt.badge.img+2

Hello, Ataccama Community.  I am hoping you can help me figure this out.  I am trying to create a timeliness check.  The objective would be to have a general DQ rule that accepts an update date and then allows the user to configure a minimum delay and a maximum delay.  

The rule would find the number of days from today and the update date, then take the maximum of that value.  If the max of that delay is mroe than the maximum parameter set, then it should return a “MAJOR DELAY” indication.

Here is my challenge.  It does not seem to work when I use the parameter.  It only works when I use a hard coded value for the “maximum delay” in the test.

I am hoping someone can help me figure it out.

 

4 replies

BrianF
Ataccamer
Forum|alt.badge.img+3
  • Ataccamer
  • May 7, 2026

Hi,

Have you tried this with the condition as Delay Value > 3, as opposed to Delay Max > 3?

Also, I would suggest ensuring that the date formats are correct. Note that today() returns current date, not current datetime. The function now() provides datetime.

I would also ensure this by adding a condition before MAJOR_DELAY, which captures anything not in the right format, and/or nulls.

Hope that helps!
Brian


Forum|alt.badge.img+2
  • Author
  • Data Voyager
  • May 7, 2026

@BrianF - Good ideas and definitely will do that.  But, it doesn’t even work when I am testing it when I 100% know there are no incorrect formats, etc.

Also, not every record will be updated each time, so I definitely need to know the maximum delay for the whole table.  That is what will tell me if the table is delayed, not if a record is delayed.


Forum|alt.badge.img+2
  • Space Explorer
  • June 5, 2026

Hi, 

From what I can see here when using max it’s not actually doing anything because the DQ is run per row so max will only return the value for that single row. 

I can’t quite tell exactly why there was an error when using the parameter since all the information is not in the screen shots. 

You might need to look at using an aggregation rule to search through all records rather than row by row.


Forum|alt.badge.img+1
  • Ataccamer
  • July 1, 2026

​Hi Ayoung,

I was able to reproduce the same behavior you described, and agree with both your conclusion and Sam's.

When a rule parameter is used in the aggregation comparison, the rule fails, whereas the same expression works with a hard-coded value. It appears that rule parameters are not supported in aggregation expressions.

For example: 

  • maximum(delay) > 2 evaluates successfully.

However, replacing the literal with a rule parameter:

  • maximum(delay) > max_delay_in_days (or even toInteger(max_delay_in_days)) causes the rule to fail.

I also verified that the issue is not related to the calculated variable itself. The following expression works correctly:

  •  delay = toInteger(dateDiff(date_to_test, today(), "DAY")) and the aggregation: maximum(delay) also works as expected.

This suggests that the issue is specific to using rule parameters in aggregation expressions, rather than to the calculated variable or the aggregation function itself.

Kind regards,

Katia