2011年8月8日月曜日

次のツールを検討中, テストのエビデンスを残す

仕事をしていて、こんなツールあったらいいなというアイディアが浮かびました。SASプログラムを実行するとログが出力されます。このときに、ERROR: WARNING:をチェックして、他に怪しいメッセージがないか確認します。このエビデンスを残すツールが欲しい。
  • チェックしたログファイルをExcelシートに出力
  • チェックして引っ掛かった項目と件数がExcelシートを出力
  • 誰がいつ、どのログファイルをチェックしたかわかる
  • 設定ファイルを変えれば、チェックするキーワードを変更できる
ということで、コードネームEvianとして開発担当にお願いしときます。

2011年6月26日日曜日

PowerShellでSASからユーザ登録

仕事のメモです。とある仕事で、リモートコンソールが使えなくなるということで、SASのリモート実行でユーザ登録、削除を行えるようにしようとしています。まずは、PS1のスクリプトが実行できるようにPowerShellから設定を変更します。
 Set-ExecutionPolicy RemoteSigned
次に、RSUBMITするSASコード
%macro adduser(name, passwd, fullname, desc);


  %let script=%bquote("C:\Documents and Settings\suzuki\desktop\foo1.ps1");
  options noxwait xsync;
  x "powershell.exe -file &script &name %quote(&passwd) %quote(&fullname) %quote(&desc)";
  %if &sysrc=0 %then %do;
  %put INFO: adduser success &name;
  %end;
  %else %do;
  %put INFO: adduser error &name;
  %end;
%mend;


options nomprint nosource;
%adduser(a, Sas4passworddayo!, %str(my name), %str(test desc));
%adduser(b, Sas4passworddayo!, %str(my name), %str(test desc));
%adduser(c, Sas4passworddayo!, %str(my name), %str(test desc));
最後に、ユーザ追加のPS1を示します。
#
# 変数宣言
#
$USER_NAME = $args[0]
$USER_PASSWORD = $args[1]
$USER_FULLNAME = $args[2]
$USER_DESCRIPTION = $args[3]


#
# ローカルユーザー作成
#
$computer = [ADSI]"WinNT://."
$user = $computer.Create("user", $USER_NAME)
$user.SetPassword($USER_PASSWORD)
$user.SetInfo()
$user.FullName = $USER_FULLNAME
$user.Description = $USER_DESCRIPTION
$user.UserFlags = 0x10000 #パスワードを無期限に設定
try {
  $user.SetInfo()
}
catch {
  exit 99
}
exit 0

2011年6月22日水曜日

SAS Option Report, 改良のアイディアメモ

標記のツールを自分の仕事で使っていますが、まずまず使えます。改良のアイディアをメモしておきます。
  • Optionsの値をファイルに保存せずに、そのまま画面に貼り付けたい
  • 2つのOptionsの値を比較して差異を特定できるようにしたい

2011年6月19日日曜日

SAS Log Utility, 1.4.1.1 リリース

Vectorへの公開をストップしていますが、私家版として更新しています。今日は、一括で分析、Excelファイルにエクスポートする機能を追加しました。ログの量が少ないときには、それほど負担に感じませんが、最近は大きなログを掛けることが多いので、一括実行のボタンを追加しました。
  • Elapsed, DataSet, CRUDなどの分析を一括実行するボタンを追加
  • 複数の分析結果を1つのExcelファイルに一括してエクスポートするボタンを追加
  • Windows版でFULLSTIMERのログをパースできるように修整
  • 圧縮のメッセージを間違ってカウントするバグを修整

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
今回のトラブルで不思議だったのは、アンインストールして前のインストールフォルダを削除しても、最初のインストールフォルダの情報がどこかに残っていることです。これは、インストール途中のワークファイルをチェックするとわかります。前のフォルダを参照してエラーとなっているのか??レジストリに中を検索してもそれらしきものは見つからず、どこに隠されているのか謎です。