目次


LDD Today

Lotus Notes カレンダーとスケジュールの詳細な説明 Part 2

Comments

コンテンツシリーズ

このコンテンツは全#シリーズのパート#です: LDD Today

このシリーズの続きに乞うご期待。

このコンテンツはシリーズの一部分です:LDD Today

このシリーズの続きに乞うご期待。

パート1 の記事では、Lotus Notes のカレンダーとスケジュール (C&S) のプリファレンスがどのように機能し、それが C&S の動作にどのような影響を与えるのかについて説明しました。パート 2 では、Schedule Manager、自動処理、およびタスクのワークフローといった C&S のコンポーネントに目を向けることにします。また、C&S の各機能を円滑に実行するために役立つトラブルシューティングのヒントも紹介します。

パート1 と同様、この記事を理解するのに C&S のエキスパートである必要はありませんが、C&S の基本的な機能に慣れていると理解しやすいでしょう。基本的な機能を知りたい方は、この記事の前にパート 1 をお読みになることをお勧めします。

Schedule Manager: 忙しいユーザーを支援する必須機能

Schedule Manager サーバータスクは、ユーザー、会議室、およびリソースの空き時間を管理します。このため、カレンダー・ユーザーのメールファイルを管理しているすべての Domino Server で、このタスクが実行されていることが必要です。Schedule Manager は、すべてのユーザー、会議室、およびリソースのスケジュール情報が保管されている [空き時間情報] データベース (非クラスタサーバーでは busytime.nsf、クラスタサーバーでは clubusy.nsf) を管理します。[空き時間情報] データベースは、手動によるメンテナンスは一切必要ありません。[空き時間情報] データベースに含まれるデータは人間が読める形では保存されておらず、また公開済み API を使用しないとアクセスできないので、デフォルトでは、サーバーだけが [空き時間情報] データベースへのアクセス権を持ちます。

ユーザーのメールファイルと [会議室予約] データベースは、Schedule Manager によってモニタリング対象のデータベースとして自動的に登録されます。このため、ユーザーのカレンダーまたは [会議室予約] データベース内でエントリが追加、削除、または更新されると、Schedule Manager は、このユーザー、会議室、またはリソースの空き時間レコードを [空き時間情報] データベースで更新します。Schedule Manager はエントリの $BusyName アイテムと $BusyPriority アイテムを使用して更新するレコードを識別し、ビジーとして指定する必要があるかどうかを決定します。エントリを保留した場合および会議招集に仮出席と返信した場合は、$BusyPriority アイテムの値は 2 になります。この値は、そのエントリの時間はビジーにはしない (空き時間とする) ことを Schedule Manager に示します。それ以外の場合は、$BusyPriority アイテムの値は 1 に設定されます。

図 1. カレンダーエントリの $BusyName アイテムと $BusyPriority アイテム
カレンダーエントリの $BusyName アイテムと $BusyPriority アイテム
カレンダーエントリの $BusyName アイテムと $BusyPriority アイテム

ユーザー、会議室、またはリソースに空き時間レコードが存在しない場合は、Schedule Manager がこのレコードを作成します。Schedule Manager は、既存のカレンダーエントリに関する情報と共に、ユーザー、会議室、またはリソースの利用可能時間 (カレンダープロフィールまたは会議室/リソースプロフィールで設定されているもの) をレコードに保存します。

ユーザーまたはリソースの空き時間の検索は、Domino Server によって実行されます。Domino Server は空き時間情報を調べ、特定の日付と時刻にユーザーまたはリソースが利用可能かどうかを判断します。空き時間情報のすべての要求は、ユーザーのホームサーバーに送信されます (ホームサーバーは、Lotus Notes の現在のロケーション文書で定義されています)。Lotus Domino はローカルで見つけたすべてのユーザーへの要求を処理しますが、それ以外のユーザー、会議室、またはリソースへの要求は Calendar Connector タスクを介して、正しいサーバーに転送します。また、サーバー・コマンド「tell sched show <personroomorresource>」(<personroomorresource> は完全階層名) を使用すると、ユーザー、会議室、またはリソースがローカルで見つかった場合に、その空き時間情報が返されます。

図 2. 「tell sched show」サーバー・コマンドの結果
「tell sched show」サーバー・コマンドの結果
「tell sched show」サーバー・コマンドの結果

Schedule Manager は、サーバーの起動時および 1 日 1 回決められた時刻に正当性のチェックを実行します。このチェックでは、[空き時間情報] データベースに登録されている各ユーザー、会議室、およびリソースに対し、現在のサーバー (または、クラスタの 1 つ) が、Domino ディレクトリのユーザーエントリ内で引き続きホームサーバーとして指定されているかどうかを確認し、指定されていない空き時間レコードを削除します。これにより、組織内に既に存在しない、あるいはホームサーバーが変更されたユーザー、会議室、またはリソースの空き時間情報が削除されます。また、空き時間レコード内の各エントリが、メールファイルまたは [会議室予約] データベース内のカレンダーエントリと同期しているかどうかを確認します。非常に希なケースですが更新が失敗する可能性があり、それに備えるためです。

自動処理 (サーバー内のロボット!)

数多くの会議招集を選別することは面倒だと思っている人々にとって、自動処理機能は、専属のアシスタントのように非常に価値の高いものになるでしょう。自動処理オプションは、会議招集へ返信するとき、および会議室やリソースの所有者としてリソース要求に返信するときの 2 つの状況で使用できます。

会議招集の自動処理を調べるために、もう一度、カレンダープロフィールで利用できるプリファレンス、特に [カレンダーとタスク] - [自動処理] タブを見ることにしましょう (カレンダープロフィールについては、パート 1 の記事を参照してください)。

図 3. 自動処理オプション
自動処理オプション
自動処理オプション

[会議招集の自動処理を有効にする] オプションを選択すると、自分が希望する処理を正確に指定できます。まず、自動処理の対象とする会議招集を選択します。つまり、どのユーザーから送信された会議招集に自動処理を実行するのかを選択します。選択肢としては、すべてのユーザー、指定したユーザー、指定したユーザー以外のすべてのユーザーがあります。次に、会議招集に返信するときに実行するアクションを指定します。会議の時間帯に空いている場合は、自動処理として、招集を了承するか、特定のユーザーに代理を依頼するかを指定できます。会議の時間帯に空いていない場合は、自動処理として招集を辞退するか、または自動処理では何もせずにユーザーが決めるかを指定できます。

これ以外に、カレンダープロフィールの [アクセス/代理] タブで、他のユーザーに自分のメールファイルへのアクセスを許可する場合にも、自動処理オプションを利用できます。この場合は、会議招集を特定のユーザーに自動的に転送できます。この機能は、スケジュールの管理をアシスタントに任せているような場合に特に役立ちます。自分が参加者になっている会議、または自分で開催した会議を自動転送するかどうかを指定できます。プライベートに指定したメールについては、別のアクションを選択できます。[すべてのユーザー/グループを許可する] オプションが選択されている場合は、自動転送オプションは使用できません。

図 4. 会議招集の自動転送
会議招集の自動転送
会議招集の自動転送

[会議室予約] データベースで会議室またはリソースを作成するとき、所有者に関するオプションの 1 つに自動処理があります。このオプションを使用すると、自動処理を介して会議室またはリソースを予約できる所有者とユーザーのリストを指定できます。このオプションを設定すると、指定したユーザーから予約要求が送られたとき、会議室またはリソースの空き状況に応じて、承認または否認を自動的に決定することができます。ユーザーリストに指定されていないユーザーから送られた予約要求は、会議室またはリソースの所有者が手動で承認する必要があります。[所有者のみ予約可能] オプションおよび [指定したユーザーのみ] オプションでも、所有者自身または指定されたユーザーが予約を要求するときに、自動処理を行うことができます。

さて、これらの要求を処理する自動処理タスクが、実際にサーバー上に存在するのでしょうか。実は、Router タスクがこれらの自動処理を行っています。Router は、会議招集、スケジュール変更、キャンセル、または予約要求を配信するときに、実行が必要な自動処理があるかどうかをチェックします。メールの配信先が、自動処理が有効になっているユーザー、会議室、またはリソースの場合は、Router はカレンダープロフィールまたはリソース文書での設定にしたがって処理します。

図 5 を参照してください。Router は予約要求を会議室またはリソースに配信していますが、その直後に、予約要求を行ったユーザーに返答が配信されています。このことは、Router によって要求の自動処理が行われたことを示します。

図 5. 予約要求の自動処理
予約要求の自動処理
予約要求の自動処理

タスクのワークフロー

タスクエントリには、個人タスクとグループタスクの 2 種類があります。個人タスクは、ワークフローに関係しないシンプルなエントリです。これに対し、グループタスクは他のユーザーにアサインされ、会議に似ています。タスクの作成者がタスクをアサインすると、アサインされたユーザーは受信ボックスに通知メールを受け取ります。この通知には返信できます。返信の選択肢は、会議招集の場合とほとんど同じで、了解、拒否、新しい日付の提案、代理、および情報の要求です。1 つだけ異なるオプションとして [完了] という返信があります。また、会議とは異なりタスクには時間の要素がありません。タスクは、特定の日に開始し、特定の期日までに完了させるものだからです。このため、空き時間情報はタスクには適用されません。ユーザーのカレンダーで特定の日付にタスクが登録されていても、その日はビジー、つまり利用不可にはなりません。

