当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。

テクてく Lotus 技術者 Slack に参加しよう!

2014年8月21日木曜日

XPagesでワークスペースを表現してみよう

みなさん、こんにちは。
秋の気配がしたかと思ったのですが、まだまだ暑いですね。気温の上下に影響されて体の調子を悪くしないように気を付けましょう。

さて、今日も始める前にボタンをクリックしてくださいね。
にほんブログ村 IT技術ブログへ


今日の話題はXPagesでワークスペースを表現してみよう!です。

1.ワークスペースのおさらい
Notesクライアントの機能の一つに「ワークスペース」というものがあります。
Notesアプリケーションをアイコン形式で表示するあれですね。
Notesクライアントのワークスペース
そんなワークスペースですが、Notesクライアントでしか使えないという弱点があります。
最近では、Notes Browser Plug-inがありますが、あれはWebブラウザ上でNotesクライアントのBasic版を動かしているようなものなので、Notesクライアントで動いていると判断して良いでしょう。

このワークスペースがWebブラウザ上でも使えたら嬉しいですよね。
ということで・・・またまたOpenNTF.orgから探してきました。あるもんなんですね。こちらのXPages HomePageがそうです。

こちらのアプリケーションは2012年12月が最後の更新となっていますが、Notes/Domino 9.0でも動作しました。
また、純粋なXPagesアプリケーションとして作られているので、余計なものをインストールしたりする必要がないのも特徴です。


2.ダウンロードしよう
では、さっそくダウンロードしてみましょう。
プロジェクトページにある「Downloads/Releases」のタブを開いて、「Release 3.0」をクリックします。すると、「XPages Applications Homepage.zip」というファイルがあるので、それをクリックします。
ダウンロードできたら、適当なフォルダに解凍します。下図がzipを解凍した状態です。
この中にはNotesテンプレート、利用手引書等が入っています。
※この辺りは、OpenNTF.orgのプロジェクトはどれも同じですのでわかりやすいですね。
zipファイルの内容


3.使ってみよう
使い方は簡単です。
zipファイルの中にある「Workspace.ntf」をDominoサーバにコピー&署名して、このテンプレートを元にDominoサーバ上にNotesアプリケーション(~.nsf)を作成するだけです。
作成したら、Dominoサーバの管理者ユーザに[Admin]ロールを付けて、「管理者」のアクセス権を付与します。
※ローカルクライアント上でも動作するのですが、ワークスペースにNotesアプリケーションを登録するにはログインする必要があるので、Dominoサーバ上でのテストをお勧めします。

下図はWebブラウザで、管理者ユーザでログインして開いた時の画面です。
Notesアプリケーションをブラウザで開いてみた

このアプリケーションは以下の機能を持ち合わせています。
  1. アプリケーションのロゴとタイトルの変更
  2. DominoサーバのカタログDB(catalog.nsf)との連携
  3. 共通ワークスペースへのアプリケーション登録と名称の変更
  4. 個人ワークスペースの作成とアプリケーション登録

それでは、一つずつ簡単に紹介していきます。
  1. アプリケーションのロゴとタイトルの変更
[Admin]ロールを持ったユーザでログインしたときだけ行うことができます。
画面の右上にある「Profile」というリンクをクリックします。
Profileの編集画面に切り替わるので、「Application Title」や「Application Logo」「Servers」を編集します。
Profileの編集画面
「Application Title」と「Application Logo」の編集は任意ですが、「Servers」は必ず指定する必要があります。
サーバのアイコンをクリックすると、Dominoサーバの一覧が表示されるので、ワークスペースに登録したいNotesアプリケーションがあるサーバを選択します。
設定したら、[Save]ボタンをクリックします。

  1. DominoサーバのカタログDB(catalog.nsf)との連携
本アプリケーションにNotesアプリケーションを登録します。これにより、ワークスペースへアプリケーションアイコンを表示する準備ができます。
こちらも[Admin]ロールを持ったユーザでログインしたときだけ行うことができます。
画面右上にある「Admin Config」をクリックします。
画面が切り替わるので、「Sync with server」というリンクをクリックします。
catalog.nsfとの同期を実行
注)
この機能は日本語版のDominoで実行するとエラーになります。
正常動作させるようにするには、本アプリケーションの「GenWS」というエージェントの「Initialize」の51行目を以下のように修正してください。
×  Set serView = catalogDb.getView("Applications\by Server")
○  Set serView = catalogDb.getView("ByServer")   

カタログDBとの同期が終わると、Notesアプリケーションの一覧が表示されます。
「Sync with server」のリンクの横には取り込んだNotesアプリケーションの数が表示されます。
カタログDBから取り込んだ内容の一覧

  1. 共通ワークスペースへのアプリケーション登録と名称の変更
共通ワークスペースは「Business」「Collaboration」「Administration」「Notes Apps」という名称で用意されています。これらの名称は変更が可能です(後述)。このうち、「Notes Apps」という名称のタブは登録したアプリケーションがNotesクライアント上で開くようになります。
この共通ワークスペースへのNotesアプリケーションの登録は[Admin]ロールを持ったユーザだけが行えます。
共通ワークスペースへ登録する場合、「Admin Config」の画面で行います。
まず、登録したいタブを選択します。
タブの選択

