14-2(改).非定型操作にてEXCEL(vba)とTcplinkマクロを連携する(ファイル編)

By 岡田 - Posted: 2016/10/23 Last updated: 2016/12/07 - Leave a Comment
印刷用ページの表示 印刷用ページの表示
14-2にてvbaとTcplinkマクロをファイル連携した方法を紹介しましたが、今回Tcplinkマクロを改良しました。

EXCLUDE,FLIP,HIDEコマンドを使う事で、VSNの情報及びDCBの情報を一度にコピーと貼り付けする事を可能にしました(ASPENのGLOBALコマンドに対応します)

EXCLUDE:特定行の除外
FLIP:除外した行の表示(EXCLUDEと組み合わせて、特定行の表示としている)
HIDE:非表示行の制御(HIDE Xにより非表示行のメッセージを消している)

vbaの箇所は変更ありませんので、Tcplinkについて変更点を追記します

Tcplinkマクロの説明

今回修正したTcplinkマクロは以下になります。

01: change session TCP3270-Ses01
02: message “これからバックアップ一覧のデータ取得処理を始めます。”
03: message “取得したい情報が入っているジョブの左にカーソルを置いてOKして下さい。”
04: ;
05: wait 1
06: until input
07: STRING “SJ”
08: until input
09: STRING “SCRNAME SDSFS” (04,21)
10: until input
11: emulator key [ENTER]
12: STRING “SWAP LIST” (04,21)
13: until input
14: emulator key [ENTER]
15: until input
16: UNTIL STRING (03,20) “アクティブ ISPF 論理セッション”
17: move cursor (05,07)
18: until input
19: emulator key [ENTER]
20: ;
21: until input
22: STRING “SCRNAME BKUPI” (02,20)
23: until input
24: emulator key [ENTER]
25: until input
26: ;
27: string “2” (02,21)
28: emulator key [enter]
29: until input
30: string “‘BBBBBBBB.8.WORKFILE'” (14,26)
31: emulator key [enter]
32: until input
33: wait 1
34: string “F BKUPINFO”
35: emulator key [enter]
36: until input
37: wait 1
38: ;emulator key [newline]
39: ;wait 1
40: string “S” (06,2)
41: emulator key [enter]
42: until input
43: wait 1
44: string “RES”
45: emulator key [enter]
46: wait 1
47: ;
48: ;paste領域消去
49: edit copy (23,09) (23,75)
50: edit paste (04,09)
51: edit paste (05,09)
52: edit paste (06,09)
53: edit paste (07,09)
54: edit paste (08,09)
55: edit paste (09,09)
56: edit paste (10,09)
57: edit paste (11,09)
58: edit paste (12,09)
59: edit paste (13,09)
60: edit paste (14,09)
61: edit paste (15,09)
62: edit paste (16,09)
63: edit paste (17,09)
64: edit paste (18,09)
65: edit paste (19,09)
66: ;
67: string “SWAP SDSFS” (02,19)
68: until input
69: emulator key [enter]
70: wait 1
71: UNTIL STRING (03,2) “SDSF STATUS DISPLAY ALL CLASSES”
72: until input
73: emulator key [enter]
74: until input
75: string “RES” (02,15)
76: emulator key [enter]
77: until input
78: edit copy (11,33) (18,77)
79: wait 1
80: ;
81: STRING “SWAP BKUPI” (02,15)
82: until input
83: emulator key [ENTER]
84: until input
85: edit paste (04,17)
86: wait 1
87: ;
88: STRING “SWAP SDSFS” (02,18)
89: until input
90: emulator key [ENTER]
91: wait 1
92: until input
93: emulator key [pf3]
94: until input
95: STRING “?”
96: until input
97: emulator key [ENTER]
98: until input
99: emulator key [TAB]
100: emulator key [TAB]
101: until input
102: STRING “SE”
103: until input
104: emulator key [ENTER]
105: wait 1
106: until input
107: STRING “RES”
108: until input
109: emulator key [ENTER]
110: ;
111: ;VOL1-VOL8
112: ;
113: STRING “EX ‘ VOLS=’ ALL” (02,16)
114: until input
115: emulator key [ENTER]
116: until input
117: wait 1
118: STRING “FLIP” (02,16)
119: until input
120: emulator key [ENTER]
121: until input
122: wait 1
123: STRING “HIDE X” (02,16)
124: until input
125: emulator key [ENTER]
126: until input
127: wait 1
128: edit copy (04,34) (12,39)
129: ;
130: until input
131: wait 1
132: STRING “SWAP BKUPI” (02,15)
133: until input
134: emulator key [ENTER]
135: wait 1
136: until input
137: edit paste (04,09)
138: until input
139: STRING “SWAP SDSFS” (02,18)
140: until input
141: emulator key [ENTER]
142: wait 1
143: ;
144: ;DCB INFOMATION GET
145: ;
146: ;
147: :DCB1
148: emulator key [PF3]
149: emulator key [PF3]
150: until input
151: STRING “SE”
152: until input
153: emulator key [ENTER]
154: wait 1
155: STRING “RES”
156: until input
157: emulator key [ENTER]
158: wait 1
159: ;
160: STRING “EX ‘ICE090I 0 ‘ ALL” (02,15)
161: until input
162: emulator key [ENTER]
163: wait 1
164: STRING “FLIP” (02,15)
165: until input
166: emulator key [ENTER]
167: wait 1
168: STRING “HIDE X” (02,15)
169: until input
170: emulator key [ENTER]
171: wait 1
172: ;
173: ;DCB1-DCB8
174: ;
175: until input
176: edit copy (03,27) (10,76)
177: wait 1
178: ;
179: STRING “SWAP BKUPI” (02,15)
180: until input
181: emulator key [ENTER]
182: wait 1
183: until input
184: edit paste (12,09)
185: until input
186: ;
187: :OWARI
188: string “CHG データの終り ‘ ‘” (02,18)
189: emulator key [ENTER]
190: until input
191: wait 1
192: string “CHG ‘ ‘ ‘ ‘ ALL” (02,18)
193: emulator key [ENTER]
194: until input
195: wait 1
196: string “CHG ‘デ’ ‘ ‘ ALL” (02,18)
197: emulator key [ENTER]
198: until input
199: emulator key [insert]
200: move cursor (12,22)
201: string ” ”
202: move cursor (13,23)
203: string ” ”
204: move cursor (14,22)
205: string ” ”
206: move cursor (16,23)
207: string ” ”
208: emulator key [ENTER]
209: until input
210: string “CHG ‘,’ ‘ ‘ ALL” (02,18)
211: emulator key [ENTER]
212: until input
213: string “CHG ‘*’ ‘ ‘ ALL” (02,18)
214: emulator key [ENTER]
215: until input
216: string “CHG ‘-‘ ‘ ‘ ALL” (02,18)
217: emulator key [ENTER]
218: until input
219: string “SAVE” (02,18)
220: emulator key [ENTER]
221: until input
222: ;
223: ;ファイル転送
224: ;
225: string “=6” (02,18)
226: emulator key [ENTER]
227: until input
228: RECEIVE “C:\temp\BKUPINFO.txt” ‘BBBBBBB.8.WORKFILE(BKUPINFO)’ [JISCII CRLF
229: :
230: 終了処理
231: :

VSN情報を一括で得る

EXCLUDE,FLIP,HIDEを用いるために、今までS(SDSF DISPLAY)で開いていたJOBログをSE(ISPF EDITOR)に変更しています・・・102行目
(SからSEに変更した事で、STRINGで指定しているコマンド投入位置を変えています)

:
102: STRING “SE”
:
110: ;
111: ;VOL1-VOL8
112: ;
113: STRING “EX ‘ VOLS=’ ALL” (02,16)
114: until input
115: emulator key [ENTER]
116: until input
117: wait 1
118: STRING “FLIP” (02,16)
119: until input
120: emulator key [ENTER]
121: until input
122: wait 1
123: STRING “HIDE X” (02,16)

113行目でVOLの検索ですが、EX(EXCLUDEコマンド)に変更。さらに118行目でFLIPコマンドを投入する事でVOLSを含む行の表示に切り替えています。さらに123行目のHIDE Xコマンドにより非表示行のメッセージを消すことで、VOLSの行だけが画面に表示されるようになります。この画面をコピーすることで、VSNの情報が得られます。前のバージョンでは198行目までかかっていたVSN取得処理が142行目までに短縮できました

DCB情報取得(改良版)


143: ;
144: ;DCB INFOMATION GET
145: ;
146: ;
147: :DCB1
148: emulator key [PF3]
149: emulator key [PF3]
150: until input
151: STRING “SE”
152: until input
153: emulator key [ENTER]
154: wait 1
155: STRING “RES”
156: until input
157: emulator key [ENTER]
158: wait 1
159: ;
160: STRING “EX ‘ICE090I 0 ‘ ALL” (02,15)
161: until input
162: emulator key [ENTER]
163: wait 1
164: STRING “FLIP” (02,15)
165: until input
166: emulator key [ENTER]
167: wait 1
168: STRING “HIDE X” (02,15)
169: until input
170: emulator key [ENTER]
171: wait 1

操作方法はVSNと同じです。160行目でEXCLUDEコマンド、164行目でFLIP、168行目でHIDE Xを行う事で、欲しい情報がある行だけの表示になります

抜き出した情報の整形(変更)


188: string “CHG データの終り ‘ ‘” (02,18)
189: emulator key [ENTER]
190: until input
191: wait 1
192: string “CHG ‘ ‘ ‘ ‘ ALL” (02,18)
193: emulator key [ENTER]
194: until input
195: wait 1
196: string “CHG ‘デ’ ‘ ‘ ALL” (02,18)
197: emulator key [ENTER]
198: until input

EXCLUDE,FLIP,HIDEで処理が迅速化できましたが、整形処理に追加が必要になりました。画面の中の「データの終わり」までコピーしてしまうため、整形処理にて消す作業が増えました

188行目はDCB情報をコピーする済の余分なメッセージの削除、196行目はVSN情報をコピーする済の余分なメッセージの削除を追加しました
Posted in Tcplinkマクロ活用(拡張編) • • Top Of Page