"Terminal Error: Field not found" when executing terminal session at a screen

Hello,

I’m having an issue regarding terminal session execution, more specifically:

** Scenario:**

  • IBM Personal Communication Mainframe System. Cannot configure connection using its own option in the wizard (undetermined error - HRESULT 0X80020009 DISP_E_EXCEPTION at log).

  • Managed to launch wizard using “UIPath Internal” and entering host / port options manually. Visual wizard shows up and I can interact with fields and go through options. Everything goes perfect advancing through the screens.

  • I recorded all steps succesfully on design time, save and close.

  • But when executing the resultant workflow, it stops always at the same screen (magages to go through the workflow until a login screen) and returns this error message (Terminal Error: field not found). Please note the workflow has completed read / write steps previous to this part of the process.

My questions are:

  • Is there any way to interact more in-depth with the terminal session once the wizard is over? the log message does not help me at all and the design-time wizard does not have any problem moving through that login screen to the next one. The error is shown in execution time, once the workflow is generated.

  • In case there is no way to interact further with the mainframe screen, is there any way to create custom dll / nuget to “hack” that step and do it via code? I know of telnet libraries in .net that could work through this issue.

Thanks in advance.

hey @Gerardo

I have worked with IBM mainframe.
i wants to know more about your problem:

  1. You are able to maintain a connection with terminal? by using internal connection? but facing error at the time of execution? - Yes/No
  2. After recording steps when u r running your workflow is not performing and returning error?
  3. which provider you are selecting at the time of terminal connection?
  4. You are attaching to an existing session or creating a new one?

Regards…!!
Aksh

ok, answering your question

  1. The type of mainframe I’m connecting to is “IBM Personal Communications”. Can’t connect using that option in “terminal session activity”. In design time can work with no problems, but in execution it fails at a certain point, that does not fail using the wizard.

  2. The error is the one I described before “Terminal Error: field not found”.

  3. It connects using “UIPath Internal” successfully.

  4. Creating a new session.

Hey @Gerardo

UiPath Terminal wizard is designed to help you automate data extraction and/or task execution on various terminals (Mainframe/AS400/VT). It works with TN3270/TN5250/VT terminals.

There are several ways to automate the mentioned terminals:

using the existing/installed terminal application
using the IBM EHLLL standard
using the UiPath internal implementation of these protocols

One may choose between those three based on the accuracy and the level of the provided details (like colors, field information, etc).

So now comes to your problem “Provider UIpath Internal” will support most of the terminals and you will be able to record steps as well with it but at that time of execution these activities won’t work because their internal API is not fully compatible with IBM personal communications that is why you are getting following error:

Terminal Error: Filed not Found

because it is not able to communicate with IBM specific personal terminal.

So to resolve this problem Do following things:

  1. In terminal session Activity wizard select “IBM EHLLAPI” Option.
  2. Check “Show client application”.
  3. Click on “Attache to existing session”. and fill follwing details:
  • EHLL Dll = C:\Program Files (x86)\IBM\Personal Communications\pcshll32.dll
  • EHLL function = hllapi
  • EHLL Session =A
  • EHALL Enhanced = checked

After Clicking you will get the terminal recorder and perform the steps and run it, this time it will work.

Note* - This option will only work with existing session of that terminal so please make sure at the time of workflow run terminal should be opened.

For More info on this, see this link:

Let me know if you have any doubts on this.

Regards…!!
Aksh

4 Likes

Hope it is resolved. In any case…

https://www.uipath.com/kb-articles/how-to-create-a-custom-activity

Great info, thanks a lot! I’ll definitively try that today…

In the meantime, as the problem could be (according to your suggestions) trying the “UIpath Internal” implementation, just in case your advice regarding EHLLL does not work:

  • Do you know why the proper implementation “IBM personal communication” in the combo does not work via wizard? do you know why I’m getting the “undetermined error” message at the wizard trying that option? (undetermined error - HRESULT 0X80020009 DISP_E_EXCEPTION if you look at the log file).

Anyhow, I’ll post today the result of your instructions just in case it works, to serve others that may have my same problem.

Regards

just to let you know, your advice did not work:

Error when following your instructions (screenshot attached)

detailed error in log:

10:57:16.1039 warn EhllapiWrapper.CallEhllApi(1) returned 1
10:57:16.1673 error EhllBridge.Attach error : NotConnected
10:57:16.1673 error Error attaching to session
10:57:16.2132 error en UiPath.Terminal.Generic.EHLLApi.EhllTerminal.InitializeEhll(ConnectionData connectionData)
10:57:16.2132 warn EhllapiWrapper.CallEhllApi(2) returned 1
10:57:16.2132 error EhllBridge.Detach error : NotConnected

Please refer to my previous Post. Thanks a lot anyway.

hey @Gerardo

Because as i said this .dll will work with active session of terminal so you have to maintain it to make it open. so first open that terminal app then try to make a connection.

and let me know :slight_smile:

Regards…!!
Aksh

Hello Again,

Sorry about that, you were right, I did not open a new terminal session before trying that. I did that already:

Pros: worked like a charm after I manually opened a new terminal session double-clicking on my .ws IBM terminal file. I executed the workflow afterwards and it walked through the opened session successfully.

Cons (and question): It is not an option for us to manually open a new terminal session before using the robot. The Robot itself should take care of opening / interacting with the session for our process as it has to be completely stand-alone and out of any human user interaction. Don’t know if you found yourself on a similar situation, but I need a workaround for our workflow to open a terminal connection, valid for the workflow you helped me to create, and pass such connection manually to the already created EHLLAPI for it to continue.

Thanks in advance

hey @Gerardo

You can use open application option if uipath is intstalled locally but in this case it won’t work because ibm terminal uses script to launch and by using some launcher so you have to use click option to open an app with combination of find image activities and delay and image exists activities to make it full proof and open the app and then pass delay before to make connection with existing session.

Let me know , if it was helpful for you.

Regards…!!
Aksh

4 Likes

Ok then.

Thanks a lot for all your help, found it easy and nice to follow… and moreover, it worked perfectly!

Take care!

1 Like