次に画面に表示されているアプリケーションの一覧からタブに登録したいものを選択して、一番左にある□にチェックを入れます。
タブに追加するアプリケーションを選択

最後に画面上部にある[Add]ボタンをクリックします。
成功すると、Titleの前にが表示されて、Visibility列には登録したワークスペースタブの名前が表示されます。
タブに追加された状態

では、本当にワークスペースタブに登録されたのかを確認してみましょう。
画面右上の「Workspace」というリンクをクリックします。
ワークスペースを開いたけど・・・

あれ?表示されていませんね?
実は、先ほどは「Collaboration」という名称のタブに登録したので、現在、選択されている「Business」タブには表示されていないんですね。
でも、よく見ると、「Collaboration」タブのところに(3)という表示されています。
では、「Collaboration」タブをクリックしてみましょう。
先ほど登録したアプリケーションのアイコンが表示されているのがわかります。
Collaborationタブにアイコンが!

ちなみに、ワークスペースタブの名前を変更するには、この画面の何もないところでマウスを右クリックします。すると、メニューが表示されるので、「Rename Workspace Page」を選択します。
右クリックメニュー

すると、名称変更のダイアログが表示されるので、変更後の名称を入力して[Rename]ボタンをクリックします。
ワークスペースタブの名称変更ダイアログ

変更内容は即時に反映されます。
名称が変更された結果


  1. 個人ワークスペースの作成とアプリケーション登録
個人用のワークスペースは3つまで作成できます。共通ワークスペースと合わせて7つのタブを表示することができます。
作成するにはWorkspaceの画面でマウスを右クリックして「Create Workspace Page」メニューを実行します。
新規ワークスペース作成ダイアログ

「New Workspace Page」というダイアログが表示されるので、タブの名称を入力して[Create]ボタンをクリックします。(ここでは、「MyPage1」と入力してみました)
Workspace 画面に戻ると、タブが一つ追加されているのがわかります。
個人用のワークスペースタブを追加してみた

では、今しがた作成した個人用のワークスペースにNotesアプリケーションを登録する方法についてです。
画面右上にある「Configuration」というリンクをクリックします。
すると、「Admin Config」によく似た画面になります。
Configuration画面

違うのはカタログDBとの同期ができない事、追加できるワークスペースが自分で作成したものだけになっていることです。
ちなみに共通ワークスペースに登録してあるNotesアプリケーションはこの一覧には表示されません。
ここから先の操作方法は共通ワークスペースへの登録方法と同じなので割愛いたします。


4.注意事項
このアプリケーションですが、いくつか注意事項があります。不具合とも仕様とも言い難いところなので、深い言及は避けます。
  1. 本アプリケーションの利用者は「編集者」以上のアクセス権が必要です(「作成者」だと個人用のワークスペースが作成できません)。
  2. Notesアプリケーションを検索するためには、本アプリケーションに対して全文索引を作成しておく必要があります。
  3. ワークスペースにアイコンを追加する際、そのNotesアプリケーションのACLにユーザとしてエントリが追加されている必要があります。
  4. ワークスペースにアイコンを追加する際、そのNotesアプリケーションのアクセス権が「編集者」以上である必要があります。

このうち、「3.」「4.」については以下の方法で対処することが可能です。
  • AccessLevel」というスクリプトライブラリを開きます。
  • getAccess」という関数の20行目から38行目までをコメントアウトします。
entry=acl.getEntry(@UserName());
if(entry!=null)
{
    level=entry.getLevel()
    if(level>=4)
    {
        access="Yes"
    }
    else
    {
        access="No";
    }
}
else
{
    //To find the access level for group
    access=checkGroup(server,dbPath);
}
  • getAccess」という関数の19行目の下に以下のコードを挿入します。
//To find the access level for current user    ←これが19行目
level = db.getCurrentAccessLevel();
if ( level>=2 ) {
    access = "Yes";
} else {
    access = "No";
}
  • スクリプトライブラリを保存します。
これでNotesアプリケーションに「読者」以上のアクセス権があれば、ワークスペースに追加できるようになります。


5.まとめ
これで、後は必要なアプリケーションを自分の好きなワークスペースに追加しておけばOKです。
本アプリケーションはWebブラウザでブックマークしておけばいつでも開けます。
NotesアプリケーションをWeb化(XPages化含む)したのは良いけど、ポータルまでは余裕がないなぁとか言う場合に使えるアプリケーションになっています。
利用方法は簡単なのでぜひぜひ使ってみてください。


6.実は作ってみました
このアプリケーション、ワークスペースを再現しているだけあってNotesアプリケーションしか登録ができないんですね。せっかくWebブラウザで開いているので、普通のWebサイトの登録もできたら、簡易ポータル的に使えるのになぁと思い・・・
上記のアプリの動きを参考にしながら、自分で作ってみました。
リスペクト版ワークスペース(笑)

こちらの機能は
  • ログインしていなくても(Anonymous許可)、共通ワークスペースを使える
  • 共通ワークスペースは管理者ユーザが作成
  • ログインすることで、自分用のワークスペースを作成できる(タブは5つまで)
  • Notesアプリケーションだけでなく、Webサイトの登録も可能
等です。

こちらのアプリのデモをご希望の方は、私にご連絡いただくか、弊社宛てにメールをお送りください。折り返し、ご連絡いたします。




ということで今日はこの辺で・・・




【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします!
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: