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

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

2016年7月20日水曜日

認証期限切れのIDを再認証しよう

みなさん、こんにちは。

海の日が過ぎたのに、まだ関東は梅雨明けしてないそうです。
毎年、この梅雨入り/梅雨明けはいつだったのか?なんて議論があるので、いっそのことやめてしまえばいいのに・・・なんて思ってる今日この頃です(笑)


さて、今日はNotes IDの認証期限についてのお話です。
本番環境では認証期限が切れることはまずないと思います(事前に通知されますよね)。

ですが、私のように開発環境を複数所持している場合、誤って認証期限を切らせてしまうこともあります(いえ、ほんとはあってはならないことなんですけどね・・・)

さて、そんなときはどうすれば良いのでしょうか?
新しいユーザを作成する?いえいえ、まだ諦めるのは早いですよ。
認証者ID(cert.id)の認証期限さえ切れていなければ、まだ復旧できるのです。

ということで、手順を確認していきましょう。
※環境の都合上、 Lotus Domino 8.0.2を使用しますが、8.5.x以降も同様の操作での復旧が可能です。


まずは、シナリオの確認です。

1.シナリオ

  • 管理者ユーザ(Domino Administrator/Win2008R2)の認証期限が切れている
  • 管理者ユーザのパスワードは覚えており、ログインは可能
  • Dominoサーバは稼働可能(サーバーIDの認証期限は切れていない)
  • 認証者ID(cert.id)の認証期限は切れていない 
  • 管理者ユーザはDominoサーバにアクセスできない
  •  上記の状態で、管理者のユーザIDの認証期限を更新して、Dominoサーバにアクセスできるようにする

2.現象の確認

まずは本当にIDの認証期限が切れているのか、Dominoサーバにアクセスできないのかを確認してみます。
DominoサーバのNotes DB(今回は、ドミノディレクトリ)にアクセスしてみます。
・・・思いっきりエラーで弾かれてしまいました。
認証期限切れにより、Notes DBへのアクセス不可

画面では1回しかエラーダイアログが表示されていませんが、なぜか3回ほどこのエラーが表示されました(フレームセットの影響かな?)
次に下のようなダイアログが表示されました。
くどい!と思われるエラーダイアログ

まだNotes/Dominoの攻撃はやみません。
止め!と言わんばかりにステータスバーにもエラーが表示されています。
もう、わかりましたよ・・・ってと心が折れそうなメッセージの表示

3.IDの認証期限の確認

エラーメッセージが表示されましたが、それでも本当に認証期限が切れたのか?と疑ってしまうあなた。
次の手順で認証期限が有効なのか、無効なのかを確認します。
Notesクライアントの
[ファイル][セキュリティ][ユーザーセキュリティ]メニューを実行します。
ユーザーIDの情報を確認するためのメニューを実行

ユーザーIDのパスワードを入力すると、下図のようなダイアログが表示されます。
画面をよく見ると、「警告」 ということで有効期限が切れていることが通知されています(画面赤枠内)。
確かに有効期限が切れている・・・

ここは[キャンセル]をクリックして元の画面に戻ります。

4.IDの復旧

では、実際にユーザーIDの認証期限を延長してみます。
Domino Administrator(管理者クライアント)を起動します。

一番右にある[設定]タブを開きます。
画面右側にある「ツール」をクリックしてメニューを展開します(すでに展開していたら何もしない)。
さらに[認証]メニューをクリックして展開します。そこに[認証]というめにゅーがあるので、そこをクリックします(下図参照)。
認証メニューを実行します

すると、認証者の選択というダイアログが表示されるので、サーバーをLocalに変更します。
※[サーバー]というボタンをクリックすることで変更可能です(バージョンによっては、ローカルと表示されることがあります)。
認証場所をサーバーからLocalに変更します

認証者IDの欄には、認証者IDのファイル名が指定されていることを確認します。
※これが誤っていたら復旧できません!
変更したら、[OK]をクリックします。

次に認証者IDのパスワードを入力して[ログイン]をクリックします。

今度は、認証したいユーザーIDの選択画面になるので、3.で確認したユーザーIDのファイルを選択します。
認証期限が切れているユーザーIDを選択します

ユーザーのパスワード入力画面になるので、パスワードを入力して[ログイン]をクリックします。
パスワード入力画面、わかりますよね?

