This post explains how IDE communicates with ProIV.
VIP uses the ProIV Client, and you would need a new version of the client loaded (ie proiv.exe) for each ProIV Environment and a new PIV file for each one. Even if you wanted to open 2 functions from the same env at the same time you would need 2 ProIV clients running.
This will take up X number of 'slots' on your windows task bar, as they are all new programs.
IDE comes with 2 parts. IDE Client and IDE Server.
IDE Client is written in VB6 and only needs to be open once. When you start IDE Client it will automatically start up the IDE server (which runs in the background) , which is also written in VB6 (soon to vb VB.NET) and basically just has the ProIV Client OCX embedded in it.
IDE then sends info to the IDE Server (via WinSock calls), which then uses the ProIV Client to run IDE functions etc, and the ProIV functions output their results (like all the code for a function if requesting a open function action) into a text file on the server, which is then transferred to the PC via the CLIENT.GET command.
IDE Client then processes the file and retrieves the info it needs.
I did start with using ProIV Bus & Tasks, but I was having too many problems with bugs, and also it was harder for the end user to setup. It was also better for performance to do it with my 'server'.
The reason I made the IDE Server, rather than imbed the ProIV Client in the IDE Client, was because I did not want the ProIV Client to cause me any problems within my main Client, and it did when I had it in the IDE Client. So I keep it separate, in a small server.
The reason I did not use the ProIV GUI was because it was not good enough to make a development environment with. I did try to start with, but I realised that I would have not been able design an environment that was good enough, and that’s when I changed to VB.
As for multiple functions and environments, IDE copes with this within the one instance of the IDE Client.
You have to define all your 'environments' or 'regions' by specifying the following within the IDE Client...
Name of Environment in IDE
Machine Name
Colour to use to identify environment in IDE
TERM String
There are more settings to tweak things, but you can use the defaults for them.
Then in UNIX in your login shell script, you just have to have the following....
BSH example:
if [ "${TERM}" = "proivide" ] then PROTERM=GUIDEV export PROTERM cd /usr/proiv/develop PROPATH=boots export PROPATH PRORUNTYPE=DEV export PRORUNTYPE /usr/bin/pro 004 IDE exit fi
You need to put an IF statement for each environment you have, and specify a new $TERM string for each.
The first IF statement compares the 'TERM String' you define in IDE for each environment.
When defining environments in IDE, you can select one as the default environment.
Then, when you open an item (Function, File, Global Logic) the open screen will give you a combo box allowing you to select another environment to load the item from.
Each item in IDE is displayed in a bar at the top, and has a colour coded bar that indicates what environment it was loaded from (and a tool tip with the environment name)
If the number of items exceeds the screen width, a button appears at the right hand side, to drop down a list box with the other items in.
You just click on the item in the item bar, and IDE immediately displays that item.
Below are some screen shots to illustrate things.....
Rob D.