Notesってノーツと読むんだよ。

自作クラス1

最終更新:

bottle

- view
メンバー限定 登録/ログイン

ワークフロー用自作クラス

ワークフローで良く使うメール送信関連をクラス化。
#管理者の一言
こんなもんクラスとして作る必要あったのか?
関数でいいじゃない?っという疑問は棚置き。。。

注意

このクラスのメールの送信には各クライアントの環境変数値を使います。
この為、現在のロケーションのホーム/メールサーバ名とメールファイルの設定が
実際の使用NotesIDとの乖離がある場合、送信エラーが発生しますので、
送信エラーが発生するユーザにはクライアントサイドで
ロケーションの編集を行ってください。

メソッド

  • constatation(ワークフロー開始確認用)
  • SendMail(実メール送信処理用メソッド)

構文

Set SendHandle = New WorkFlow(strTitle)
もしくは
Dim SendHandle as New WorkFlow(strTitle)

引数

  • strTitle
string型
メールタイトルを設定

コーディング

必ず(Declarations)で宣言してください。

'****************************************************
'** WorkFlow:ワークフロー用クラス
'****************************************************
Class WorkFlow
m_session As NotesSession
m_db As NotesDatabase
m_doc As NotesDocument
strSubject As String'メールのSubject
intWKFL As Integer'intStatusの値取得用
strKyakka As String'却下コメント


Sub New(strTitle As String) 'コンストラクタ
strSubject = strTitle 'メールタイトル
End Sub


'ワークフロー開始確認用
Function constatation(intStatus As Integer) As String
intWKFL = intStatus
If intWKFL = 0 Then'通常ルーチン時
strCom = strSubject + "を開始してよろしいですか?" + Chr(10) + _
"中止したい場合は[キャンセル]をクリックしてください。"
intConstWKFL = Messagebox(strCom , 1 , strSubject)
If intConstWKFL = 1 Then
constatation = "OK"
Else
constatation = "STOP"
End If
Elseif intWKFL = 1 Then'却下ルーチン時
strCom = "却下コメントを入力してください。" +_
"[キャンセル]押下時と、コメントがない場合は却下処理を中止します。"
strKyakka = Inputbox$(strCom, "却下コメント入力")
If strKyakka = "" Then 'コメントがない場合とキャンセルの場合
constatation = "STOP"
Else
constatation = strKyakka '却下コメント
End If
End If
End Function


'メール送信用メソッド
Function SendMail(note As NotesDocument, valSendTo As Variant,_
valSendCc As Variant, strBody As String)
Set m_session = New NotesSession
Set m_db = m_session.CurrentDatabase'現在のDB
'ワークフローメールにリンクされる文書
Set m_doc = note

Dim MYServer As String, MYMaildb As String
Dim MYdb As NotesDatabase
MYServer = m_session.GetEnvironmentString("MailServer",True)
MYMaildb = m_session.GetEnvironmentString("MailFile",True)
'メールDBの指定
Set MYdb = New NotesDatabase(MYServer,MYMaildb)
Dim MYMEMO As NotesDocument
'MYdb内で新規文書を作成
Set MYMEMO = MYdb.CreateDocument

'メール用フォームの指定
MYMEMO.Form = "memo"
MYMEMO.subject = "[" + m_db.title + "DB]" + strSubject
MYMEMO.Sendto = valSendTo'宛先
MYMEMO.CopyTo = valSendCc'CC

Set MYRICH = New NotesRichTextItem (MYMEMO,"Body")
'Bodyフィールドの末尾にコメントを貼付け
Call MYRICH.AppendText(strBody)
Call MYRICH.AddNewLine( 2 )
Call MYRICH.AppendText("文書リンク・・・・・")
'Bodyフィールドの末尾に文書リンクを貼付け
Call MYRICH.AppendDocLink(m_doc, "文書リンク")
Call MYMEMO.Send(False)

Messagebox "「" + strSubject + "」を送信しました。", MB_OK, strSubject
End Function

End Class

ツッコミ・コメント

名前:
コメント:


目安箱バナー