Retry Scope - RetryInterval Document Problem

From Retry Scope Document:

  • RetryInterval - Specifies the amount of time (in seconds) between each retry.

It says the RetryInterval is the amount of time in seconds. But in the RetryInterval Properties window, it shows the duration in Hours:Minutes:Seconds:Melliseconds format.

Also in the Error and Exception Handling in Studio course, the video shows Condition can have zero or one activity, but I can’t find we can have zero activity mentioned from the document.

Hi @AndrewGuo

Yes you are right about the Retry Interval property

The description and documentation shows that it accepts value in seconds (int32)

image

but it accepts value in the TimeSpan format

image

and by the zero activity it means, that the condition part of Retry Scope can be left empty

When I type 3 in RetryInterval field, it shows 3.00:00:00.
When I select 100 Millisenconds from Choose Duration window, it shows 00:00:00.1000000.
I think the RetryInterval activity need more testing and fix these bugs. And the document need to be updated.

Thats not a bug, the property expects a Timespan, when you type in 3 it converts that to a Timespan (which isn’t 3 seconds as Timespan doesn’t default to seconds, I believe thats 3 days).

The only issue is the online documentation needs updating to correctly indicate it accepts a Timespan and not an int32 representing seconds.

From the Choose Duration panel, I choose 300 Milliseconds, but it shows out as this:
image

  1. It shows wrong milliseconds
  2. It doesn’t clear the 3 I entered before

Really, it’s a bug in the program. When choose duration from the panel,

  1. It should clear any value we entered before
  2. It should shows as 00:00:00:0300
  3. If the type is duration, it shouldn’t accept a number as input. It should show warning when I type 3 into it.

Better solution(fix):

  1. To be compatible with the old version, it can accept a single number but treat it as second. For example, if I type 3 into it, it should be as 00:00:03:0000.
  2. Whenever use “Choose Duration” panel, it must be the final value(overwrite any value we entered)
  3. The millisecond should match the one we choose at the panel

By the way, I’ve reported this bug here

Still not a bug, that form is missing the days, the rest of the time is accurate as it shows the correct value in milliseconds.

Its nothing to do with the retry scope, its how arguments of the type Timespan are handled. You can argue there is a missing feature of days on the ‘choose duration’.

Timespan is a much better datatype to use than int32, this is a good improvement if they changed it. Just learn how to learn and read a timespan.

@Jon_Smith
Correction: Sorry, I checked the timespan document and it’s right number.

image

Sorry, my bad, the milliseconds is the correct number according to the document. I was confused because it’s different format in my other programming language. :blush:

TimeSpan format: [-][d.]hh:mm:ss[.fffffff]
fffffff The optional fractional portion of a second. Its value can range from “0000001” (one tick, or one ten-millionth of a second) to “9999999” (9,999,999 ten-millionths of a second, or one second less one tick).

At least the default value converted to days is not anyone expected. As I said above, it’s better to set the default int32 value as seconds for compatible reason. And this is what everyone used to and expect it to be.

You still aren’t reading the timespan correctly. The end is not seconds, its milliseconds.

00:00:00.300 is 300 milliseconds.
The format is hh:mm:ss.milliseconds

As for it ‘defaulting to 3 seconds’, that makes about as much sense as me saying ‘I want to type in 3 to a DateTime value and for it to correctly figure out, via context, I actually mean 03/07/2022 as it should guess I want to write the day in the current month…’ Maybe for you seconds make sense, but thats extremely contextual.

The solution is simple, learn to use timespans, if this were datesTimes we wouldn’t be having the same discussion.

Hey @Jon_Smith

This indeed sounds like a bug - the duration widget should detect what is already input in the field when you open said widget.

1 Like