2011年4月30日土曜日

SRX, 有効期限の設定

開発の覚書です。今日の作業をメモしておきます。バージョンアップには検証が付き物。検証といえばエビデンス。エビデンスといえば面倒。その面倒なエビデンス作りを楽にするために、機能を追加しました。
  • スプラッシュにバージョン番号を表示する処理を修整
  • スプラッシュに有効期限を表示するように修整
  • 有効期限の制限を追加
  • ホスト名による制限を追加
  • 終了時にテンポラリを削除しないオプションを追加
  • テンポラリフォルダをエクスプローラで開く機能を追加
それと、以下の項目は保留とします。ここまで作れば、実用十分と判断したからです。バックアップファイル作る機能は欲しいのですが、プロジェクトファイル内部のコードタスクと、貼り付けたSASコードの区別が付かないため、今のところ実装しません。
  • プロジェクトファイルのバックアップを作成するか検討
  • プログレスバーを表示できるか検討、スレッド化するか?
ぼちぼち、仕事で使える次のツールを検討します。

2011年4月25日月曜日

SRX, エビデンス保存

開発の覚書です。今日の作業をメモしておきます。バージョンアップには検証が付き物。検証といえばエビデンス。エビデンスといえば面倒。その面倒なエビデンス作りを楽にするために、機能を追加しました。
  • 全てのタブを1つのブックに保存する機能を追加
それと、明日以降の作業をメモしておきます。
  • プロジェクトファイルのバックアップを作成するか検討
  • プログレスバーを表示できるか検討、スレッド化するか?
  • 仕事用に有効期限とホスト名しばりを追加したい
  • 終了時にテンポラリを削除するか確認する機能を検討

2011年4月22日金曜日

SASソフトウェアインストールに必要な権限がありません

SAS9.2(TS2M3)のインストール作業で、タイトルのエラーにぶつかりました。英語のメッセージは、「The user account (domain\user) does not have sufficient rights to install SAS software」です。なんとか解決しましたがが、他に苦しんでいる人もいるかもしれないのでメモしておきます。現象は、既にインストールされているSAS9.2をアンインストールして、再インストールするときに発生しました。
  • 別な誰かがSAS9.2インストール
  • 容量不足でインストール先を変更したいのでアンインストール
  • インストールフォルダを削除(これ大事)
  • 管理者権限のユーザでインストール
  • Deplyment Wizardの途中で何故か必要な権限がないとエラー
  • sdw.log をテクサポに送って調査…
結論としては、Deplyment Wizardを実行するときに -skipadmincheck というオプションをつけて実行します。とある方から教えてもらった方法、経験則なので公式な方法ではないことを書き添えておきます。
  • setup.exe -skipadmincheck
今回のトラブルで不思議だったのは、アンインストールして前のインストールフォルダを削除しても、最初のインストールフォルダの情報がどこかに残っていることです。これは、インストール途中のワークファイルをチェックするとわかります。前のフォルダを参照してエラーとなっているのか??レジストリに中を検索してもそれらしきものは見つからず、どこに隠されているのか謎です。

2011年4月20日水曜日

SRX, ファイル一覧をStringGrideに変更

開発の覚書です。今日の作業をメモしておきます。検索の対象も、検索のパターンも、置換結果も1つのExcelファイルにまとめます。エビデンスとして提出するときに1つのブックだと、まとまりが良いので。
  • プロジェクトファイル一覧をTAdvStringGridに変更し、ExcelIOでインポートとエクスポートを作り直しました。
それと、明日以降の作業をメモしておきます。
  • ファイル一覧、検索ベンチ、置換結果をまとめてExcelに出力
  • プロジェクトファイルのバックアップを作成するか検討
  • プログレスバーを表示できるか検討、スレッド化するか?
  • 仕事用に有効期限とホスト名しばりを追加したい

2011年4月17日日曜日

SRXの概要

SRXの概要を説明します。SAS Enterprise Guideのプロジェクトファイルに含まれるコードタスクを検索、置換するためのツールです。多数のEGPを抱えているユーザに役立つツールです。

なぜSRXを作ったのか?
SAS Enterprise Guideは、ポイント&クリックで簡単にデータを加工、分析できる便利なツールです。しかし、コードタスクで記述したプログラムをまとめて検索、置換する機能がありません。また、一般的な検索と置換のツールは、修整範囲の調査とエビデンスを残すという機能が不足しています。EGプログラム資産を漏れなく調査し、修整を行ったエビデンスを残すために、SRXを開発しました。

SASバージョンアップにおいて面倒なのが、書き換える部分を探しながら置換のパターンを定義する作業です。私はこれまでUNIX上にコードを落として、grep(1)でパターンを洗い出しては、置換のパターンを作っています。SRXは、検索して置換のパターンを作る作業、エビデンスを残す作業を連続して行えるようにしています。

SRXの機能
SRXの機能を以下に列挙します。
  • EGPに含まれるコードタスクの文字列を検索、置換
  • 複数の.EGP, .SASを指定
  • 正規表現を使って、コードタスク中の文字列を検索、置換
  • 検索した結果をExcelファイルに出力
  • 置換した結果をExcelファイルに出力
  • コードタスクを確認しながら正規表現を定義
  • 置換した結果をDF.EXEで事前に確認
