LotusScript® 言語を Domino で使用する方法を紹介する 3 つのレッスンの最後です。先にレッスン 1 と 2 を終了してください。
レッスン 3 では、電子メールメッセージを作成して送信するスクリプトの作成について説明します。このスクリプトはフォーム上のアクションを選択すると実行されます。
フォームアクションは、文書がそのフォームで表示されていればいつでも呼び出せます。
Sub Click(Source As Button)
Dim db As NotesDatabase
Dim doc As NotesDocument
' get the database
Set db = New NotesDatabase( "", "Learning LotusScript.nsf" )
' create a new document in the database
Set doc = New NotesDocument( db )
' set the new document's form so it'll be readable as a mail memo
doc.Form = "Memo"
' set the new document's subject
doc.Subject = "Request for info"
' set the new document's body
doc.Body = "Please send me more information about this."
' mail the new document
Call doc.Send( False, "Reuben Jordan" )
End Sub
次の手順を行います。
スクリプトを保存した後で編集する必要はありませんが、必要となった場合のために手順を示します。
作成したスクリプトの意味は、次のように表現できます。新しい文書をデータベースに作成します。いくつかの文書アイテムに値を設定します。文書をメールで送信します。
手順 B のスクリプトにはコメントが記述されています。これらのコメント以外にも、次の説明を参照してください。
これまでの手順で作成したスクリプトは、データベースで現在どの文書が開いているかに関係なく、自分宛にメールを送信します。学習した内容を使用してスクリプトを修正し、選択文書の作成者宛にメールを送信できるようにしましょう。
選択文書の作成者にメールを送信するには、アクションバーの [情報要求] ボタンをクリックしたときにワークスペースに表示される文書にアクセスする方法が必要です。これまでは NotesDocument クラスを使用してデータベースに保存された文書を表してきました。このクラスを使用すれば、データベースに保存されたどの文書にもアクセスできます。ワークスペースで現在開いている文書を表すには別のクラス (に加えて別のプロパティとメソッド) が使用されます。[リファレンス] タブを使用して次の作業に必要なクラス、メソッド、プロパティを検索しましょう。
作成方法が分からない場合は、NotesUIWorkspace クラスの説明を参照してください。
スクリプトの作成例を次に示します。
Sub Click(Source As Button)
' NEW: access the document that's currently open on the workspace
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
' UNCHANGED from previous script
Dim db As NotesDatabase
Dim doc As NotesDocument
' get the database
Set db = New NotesDatabase( "", "Learning LotusScript.nsf" )
' create a new document in the database
Set doc = New NotesDocument( db )
' set the new document's form so it'll be readable as a mail memo
doc.Form = "Memo"
' set the new document's subject
doc.Subject = "Request for info"
' set the new document's body
doc.Body = "Please send me more information about this."
' mail the new document
' NEW: use the NotesUIDocument object
' to get the value of the From field
Call doc.Send (False, uidoc.FieldGetText( "From" ))
End Sub