I had great success with Rocket BlueZone. It's relatively new but I found the support to be great! It does just about any type of Terminal Emulation you need. I personally used it with Pega Robotics with 3270, Unix, and AS/400.
I have already added windows application - bluezone emulator, and a HLLAPI application that is connected to the winhllapi DLL of my bluezone emulator. The issue I am facing is when I start interrogating winhllapi, it throws me an error. I can only successfully interrogate it by launching the bluezone emulator first. But still have issue on identifying fields since the Select Field and Save as Field are both greyed out.
Try these steps to launch the Bluezone VT emulator from the automation:
1. Configure and save the BZ session(with the connection parameters you need) on your local system before, and pass the pass the path of the saved session in the Arguments property of the Bluezone adapter with the "/f" as a prefix (eg : /f "C:\Users\xxxxxxxxx\Documents\BlueZone\Config\xxxxx.zvt")
2. Pass the path of the BZVT .exe file in the Path property.
3. Keep the WorkingDirectory property set to the installation folder path of Bluezone.
4. Set StartOnProjectStart as "True".
These steps should invoke Bluezone whenever the automation starts. Then you need to set the HLLAPI adapter as follows:
1. DllName should have the path of the whlapi64.dll file (mostly found inside the BZ installation folder).
2. You can have your custom screen definition set.
3. Set the Session ID as A.
4. StartOnProjectStart as False.
As for the Select Field and Save as Field, it will remain grayed out. You need to select the area as either region or partial screen.
Thank you so much for that very detailed response Ratul, that was really helpful!
When you mean the Select Field and Save as Field will remain grayed out, does that mean for Bluezone "fields" are not supported? Because I have seen it being used in Attachmate on the Text Adapter Webinar on PEGA Academy.
Also appreciate if you can help me with the below scenario. I have set a region to read a string on the bluezone screen (regUserID), that if blank or empty will show a dialog box to double check the login input and if not blank will move to the next step. While debugging, if I leave that field as blank or empty, it is correctly resulting as "True" on stringUtils1. But setting the login ID with a valid value (in this case "A4C" as you can see below when I hover the mouse on the result of the Text) also resulted as "True" on stringUtils1 while it should have resulted as "False" as "A4C" is neither null nor empty.
"When you mean the Select Field and Save as Field will remain grayed out, does that mean for Bluezone "fields" are not supported? Because I have seen it being used in Attachmate on the Text Adapter Webinar on PEGA Academy." ------- Yes it works for Attachmate, but strangely for BZ it doesn't. You might want to contact the Bluezone / Pega folks on this.
As for the regUserId, I guess the Region Match Rule is creating the trouble. If the Match Rule of that field is set as blank it will not match when there is any value in there. So for a resolution you can try creating 2 separate controls of regUserId (one for value another for blank) and then checking which of them is matched by placing a IsCreated method.
If you find this confusing, please feel free to contact me.
Thank you Ratul, it worked! It seems that I incorrectly have a region match rule set to that region, removing it resolved the issue.
One more question, what can I do if the emulator I am automating uses different screen definition on different screens? For example, the first screen for logging in to the system is a 24x80 screen and the next screen upon login switched to 24x132 screen. How can I approach automating multiple screen definition? I have tried adding another winhllapi with a different screen definition but starting winhllapi with the same session ID throws an error that the session is already started.
I guess this issue can be resolved by fixing the screen definition of the emulator right while setting the session up at the beginning. And make sure you match it in your HLLapi properties. If this doesn't solve your issue we can arrange for a webex session to look into it further.