すると、認証場所をLocalにしているせいなのか、「エントリが索引に見つかりません」というエラーを表示してきます。
しかし、そんなのはわかってやっているので、[はい]をクリックします。
ドミノディレクトリでも検索してるのかな?

次にようやく「IDの認証」ダイアログが表示されます。
ここで初めて、有効期限がいつまでだったのかが表示されます(笑)下図ではなんとまぁ、1年前に切れていましたね(※実際には有効期限は切れていなかったのですが、今回の記事のためにわざわざ有効期限を期限切れにしてみました)
有効期限はいつまで入力可能なのかな?

「有効期限(新)」というフィールドには2年後の日付がセットされています。これはデフォルトの設定です。ただ、開発環境で2年ごとに有効期限の延長なんてやってられません。ここは大きく、延長してみましょう(実際の環境では2-3年にしておくことをお勧めします)。

思い切って、「9999/12/31 23:59:59」にしてみました(笑)絶対に生きてないって・・・
ということで、「有効期限(新)」に新しい認証期限を入力したら[認証]をクリックします。

何事もなく、下図のダイアログが表示されたら成功です。
無事に認証期限は延長されました。[いいえ]をクリックして処理を終了します。
え?成功しました。とか失敗しました。って表示はないの?

5.認証期限の確認

さて、本当に認証期限は延長されたのでしょうか?成功しました!とかのメッセージが何も出ていないので不安で仕方ありませんね(笑)
そこで、ユーザーIDの情報を確認して認証期限がどうなったのかを見てみます。
3.で実施した方法とは別のやり方で確認してみます。


Domino Administrator(管理者クライアント)の画面で、さきほど使用した「設定」タブ内の[ツール][認証][IDのプロパティ]メニューをクリックします(下図参照)。
IDのプロパティ情報を確認するためのメニュー

「調査するIDの選択」というダイアログが表示されるので、ユーザーIDを選択して[開く]をクリックします。
認証期限を延長したユーザーIDを選択します


ユーザーIDのパスワードを入力して[ログイン]をクリックします。

「ID プロパティ」というダイアログが表示されます。そこには認証期限が表示されています。が・・・
認証期限が!

なんと、「2114/09/10」になっています。確かに「9999/12/31 23:59:59」と入力したのですが・・・
どうやら、Notesの認証期限の限界は2114年9月10日のようです(あくまでLotus Notes/Domino 8.0.2の場合)。
といっても、ここまで誰も生き残ってないでしょうから(笑)、確認のしようがありません。でも十分すぎるほどの日付でしょう。

さて、認証期限の確認ができたので、実際にDominoサーバにアクセスできるかどうかを確認してみます。
この画面では[OK]をクリックしてダイアログを閉じます。
さらに、Domino Administrator(管理者クライアント)も終了しておきます。

6.Dominoサーバーへのアクセス確認

Notesクライアントに戻って、DominoサーバのNotes DB(今回は、ドミノディレクトリ)にアクセスしてみます。
エラーにならずにドミノディレクトリが開けたはずです。
無事にDominoサーバにアクセスできましたよ


はい。これで無事にユーザーIDの復旧ができました。
確認作業を入れているため、多くの手順があったように見えますが、実際の復旧手順としては「4.IDの復旧」の箇所だけです。
そう考えると、そんなに大変ではないな。と感じてくれれば幸いです。




なお、同じ内容のドキュメントがIBM様のサイトに出ていますので、こちらもよく読んでおきましょう。
画面ショットがないのでわかりにくいですが、書かれたとおりにやれば復旧できますよ。


(参考)期限切れ ID を手動で再認証する方法

管理者の ID ファイルの有効期限が切れた場合の回復手順について


では今日はこの辺で・・・

2016年7月1日金曜日

Notes/Dominoのアクセス権について

みなさん、こんにちは。
気が付いたら7月です。つまり、公約?が果たせなかった自分がここにいるということです。
なんでしょう、必要に迫られないとやらないという性格がモロにでてしまったという感じです。


さて、気を取り直して今日の話題。
今までNotes DBに対するアクセス権について取得したり設定したりといったサンプルプログラムを紹介してきましたが、
そもそもアクセス権とはなんぞや?ということに触れていませんでした。

ということで初心にかえって、ACLについて確認してみましょう。
(資料は以前に作成したものがあったのでそれを公開する形になります)。