タスクの割り当てを了解すると、通知はタスクエントリに変換され、メールファイルのタスクビューに表示されます。[タスクエントリをカレンダーに表示しない] オプションを選択していない場合は、メールファイルのカレンダーでも、タスクエントリが開始日 (期日ではない) に表示されます。

繰り返しタスクの機能は、親文書とインスタンス文書が作成される点で繰り返し会議に非常によく似ています。繰り返しタスクのスケジュールを変更すると、変更されたスケジュールに基づいて、インスタンスが複数の文書に分割されます。

図 6. 繰り返しタスクのエントリ
繰り返しタスクのエントリ
繰り返しタスクのエントリ

[完了] アクションを選択すると、タスクには完了のステータスが設定されます。タスクの完了を指定すると、メールファイルでタスクが完了として表示され、タスクをアサインしたユーザーに通知が送信されます。タスクの作成者は、[参加者ステータスの表示] アクションを使用することで、すべての参加者のタスクのステータスをチェックできます。[完了] を指定した参加者のタスクは、完了ステータスとして表示されます。タスクの作成者が [完了] アクションを選択すると、作成者自身のメールファイルでタスクが完了ステータスに変更されます。

[プリファレンス] ダイアログボックスの [カレンダーとタスク] - [タスク] タブで [未完了タスクのステータスと日付を自動的に更新する] オプションを選択した場合は、期限を過ぎたタスクエントリが自分のカレンダーの今日の日付に表示されます。図 7 に、期限を過ぎたタスクが今日の日付である 8 月 31 日に表示されている例を示します。このタスクの期限は 8 月 26 日ですが、タスクの完了は指定されていません。

図 7. 期限を過ぎたタスク
期限を過ぎたタスク
期限を過ぎたタスク

トラブルシューティングのヒント

カレンダーとスケジュールでは、ユーザーは数多くのオプションを利用でき、さまざまなワークフローがユーザーの操作に応じて実行されます。このため、ユーザーにとって理解しにくい結果となるケースも発生します。この原因としては、誤って別のオプションを選択した、というようなシンプルな場合もあります。また、重要な文書のいくつかを誤って削除してしまった、という少し複雑な原因も考えられます。それでは、このような状況を調べ、その解決方法について考察してみましょう。

カレンダーの通知はどこにある?
(1) 時間が空いている場合は会議招集を自動的に了承する自動処理が設定されていて、(2) 返信した会議招集を受信ボックスから自動的に削除するオプションが選択されている場合は、ユーザーは予期せぬ結果を経験することがあります。つまり、受信ボックスに会議招集が届くと、自動処理によって自動的に応答されます。返信済みの会議招集は受信ボックスには表示されない設定になっているので、ユーザーはこの会議招集を受信ボックスで見ることはありません。一見すると、会議招集が到着していないように見えますが、念のためにこの 2 つのオプションの設定をチェックし、[会議] ビューで会議招集を確認してください。会議招集が届いている場合は、[会議] ビューに表示されます。

返答ボタンがない!
会議招集の送信オプションで議長が参加者からの返信を受け取らないオプションを選択している場合は、参加者には、通常の返信用アクションのセットの代わりに、[カレンダーに追加] ボタンだけが表示されます。これはブロードキャストの会議招集と考えられるので、ユーザーは興味のある場合はエントリをカレンダーに追加し、興味のない場合は会議招集を無視します。FYI (Bcc) 参加者として招集された場合も、これと同じことがあてはまります。

しかし、会議通知にアクションボタンがまったく表示されない状況もあり得ます。この場合、最も一般的な原因として、参加者のメールファイルで、繰り返し会議の階層の親文書が削除されたことが考えられます。会議ビューでこのような削除を行おうとすると、明示的に禁止されます。しかし、会議招集は、[すべての文書] ビューでは削除でき、カスタムスクリプトによって削除される可能性もあります。繰り返し会議の階層から文書を削除するとワークフローが壊れてしまうので、繰り返し会議の階層を完全に維持することが非常に重要です。

