文字列検索ユーティリティ

文字列検索ユーティリティ
使用の手引き
目次
1
はじめに................................................................................................................................................ 1
2
導入時の注意点.................................................................................................................................... 2
3
導入手順 .............................................................................................................................................. 3
4
対話型での使用方法............................................................................................................................. 6
5
バッチでの使用方法 ............................................................................................................................ 13
1 はじめに
このプログラムは①SAS/AFプログラム(SCLエントリ・PROGRAMエントリ)②メインフレーム区分データセット内
のメンバから、編集したいソースコードを「指定された文字列」で検索し、その場で編集できるようにすることで、
適用業務SASアプリケーションの修正作業効率を高めることを目的とするものです。
このプログラムはSASマクロ言語を使用した文字検索マクロと、それを対話的に使用するAFメニュー・プログラ
ムから構成されています。このうち文字検索マクロについては単独で使用可能ですので、バッチ処理においても
利用可能です(但し検索文字列出現箇所のレポートのみ)。
尚、このプログラムはあくまでもサンプル品として提供させていただく都合上、ご使用に際してのお問い合わせ等
の一切のサポートは致しませんことをご了承ください。又コピー・改造は自由です。ご使用目的に応じて適宜カス
タマイズして下さい。
SCANAF 17OCT00
1
2 導入時の注意点
2.1 このプログラムを実行するためには以下のプロダクトの契約が必要です。
”Base SAS ソフトウェア”
”SAS/AF ソフトウェア”
2.2 このプログラムはSASシステムの以下のバージョンが必要となります。
Windows版SASシステムリリース6.11以降
UNIX版SASシステムリリース6.11以降
メインフレーム版SASシステムリリース6.07J(TS407)以降
2.3 このプログラムは以下のファイルで構成されています。
a)
SCANAF.SAS
SAS/AFプログラムソースコード中から文字列を検索するマクロ、SCANAF
のソースコード
b)
SCANPDS.SAS
OS区分データセットメンバ中から文字列を検索するマクロ、SCANPDSのソ
ースコード(※メインフレームでのみ使用可能です)
c)
MAINT.SAS
文字列検索メニューシステムを起動するためのコマンドマクロ、MAINTのソ
ースコード
d)
TRANFILE
SCANAF 17OCT00
文字列検索メニューのCPORT変換移送形式SASファイル
2
3 導入手順
3.1 導入作業は以下の流れで行います。
①PCから各プラットフォーム(Windows、UNIX、メインフレーム)へのファイル転送
②SASを起動後、CIMPORTプロシジャにてメニューシステムのSASカタログを復元
③環境設定(cmdmacオプションの設定)
3.2 ファイル転送
これらのプログラムを使用する各プラットフォームに転送します。各ファイルの転送モード及び転送後のファ
イル名(メンバ名)は下記の通りとなります。
ファイル名
転送モード
転送後のファイル名(メンバ名)
SCANAF.SAS
ASCII
SCANAF.SAS(Windows/UNIX ファイル名)
SCANAF(メインフレーム メンバ名)
SCANPDS.SAS
ASCII
(Windows/UNIXは不要)
SCANPDS(メインフレーム メンバ名)
MAINT.SAS
ASCII
MAINT.SAS(Windows/UNIX ファイル名)
MAINT(メインフレーム メンバ名)
TRANFILE
BINARY
(任意の名前)
※メインフレームの場合の転送モードは、ASCIIの場合は「CRLF、JISCII」の変換ありでファイル転送を行って下さい。
BINARYの場合、転送時の指定は一切不要です。
※メインフレームの場合、TRANFILEを転送する前に「RECFM=FB、LRECL=80、BLKSIZE=8000」でPSファイルをア
ロケーションしていただき、そのファイルに転送していただく必要があります。
ファイルは「自動呼出マクロライブラリ」に転送して下さい。このマクロライブラリは既存のものを使用してい
ただいても、新規に作成していただいても構いません。各プラットフォームで「ユーザー用の自動呼出マクロ
ライブラリ」を新規で作成、登録していただく方法は以下の通りです。
【Windowsプラットフォーム】
a) 適当なディレクトリ(例:C:¥SAS¥USR¥SCANAF)を作成します。
b) 使用するCONFIGファイル(例:C:¥SAS¥CONFIG.SAS)より「SASAUTOS」を指定している場所を探
し、a)で作成したディレクトリを追加します。このディレクトリが「自動呼出マクロライブラリ」です。ここに各
ファイルを転送して下さい。
-SET SASAUTOS (
C:¥SAS¥USR¥SCANAF
!sasroot¥japanese¥sasmacro
【UNIXプラットフォーム】
SCANAF 17OCT00
3
a) 適当なディレクトリ(例:/usr/lib/sas612/scanaf/)を作成します。
b) 使用するCONFIGファイル(例:!sasroot/config.sas612)より「SASAUTOS」を指定している場所を探し、
a)で作成したディレクトリを追加します。このディレクトリが「自動呼出マクロライブラリ」です。ここに各ファ
イルを転送して下さい。
-sasautos ( !SASROOT/sasautos /usr/lib/sas612/scanaf)
【メインフレームプラットフォーム】
a) 適当なデータセット(例:SAS.SAS609.SASAUTOS <RECFM=FB/LRECL=80/DSORG=PO>)を作
成します。
b) 使用するCLIST(例:SAS.SAS609.CLIST(SAS))より「SASAUTOS」を指定している場所を探し、a)で
作成したデータセットを追加します。このデータセットが「自動呼出マクロライブラリ」です。ここに各ファイ
ルを転送して下さい。
SASAUTOS (’’’SAS.SAS609.SASAUTOS’’’) +
3.3 SASカタログの復元
転送した「TRANFILE」を「SASUSER.MAINT」(カタログ)として復元します。復元は「CIMPORTプロシジ
ャ」を使用します。
プログラム例
FILENAME SASCAT ’C:¥SAS¥USR¥SCANAF¥TRANFILE’ ;
PROC CIMPORT INFILE=SASCAT CAT=SASUSER.MAINT;RUN;
SASLOGに以下のメッセージが出力され、ERRORがなければ作業完了です。(例はWindows)
NOTE: PROC CIMPORT はカタログ SASUSER.MAINT の作成,変更を開始します.
NOTE: エントリ CANRUN .PMENU
を復元します.
NOTE: エントリ MENU
.PROGRAM を復元します.
NOTE: エントリ SCANAF .PROGRAM を復元します.
NOTE: エントリ SCANPDS .PROGRAM を復元します.
NOTE: 復元した SASUSER.MAINT カタログのエントリの数 : 4
NOTE: PROCEDURE CIMPORT は 1.29 秒を使用しました.
SCANAF 17OCT00
4
3.4 環境の設定
コマンドスタイルマクロの使用を可能にする為、以下のいずれかの方法でCMDMACシステムオプションを
追加して下さい。
CONFIGファイルを変更する方法
「-cmdmac(メインフレームではCMDMAC)」を1行追加。
AUTOEXECファイルを使用する方法
「options cmdmac ;」の1行を記述した「AUTOEXECファイル」を作成。既にAUTOEXECファイルを使
用している場合には1行追加。
SCANAF 17OCT00
5
4 対話型での使用方法
4.1 初期画面
SASを起動し(DMS)、コマンド行又はコマンドウィンドウで「MAINT」と入力すると下記の初期画面が表示さ
れます。(画面はメインフレームの例)
[EXIT]
:終了します
[SCAN AF]
:SCAN AF機能画面が起動します
[SCAN PDS]
:SCAN PDS機能画面が起動します(※Windows、UNIXでは使用できません)
SCANAF 17OCT00
6
4.2 SCAN AF機能画面
SCAN AFは以下の機能を実現します。
1)指定したSASライブラリ及びSASカタログ内の「SCLエントリ」「PROGRAMエントリ」から、特定の文字
列を検索します。
2)1)で検索した文字列が存在するソースの表示及び編集を、SCAN AFの画面から直接行う事が可能で
す。
初期画面より[SCAN AF]を選択すると、下記の画面が表示されます。(画面はメインフレームの例)
LIBNAME
検索対象のSASカタログが存在するSASライブラリ参照名を指定
CATALOG NAME
文字列を検索するSASカタログ名を指定
SEARCH STRING
検索したい文字列を入力
IGNORE CASE
検索文字列中の半角英文字の大文字・小文字の区別 初期値はYES(しない)
REPORT
検索結果を「OUTPUTウィンドウ」にも出力するか 初期値はNO(しない)
上記を指定してから[RUN]を選択して下さい。初期画面に戻る場合は[RETURN]です。
※「SEARCH STRING(検索文字列)」に「(」、「)」、「’」、「”」、「%」の特殊記号を含めることはできません。
SCANAF 17OCT00
7
【使用例】
以下の例はライブラリ参照名「TSTLIB」、カタログ名「SASPC」より「submit」という文字列を検索していま
す。
①ライブラリ参照名、カタログ名、検索文字列その他オプションを指定します。
②[RUN]をクリックし、検索を実行させます。
SCANAF 17OCT00
8
「TEXT」は検索対象「submit」を含むソースコード、「ENTRY」はライブラリ参照名・カタログ名及びエント
リ名、「LINE」はそのソースコードの存在する行番号を意味しています。又、「1-6 OF 40」は全40行中の1
~6行を画面上に表示していることを示します。スクロールは「PageUp」キー「PageDown」キーや「PF7」
キー「PF8」キー等を使用して下さい。
③編集を行いたいソースコードがある場合、先頭に「E」を入力すれば編集することができます。又、編集の
必要はないがソースコード全体を参照したい場合は「B」を入力します。
④③で「E」を選択したソースコードの行が先頭となった状態で、BUILDプロシジャが起動します。編集後、通
常のBUILDプロシジャと同様の手順で終了すると、再び「SCAN AF」の画面に戻ります。③で「B」を選択し
た場合は編集できません。
SCANAF 17OCT00
9
4.3 SCAN PDS機能(メインフレームのみ)
SCAN PDSは以下の機能を実現します。
1)区分編成ファイルに格納されているメンバから、特定の文字列を検索します。
2)1)で検索した文字列が存在するソースコードの表示及び編集を、SCAN PDSの画面から直接行う事
が可能です。
初期画面より[SCAN PDS]を選択すると、下記の画面が表示されます。
DATASET NAME
検索対象の区分データセット名
SEARCH STRING
検索したい文字列を入力
IGNORE CASE
検索文字列中の半角英文字の大文字・小文字の区別 初期値はYES(しない)
REPORT
検索結果を「OUTPUTウィンドウ」にも出力するか 初期値はNO(しない)
上記を指定してから[RUN]を選択して下さい。初期画面に戻る場合は[RETURN]です。
※「SEARCH STRING(検索文字列)」に「(」、「)」、「’」、「”」、「%」の特殊記号を含めることはできません。
SCANAF 17OCT00
10
【使用例】
以下の例は区分データセット名「SDC.SAS607.SAMPLE」より「PROC SUMMARY」という文字列を検索し
ています。
①データセット名、検索文字列その他オプションを指定します。
②[RUN]をクリックし、検索を実行させます。
SCANAF 17OCT00
11
「MEMBER」は検索対象「PROC SUBMIT」を含むソースコードを持つメンバ名、「LINE」は「PROC
SUBMIT」を含むソースコードの存在する行番号、「TEST」はそのソースコードの表示を意味しています。
スクロールについては「SCAN AF」機能と同様です。
③編集を行いたいソースコードがある場合、先頭に「E」を入力すれば編集することができます。又、編集の
必要はないがソースコード全体を参照したい場合は「B」です。
④③で「B」を選択したソースコードの行が先頭となった状態で、BROWSEウィンドウが起動します。ソース
コードの参照のみ可能です。③で「E」を選択するとEDITウィンドウが起動します。こちらはソースコードの編
集も可能です。
SCANAF 17OCT00
12
5 バッチでの使用方法
5.1 %SCANAFマクロ
対話型のSCANAF機能と同等の機能を提供します。
【書式】
%SCANAF(LIB=libref,CAT=catalogname,STR=%NRSTR(string),UPCASE=YES|NO,REPORT=YES) ;
libref
検索対象のSASカタログが存在するライブラリ参照名を指定
catalogname
文字列を検索するSASカタログ名を指定
string
検索したい文字列を指定
upcase
検索文字中の半角英文字の大文字・小文字の区別 デフォルトはYES(しない)
report
検索結果を「OUTPUTウィンドウ」にも出力するか YES(する)を指定
※「STR=」パラメータの文字列を指定する場合、引用符で囲む必要はありません。但しSCAN AF機能
と同様、一定の特殊記号を含めることはできません。
※「REPORT=」については「YES」が必須となります。「NO」を指定してしまうと処理結果を取得できま
せん。
【使用例】
%SCANAF(LIB=TSTLIB,CAT=SASPC,STR=%NRSTR(submit),UPCASE=YES,REPORT=YES) ;
SCANAF 17OCT00
13
5.2 %SCANPDSマクロ(メインフレームのみ)
対話型のSCAN PDS機能と同等の機能を提供します。
【書式】
%SCANPDS(DSNAME=dsname,STR=%NRSTR(string),UPCASE=YES|NO,REPORT=YES) ;
dsname
検索対象の区分データセット名
string
検索したい文字列を指定
upcase
検索文字中の半角英文字の大文字・小文字の区別 デフォルトはYES(しない)
report
検索結果を「OUTPUTウィンドウ」にも出力するか YES(する)を指定
※「STR=」パラメータの文字列を指定する場合、引用符で囲む必要はありません。但しSCAN PDS機
能と同様、一定の特殊記号を含めることはできません。
※「REPORT=」については「YES」が必須となります。「NO」を指定してしまうと処理結果を取得できま
せん。
【使用例】
%SCANPDS(DSNAME=SDC.SAS607.SAMPLE,STR=%NRSTR(PROC SUMMARY),UPCASE=YES,REPORT=YES) ;
SCANAF 17OCT00
14
文字列検索ユーティリティ使用の手引き
2000年10月17日
第2版第1刷発行
発行元 株式会社SASインスティチュートジャパン
〒104-0054 東京都中央区勝どき1-13-1 イヌイビル・カチドキ8F
電話 03(3533)3760
本書の内容に関する技術的なお問い合わせは下記までお願い致します。
SASテクニカルサポート
TEL:
:03 (3533) 3877
SCANAF 17OCT00
FAX:
:03 (3533) 3781
15