まず、
Notes の文書をアクセスするためには、次の過程を踏まなければなりません。
  1. Notes DBへのアクセス
  2. ビューへのアクセス
  3. 文書へのアクセス
  4. アイテムへのアクセス
上記のそれぞれの中で、アクセス制御が発生します。
それらについて解説していきます。

1.Notes DBへのアクセス

Notes DBはファイルであり、データベース(以下、DB)ごとにアクセス制御が存在します。
アクセス制御は全部で次の7段階に分けられます。   
区分アイコン説明
管理者DBのすべての文書を閲覧することができる。
DBに文書を作成することができる。
DBのすべての文書を編集することができる。
DBの設計を変更することができる。
DBそのものを削除することができる。
設計者DBのすべての文書を閲覧することができる。
DBに文書を作成することができる。
DBのすべての文書を編集することができる。
DBの設計を変更することができる。
編集者DBのすべての文書を閲覧することができる。
DBに文書を作成することができる。
DBのすべての文書を編集することができる。
作成者DBのすべての文書を閲覧することができる。
DBに文書を作成することができる。
自分の作成した文書のみ編集することができる。
読者DBのすべての文書を閲覧することができる。
投稿者DBに文書を作成することができる。
なしDBを開くことはできない。


2.ビューへのアクセス

DBへアクセスすることが許されたら、ビューへアクセスできるかどうかのチェックが行われます。
ビューは、Notes DBの文書の一覧が表示されているものです。
ビューへのアクセスを禁止されるということは、文書へのアクセスを禁止しているといってもよいでしょう。
※ただし、ビューは入り口のようなものなので、複数のビューがある場合には、別のビューから一覧を表示して、文書へアクセスすることもできるので、厳密なアクセス制御とは言えません。


3.文書へのアクセス

文書は通常、DBへアクセスできるユーザーであれば、DBのアクセス権限に従った形でアクセスできます(「投稿者」以外は閲覧が可能)。
ただし、DBの設計方法によって、このルールを変更することができます。

「読者名」
このフィールドを設定することにより、文書を閲覧することができるユーザーを限定することができるのです。
設定内容説明
*
なし
アクセス制限がかかっていない状態。誰でも閲覧可能。
ユーザー名入力されているユーザーのみ閲覧可能。
グループ名そのグループ(Notesで定義してある)に所属しているユーザーのみ閲覧可能。
ユーザー名とグループ名の混在入力されているユーザー名と、グループに所属しているユーザーのみ閲覧可能。
上記以外グループ名でもないような名前などが入力されていると、誰も閲覧することができなくなる。

「作成者名」
DBに対して、文書を作成することができるのは、「投稿者」および「作成者」以上の権限を持つユーザーです。
この中でさらに、『すでに作成された文書』を編集することができるのは、「作成者」以上の権限を持つユーザーす。
1.DBへのアクセスで、「作成者」は『自分が作成した文書のみ編集することができる』となっていますが、ここでいう「自分が作成した文書」というのが、「作成者」フィールドの内容のことです。
設定内容説明
なし作成者が設定されていない状態。
「編集者」以上のユーザーのみ編集可能。
*「作成者」以上であれば、編集可能。
ユーザー名入力されているユーザーのみ編集可能。
グループ名そのグループ(Notesで定義してある)に所属しているユーザーのみ編集可能。
ユーザー名とグループ名の混在入力されているユーザー名と、グループに所属しているユーザーのみ編集可能。
上記以外「編集者」以上のユーザーのみ編集可能。
※つまり、「編集者」以上の権限を持つユーザーは、「作成者」フィールドの有無の関係なしに、文書を編集することができるのです。
※「作成者」フィールドに入力された内容が、文書の作成者という扱いになるので、実際には自分が作成していない(入力していない)文書でも編集できるようにすることも可能になります。
 →誰が作成したのかを明記しなければならないようなDBの場合、注意が必要です。


4.アイテムへのアクセス

文書へアクセスができると、その内容を閲覧することができますが、IBM Notes/Dominoの場合、さらに細かい設定ができます。

フィールドをいくつも用意することができますが、このフィールドをユーザーによって、編集権限を与えたりなくしたりすることができるのです。
例)→文書のタイトルだけは一度作成したら変更させたくないが、他の内容は変更しても良いという場合など。

