CData Software Blog

クラウド連携のCData Software の技術ブログです。

CData Office365 Driver でイベントのキャンセルと転送の機能をサポート

f:id:sugimomoto:20210709230341p:plain

こんにちは。CData Software Japanリードエンジニアの杉本です。

去年末なんですが、Office365・Graph APIでひっそりとイベントの転送とキャンセルのAPIが追加されていたのをご存知でしょうか。

最近見つけたGraph APIのアップデート履歴ページに掲載されています。

developer.microsoft.com

公式のリファレンスは以下からどうぞ。

docs.microsoft.com

docs.microsoft.com

イベント系の機能としてはメジャーな気がするので、若干今頃感があるのですが、今回お客様からの要望でこのAPIにCData Office365 Driverが対応しました!

というわけで今回はこの追加された2つの機能を紹介したいと思います。

www.cdata.com

画面上での使い方

すでにOffice365を利用している方々はすでに使ったことがある機能かとは思いますが、改めて確認してみたいと思います。

今回対象とするのは、参加者を追加して作成した以下のようなイベントです。

f:id:sugimomoto:20210709230348p:plain

このイベントはメール連携のような機能を持っていて、任意の参加者を加えるためにイベントを「転送」することができるようになっています。

f:id:sugimomoto:20210709230353p:plain

また、イベントをキャンセルして、キャンセル理由を各参加者に伝えることが可能です。

f:id:sugimomoto:20210709230358p:plain

このUI上の機能がAPIおよびCData Driverを通じて実行できるようになりました。

CData Driverでの使い方

それでは実際にCData Office365 Driverを利用して、試してみましょう。

今回はCData Office365 JDBC Driverを用いていますが、ADO.NETODBCPowerShell Cmdletsなどでも利用することができます。

www.cdata.com

www.cdata.com

www.cdata.com

まずは対象とするイベントを取得してみましょう。以下のSQL文で現在の自分が持っているイベントの一覧が取得できます。イベントの転送やキャンセルにはこのイベントの「id」が必要になるので、予め控えておきましょう。

SELECT * FROM Events;

f:id:sugimomoto:20210709230404p:plain

続いてイベントの転送を実行してみます。

イベントの転送機能は「ForwardEvent」というストアドプロシージャで実行できます。

例えば上記のイベントを「user01@sugimomoto48.onmicrosoft.com」というユーザーに転送する場合、以下のようにクエリを記述して実行します。

Exec ForwardEvent
EventId = 'AAMkADEzNGFlMjhhLTk2OTktNGZmYy05ZGQwLTdhNjU1ZGUxNGEzMQBGAAAAAACgOVml52v3T6bkLCj1h8k4BwDB7e7wCdH6QabU62vrLxZjAAAAAAENAADB7e7wCdH6QabU62vrLxZjAAATgpzkAAA=',
ToRecipients = 'user01@sugimomoto48.onmicrosoft.com';

実行後、実際に画面を見てみると、以下のように「user01@sugimomoto48.onmicrosoft.com」というアカウントが参加者に追加されていることが確認できました。

f:id:sugimomoto:20210709230412p:plain

ちなみに他のユーザーのイベントも転送可能です。その場合はUserIdもしくはUserPrincipalNameを追加で指定して、実行してください。それぞれのプロパティの解説は以下のとおりです。

Name Type Required Description
EventId String TRUE イベントのIdを指定します。
ToRecipients String TRUE 宛先となるユーザーのメールアドレスをセミコロンで指定します。
UserId String FALSE 別ユーザーのイベントの場合、ここでユーザーIDを指定します。
UserPrincipalName String FALSE 別ユーザーのイベントの場合、ここでユーザープリンシパルを指定します。UserIdもしくはUserPrincipalNameどちらかだけで大丈夫です。
Comment String FALSE 転送時のコメントを記載します。

続いてイベントのキャンセルを実行してみましょう。これも同じように「CancelEvent」というストアドプロシージャで実行できます。

最低限必要なパラメータはEventIdのみです。

Exec CancelEvent
EventId = 'AAMkADEzNGFlMjhhLTk2OTktNGZmYy05ZGQwLTdhNjU1ZGUxNGEzMQBGAAAAAACgOVml52v3T6bkLCj1h8k4BwDB7e7wCdH6QabU62vrLxZjAAAAAAENAADB7e7wCdH6QabU62vrLxZjAAATgpzkAAA=';

これを実行すると、ちょっとわかりにくいのですが、以下のようにイベントがキャンセルされ、カレンダーから無くなりました。

f:id:sugimomoto:20210709230419p:plain

「CancelEvent」で利用できるパラメータは以下のとおりです。

Name Type Required Description
EventId String TRUE イベントのIdを指定します。
UserId String FALSE 別ユーザーのイベントの場合、ここでユーザーIDを指定します。
UserPrincipalName String FALSE 別ユーザーのイベントの場合、ここでユーザープリンシパルを指定します。UserIdもしくはUserPrincipalNameどちらかだけで大丈夫です。
Comment String FALSE 転送時のコメントを記載します。

おわりに

今回はシンプルにSQLでの使い方を紹介しましたが、例えばUIからストアドプロシージャを実行できるようなツールであれば、特にSQLを書くことなくこれらの機能を扱うこともできます。

以下のページでCData Office365 Driverが利用できるツール郡を紹介しているので、よかったら参考にしてみてください。

www.cdata.com

f:id:sugimomoto:20210709230732p:plain