これからご紹介するのは、メールに文書リンクを挿入しますが、受信者はリンクをクリックしなくても、文書を開くだけで他のアプリケーションの文書が開くようにする仕掛けです。
まずはメールを送信するためのボタンに設定する LotusScript のサンプルです。
Sub Click(Source As Button) Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDocument Dim ss As New NotesSession Dim doc As NotesDocument Dim rtitem As NotesRichTextItem Set uidoc = ws.CurrentDocument Call uidoc.Save Set doc = New NotesDocument( ss.CurrentDatabase ) doc.Form = "Link" doc.Subject = "[Request] " & uidoc.Document.Subject(0) Set rtitem = New NotesRichTextItem( doc, "Body" ) Call rtitem.AppendDocLink( uidoc.Document, uidoc.Document.Subject(0) ) Call doc.Send( True, "Hoge Hoge/ORG" ) Set doc = Nothing Call uidoc.Close( True ) End Sub
このサンプルで作られる文書(doc)ではフォーム名として "Link" を指定しています。※フォーム名は"Link"以外でも結構です
この"Link"フォームをDBに作成しておき、フォーム上に2つのフィールド"Subject"と"Body"を配置します。
そして"Link"フォームのプロパティを開き、[起動]タブにある「自動起動」の値を "-最初の文書リンク-"に変更します。
作成した文書を送信するとき、Send メソッドの第一パラメータへ True を指定すると、文書にフォームの設計情報が埋め込まれます。
つまり「フォームの最初にある文書リンクを自動起動する」情報が埋め込まれるわけです。
こうして送信されたメールをビューからダブルクリックして開くと、リンク先の文書が開きます。
この仕組みの惜しいところは、プリビューペインで開いた場合はリンク先の文書は開かず、埋め込まれたフォームの内容が表示されるところです。
プリビューペインで開くことを想定して、「リンクをクリックして文書を開きなさい」的な文言を追加したり、"Link"フォームの設計を工夫するのが良いと思います。
中野様
返信削除10年以上前の記事に対してコメントすることお許しください。
今困っていることがありまして、ネットの海を彷徨っているところに中野様の記事を見つけた次第です。
どうかお力添えいただけないでしょうか。
現在やろうとしていることは、メール文書を送信した際に(送信ボタンをクリックした際に)文書が送信される前に、一度ポップアップか何かで「宛先」「CC」「BCC」を表示させるものです。
しかし、Notes初心者である私には全くわかりません。フォームやアクションやエージェントなどを上手に組み合わせればいいのか等と考えていますが、「宛先」の入力情報などをポップアップ等に渡す方法がわからなければ、そもそも送信のアクションの中にどう記述すればポップアップを出すことができるのかもわかりません。
NotesはVBA等と比べるとドキュメントやナレッジが少なく、上司に命令されて頑張ってはいますが途方に暮れています。
どうかヒントだけでもいいので与えてもらえないでしょうか。
フォームには(メールに限らず) 「送信」の前に動く Querysend と後に動く Postsend というイベントが用意されています。ポップアップを表示するだけなら Postsend イベントにコードを書けばいいと思いますが、ポップアップの後に送信をキャンセルするような処理があるならば Querysend イベントに書きます。
削除ポップアップについては NotesUIWorkspace クラスのメソッド Prompt あるいは Dialogbox あたりを調べてみることをお勧めします。
コード>スクリプトライブラリ>[CoreEmailClassies_ja-JP](フォーム上に設置されている「送信(N_)」は式言語で書かれていて違うな、となり、コードのところを検索で見つけました。)の、function Querysendの中で
削除メッセージボックスにNotesUIDocument.document.GetItemValue("EnterSendTo")などを渡して表示し、YESNOでExit Functionするかどうかを判定すればいい、という認識で合っていますか?
私は先の返信でヒントを書いたつもりです。本件に関してこの場で1から10まで教えることは不可能ですので、ここでのやり取りは終了とさせてください。
削除ご存知かもしれませんが、ノーツに関してQAできるWebサイトがあります。ボランティアですので回答が付く保証は全くありませんが、例えば下のWebサイトです。
http://qa.xpages.jp/QA/qa.nsf/
もしノーツ開発の初歩を知りたいということでしたら、ノーツコンソーシアム開催の「新任担当者ワークショップ」に参加されてみてはいかがでしょうか。こちらは会員以外でも無料で参加できます(少なくとも2021年まではそうでした)。