操作手順
操作手順を図示して説明します。


プロジェクトファイル又は.SASのファイルをドロップで指定します。

コードを抽出し、置換したい部分を右クリックメニューで正規表現のタブにコピーします。

正規表現タブで、パターンを編集します。

マッチングタブで置換した部分を確認します。

DF.EXEでコード全体を比較します。

今の時点では、SRXをVectorに登録しません。広いニーズがあるツールではないので、自分の仕事にだけ使う予定です。

SRX, SASファイルも処理できるように修正

開発の覚書です。今日の作業をメモしておきます。今日までの作業で安定したコードになってきました。後は、リクエストに応じて微調整を入れます。

  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • ステータスバーに操作の情報を表示
  • EGを起動するタイミングを変更
  • 関数、プロシージャを整理
それと、明日以降の作業をメモしておきます。
  • プロジェクトファイルのバックアップを作成するか検討
  • プログレスバーを表示できるか検討、スレッド化するか?
  • 仕事用に有効期限とホスト名しばりを追加したい

2011年4月13日水曜日

SRX, レジストリを参照してオブジェクト名を取得

開発の覚書です。今日の作業をメモしておきます。

  • EGのOLEオブジェクトを定数から、GetRegStringValueで取得するように変更
それと、明日以降の作業をメモしておきます。
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • ステータスバーに表示する情報をさらに検討
  • プログレスバーを表示できるか検討、スレッド化するか?

2011年4月12日火曜日

SAS Enterprise Guide 4.3, コードのフォーマットを試す。

新しいEG4.3を入手できたので、コードの整形機能を試しました。目が痛くなるような過去のコードを投入して、どんなインデントになるか調べてみます。

Before
After

2011年4月10日日曜日

SRX, DF.EXEの起動

開発の覚書です。今日の作業をメモしておきます。
  • コードをエクスポートして、置換前後のコードをDF.EXEで比較する機能を検討
それと、明日以降の作業をメモしておきます。
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • ステータスバーに表示する情報をさらに検討
  • プログレスバーを表示できるか検討、スレッド化するか?
DF.EXEで置換した結果を比較できます。

2011年4月8日金曜日

SRX, 正規表現の整理

開発の覚書です。今日の作業をメモしておきます。
  • Regular Exp.タブの入力項目を整理する機能(Refresh)を追加
  • 検索ベンチ、正規表現、マッチングのStringGirdに検索フッタを追加
  • AdvExcelIOの属性を変更して、Cellの書式をインポートしないように変更
それと、明日以降の作業をメモしておきます。
  • コードをエクスポートして、置換前後のコードをDF.EXEで比較する機能を検討
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • ステータスバーに表示する情報をさらに検討

SRX, 砂時計

開発の覚書です。今日の作業をメモしておきます。
  • 処理中のマウスポインタを砂時計に変更
それと、明日以降の作業をメモしておきます。
  • Regular Exp.タブの入力項目を整理する機能が欲しい
  • コードをエクスポートして、置換前後のコードをDF.EXEで比較する機能を検討
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • ステータスバーに表示する情報をさらに検討

2011年4月6日水曜日

SRX, 検索パターンをコピー

開発の覚書です。今日の作業をメモしておきます。
  • 検索ベンチのText列を右クリックメニューで、正規表現のタブにコピーする機能を検討
  • 検索ベンチをExcelにエクスポートする機能を追加
  • ステータスバーにプロジェクトファイルの件数表示を追加
それと、明日以降の作業をメモしておきます。
  • 処理中のマウスポインタを砂時計に変更
  • Regular Exp.タブの入力項目を整理する機能が欲しい
  • コードをエクスポートして、置換前後のコードをDF.EXEで比較する機能を検討
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • ステータスバーに表示する情報をさらに検討
Search Benchの右クリックメニューから、Regular Exp.へフィード

SRX, 検索ベンチの実装

開発の覚書です。今日の作業をメモしておきます。
  • 検索ベンチのコード抽出機能を実装
  • 検索ベンチのタブ順番を変更
  • 検索ベンチのText列をコードに合わせて幅調整
  • コードが改行で終わっていないときの処理を追加
それと、明日以降の作業をメモしておきます。
  • 検索ベンチのText列を右クリックメニューで、正規表現のタブにコピーする機能を検討
  • 検索ベンチをExcelにエクスポートする機能を追加
  • コードをエクスポートして、置換前後のコードをDF.EXEで比較する機能を検討
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • ステータスバーに表示する情報を検討

2011年4月4日月曜日

SRX, 検索ベンチの検討

パターンマッチングの正規表現を定義する前に、コードを確認したいと考えました。そこで、Search Benchというタブを設けて、この中でコードを検索できるように検討しています。
Search Footerでコードを検索

今日の作業をメモしておきます。
  • プロジェクトファイルを保存する処理を追加
  • 検索ベンチのタブを実装着手
それと、明日以降の作業をメモしておきます。

  • 検索ベンチのコード抽出機能を実装
  • コードをエクスポートして、置換前後のコードをDF.EXEで比較する機能を検討
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • コードが改行で終わっていないときの処理を追加
  • ステータスバーに表示する情報を検討