Connect to Terminal

Connects to a mainframe-based application over 3270 protocol or a terminal-based application over 5250 protocol.

Command availability: IBM RPA SaaS and IBM RPA on premises

Description

Connect to mainframe-based applications or terminal-based applications through the terminal emulator. You can connect to applications built for zSeries mainframes over the 3270 protocol, and for System i5®, eServer i5®, iSeries, or AS/400 systems over the 5250 protocol.

Important:Support for connections over 3270 and 5250 protocols with IBM® Personal Communications provider and HLLAPI standard is available starting from IBM RPA 23.0.6. Older versions connect over 3270 protocol with IBM RPA internal provider only.

This command connects with different terminal emulator providers:

  • IBM RPA internal provider

The default provider that is provisioned by the product, which you can use to connect to host sessions over 3270 protocol.

Note:The IBM RPA internal provider supports connecting to terminals with screen dimension of 24x80 only.

  • IBM® Personal Communications

In IBM RPA, you can use IBM® Personal Communications provider to launch and connect to zSeries mainframe-based applications over the 3270 protocol, and for System i5®, eServer i5®, iSeries, or AS/400 systems over the 5250 protocol.

  • High-level Language Application Program Interface (HLLAPI)

In IBM RPA, you can use terminal emulator providers that implement the HLLAPI standard to connect to zSeries mainframe-based applications over the 3270 protocol, and for System i5®, eServer i5®, iSeries, or AS/400 systems over the 5250 protocol.

Dependencies

IBM® Personal Communications

Bring your own instance and install IBM® Personal Communications on your computer to start sessions with the terminal emulator.

You must have the session saved as workstation profile (WP) to launch and connect to it with IBM RPA.

Connections to IBM® Personal Communications with IBM RPA supports only single-byte languages. The single-byte languages are:

  • Catalan
  • Czech
  • Danish
  • Dutch
  • Finnish
  • French
  • German
  • Hungarian
  • Italian
  • Japanese
  • Norwegian
  • Polish
  • Portuguese
  • Portuguese (Brazilian)
  • Russian
  • Spanish
  • Swedish
  • Slovenian
  • Turkish

HLLAPI

As prerequisite you must have a terminal emulator provider that implements the HLLAPI standard, and provide the HLLAPI DLL in that provider.

HLLAPI DLLs supported:

  • IBM® Personal Communications: pcshll32.dll

You must have an active session opened in the terminal emulator provider to connect by using HLLAPI.

Supported protocols

Important:If you have FIPS enabled, the command supports only TLS connections.

The following list shows the protocols that you can use to connect to terminals:

  • SSL 2.0
  • SSL 3.0
  • TLS 1.0
  • TLS 1.1
  • TLS 1.2
  • TLS 1.3

Script syntax

IBM RPA's proprietary script language has a syntax similar to other programming languages. The script syntax defines the command's syntax in the script file. You can work with this syntax in IBM RPA Studio's Script mode.

terminalConnect --name(Text) --provider(TerminalProviderTypes) [--profile(Text)] [--sessionid(Text)] [--dllpath(Text)] [--encoding()] [--hostname(Text)] [--port(Numeric)] [--lu(Text)] [--usessl(Boolean)] [--timeout(TimeSpan)] (Boolean)=value

Input parameters

The following table displays the list of input parameters available in this command. In the table, you can see the parameter name when working in IBM RPA Studio's Script mode and its Designer mode equivalent label.

Designer mode label Script mode name Required Accepted variable types Description
Provider provider Required TerminalProviderTypes The terminal provider.

See the provider parameter section for provider options.
Workstation Profile profile Required. Visible when the Provider is PCOMM. Text Path to an IBM® Personal Communications workstation profile.
HLLAPI DLL dll Required. Visible when the Provider is HLLAPI. Text Path to the HLLAPI DLL in the provider.
Encoding encoding Required. Visible when the Provider is HLLAPI or PCOMM. EncodingType Choose the encoding type to display the terminal emulator characters. Select the encoding considering the single-byte languages as described in the Dependencies section.

For more information, see the encoding parameter options.
Session ID sessionID Required. Visible when the Provider is HLLAPI. Text The name of the session opened in the terminal provider.
Name name Required Text Name of the connection.

Use this name in the Disconnect from Terminal (terminalDisconnect) command to disconnect from the terminal.
Server Name hostname Required Text Name of the terminal emulator server used for the connection.
Port port Required Number Server port to use to connect to the terminal.
LU lu Optional Text Instructs what logical unit (LU) to use depending on the LU name.
Use TLS usessl Optional Boolean Enable it to secure the connection with TLS.

Important:Enabling FIPS restricts this command to support only TLS connections.
Timeout timeout Optional Time Span, Number, Text Maximum time to wait to connect to the terminal.

🛈 Note If no value is defined for the Timeout parameter, the bot uses the context timeout that is defined by the Set Timeout (setTimeout) command. If that command is not used on the script, the default timeout is 5 seconds.

encoding parameter options

The following encodings are supported:

Value Name Display Name
37 IBM037 IBM EBCDIC (US-Canada)
437 IBM437 OEM United States
500 IBM500 IBM EBCDIC (International)
708 ASMO-708 Arabic (ASMO 708)
720 DOS-720 Arabic (DOS)
737 ibm737 Greek (DOS)
775 ibm775 Baltic (DOS)
850 ibm850 Western European (DOS)
852 ibm852 Central European (DOS)
855 IBM855 OEM Cyrillic
857 ibm857 Turkish (DOS)
858 IBM00858 OEM Multilingual Latin I
860 IBM860 Portuguese (DOS)
861 ibm861 Icelandic (DOS)
862 DOS-862 Hebrew (DOS)
863 IBM863 French Canadian (DOS)
864 IBM864 Arabic (864)
865 IBM865 Nordic (DOS)
866 cp866 Cyrillic (DOS)
869 ibm869 Greek, Modern (DOS)
870 IBM870 IBM EBCDIC (Multilingual Latin-2)
874 windows-874 Thai (Windows)
875 cp875 IBM EBCDIC (Greek Modern)
932 shift_jis Japanese (Shift-JIS)
936 gb2312 Chinese Simplified (GB2312)
949 ks_c_5601-1987 Korean
950 big5 Chinese Traditional (Big5)
1026 IBM1026 IBM EBCDIC (Turkish Latin-5)
1047 IBM01047 IBM Latin-1
1140 IBM01140 IBM EBCDIC (US-Canada-Euro)
1141 IBM01141 IBM EBCDIC (Germany-Euro)
1142 IBM01142 IBM EBCDIC (Denmark-Norway-Euro)
1143 IBM01143 IBM EBCDIC (Finland-Sweden-Euro)
1144 IBM01144 IBM EBCDIC (Italy-Euro)
1145 IBM01145 IBM EBCDIC (Spain-Euro)
1146 IBM01146 IBM EBCDIC (UK-Euro)
1147 IBM01147 IBM EBCDIC (France-Euro)
1148 IBM01148 IBM EBCDIC (International-Euro)
1149 IBM01149 IBM EBCDIC (Icelandic-Euro)
1200 utf-16 Unicode
1201 unicodeFFFE Unicode (Big endian)
1250 windows-1250 Central European (Windows)
1251 windows-1251 Cyrillic (Windows)
1252 Windows-1252 Western European (Windows)
1253 windows-1253 Greek (Windows)
1254 windows-1254 Turkish (Windows)
1255 windows-1255 Hebrew (Windows)
1256 windows-1256 Arabic (Windows)
1257 windows-1257 Baltic (Windows)
1258 windows-1258 Vietnamese (Windows)
1361 Johab Korean (Johab)
10000 macintosh Western European (Mac)
10001 x-mac-japanese Japanese (Mac)
10002 x-mac-chinesetrad Chinese Traditional (Mac)
10003 x-mac-korean Korean (Mac)
10004 x-mac-arabic Arabic (Mac)
10005 x-mac-hebrew Hebrew (Mac)
10006 x-mac-greek Greek (Mac)
10007 x-mac-cyrillic Cyrillic (Mac)
10008 x-mac-chinesesimp Chinese Simplified (Mac)
10010 x-mac-romanian Romanian (Mac)
10017 x-mac-ukrainian Ukrainian (Mac)
10021 x-mac-thai Thai (Mac)
10029 x-mac-ce Central European (Mac)
10079 x-mac-icelandic Icelandic (Mac)
10081 x-mac-turkish Turkish (Mac)
10082 x-mac-croatian Croatian (Mac)
12000 utf-32 Unicode (UTF-32)
12001 utf-32BE Unicode (UTF-32 Big endian)
20000 x-Chinese-CNS Chinese Traditional (CNS)
20001 x-cp20001 TCA Taiwan
20002 x-Chinese-Eten Chinese Traditional (Eten)
20003 x-cp20003 IBM5550 Taiwan
20004 x-cp20004 TeleText Taiwan
20005 x-cp20005 Wang Taiwan
20105 x-IA5 Western European (IA5)
20106 x-IA5-German German (IA5)
20107 x-IA5-Swedish Swedish (IA5)
20108 x-IA5-Norwegian Norwegian (IA5)
20127 us-ascii US-ASCII
20261 x-cp20261 T.61
20269 x-cp20269 ISO-6937
20273 IBM273 IBM EBCDIC (Germany)
20277 IBM277 IBM EBCDIC (Denmark-Norway)
20278 IBM278 IBM EBCDIC (Finland-Sweden)
20280 IBM280 IBM EBCDIC (Italy)
20284 IBM284 IBM EBCDIC (Spain)
20285 IBM285 IBM EBCDIC (UK)
20290 IBM290 IBM EBCDIC (Japanese katakana)
20297 IBM297 IBM EBCDIC (France)
20420 IBM420 IBM EBCDIC (Arabic)
20423 IBM423 IBM EBCDIC (Greek)
20424 IBM424 IBM EBCDIC (Hebrew)
20833 x-EBCDIC-KoreanExtended IBM EBCDIC (Korean Extended)
20838 IBM-Thai IBM EBCDIC (Thai)
20866 koi8-r Cyrillic (KOI8-R)
20871 IBM871 IBM EBCDIC (Icelandic)
20880 IBM880 IBM EBCDIC (Cyrillic Russian)
20905 IBM905 IBM EBCDIC (Turkish)
20924 IBM00924 IBM Latin-1
20932 EUC-JP Japanese (JIS 0208-1990 and 0212-1990)
20936 x-cp20936 Chinese Simplified (GB2312-80)
20949 x-cp20949 Korean Wansung
21025 cp1025 IBM EBCDIC (Cyrillic Serbian-Bulgarian)
21866 koi8-u Cyrillic (KOI8-U)
28591 iso-8859-1 Western European (ISO)
28592 iso-8859-2 Central European (ISO)
28593 iso-8859-3 Latin 3 (ISO)
28594 iso-8859-4 Baltic (ISO)
28595 iso-8859-5 Cyrillic (ISO)
28596 iso-8859-6 Arabic (ISO)
28597 iso-8859-7 Greek (ISO)
28598 iso-8859-8 Hebrew (ISO-Visual)
28599 iso-8859-9 Turkish (ISO)
28603 iso-8859-13 Estonian (ISO)
28605 iso-8859-15 Latin 9 (ISO)
29001 x-Europa Europa
38598 iso-8859-8-i Hebrew (ISO-Logical)
50220 iso-2022-jp Japanese (JIS)
50221 csISO2022JP Japanese (JIS-Allow 1 byte Kana)
50222 iso-2022-jp Japanese (JIS-Allow 1 byte Kana - SO/SI)
50225 iso-2022-kr Korean (ISO)
50227 x-cp50227 Chinese Simplified (ISO-2022)
51932 euc-jp Japanese (EUC)
51936 EUC-CN Chinese Simplified (EUC)
51949 euc-kr Korean (EUC)
52936 hz-gb-2312 Chinese Simplified (HZ)
54936 GB18030 Chinese Simplified (GB18030)
57002 x-iscii-de ISCII Devanagari
57003 x-iscii-be ISCII Bengali
57004 x-iscii-ta ISCII Tamil
57005 x-iscii-te ISCII Telugu
57006 x-iscii-as ISCII Assamese
57007 x-iscii-or ISCII Oriya
57008 x-iscii-ka ISCII Kannada
57009 x-iscii-ma ISCII Malayalam
57010 x-iscii-gu ISCII Gujarati
57011 x-iscii-pa ISCII Punjabi
65000 utf-7 Unicode (UTF-7)
65001 utf-8 Unicode (UTF-8)

