I have an automation that takes a timeout value as in Input argument to Main.xaml. The Robot is supposed to wait for something and proceed after this wait time.
The value of this Int32 argument is set to a default value of 3 minutes. In production, it is supposed to be set to 30 minutes.
When deploying the Automation as an Unattended Process, I have overridden this input argument to 30 minutes. Despite doing that the Robot still waits only for 3 minutes when the automation is triggered by a scheduler
I then went back to the project and redeployed it after removing the default value and then set a value of 30 minutes in the Orchestrator Process. And this time it worked and the Robot waited for 30 minutes.
I read this documentation and I don’t think I am missing anything other than the fact that the input argument is an Int32
I can’t really believe this is happening. I created a simple test flow containing 2 arguments (Int32 and String) with default values. When I override one or both of them in Orchestrator, it works.
But when I do the same thing with my actual Process, it does not!
In both these processes, I am using the Int32 value in The Main.xaml and not passing it into any other sub-flow.
The only difference between the two is:
The test process uses a Sequence and the actual Process is a Flow (restricted screen shot below)
The Actual flow has got 17 input arguments that are of type Int32 and String
When I override the in_Wait_Time_Mins to 30 from the default 5 does not work.
However, if I republish the package after removing that default value and then set it in the Orchestrator to 30, it works.
I created the prototype project from the same studio instance as the one in which I created the actual project. But I will compare the package versions and update that info here.
Ok, I am going around in Round-robin fashion and come back to this issue. I have found a solution. But that said, I do not recall ever doing this before.
This happens when jobs are run from Orchestrator but not when testing in Studio.
Situation #1:
Let us suppose I have an input argument named in_SomeArg
In Studio, I don’t get any complaints if I do this via an Assign Activity:
in_SomeArg = in_SomeArg.Trim.toUpper
But when running from Orchestrator, if I override this input argument when setting up the Process, it will not accept the overridden value. Instead it simply runs with the design-time static value.
Workaround Situation #2:
I updated my project to do this in order to overcome the problem:
sLocalStringVar = in_SomeArg.Trim.toUpper
iLocalNumVar = in_TaskId
This works when I run from Studio. And it also works after I override the input arguments in the Orchestrator process and then run it as an Unattended Automation.
So, the questions are:
Do we have to clone the input argument into local variables if:
they have to be modified within the automation (Ex. Trim, toUpper etc.) ?
if they have to be overridden in an Unattended Process deployed to the Orchestrator?
Trying to recall as the issue was reported a while back and the Studio version being used was 2019 or 2020. We also went through a Data Center migration and update later last year.
Maybe it is not happening in the 2022.* version, which may explain why you aren’t able to reproduce this behavior.
Would it be possible to try out the same test using a Sequence in Main.xaml instead of using a flow chart?