アクセスを制限したいフィールドに設定を施すことでできるようになります。
 →この場合、「編集者」以上でないと、そのフィールドの内容を編集することができません。(作成者は、新規作成時に限り、入力が可能)
※この他に、セクション単位で、編集できるユーザーを制限する方法もあります。


5.文書の印刷/コピー

文書単位で、印刷、コピーを不可にすることができます。
あくまでも、文書単位なので、ある特定のユーザーだけが印刷できないようにするなどといった使い方(設定)はできません。
ただし、添付ファイルについては適用されません(起動・保存ができてしまう)。


6.文書の削除

「作成者」以上であれば、文書の削除を行うことができます。
ただし、アクセス権限に「文書の削除を許可する」というチェックがついていることが条件となります。(「作成者」は『自分の作成した文書』に限り、削除をすることができます。)
 →たとえ「管理者」でも、「文書の削除を許可する」にチェックが入っていなければ、文書を削除することはできないということを意味します。
(ただし、「管理者」はDBそのものを削除できてしまうので、そちらのほうが問題かもしれませんが・・・)
ACLの「文書の削除を許可」


※上記の設定は、すべてサーバー上のノーツDBに対して適用されます。
ローカルPC内のデータベースに対しては、有効になりません。
 →ローカルPCでもアクセス制御を適用させる方法はあるが、サーバーで施してもローカルPCにコピーする際に簡単にはずせてしまうので、ここでは記述しません。


いかがでしょうか。ACLについてなんとなくしか理解していなかった方や、IBM Notes/Dominoを最近始めました。という方は是非よく読んでいただきたいです。

では、今日はこの辺で・・・



Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2016年6月6日月曜日

どのビューから開かれたかを判断する

皆さん、こんにちは。

今日も簡単やっつけシリーズです。
小難しい話を書いても、書いてる途中で私が寝ちゃうので(笑)、そういうのはやりません。

さて、今日もNotes クライアントでのtipsです。
@ViewTitleという関数についてです。



この関数は、現在のビュー名を返します。
つまり、ビュー上で使えば、そのビューのビュー名を表示します。
しかし、文書を開いた状態で使うと、その文書が何処のビューから開かれたかを表示してくれるという特性も持っています。
これを応用して利用すれば、不正な処理が行われたかどうかの判断に使えます(隠しビューから文書が開かれた場合は処理を中断するなど)。

また、Webアプリケーションの「$$ViewTemplate for xx」フォームにも使えます。埋め込みビューのタイトルを表示するのに使えます。


@Prompt([Ok];"開かれたビュー";"この文書は、『"+@ViewTitle+"』ビューから開かれました。")


簡単なので、使ってみてください。
では今日はこの辺で・・・


P.S.手抜きではありません。もともと書き溜めていたのに公開されていなかったので日の目を浴びせてあげたのです(笑)





Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2016年5月31日火曜日

プログラム可能な表を作ってみよう

皆さん、こんにちは。
XPages開発やってますか!?

でも、今日はXPagesの話はしません(笑)。
今年はノーツ初心者に対してのセッションが数多く行われるということで、
当ブログでもNotes DBのtipsの話をします。


Notes DBでよく使うのが「表」でしょう。
アプリケーションのレイアウトを整える上で唯一といっていいものですからね。
私もNote DBでは多用しています。

そんな便利な表ですが、「プログラムで制御ができる」ことはご存知でしょうか(まぁ、Notes歴が長い人はしってますよね・・・)

プログラムといっても、@関数でできるので、とってもお手軽なのもポイントです。


では、どんな制御ができるのかを見ていきましょう。
といってもできることは単純です。
プログラムで表の何行目を表示するのかを自動で切り替えられるようにするというだけです。

詳しくはプログラム可能な表を作成するを見てください。


次に設定方法です。

1.表を作成します。
表を作成

表は2行以上であれば、何行でも構いません(もちろんNotesの制限はありますが)。
この時、「表の種類」を一番右側のものを選択しておきます(ただし、あとで変更はできますので、間違えても気にしない!)


2.表の設定を確認します。
表が作成できたら、正しく設定されているか確認します。
表のプロパティのうち、右から2番目のタブを開きます。
プログラミング可能な表の設定

