4.端末エミュレータTcpLinkの問題点と要望事項

By 岡田 - Posted: 2016/06/05 Last updated: 2016/12/10 - Leave a Comment
印刷用ページの表示 印刷用ページの表示
端末エミュレータTcpLinkのマクロ機能の説明を簡単ではありましたが、説明をしてきました。
この中でTcpLinkの問題点を見つけました。
最終回として端末エミュレータTcpLink(Windows版 V3.50)の問題点と今後のバージョンへの要望事項を記載します。
 

TcpLink(Windows版 v.3.50)の問題点

ここでの問題点はマクロ機能を有効に使いたいがための弊害として挙げた問題です。

1.クリップボードの判定・操作命令が無い

TcpLinkの命令一覧をヘルプで見ていただくとお分かりになりますが、画面から値を取得する、画面に値を書き出すのにクリップボード”のみ”使っています。しかし、クリップボードの中の文字列を判定・操作する命令がありません。
そのため、クリップボードに値をcopyする際、copyする文字列が作成される状況を十分把握しておく必要があります。
クリップボード内の文字列を判定するには、クリップボードの内容を一度別のファイル(ワークファイル)に貼り付け、別の命令で1文字ずつ判定するという手法を取る事で対応できますが、、

 

2.メッセージの命令に直接クリップボードの内容を付けられない

TcpLinkには”message”というとても有効な命令があります。
この命令はマクロの中で命令に書いた文章をポップアップとして画面に表示してくれると同時に、画面の”OK”がクリックされるまでマクロが待機されるという2つの機能を持っています。

私はこの機能を有効に使い、端末エミュレータに貼り付けしたいテキストをあらかじめメモ帳などで記載しておき、橋渡しをする手法をとっています

1)”message”命令でポップアップ画面を出す(マクロは待機状態)
2)メモ帳の内容をクリップボードにコピー
3)ポップアップの”ok”を押してマクロを進める(クリップボードの内容をマクロが使える)

ここで、問題になるのが”message”命令にクリップボードの中の内容を直接渡せないことです
今の環境で行うとすると、、、以下のような手間をかける事になります
1)特定のデータセットにmessage命令を書いておく
2)message命令の右にクリップボードの内容を貼り付ける
3)2)のデータセットをパソコンにダウンロードする(拡張子.mac)
4)3)のファイルを実行する

 

3.全画面のコピー&ペーストの際、2バイトコードが含まれているとペースト出来ない

TcpLinkではTSOのセション設定がされていない画面も端末設定をする事で画面を開く事ができます(通信チェックが出て送信キーは使えませんが、、)
このような一時画面を使う事で、複数画面(全画面)の比較をしたい場合があります。
画面を開く命令(個別のセション名を指定する)を使う事で一つのマクロの中から複数の画面を使う事が可能です。

ところが、コピー範囲の画面内に2バイト(漢字)コードがあると、コピーできてもペーストが出来ないのです。
(漢字コードの前までしかペーストが出来ずエラーになります)

コピーする範囲に1バイトコードしか無い場合は問題ありません。
2バイト開始コード、終了コードが入る事による影響とは思いますが、、

※全画面コピーでなくても、コピー元が長く、ペースト先で80バイトを超える場合はペースト出来ないようです

 

4.ファイル転送命令がメインフレーム側から実行できない

TcpLink(Z/os)ではメインフレームのデータセットをパソコンにファイル転送する場合、パソコン側から制御をする必要があります。
これはVOS3(CommuniNet)を操作した経験がある私にとって、とてももどかしい仕様です。

VOS3ではIFIT-TSS E2というPPが組み込まれており、端末エミュレータがCommuniNetの場合、特にパソコン側でファイル転送コマンドを準備しなくてもTSS画面からIFITと入力する事でファイル転送ガイダンスメニューが表示され、ファイル転送ができるようになっています。
ガイダンスメニューを出さなくても、IFITコマンドの後にメインフレームのデータセット名、パソコンのファイル名、転送方向を指定すれば、1コマンドで転送が出来てしまいます。区分データセットの全メンバの連続ダウンロードも可能です。

TcpLinkにはファイル転送コマンドとしてファイル送信、ファイル受信命令が用意されていますが、この命令はパソコンにあらかじめ作成しておき、マクロ実行もしくはファイル転送メニューから処理する必要があります。

固定化されているデータセット、ファイル名であれば問題ないですが、固定化されていないデータセット(ISPF上で一時的に作成されたテンポラリデータセットなど)をファイル転送するには不向きなのです。

現在、固定化されていないデータセットをファイル転送(パソコンへのダウンロード)を行う場合、以下のような対応が必要になります

1)ISPFで該当のデータセットを開き、データセット名を得る
2)メインフレーム上のワークファイルに ファイル受信(RECEIVE命令)コマンドを作成、1)のデータセットをクリップボードで貼り付ける
3)2)のワークファイル自体を固定の名前でダウンロードする(拡張子.mac)
4)3)のマクロを実行する

※ここで記載しているRECEIVE命令はTcpLinkのファイル受信専用命令であり、Z/OS(TSO)のRECEIVE命令ではありません
 

5.画面上の現在のカーソルの位置を知ることができません

マクロの中からISPFのFIND命令やCHANGE命令をした場合、変更箇所にカーソルが飛びますが、飛んだ時のカーソルの位置を取得する命令がありません。FIND命令やCHANGE命令の結果でカーソルをエミュレータ本体が飛ばしているので、容易に情報は得られると思います。

 

6.マクロ内で四則演算できない(命令がない)


 

7.日付、時刻、ユーザIDなどを差し込む命令がない

これは、OSがもっている予約記号で対応するか、日付、時刻、ユーザIDが表示されている画面を持ってくる事で対応できます

上記7点の改良を要望したいです。
Posted in Tcplinkマクロ活用 • • Top Of Page