前回の記事「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