1.で表の種類を誤って作成してしまった場合は、上の図を見て同じように修正してください。
直すのは2か所。「行の特殊表示」を"1行のみ表示"にして、「行の表示方法」を"行の切り替えをプログラウで行う"にするだけです。簡単ですよね!


3.各行に名前を付けます。
続けて、表のプロパティの一番右側のタブを開きます。
そこに「表のHTMLタグ」と書かれた欄に「名前/ID」とあるので、表全体の名前を入力します。
ここは任意の文字ですが、大文字小文字の区別がされるので、どのような名前を付けたのかを覚えておく必要があります。

表の名前と行の名前を付ける

また、「行のタグ」欄にある「名前」には各行の名前を入力します。
ここも任意の値で良いですが、各行で重複しないようにします。

※表の各行のタブをクリックすると、その行に移動します。すると、「行のタグ」の「名前」欄が空白になるので、そこに名前を入力します。


これで表の準備はできました。
次にプログラミングの方法です。

4.表の名前フィールドに値を設定する。
上の図では表に「pTable」という名前を付けました。
また、表は全部で5行作成してあり、それぞれの行には「tab1」から「tab5」までの名前を付けています。
このような場合、プログラムでは以下のように記述します。
FIELD $pTable := "tab1";
@Command([RefreshHideFormulas]);

表の名前には「$」を付けます。
$付のフィールド名に開きたい行の名前を値として設定します。
最後のコマンドは画面を更新するためのものです。
行の名前は変数にすることにより、開かせたい行を自由に設定することができます。


うまく使えば、役職や部署ごとに開かせたい行を変更することができます。
そして、それぞれの行には見せたい内容を埋め込んでおけばよいのです。



たまにはこんな話題も楽しいでしょ?
では今日はこの辺で・・・




Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2016年5月30日月曜日

Notes クライアントにFixPackを当てる際の注意点

皆さん、こんにちは。
XPages on Bluemix を使ってますか?

今回はXPages関連というよりはDomino Designer関連の話です。

先日、Domino Designer(というよりはNotes クライアント)の9.0.1 FP3にXPages Extension Libraryをインストールしました。
目的は、XPages on Bluemix での作業を行いやすくするためです。

XPages Extension Libraryをインストールすると、Bluemix へのデプロイを簡単に行えるようにと Domino Designer へ Bluemix 用のメニューが追加されます。
ところが、9.0.1 FP3では、このメニューから Bluemix へのアクセスが正常に行きませんでした。

9.0.1 FP3

Bluemixへの接続がエラーになる

調べたところ、どうやら、9.0.1 FP5以降でないとうまくいかないようです。
すでに9.0.1 FP6がダウンロードできる状態だったので(ダウンロードはこちら)、当たり前のようにダウンロードして上書きインストールしました。

よし、これでいいだろう!と意気揚々と Bluemix への接続を試みようとしたところ・・・
あれ?メニューがなくなってる!!!
9.0.1 FP6にアップデート!

Bluemix 関連のメニューが消えてる!

どうやら、XPages Extension Libraryのインストールがなかったことにされてしまったようです。

通常、XPages Extension LibraryのようなプラグインはDomino Designerの[ファイル][アプリケーション][アプリケーション管理]メニューで表示される「アプリケーション管理ウィンドウ」で有効化、無効化の切り替えやアンインストールができるものです。

ということで、早速このメニューを表示してみました。
が・・・
このウィンドウにもXPages Extension Libraryの文字がどこにも見当たりません。
ホントになかったことにされてます(T T)
私が何をしたというのでしょう!!!

こんな場合は、もうあきらめて思い切った復旧をするしかないよ。と教えてもらいましたので、その方法を書いておきます。


まず、Notes クライアント(Domino Designer含めて)を終了します。
次に、Notes クライアントのデータディレクトリ配下にある「workspace」フォルダを削除します。
workspaceフォルダを削除

Notes クライアントを起動します。
これでいったん、Notes クライアントの設定がリセットされるので、あらためてXPages Extension Libraryをインストールします。

すると、Bluemix 関連のメニューが表示されるようになるので、接続テストを行います。
Bluemix への接続テストが成功!

画面上でもConnection Successfulと表示されているのがわかりますね。
よかったよかった。


ただし!
この方法でリセットを行うと、その他にインストールしているプラグインなどもすべてなかったことにされてしまいますので、あくまで自己責任で作業してください。

