ページビューの合計

2019年5月30日木曜日

#カレンダー から #ics ファイルを添付した新規メールを作成する

This time I tried to create an action button with the following content.
1 Export ics file from Notes schedule
2 Display the new mail creation screen with the ics file attached

みなさま、こんにちは!!
IBM Notes/Domino Day 2019 Springツアー、各地盛り上がったようですね。
某会場では、なぜか申し込み人数より多くの参加者があったとか(笑

国内の注目、活況が証明されたようですね。

さて今回は、以前よりicsファイルのやり取りによるスケジュール追加が便利だと感じておりました。そもそもNotesのカレンダーからicsファイルが生成できるのかすら知りませんでしたのですが、「書き出し」機能のデフォルトに存在していました。


ただしこのicsファイル。基本的に自分のカレンダーには存在しているものであり、メール添付して送付することが主な利用用途になるかと思います。
ということで、自分のスケジュールからicsファイルを作成し、新規メール作成画面を表示させ、あらかじめ添付ファイルとして登録されていれば簡単に送信できるのでは!!?ということで、社内実装してみましたので、その手順をご紹介致します。

やり方は単純で、

①Notesがもっているエクスポート機能を使用して、指定したディレクトリにicsを保存。

②新規メールを作成し、①で保存したicsファイルを添付

となります。

ということで、まずは①のicsファイルのエクスポートです。
今回はメールテンプレートに共有アクションとして追加しました。


式として、以下を記述します(保存先はそれぞれの環境に合わせてください。もちろんファイル名は自由ですが、拡張子は[.ics]にします)
※半角"¥"は本ブログでは "\" になってしまいますので、便宜上全角"¥"を使用してあります。


 @Command([FileExport]; "Calendar File"; "(保存先ディレクトリ)¥¥ical.ics")



エクスポートのテストを行うため、作成した共有アクションを【($Calendar)|Calendar】ビューに追加します。


それではご自身のメールを再設計して、テストしてみます。
※再設計
  手順:メールアプリケーションを右クリックして、[再設計]をクリック
     テンプレートの場所(サーバー)を選択し、[OK]
  注意:メールアプリケーションがテンプレートから設計を引き継ぐにチェック


再設計が完了しましたら、カレンダーを開きます。以下のように[ics export]のボタンが表示されていることを確認します。



早速ですが、登録されたスケジュールのひとつを選択し、[ics export]をクリックします。

以下のように[iCal エクスポート]ダイアログが表示されますので、[選択文書]のまま[OK]します。(すべてをエクスポートする場合は、[すべての文書]を選択してください。)


指定したディレクトリに、ical.icsファイルができていればOKです。



続いての②新規メールを作成し、①で保存したicsファイルを添付の設計です。

新規のエージェント(LotusScript)を作成します。
名前/別名は自由ですが、私は両方に[ics_mail]としました。


こちらに記述する内容は以下となります。
件名や文面は自由に設定ください。


Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim maildb As New NotesDatabase("","")
Dim afile As NotesEmbeddedObject 
Call maildb.OpenMail
Set uidoc=ws.CurrentDocument

Set doc = maildb.CreateDocument
Call doc.ReplaceItemValue("Form","Memo")
Call doc.ReplaceItemValue("Subject","icsファイル送信")

Set rtitem = New NotesRichTextItem(doc,"Body")
Call rtitem.AppendText("スケジュールのicsファイルを添付致します。")
Call rtitem.AddNewline(2)
Set afile = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "(保存先ディレクトリ)¥¥ical.ics")
Call doc.Save( False, False)
Call ws.EditDocument(True,doc)
End Sub


次に、①で作成した共有アクションに、②のエージェントを実行する行を追加します。


 @Command([FileExport]; "Calendar File"; "(保存先ディレクトリ)¥¥ical.ics");
@Command([ToolsRunMacro];"ics_mail")

以上で保存し、再度メールアプリケーションを再設計します。

以下、動きをご覧ください。
※gifファイルを表示していますので、連続再生されています。


宛先を指定し、送信した結果は以下となります。


添付されたicsファイルの中身は、以下のようになっており、問題なくカレンダーに取り込むことが可能です。


以上、今回は少しLotusScriptを使いましたが、思うような動作を得ることができました。
これで社外の方ともスケジュールの共有が少し楽にできそうです。


0 件のコメント:

コメントを投稿