2006年09月09日

DocumentDiffer クラス (1)

先日、職場のヒトが ソックス の話をしていたので、ニーソックス絶対領域 に関する熱い話題 を期待して近づいていったら、J-SOX 法に関する話題でした... orz

なんちて。

最近、J-SOX だの 内部統制 だのの流れで、システムの要件に厳密な権限管理や、詳細ログの保存等が盛り込まれることが多いようです。

知り合いも既存の Notes DB に、文書の変更ログ機能 を追加するよう言われていました。 変更のあったフィールドを、基本的にはすべてログする必要があるとのことです。 フィールドの数が多いので眩暈がすると嘆いていました。

いい機会ですので、(頭の隅の)倉庫に眠っていた DocumentDiffer クラスをご紹介します。

まずは恒例の使い方から。

まずはフォームの (Globals) の (Declaration) で大域変数を宣言しておきます。
Dim aDocumentDiffer As DocumentDiffer

後は以下のように利用します。
Sub Postmodechange(Source As Notesuidocument)
' 文書の変更前の状態をバックアップ
If Source.EditMode = True Then
Set aDocumentDiffer = New DocumentDiffer(Source.Document)
End If
End Sub

Sub Postsave(Source As Notesuidocument)
' 変更前との差分を作成
Call aDocumentDiffer.process(Source.Document)
' 今回の例では単にポップアップ表示するだけ
Msgbox aDocumentDiffer.toString
End Sub

文書を更新すると、更新したフィールドの名前と、変更前後の値がポップアップ表示されるようになるはずです。

次回はコンストラクタあたりから、実際のコードをご紹介しましょう。
posted by yamachan at 21:40| Comment(0) | TrackBack(0) | my設計パターン
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/1244754

この記事へのトラックバック