この時のPCにはたまたま他のプラグインはインストールされていなかったので、こういった思い切った復旧作業ができましたが、通常は前述したように
「アプリケーション管理ウィンドウ」で行います。
アプリケーション管理ウィンドウ

あくまで最後の手段ということで覚えておくとよいでしょう。
では今日はこの辺で・・・



2016年5月16日月曜日

XPagesで複数DBの検索を行ってみる

皆さん、こんにちは。
今日もXPagesを頑張ってますか?

今月の黄金週間の間に嬉しいニュースがありましたね。
XPages on Bluemix がリリースされました
ついにXPages on Bluemixが正式なものとなったというニュースです。

これまでもベータ版という位置づけで利用できていたので、
何がどう変わった?というほどのものではありませんが、
これを機にXPagesをもっと活用してみましょう。


先日もノーツコンソーシアムの「ザ・ノーツ研究会」で、
複数のノーツDBを検索する方法が「ドメイン検索」くらいしかない。XPagesアプリでそんなのを作れないか?
といった話がありました。
この時は、OpenNTFにアプリがあったはずだとか、「作るとしたら、複数DBを全文検索して、結果をマージするくらいだよね」といった話になり、今後の実証実験の正式対象にはなりませんでした。

I社の方々が、ちょっと残念そうな顔をしていたので(笑)、ではちょこっとだけ調べてみましょう。
ということで、今回の話題は
XPagesアプリで複数DBを検索する
です。


つくっても良いのですが、時間がかかりそうというのと、サンプルがあるのであれば、それを使ってみた方が面白そう。
という理由でOpenNTFから探すことにしてみました。

検索用語は

multiple DB search site:openntf.org

としてみました。

するといくつかのプロジェクトが表示されました。

1つ目は、
Multi-Database Search Plugin
です。

こちらは
ノーツクライアント(スタンダード版)にインストールするプラグインで、
ノーツクライアント上にある複数のノーツDBを同時に検索してくれるものです。
設定画面で、どのノーツDBを検索対象にするのかを選択できるので、エンドユーザでも利用しやすくなっています。
検索そのものは画面右上にある検索ボックスで入力すれば良いようになっています。

唯一、残念なのが、検索対象にできるのはノーツクライアント上のノーツDBだけということで、ドミノサーバ上のものは選べないという事です。
実務には使えそうにないですね・・・


2つ目は
Xpages Multi Database Search Custom Control
です。

こちらは、複数のノーツDBを検索することができるXPagesアプリケーションです。
サンプルDBでは、このXPagesアプリケーションが配置してあるドミノサーバ上ののーつDBを同時に検索して、結果を表示してくれるようになっています。

検索部分はカスタムコントロール化されていて、カスタマイズもしやすくなっています。
※マニュアルにカスタマイズ方法が書かれています。

なお、こちらのXPagesアプリケーションは、8.5.2以上で動作するとのことです。
ただし、8.5.2の場合、XPages Extension Libraryをインストールする必要があります。
8.5.3 Upgrade pack1や9.0.0以上の場合は、そのまま動作させることができます。

画面はこちら。
初期画面

右上の編集ボックスにキーワードを入力して、虫眼鏡のアイコンをクリックすると検索中の画面になります。
ノーツDB検索中

検索が終了すると、結果が一覧画面として表示されます。
検索結果

一番左の列をクリックすると、ノーツDBのトップページがWebブラウザ上で開き、左から2番目の列をクリックすると、検索結果に該当した文書がWebブラウザ上で表示されます。


このXPagesアプリケーションは、XPinCにも対応していて、ノーツクライアントのスタンダード版でも利用できるのです。

デフォルトの仕様としては
ドミノサーバ上にあるノーツDBのうち、全文索引がついている16個のノーツDBを検索対象にしており、そのうち最大50文書を検索結果として表示させることができます。


ここで、実は問題がありました。
このアプリケーション、ダウンロードしただけでは正常に動作しませんでした。
ちょっとした修正が必要になります(少なくとも私の環境では動作しませんでしたし、ヘルプを見る限りでは、エラーになるはずです)。