The provider parameter

The following table displays the options available for the provider input parameter. The table shows the options available when working in Script mode and the equivalent label in the Designer mode.

Designer mode label Script mode name Description
Internal TN3270 emulator Internal Uses the IBM RPA internal provider, which is the product default provider.
IBM® Personal Communications PCOMM Uses the IBM® Personal Communications provider.
HLLAPI HLLAPI Uses the HLLAPI standard to connect to terminal emulator providers.

Output parameters

Designer mode label Script mode name Accepted variable types Description
Success value Boolean Returns True if the connection was succesfully established; otherwise, returns False.

Example

The following examples demonstrates how to connect to a terminal emulator with the supported providers. You must update the connection data to connect to a terminal host session.

Example 1: Connects to a terminal emulator over 3270 protocol with IBM RPA internal provider.

defVar --name terminalName --type String --value Terminal
defVar --name terminalServer --type String --value "www.example.com"
defVar --name port --type Numeric --value 60
defVar --name connectionSuccess --type Boolean
// Connects to a terminal emulator over 3270 protocol with IBM RPA internal provider.
terminalConnect --name "${terminalName}" --provider "Internal" --hostname "${terminalServer}" --port ${port} --usessl
if --left "${connectionSuccess}" --operator "Is_True"
 | // Logs a message in IBM RPA Studio if the connection is established.
 | logMessage --message "Connection to the \"${terminalServer}\" host established." --type "Info"
 | // Assign a value to the field in focus on the terminal emulator screen.
 | terminalSetField --index 0 --value IBM