メールテンプレートのカスタマイズ (エージェントの作成、フォームやスクリプトライブラリの変更など) によって重要なアイテムの値に影響を与えると、返信ボタンが表示されずに、会議招集が無効になってしまうことがあります。特に重要なのは、$Ref、ApptUNID、StartDateTime、CalendarDateTime、EndDateTime、および RepeatInstanceDates の各アイテムです。$Ref アイテムは親文書のユニバーサル ID で、すべての返答文書に存在します。会議階層では、$Ref はすべての通知を親文書に結び付けるので、特に重要です。ApptUNID アイテムは $Ref item アイテムと同じ値を持ちます。つまり、参加者のメールファイルで作成された会議文書は、議長のメールファイルの会議文書と同じユニバーサル ID を持つことを意味します。このことから、$Ref アイテムまたは ApptUNID アイテムを変更または削除すると、なぜワークフローが壊れるのかを理解できます。同様に、StartDateTime アイテムと EndDateTime アイテムは、会議の時間を識別するキーとして使用されます。これらのアイテムが変更された場合も、ワークフローは壊れます。繰り返し会議では、繰り返しのインスタンスを識別するために RepeatInstanceDates アイテムが使用されるので、このアイテムはワークフローにとってたいへん重要です。

CalendarDateTime アイテムは、カレンダービューで会議が表示される日付を決定します。このアイテムを削除または変更すると、ワークフローが壊れるだけでなく、会議がカレンダービューから削除されてしまいます。サードパーティ製のソフトウェアなど、外部の要因によってこれらのアイテムが影響を受け、ワークフローの破壊につながることもあります。

会議に出席するかどうかわからない?
議長は [参加者ステータスの表示] アクションを使用して、会議招集への返信をチェックできます。しかし、既に返信した参加者が [返答なし] と表示されるケースがあります。これは、ほとんどの場合、参加者からの返信が削除されたことに起因します。参加者が返信した後は、返信情報は会議文書には保管されません。参加者の返信通知自身が返信のレコードとなるので、これを削除すると情報が失われることになります。このような偶発的な削除を未然に防ぐために、Lotus Notes 6 では C&S エントリ用に、削除を確認するダイアログボックスが表示されます。

空き時間かどうかをチェックしていない?
会議に招集されても、同じ日時に別の会議または予定が入っていて、会議に出席できないことがあります。会議のスケジュールを設定するとき、議長は参加者の空き時間を事前にチェックしていないのでしょうか。これは必ずしもそうではなく、空き時間をチェックしても、必要な情報が得られない場合があります。参加者が [すべてのユーザーにスケジュールを参照させない] オプションまたは [次のユーザー/グループのみにスケジュールを参照] オプションを選択していると、空き時間情報を見るための権限が議長に付与されない可能性があります。

早い者勝ち!
会議室またはリソースへの予約が、同じ日または同じ時間帯に重なることもあります。このようなダブルブッキングが発生する原因として、次の 3 つのことが考えられます。最も明らかな原因は、予約が行われたときに Schedule Manager が起動されてなく、会議室またはリソースの空き時間情報が更新されていないケースです。次の原因として、[空き時間情報] データベース内の文書が、誤って、あるいはカスタムプロセスによって削除されたことが挙げられます。文書が削除されると、その会議室またはリソース用の空き時間レコードが作成されるので、これまでの空き時間情報が失われてしまいます。このような削除を防ぐために、デフォルトでは、[空き時間情報] データベースの ACL では、サーバーだけにアクセス権が与えられます。さらに、[会議室予約] データベースのレプリカが他のサーバーにある場合もこの原因となります。このような設定方法はサポートされておらず、ダブルブッキングなどの発生につながります。

まとめ

この記事では、C&S ワークフローの主なコンポーネントをいくつか見てきました。ここでは触れなかったことも含め、環境によってさまざまな使い方がありますが、いずれの場合でも、基本的なワークフローは同じです。カレンダーとスケジュールは多くの Notes ユーザーが毎日使用しています。この記事で説明した内容が、カレンダーとスケジュールを使用する上でお役に立てることを希望しています。


ダウンロード可能なリソース


関連トピック

  • developerWorks Japan: Lotus: Lotusの日本の技術情報サイトです
  • この記事のパート 1では、Lotus Notes のカレンダーとスケジュール (C&S) のプリファレンスがどのように機能し、それが C&S の動作にどのような影響を与えるのかが説明されています。
  • Lotus Notes 6 で導入された C&S のすべての新機能については、developerWorks の以前の Lotus 記事『Saving time with Notes 6 Calendar and Scheduling』を参照してください。
  • 記事『Lotus Notes 6 technical overview』には、Notes 6 の C&S で拡張された機能やそれ以外の新機能が記載されています。
  • Notes/Domino 製品のマニュアルでは、C&S のすべての機能について、設定方法と使用方法が詳細に解説されています。

コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Lotus
ArticleID=337232
ArticleTitle=LDD Today: Lotus Notes カレンダーとスケジュールの詳細な説明 Part 2
publish-date=10252004