「searchFunctions」という名前のサーバーJavaScriptがあるので、それを開きます。
18-20行目付近に
var db_CurrentDB:NotesDatabase = db_Directory.getFirstDatabase(NotesDbDirectory.DATABASE);
while(db_CurrentDB != null){
 if (db_CurrentDB.isFTIndexed() == true){

という個所があります。

ここにあるdb_CurrentDBisFTIndexedという命令ですが、ノーツDBがオープンしていないと動作しません。
しかし、db_Directory.getFirstDatabase(NotesDbDirectory.DATABASE)はノーツDBをオープンしてくれません。
したがって、常にエラーになってしまうのです。

そこで、
この辺りを
try {
    db_CurrentDB.open();
        ・・・
} catch(e) {
}

と変えます。
open命令を追加しています。
この時、アクセス権がないと、エラーになってしまうので、try ~ catchで例外処理として回避しておく必要があります。

これで、このアプリケーションが動作します。


実際のノーツDBの検索はJavaで記述されているので、ちょっと解析が大変ですが、現状のままできちんと動いてくれますので、問題ないでしょう。
検索対象にするノーツDBの数や検索結果数などはマニュアルを見てカスタマイズしてみてください。


ということで、本日は複数のノーツDBを検索するプラグインとXPagesアプリケーションを紹介してみました。

このようにOpenNTFにはとても便利なツールがたくさんあります。
ダウンロードして使ってみましょう。
アプリケーション開発者の方は、コントロールの便利な使い方を発見できるかもしれませんよ!?


では今日はこの辺で・・・










Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2016年4月18日月曜日

2016年4月のテクてくで紹介された海外ソリューション

みなさん、こんにちは。
先週末(2016年4月15日)に行われたテクてくロータス技術者夜会にはご参加いただけたでしょうか。

そうです。私がプレッシャーに負けてドタキャンした人です。
本当にすみませんでした。
先週はずっと寝込んでおり、今日になって、ようやく復調してきたところです。
普段から体調には気を付けていたつもりですが、どこかで油断していたようです。


さて、そんな私のことは放っておいて・・・
テクてくでは、3つの海外ソリューションが紹介されました。
LDC Via
We4IT Aveedo
Darwino

それぞれ、英語でのプレゼンでしたが、日本IBMの佐藤さま、ISEの村上さまのおかげで、
皆さんしっかりと製品について理解をしていただけたのではないでしょうか。

そんな中、
LDC Viaからはテクてく用のクーポンを発行していただきました。
3か月間、フル機能が利用できるという、なんとも太っ腹なものです。

クーポンの使い方がちょっと難しいようなので、以下にその手順を書いてみますので、ぜひ試してみてください。

LDC Viaの3か月間フリートライアル体験方法

1.http://ldcvia.com/にアクセスする
2.[Try it now]のボタンをクリックする
Try it nowをクリック

3.「Register Super-user」の画面で必要事項を入力して、[Create My Account]ボタンをクリックする
氏名、メールアドレス、パスワードを入力

4.アカウントが作成されるので、画面内の[SETTINGS]というメニューをクリックする
SETTINGSメニューをクリック
5.「Organisation details」の画面になるので、「Address (line 1):」「City」「Country」「Postal code」「Contact phone」を入力して、[Update]ボタンをクリックする
 ※クーポンを利用するには、会社情報を入力しておく必要があります
6.続いて、同じ画面内にある「Coupon Code」に"tektek"と入力して、[Update]ボタンをクリックする
 ※Planは「Pro(Unlimited Docs/100GB)」にしておく方がよいでしょう。
クーポンを入力して、アカウントをアップグレード!

これで、3か月の間、LDC Viaの機能をフルに利用できるようになります。
ぜひ、試してみてください。
そして、業務で利用できそうだなと思ったら、購入してあげましょうね(^^


Darwinoデモ版

また、Darwinoという製品は、デモ版がGithub上に公開されているとのことですので、
こちらもチェックしてみましょう!
URLはこちら!->Darwino



テクてくロータス技術者夜会は、参加者のみなさんで作り上げていくものです。
テクてくで聴いた内容を実践して、社内外にフィードバックしてください。
また、聴くだけでなく、自分でも発表してみませんか?
テクてくロータス技術者夜会で話してみたい!という方は、tektek Slackでご連絡ください。
その他、こんな話も聞いてみたいという話題でもよいです。
tektek Slackを活用して、テクてくを盛り上げましょう!


それでは、今日はこの辺で・・・