endIf
// Disconnects from the terminal.
terminalDisconnect --name "${terminalName}"

Example 2: Connects to a terminal emulator over 5250 protocol with IBM® Personal Communications provider.

defVar --name terminalName --type String --value Terminal
defVar --name connectionSuccess --type Boolean
defVar --name wp --type String --value "C:\\IBM\\Personal Communications\\hostname.ws"
// Connects to a terminal emulator over 5250 protocol with IBM Personal Communications provider.
terminalConnect --name "${terminalName}" --provider "PCOMM" --profile "${wp}" connectionSuccess=value
if --left "${connectionSuccess}" --operator "Is_True"
 | // Logs a message in IBM RPA Studio if the connection is established.
 | logMessage --message "Connection to the \"${wp}\" host established." --type "Info"
 | // Assign a value to the field in focus on the terminal emulator screen.
 | terminalSetField --index 0 --value IBM
endIf
// Disconnects from the terminal.
terminalDisconnect --name "${terminalName}"

Example 3: Connects to a terminal emulator over 5250 protocol with IBM® Personal Communications provider through the HLLAPI standard. The session defined must be started in IBM® Personal Communications before you run this example.

defVar --name terminalName --type String --value Terminal
defVar --name connectionSuccess --type Boolean
defVar --name sessionId --type String --value A
defVar --name hllapiDll --type String --value "C:\\Program Files\\IBM\\Personal Communications\\pcshll32.dll"
// Connects to a terminal emulator over 5250 protocol with IBM Personal Communications provider through the HLLAPI standard.
terminalConnect --name "${terminalName}" --provider "HLLAPI" --sessionid "${sessionId}" --dllpath "${hllapiDll}" connectionSuccess=value
if --left "${connectionSuccess}" --operator "Is_True"
 | // Logs a message in IBM RPA Studio if the connection is established.
 | logMessage --message "Connection to the \"${sessionId}\" host session established." --type "Info"
 | // Assign a value to the field in focus on the terminal emulator screen.
 | terminalSetField --index 0 --value IBM
endIf
// Disconnects from the terminal.
terminalDisconnect --name "${terminalName}"

Limitations

Enabling FIPS restricts this command to support only TLS connections.