Support Portal

for ProcessRobot and WinAutomation

Start a new topic
Answered

Interprocess Communication

Hello Folks,


I am sharing snip of action I am using. I am calling one process from some other process. I want to get an output of that process into calling process.


Is it possible in WinAutomation? Kindly suggest me solution.


Thanks in advance.



Best Answer

Benjamin,

In the Child Process, you need to actually accessing and update  the dos environment create in the Main Process.  ( As child process as its own separate dos environment space

1)  So, In the Parent process:

We will past the Name of the Environment Variable in the Child Process from an Ext:variable reference to a variable in the Main Process, so that we do not need to hard code the environment variable name (from the main process) in the child process

image



2)   So, In the Child process your actually accessing the dos environment variables of your main process - dos environment, so you need to do it like this:

In Child Process:


image



Gayatri,


Are you using WinAutomation or the Enterprise RPA Version of ProcessRobot ?


I).  If your using the Enterprise-class ProcessRobot (for Medium-size and Enterprise-size companies), then you can use user libraries to create the started process within and pass in and out  the various variable types.


II)  If your using WinAutomation, then your limited to passing back Text Data  -  So, No list variables, No datatable variables.


If you use Start Process ( With - Wait for Completion):,


A few methods:

1.  Use the DOS/Windows - Environment Variables - via Get / Set Environment Variable Actions.


2.  Pass the data back by writing the data into a text files in the started process and read the text file of data in the Invoking/Calling Main Process.


3.  Use a Database of your choice create at table in the database to store and retrieve data to be passed back to the main process, from the started process.


1 person likes this

Hello Joseph,


Thank you for information.

Can you please elaborate more about "Use the DOS/Windows - Environment Variables" option.

It seems more feasible than others.


Thanks in advance.

Gayatri Mule

Can you please elaborate more about "Use the DOS/Windows - Environment Variables" option.

It seems more feasible than others.


Gayatri,


Windows has the option of environment variables that are use in windows - batch files and for which you will notice if under windows you were to open a windows command prompt window (located in an Accessories folder of start menu of most window versions or if from the Run option you were to enter cmd.exe).

image


If you were to Type:

Set %ABC%=500

ABC would be created as a Windows Environment variable with the text string value of  "500".

As shown below

image


The WinAutomation - Set Environment Action let you create an Environment variable and the winautomation Get Environment Actions lets you retrieve the Value of an Environment variable.


Since, the environment exists for your windows logged in session, you can use this to pass text string variables.

NOTE:  At end of your Main Process use the Delete Environment action to delete the environment variables that you create so they do not exist for other processes that you may run next (in case you should use the same environment variables names in other processes and also to reduce the size/clutter of your environment).

Hope this helps.

This is a great potential solution to something I've been working on. However, I'm having trouble getting it to work with child processes called by a parent. Here's what I'm working on:

  1. Parent calls child
  2. Child creates environmental variable
  3. Parent retrieves environmental variable
  4. Everyone high-fives
However, the child process is never able to create the variable, it doesn't matter which child. Any tips? What am I missing?

Ben

Environment variables need to be created in the parent. Just set them to an initial default value in parent and reset the value in the child.

Thanks Joseph,

I ran a quick test, and I still can't get it  to work. 


Here's the Parent Process, creating the variable and setting the value to "parent":

image

Here's the child process, changing the child variable to "child"

image


The result is the value set by the parent remaining unchanged:

image


Do you see something I'm doing wrong?

Answer

Benjamin,

In the Child Process, you need to actually accessing and update  the dos environment create in the Main Process.  ( As child process as its own separate dos environment space

1)  So, In the Parent process:

We will past the Name of the Environment Variable in the Child Process from an Ext:variable reference to a variable in the Main Process, so that we do not need to hard code the environment variable name (from the main process) in the child process

image



2)   So, In the Child process your actually accessing the dos environment variables of your main process - dos environment, so you need to do it like this:

In Child Process:


image


clearer - Child Process screen shot

image


Login or Signup to post a comment