How can my main robot invoke another robot outside the main robots folder?

Hello everyone,

I’m currently having a problem that I could not find a solution for on the Web.

We are building a robot that is supposed to do a certain amount of tasks and then invoke a different robot and wait for it to return a certain value.

The problem we are facing is, that we are not able to invoke the other robot, as it is located outside of the main robots folder.

So the folder structure is as follows:

Root folder > main robot folder > mainRobot.xaml
Root folder > collection of invoke robots > specific invoke robot > specificRobot.xaml

The action “Invoke Workflow file” seems to be the wrong one, since it requires a relative path and as I need to go up a directory, that’s not going to work.

The action “Invoke Process” seems to be a better option, but it also seems that it only works with the Orchestrator which we are not using. This might change but this is unclear as of now.

Any hints on how to achieve what I need?

Cheers

Hello @richard2e ,

You can use the Invoke Process to run the process which is there in local. It helps to execute process either in local or in orchestrator.

Thanks for your reply @Rahul_Unnikrishnan, would you mind explaining how to use the “Invoke Process” activity for my usecase? I have tried everything I could think of, but was not successful.

UiPath Studio constantly returns the error that it can not find the requested “process” in the provided folder.

Cheers

Hi @richard2e

Please try creating a bat file and call al the end of the first process.

Thanks

Hello @richard2e ,

I think you cannot use Invoke process to call the locally stored packages if your studio is connected to Orchestrator.

" the default package location for the Robot and Assistant, C:\ProgramData\UiPath\Packages . Projects published here automatically appear in the Assistant. The option is not available if Studio is connected to Orchestrator."

If its not connected, maybe you can try to give the above path as the folder and give the package name.

If its not working you can try executing another project .xaml file using UiRobot.exe as @prasath_S mentioned. It will directly call the UiRobot by passing the xaml file as argument.

Hello @prasath_S and @Rahul_Unnikrishnan, thank you for your suggestions. I guess the .bat file route does not support passing variables to the invoked process as well as receiving a value on return (if it failed or not). If so, then this option will not work for us.

As for the Folder, I do have my Studio connected to Orchestrator, but I am not using the Orchestrator. I tried putting the filepath of the folder in the respective field, but even though the path to the folder as well as the filename are correct, it couldn’t run it.
If the problem comes from being connected to the orchestrator, how would I disconnect my Studio from the Orchestrator?

And one final question, what is Studio refering to when it mentiones that it can not find said “process” in the provided Folder. Is that the name of the .xaml file I am trying to call? I haven’t found anything usefull to that quetion.

In any case, thanks a lot for helping!

Cheers

Hello @richard2e ,
Usually it will search for the Orchestrator folder to which Studio is connected. Process name is the package that we are publishing to orchestrator. But from local path its not executing.

@loginerror @ovi Please assist here

Thanks for clarifying @Rahul_Unnikrishnan, this is very unfortunate as we have to develop separate processes independently from each other and one of them calling the others when certain requirements are met.
We strictly want to avoid having them as subfolders of this main process since they become part of this project then and this makes individually developing the other processes impossible.

It feels a bit shortsighted from UiPath to not consider a workflow like this, even though the main focus clearly seems to be the Orchestrator. We might get one in the future but until then, we have to make this work without.

I have also tried logging out from the account on my machine to see if this is sufficiently “disconnected” from orchestrator but that has not solved the issue as expected.

Regards

Hello @richard2e ,

You can refer to the below post. There was a discussion happened on the same topic and I forgot to update you on this. Appologies. :slightly_smiling_face:

I think below post can give you a clarity.

1 Like

@Rahul_Unnikrishnan thank you for linking this post. :slight_smile:
But I am not sure that we have the same usecase.

We do not want to run processes in parallel, only on at a time, so when the main process calls a sub-process, the main process should wait (blocking) until the called sub-process terminates.
And we are also not publishing the processes locally to the assistant, we are calling the main process from windows directly by launching an automated script.

Cheers

@richard2e Here are the similarity in the working of activities, Invoke process and Run Parallel process.

I hope both can trigger the process in the orchestrator and in the local. So in the local means, it should be there in the uiPath assistant and there should not be any connection with the Orchestrator.

@Rahul_Unnikrishnan your solution still involves publishing the robots in the assistant, and as far as I know, we are not doing that. So I would need a solution that works without this, really just calling a process that sits in a specific folder, no assistant or orchestrator involved.

Cheers