OnTime Open APIを活用しよう!

のおつ -Notes/Dominoに関すること-
(番外編)

OnTime Open APIを活用しよう!

みなさん、OnTimeは活用されていますか?
導入するだけで難しい手間などかけずに、Notes/Dominoのカレンダー/スケジュールが便利になるのですから活用されていないということはないでしょう。
そんなOnTimeですが、まだまだ活用方法は広げることができるのです。今日はそんなOnTime Open APIについてご紹介します。

OnTime Open APIとは

OnTime Open APIとは、Notesのカレンダー/スケジュールを外部から操作するためのOnTimeで用意されているREST APIです。JavaのAPI関数群も用意されており、様々な形でのアプリケーション開発が行えます。
データ形式には、XMLに比べてサイズが軽量で、可読性も高く、色々なWebサービスで利用されているJSONが採用されています。
※なお、本番環境で利用するには、OnTimeのライセンスの他に、OnTime Open APIのライセンスも購入する必要があります。

OnTime Open APIの利用方法

OnTime Open APIは、REST APIであるため、URLにリクエストを送信して、そのレスポンスをJSONデータで受け取ることになります。
この動作は、OnTimeを導入時に、一緒にインストールされるOnTime Group Calendar API Explorerを利用することで、シミュレーションすることができます。
API ExplorerはWebブラウザで実行することになり、そのURLは以下の通りです。
http://<OnTimeをインストールしたサーバ>/<OnTime Client DBのパス>/APIExplorer

API Explore

※図1 OnTime Group Calendar API Explorer(クリックで拡大画像をご覧いただけます。)

OnTime Open APIでは、スケジュールの内容を取得したり、利用できる会議室を検索したりと、Notesのカレンダーの操作のほとんどが行えるようになっています。

OnTime Open APIを使うメリット

OnTimeの標準機能だけでは実現が難しいような(例えば、ポータルの一部として会議室の予約状況を表示させたり、指定した年月の会議室の利用時間の集計なども行ったりする)ことを実現することができます。
また、REST APIとして利用すれば、Notesのスケジュール情報を他のWebシステムと動的に連携させることも可能になります。
Webシステムとしてアプリケーションを構築すれば、Windows PCだけでなく、iPadやAndroidタブレットなどでも利用することができます。
まさに、アイディア次第です!

XPages連携

前述した通り、OnTime Open APIは、REST APIやJSON形式を採用しているため、Notes/Dominoでは、Webシステム、特にXPagesでの開発/利用が向いています。
※ Javaの関数群を利用することでLotus Script(+Javaが必要)での開発も行えるのですが、かなり難しいです。XPagesであれば、JavaScriptを覚えれば良いので、比較的簡単に行えます。
これから紹介するサンプルDBもXPagesアプリケーションとしてOnTime Open APIの部分はJavaScriptで記述されています。

サンプルDBの使い方

ということでサンプルDBの紹介です。
このサンプルDBは以下の観点で作成されています。

  • OnTime Open APIで何ができるのか、どのように開発すれば良いのかを知ってもらう
  • REST APIを使ってNotes/Dominoのスケジュール/カレンダーを操作する
  • 比較的実装しやすいようにXPagesアプリケーションとして作成
  • OnTime Group Calendar API Explorerの動作を元に作成

このサンプルDBがあれば、実際のアプリケーションの開発に役に立つこと受けあいです。
機能としては、以下のものを用意しています。

  1. ユーザ情報の取得
  2. スケジュールの読み込み
  3. スケジュールの書き込み
  4. 空き時間情報の検索
  5. 会議室の予約
  6. 会議室の検索

このうち、「5.会議室の予約」についてみてみましょう。
下図が実行時の画面です。

  1. まず、「Reservation Type」というコンボボックスで、会議室に直接予約文書を作成するのか、それとも会議招集メールを使って会議室を予約するのかを選択します。
  2. すると、OnTimeのセッションを管理するためのTokenの取得とOnTimeへのログインが行われた後、OnTimeで管理している会議室名が「Required Rooms」というコンボボックスの選択肢に代入されます(会議室名の取得もOnTime Open APIで実行しています)。
  3. 「Subject」に件名、「Meeting Date」「Meeting Time」に会議室を予約したい日時を入力して、[Meeting Room reservation]をクリックします。
  4. これでリソース予約DBに予約文書が作成されています(同一時間帯に予約文書が作成されている場合は、重複文書としてエラーの状態で文書が作成されます)。
API Explore

※図2 OnTime Open APIサンプルアプリケーション「会議室の予約」(クリックで拡大画像をご覧いただけます。)

※ こちらのサンプルは、OnTime Open APIをご利用いただいている企業様で、ご希望があればご提供させていただきます。 お問合せフォームより「Open APIサンプルアプリ希望」とお問い合わせ下さい。

お問合せフォームはこちら

いかがでしょうか?
OnTimeも拡張性の高いアプリケーションです。Notes/Dominoと同様、使い方次第でいくらでも便利になります。
せっかく、OnTimeを導入したのに、スケジュール予約や確認の為だけに利用しているのはもったいないですよ!
今回ご紹介したように、OnTime Open APIを利用して活用の幅を広げましょう!
OnTime Group Calendar Direct Shop 注)
本記事は本Shopから依頼して作成頂いた記事です。内容に対する著者への直接のお問い合わせはご容赦下さいませ。
記事内のご不明点についてのお問い合わせについては弊社お問合せフォームよりお願いいたします。

お問合せフォームはこちら

但し、有償による開発のご依頼については株式会社エフまでお願いいたします。
担当:御代様
TEL : 03-6453-9182
株式会社エフお問い合わせフォームはこちら

著者ご紹介 株式会社エフ 御代 政彦

MiyoProfile_OnTimeLotus Notes 3.1J時代より約20年に渡り、関連業務に従事。 Notes/Domino関連ということで、Android SDKにも手を出して、Notes/Dominoネイティブアプリケーションの開発も行っています。新バージョンが出るたびにそのバージョンならではの楽しみを見つけてはブログに公開しているというノーツ愛溢れる素晴らしいヒト。そのNotes/Domino愛がIBMにも認められ、2012年度から毎年IBM Championにも選ばれています。

またRESTの神様としてDomino データサービス及びOnTime Open APIを使用した様々な開発もご相談に乗って貰えます。簡単なUIから複雑なロジックまで全てお任せ出来ます。ぜひご相談してみてください。

最近の主な著作