IBM System z および IBM System i のエミュレーションとモダナイズソリューションである HCL Z and I Emulator の紹介と実際例を掲載した資料を公開しました。
HCL Z and I Emulator は、いわゆる「レガシー」な資産の単なるエミュレーターに留まらず、それらをモダンなUIやモバイルで活用できるようにすることができる製品です。
Installing Z and I Emulator for Web の翻訳版です。
HCL Z and I Emulator for Web インストール
2021年1月22日
著者: Navya Rajanna / Senior Developer, Mainframe Products - HCL Software
Z and I Emulator for Web (ZIEWeb または ZIE for Web) は、ブラウザーベースのマルチプラットフォームアプリケーションであり、幅広いブラウザーや OS との互換性を考慮して設計されています。本製品は、Chrome、Firefox、Edge、Safari、その他のブラウザーのすべてのバージョンでテストされており、ユーザーがブラウザーベースの技術の利点を生かしたホストシステムへの信頼性の高いアクセスを継続して行えるようになっています。
ZIE for Web の主な特長
ZIE for Web のインストール
ZIE for Web は、Installation Manager を使用して、サポートされているすべてのプラットフォームにインストールできます。
HCL ZIE for Webがリストにない場合は、右側の [リポジトリの追加] ボタンを選択します。
[参照] をクリックして、抽出された HCL ZIE WEB パスの場所に移動し、disk1 フォルダー内に存在する diskTag.inf ファイルを選択します。
[OK] をクリックして、新しいリポジトリの場所をリストに追加します。
Test Connections(接続のテスト)をクリックして、リポジトリの URL が利用可能であることを確認します。
インストールマネージャのホームページから、[インストール] をクリックします。インストールマネージャが定義されたリポジトリから利用可能なパッケージを検索します。
ライセンス契約を読みます。使用許諾契約書の条項に同意する場合は、「使用許諾契約書の条項に同意します」のチェックボックスを選択し、「次へ」をクリックして続行します。
必要なアーキテクチャを選択し、[次へ] をクリックします。
インストールする言語を選択します。デフォルトの言語は英語です。[次へ] をクリックします。
選択内容を確認し、Z and I Emulator for Web の詳細を提供します。
a. Z and I Emulator for Web の [Publish Information] パネルで、Publish ディレクトリを設定し、Web サーバーのエイリアスと Service Manager ポート番号を指定します。[次へ] をクリックします。発行ディレクトリには、クライアントが利用可能である必要があるファイルが保存されます。インストール ウィザードは、デフォルトのディレクトリを表示してパブリッシュ ディレクトリを指定するように指示します。次の手順を実行します。
この通信は、以下の展開オプションに必要です。* 設定サーバーを使用して、設定サーバーベースの展開モデルや複合展開モデルのように、セッションの設定情報を維持します。
b. [Z and I Emulator for Web] の下の [Web サーバー] パネルで、次のように要件に応じて適切な Web サーバー オプションを選択します。
IBM HTTP サーバーまたは Apache Web サーバーがインストールされているが検出されない場合は、Manually select specific web server オプションを選択します。
iv. 埋め込み型 Web サーバーの場合、デフォルトでは、非セキュア接続用の埋め込み型 Web サーバーのポート番号は、それぞれ 8080 と 8443 になっています。
c. パネルが適切に更新されたら、[次へ] をクリックします。
前回の記事「HCL Z and I Emulator: PCSAPI を使った自動化」に続き、ホストアクセスクラスライブラリ (HACL) を使った自動化についての英語版ブログの記事 Automation using HACL の日本語版です。
Automation using HACL
2020年8月17日
著者: Sudhir Ranjan Rout / Senior Developer, HCL
PCSAPI を使用したオートメーションと EHLLAPI APIを使用したオートメーションに関する以前のブログに続き、このブログでは、ZIEWIN API の最も強力なセットである HACL(ホストアクセスクラスライブラリ)API について詳しく説明します。
ホストアクセスクラスライブラリ (HACL) は、アプリケーションプログラマがホストアプリケーションに簡単かつ迅速にアクセスできるようにするオブジェクトのセットです。 HCL ZIEWinは、さまざまなHACLレイヤーをサポートしています。
図1 HACLレイヤー
オートメーションオブジェクト(Visual Basic、Word、Excel など): ホストアクセスクラスライブラリオートメーションオブジェクトにより、ZIEWin は Microsoft COM ベースのオートメーションテクノロジー(以前はOLE オートメーションと呼ばれていました)をサポートできます。 HACL 自動化オブジェクトは一連の自動化サーバーで、Microsoft Visual Basic などの自動化コントローラーがプログラムで ZIEWin Communications のデータと機能にアクセスできるようにします。
注:HCL ZIEWin によって提供されるオートメーションオブジェクトは、本来64ビットです。これらは、64ビットの Microsoft Office プログラムでのみ使用できます。
現在、以下のタイプのオートメーションオブジェクトがサポートされています。
このC ++クラスライブラリは、以下を含むホスト接続の完全なオブジェクト指向の抽象化を提供します。
* ホスト表示スペース(画面)の読み取りと書き込み
* 画面上のフィールドの列挙
* 状況情報についてオペレーター標識域 (OIA) を読み取る
* ビジュアルエミュレータウィンドウに関する情報へのアクセスと更新
* ファイルを転送しています
* 重要なイベントの非同期通知を実行する
Javaオブジェクトは、すべてのHACL関数にJavaラッパーを提供します。
ECL コンセプト - 接続、ハンドル、名前
ECL のコンテキストでは、接続は単一であり、ZIEWin エミュレーターウィンドウに固有です。接続は、接続ハンドルまたは接続名によって区別されます。ほとんどの HACL オブジェクトは特定の接続に関連付けられています。通常、オブジェクトは接続ハンドルまたは接続名をオブジェクトのコンストラクターのパラメーターとして受け取ります。たとえば、接続「B」に関連付けられた ECLPS(表示スペース)オブジェクトを作成するには、次のコードを使用します。
C++ ECLPS *PSObject; PSObject = new ECLPS(’B’);
Visual Basic Dim PSObject as Object Below is a graphical representation of the most commonly used autECL Objects Set PSObject = CreateObject("ZIEWIN.autECLPS") PSObject.SetConnectionByHandle("B")
HACL 自動化オブジェクト
図2 autECL オブジェクトの全体図
オートメーションサーバーの一部は、ZIEWin の操作性を制御するメソッドとプロパティを備えた実世界の直感的なオブジェクトとして実装されています。 各オブジェクトは、オートメーションホストアクセスクラスライブラリの autECL で始まります。 これらのオブジェクトを簡単な説明とともに以下に示します。
接続リストには、特定のシステムのZIEWin接続のリストが含まれています。これはautECLConnMgrに含まれていますが、autECLConnMgrとは別に作成できます。
接続マネージャーは、特定のシステムのZIEWin接続を管理するためのメソッドとプロパティを提供します。このコンテキストでの接続はZIEWinウィンドウです。
フィールドリストは、エミュレータ表示スペースのフィールドに対して操作を実行します。
オペレーター情報エリアは、オペレーター情報エリアをクエリおよび操作するためのメソッドとプロパティを提供します。これはautECLSessionに含まれていますが、autECLSessionとは独立して作成できます。
表示スペースは、関連するZIEWin接続の表示スペースを照会および操作するためのメソッドとプロパティを提供します。これには、表示スペース内のすべてのフィールドのリストが含まれています。これはautECLSessionに含まれていますが、autECLSessionとは無関係に作成できます。
画面の説明は、画面を説明するメソッドとプロパティを提供します。これは、autECLPSオブジェクトまたはautECLScreenRecoオブジェクトで画面を待機するために使用できます。
画面認識は、HACL画面認識システムのエンジンを提供します。
画面認識は、HACL画面認識システムのエンジンを提供します。
セッションは、一般的なセッション関連の機能と情報を提供します。便宜上、autECLPS、autECLOIA、autECLXfer、autECLWinMetrics、autECLPageSettings、およびautECLPrinterSettingsオブジェクトが含まれています。
ウィンドウメトリックは、このオブジェクトに関連付けられているZIEWinセッションのウィンドウメトリックを照会するメソッドを提供します。たとえば、このオブジェクトを使用して、ZIEWinウィンドウを最小化または最大化します。これはautECLSessionに含まれていますが、autECLSessionとは独立して作成できます。
ファイル転送は、このファイル転送オブジェクトに関連付けられたZIEWin接続を介してホストとワークステーション間でファイルを転送するためのメソッドとプロパティを提供します。これはautECLSessionに含まれていますが、autECLsessionとは独立して作成できます。
ページ設定は、CPI、LPI、セッションの[ページ設定]ダイアログのフェイス名などの一般的に使用される設定をクエリおよび操作するためのメソッドとプロパティを提供します。これはautECLSessionに含まれていますが、autECLSessionとは独立して作成できます。
プリンター設定は、セッションのプリンター設定ダイアログのプリンターやPDTモードなどの設定を照会および操作するためのメソッドとプロパティを提供します。これはautECLSessionに含まれていますが、autECLSessionとは独立して作成できます。
基本的にすべてのクラスは、プロパティ、メソッド、および (オプションで) イベントを提供します。これらは、ZIEWin ウィンドウ内の操作を相互作用し、制御するために連携して、または別々に使用できます。
前述のクラスとサンプルコードについての詳細情報は、ZIEWin のオンラインドキュメントでも閲覧できます。
以下のサンプルコードは、最も一般的なECLオブジェクトとメソッドの使い方を示しています。
1. Object Declaration Declare the Objects to be used DIM autECLPSObj as Object DIM autECLConnList as Object Dim autECLOIAObj as Object Dim PSText String
2. Initialize session object by Handle or by Name Define the purpose of the object type Set autECLPSObj = CreateObject("ZIEWIN.autECLPS") Set autECLConnList = CreateObject("ZIEWIN.autECLConnList") Set autECLOIAObj = CreateObject("ZIEWIN.autECLOIA") Refresh must be called to get latest connection info autECLConnList.Refresh Initialize the connection with the first in the list autECLPSObj.SetConnectionByHandle(autECLConnList(1).Handle) Initialize the connection with Session Name autECLOIAObj.SetConnectionByName("A")
3. Sendkey (String,Row,Col) sends the text on mentioned row and col location autECLPSObj.SendKeys "ZIEWIN API’s are very Powerful", 3, 1
4. Sendkey (KeyStroke) Send keystroke (Enter) on the green screen autECLPSObj.SendKeys “[Enter]”
5. GetText (Row, Col, Length) ' Gets the text of 10 bytes from row and col PSText = GetText (1,1,10)
6. SetCursorPos (Row, Col) ' sets the cursor position at row and col location autECLPSObj.SetCursorPos 2, 1
7. StartMacro (MacroName) ' Executes the ZIEWIN recorded .mac macro autECLPSObj.StartMacro "MacroName"
8. WaitforInputReady (time in millsec) waits for specified number of milliseconds autECLOIAObj.WaitForInputReady(10000)
9. Properties Number of rows and cols properties in green screen autECLPS class Object Rows = autECLPSObj.NumRows Cols = autECLPSObj.NumCols
10. GetCursorRow and GetCursorCol fetch rows and cols properties position CurPosRow = autECLPSObj.CursorPosRow CurPosCol = autECLPSObj.CursorPosCol
11. RegisterPSEvent/ RegisterCommEvent, RegisterKeyEvent Refer the attached example Excel application
サンプルコードのダウンロード
お問い合わせ
HCL ZIE での Web アプリケーションの整理、自動化機能、Lab サービスの提供に関する詳細については、こちらをご覧ください。
ZIO@hcl.com
HCL Z and I Emulator (ZIE) は、文字通り IBM のメインフレームにアクセスするためのエミュレーターであり、高度が付加機能を備えています。そのひとつの API について書かれた英語版ブログの記事 Automation using PCSAPI の日本語版を掲載します。
PCSAPI を使った自動化
2020年8月11日
著者: Sudhir Ranjan Rout / Senior Developer, HCL
はじめに
ZIEWin は、IBM メインフレーム/AS400/VT セッションと通信するためのエミュレータインターフェイスを提供します。これは、ホストのデータの読み取りと更新を行い、他のアプリケーションとホストをインターフェイスするために使用されます。トランザクションのエミュレータ画面上で手動タスクを実行すると、反復的になり、長期的には以下の問題を持つことになります。
ZIEWin は、ユーザーが一般的に実行されるタスクを自動化できるようにするために、多くのアプリケーション・プログラミング・インターフェース (API) を公開しています。異なるAPIは特定の機能のセットで提供されており、異なる目的に使用でき、ユーザーの要件に基づいて異なるプログラミングインターフェイスを提供します。異なる API は、Visual Basic for Applications(したがって、MS Officeアプリケーションをサポート)、C/C++、C#、Java、LotusScript、REXなどのプログラミング言語をサポートしています。
ZIEWin が提供する API セットとその機能のリストは以下のとおりです。
今回のブログでは、PCSAPI について詳しく見ていきます。
PCS Session APIは、ZIEWin セッションの起動、セッションのオープン、セッションのクローズ、接続、切断を行えます。EHLLAPI API は IBM EHLLAPI 通信標準(TN3270 と TN5250 プロトコル)と密接に結合されているため、セッション管理 API の機能はありません。ZIEWin のセッション API はまた、プリンタ、ページ、クエリワークステーションプロファイル/セッションリスト/エミュレータのステータスを設定するための機能を提供します。これらの API は、EHLLAPI/HACL API と組み合わせて使用することで、自動化サイクルを完成させられます。
関数呼び出し規約
ZIEWin セッション API は、プログラミングを簡単にするために、すべての関数のシンプルなプロトタイプに従っています。上述したように、これらの API は複数のプログラミング言語(VBA、C/C++、C#など)を使用してアクセスしてプログラムできます。
関数タイプ: API の戻り値の型 関数名: 呼び出される関数 引数: 関数に渡される入力引数で、1 から 3 までの値があります。
以下に、最も一般的に使用されるPCS APIとそのプロトタイプを示します。
1. PCConnectSession BOOL WINAPI PCConnectSession(char cShortSessionID)
2. PCDisconnectSession BOOL WINAPI PCDisconnectSession(char cShortSessionID)
3. pcsQueryConnectionInfo BOOL WINAPI pcsQueryConnectionInfo(char cShortSessionID, CONNECTIONINFO *ConnectionInfo)
4. PCStartSession ULONG WINAPI PCStartSession(PSZ lpProfile, char cShortSessionID, USHORT fuCmdShow)
5. pcsStopSession BOOL WINAPI PCStopSession(char cShortSessionID, USHORT fuSaveProfile)
6. pcsQuerySessionList ULONG WINAPI pcsQuerySessionList(ULONG Count, SESSINFO *SessionList)
これらのAPIの詳細については、こちらをご覧ください。
MacroExecutionBlockDiagram:
次の図は、ZIEWin の API - マクロエンジン - IBM ホストのフローのハイレベルビューを示しています。
コード スニップされたVBAコード (Excel 用)
A. Declarations
'Declaration for PCSAPI functions and defining their prototype to VBA engine
Declare PtrSafe Function pcsStartSession Lib "PCSAPI32.DLL" (ByVal buffer As String, ByVal SessionID As Integer, ByVal CmdShow As Integer) As Integer
Declare PtrSafe Function pcsStopSession Lib "PCSAPI32.DLL" (ByVal SessionID As Integer, ByVal SaveProfile As Integer) As Integer
'Declaration for EHLLAPI functions and defining their prototype to VBA engine
Declare PtrSafe Function ZIEWin_SendKey& Lib "PCSHLL32.DLL" Alias "hllapi" (HllFunctionNo&, ByVal HllData$, HllLength&, HllReturnCode&)
Declare PtrSafe Function ZIEWin_SetCursor& Lib "PCSHLL32.DLL" Alias "hllapi" (HllFunctionNo&, ByVal HllData$, HllLength&, HllReturnCode&)
Declare PtrSafe Function ZIEWin_ConnectPS & Lib "PCSHLL32.DLL" Alias "hllapi" (HllFunctionNo&, ByVal HllData$, HllLength&, HllReturnCode&)
'Defining Global Variable
Dim SessionID As Integer
Dim ProfileName As String
B. Entry Function
'Function entry point which drives the automation
Sub PCSAPISample()
SessionID = 65 'Session A
ProfileName = "Iseriesdemos.WS" 'change it session name of your preference
'call the LaunchZIEWinSession Sub
LaunchZIEWinSession ProfileName, SessionID
'Create a EHLLAPI connection with ZIEWin
ConnectZIEWinSession
'Move the cursor to desired location on the ZIEWin Screen
moveCursor 8, 53, 10
'Send a string to ZIEWin Screen
sendString "HelloWorld"
'Disconnect and close the ZIEWin Session
StopZIEWinSession SessionID
End Sub
C. ConnectZIEWinSession
'Function to establish connection to a ZIEWin session
Public Function ConnectZIEWinSession()
HllFunctionNo = 1
HllData = "A"
HllLength = 4
HllReturnCode = 0
RC = ZIEWin_ConnectPS(HllFunctionNo, HllData, HllLength, HllReturnCode)
If RC = 0 Then
MsgBox "Connection Established"
Else
MsgBox "Connection Failed"
End If
End Function
D. LaunchZIEWin Function
'Function to launch the ZIEWin session
Public Function LaunchZIEWinSession(ProfileName As String, SessionID As Integer)
On Error Resume Next
Dim RC As Integer
'PCSStartsession take 'session profile file' and the session ID (65->ASCII->'A')
RC = pcsStartSession(ProfileName, SessionID, 2)
If RC = 0 Then
MsgBox "ZIEWin Launched Successfully"
Else
MsgBox "ZIEWin Launched failed"
End If
End Function
E. Stop ZIEWin Session
'Function to disconnect and stop the ZIEWin session
Public Function StopZIEWinSession()
On Error Resume Next
Dim ziewinStop As Boolean
'PCSStopSession takes Session ID and save mode as input
ziewinStop = pcsStopSession(SessionID, 2)
If (ziewinStop = True) Then
MsgBox "ZIEWin Closed Successfully"
End If
End Function
サンプルコードをダウンロードしてみてください。
PCSAPIの呼び出しをテストするために使用できるエクセルのサンプルを添付します。
お問い合わせ
HCL ZIEでのWebアプリケーションの整理、自動化機能、ラボサービスの提供に関する詳細については、以下までお問い合わせください。
ZIO@hcl.com
Sudhir Ranjan Rout
Developer, Lab Services