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

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

2013年8月22日木曜日

Notes/Domino 8.5以降の新機能のまとめ

2013年8月22日現在、当ブログのデザインを見直しています。


その関係上、「Lotus Notes/Domino 8.5の新機能」という部品を削除します。
そうすると、ブログ内を検索するのが難しくなることが予想されますので、
このようにまとめ記事という形で提供することにしました。


XPagesアプリケーションの作成方法

IDボールトの設定方法

IDボールトによるパスワードのリセット権限の追加

IDボールトによるパスワードのリセットその1

IDボールトによるパスワードのリセットその2

IDボールトによるパスワードリセットその3

IDボールトの不具合に対する修正

DAOSを使ってみた



Notes/Domino 8.5以降で追加された主な機能についての記事です。
まだ読んだことがないという方や、これから8.5以降にバージョンアップを検討しているという
方は一読することをお勧めします。

では。

2013年8月21日水曜日

XPagesでplaceholderを実現してみる

東京都心部では大雨が降っています(2013年8月21日)。猛暑のせいで、全国各地のダムの貯水量が減ってきているとのことですが、ぜひ、そういうところに雨が降ってほしいものです。


さて、ちょっとXPagesアプリケーションを作成していてわからなかったことが解決できたので、備忘録という形で記事に残しておきます。
中身を見る前に、恒例のボタンクリックをしましょう。
にほんブログ村 IT技術ブログへ



今日の話題はplaceholderについてです。
placeholderとは、テキストボックスに、グレーの色で薄く表示されているガイドテキストです。
facebookに投稿する際のテキストボックスに表示されている文字列ですね。
Placeholderって何?

この表現方法はHTML5で実装されたもので、最近では色々なWebサイトで見かけると思います。

XPagesでも、この技?が使えるんですよ。
Notes/Domino 8.5.3からとなりますが、その設定方法を説明します。


まずは、編集ボックスコントロールを設定します。
まぁ、当たり前ですね。
次に、プロパティビューで「すべてのプロパティ」を表示します。
ということは、他のタブでは設定できないんですね。残念。

そして、この中にある「基本」「attrs」を見ます。
すると[+]というボタンが表示されるので、そこをクリックします。
attr[0]が出来上がるので、その中の「name」と「value」に値を設定します。
今回はplaceholderの設定をしたいので、「name」には"placeholder"と入力、
「value」には表示させたいメッセージを入力します(下図参照)。
placeholderの設定

これで保存すれば終了です。簡単ですね!

下図は実行時の画面です。
実行直後なので何も入力されていません。なので、placeholderに設定した値が表示されています。
実行時の画面(まだ何も入力していない)

ここで、編集ボックスに文字列を入力したのが下図です。placeholderに設定した内容が消えて、実際に入力した値が表示されています。
実行時の画面(文字を入力してみた)

検索ボックスや氏名の入力など、細かい説明をするまでもないような箇所に設定するとわかりやすくて良いでしょう。



従来のノーツアプリケーションでも、同等な機能がありますね。
ノーツアプリケーションでのplaceholder機能


ということは、ノーツアプリケーションをXPagesにする際も安心!なんですね。

ノーツでWeb化するならXPages!」 「ノーツアプリケーションの改修はXPagesで!

では、今日はこれまで。






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

2013年8月8日木曜日

制御付きアクセスセクションをXPagesで実現してみる

もう秋かと思っていましたが、連日の暑さにやられた方々が多数いた模様です。みなさんはそんなことにならないように、日ごろから注意しましょうね。


では、本題に入る前に、こちらのボタンをクリックしてください。
にほんブログ村 IT技術ブログへ


従来のノーツアプリケーションの場合、便利な機能の一つに「制御付きアクセスセクション」というものがありますね。
設定したユーザ以外は、そのセクションの中にあるフィールドを編集することができないというものです。
こちらの機能は、ノーツWebアプリケーションでもそのまま動作してくれるというのもポイントが高いですね。

今回は、この機能をXPagesで実現する方法について説明します。

まずは、おさらいです。
従来のノーツアプリケーションで「制御付きアクセスセクション」を実現するには、
[作成][セクション][制御つきアクセス]メニューを実行します。
この時、セクションにしたい箇所をあらかじめ選択しておくとわかりやすくて良いでしょう(下図参照)。
ノーツアプリケーションでの制御つきアクセスセクション

すると、下図のようなインフォボックスが表示されるので、「タイトル」と「フィールド名」に値を入力します。
制御つきアクセスセクションのプロパティ
さらに、このウィンドウの左から3番目のタブを開いて、セクションフィールドの値を決めます。今回は、セクションフィールド名を計算結果として代入しておきます。
セクションフィールドの値

ついでに言うと、セクションを作成すると、省略された状態になってしまうので、展開しておきましょう。
この状態でフォームを保存して、ノーツクライアントでプレビューを見てみましょう。
ノーツクライアントでのプレビュー

文書の新規作成時は、制御つきアクセスセクションに設定したフィールドは空白のため、このセクションは全ユーザが編集できるようになっています。

このフィールドの値を変更すると、その値で決められたユーザのみがこのセクション内を編集できるようになります。
下図はこのセクションフィールド名の値を修正したものです。
特定のユーザのみがセクションを編集できる状態

では、これをXPagesで実現してみましょう。
XPages にもセクションコントロールがあるので、それを配置してみましょう。
でも・・・制御つきセクションの機能が実現できそうな設定(プロパティ)はありません。(下図)
セクションコントロールとそのプロパティ

では、どうすればよいのでしょうか?
答えは・・・パネルコントロールを使います。

さっそく、パネルコントロールを配置してみましょう。
「読み取り専用」というプロパティがありますね。そこにマウスカーソルをあててみると・・・(下図)
パネルコントロールのプロパティ

「このコントロールが読み取り専用であることを示し、それに含まれるコントロールを読み取り専用に切り替えます。」と書いてあります。
つまり、ここにチェックが入っていれば、パネルコントロール内に配置したその他のコントロールもすべて読み取り専用になるということです。
しかも、このプロパティは計算式を入力できるようになっています(右側にある◇の箇所)。

このプロパティをただチェックするだけでなく、計算式でチェックの有無を決めるようにすれば、特定のユーザだけ、読み取り専用にすることができるようになるのです。
これは、最初に説明した「制御つきアクセスセクション」の動作に一致しますね。

サンプルの式を記述してみましょう。
先ほどのノーツアプリケーションと同じように、Masahiko Miyo/EFMIYOだけが 編集できるようにします。
読み取り専用の計算式

気を付けるのは、trueを返すと、読み取り専用になってしまうので、編集させたいユーザの場合は、falseを返すようにすることです。

下図は、XPage にフォームをデータソースとして登録して、フィールドを設定、ブラウザで表示させたものです。
XPagesでのプレビュー

ちなみに、Masahiko Miyo/EFMIYOというユーザで、開いてみた画面が下図になります。


ユーザによって、編集できる/編集できないという切り替えができるのがわかってもらえたでしょうか?(画面にユーザ名を表示していないからわかりにくいなぁ・・・)

「読み取り専用」の式の内容を変更すれば、編集用と表示用のコントロールを複数用意する必要もなくなるようにできると思います。
たとえば、ワークフローで申請中は、この内容を修正されたくないよという場合に利用できるでしょう。

この使い方を覚えるだけで、従来のノーツアプリケーションをXPages化するのがさらに簡単になりますね。

ぜひ使ってみてください。




※もしかしたら、他にもっと華麗な方法があるかもしれません。そういった方法をご存知の方は、フィードバックしてやってください。








【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします!

Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

DOMINO懇談室を利用しましょう

こんにちは。立秋が過ぎ(2013年は8月7日だったようですね)、暦の上ではもう秋なんですね。
暑いといえば暑いのですが 、気持ち風が涼しくなったようなならないような(笑)。

さて、今さらなんですが、みなさんはNotes/Dominoで困ったこと(問題)があったらどうしていますか?
  1. 自分で調べる
  2. IBMさんに問い合わせをする
  3. 周りの人に聞いてみる
  4. インターネット上を検索してみる 
  5. ディスカッションサイトで聞いてみる
  6. 問題をなかったことにする
等々が考えられますね。

1.は、過去の自分の経験をもとにすることで、解決まで至ることができるということでしょうか。
2.は、パスポートアドバンテージに加入していれば、恩恵にあずかることができるでしょう。
3.についても、自分の周りに詳しい人がいれば、その人の知識を元に解決することができるかもしれません。
6.は・・・論外ですね。後でそのツケが回ってこないことを祈るばかりです。

4.は、キーワードを指定して検索することで、 問題解決の糸口を探すことができるかもしれません(当ブログにもそのような方がたくさん来訪されているようです。うわさでは聞きますが、私本人の耳に入ってくることが少ないです。切ないです)。
ちなみに、当ブログで記事のコメントに別の質問をされてくる方がたまにいらっしゃいますが、記事に直接関係ないことについては一切回答はしませんので、悪しからず。

聞く人が周りにいなくて、インターネット上でも検索にヒットしなかった・・・という方のために
5.のようなディスカッションサイトがあります。
今でも使われているのはNotes Q&A ではないでしょうか。

その他として、 古くからあるドミノ懇談室があります。
何度か場所を移転していて、その度に過去のデータが参照できなくなった・・・と騒がれているサイトではありますが、それでも、このような場所があるのとないのとでは違うのではないでしょうか?

ちなみに、現在はIBMさんのdeveloperWorks内に設置されています。
DOMINO懇談室
ですね。
利用にはIBM IDの登録が必要ですが、Notes/Dominoに携わっている方であれば、登録して損はないでしょう(というか、登録しましょう)。

2006年から2012年8月までの過去データについては、ノーツコンソーシアム殿がDBごとダウンロードできるようにしてくれています。
利用規約がはっきりしないままの公開には賛否両論あるかと思いますが、ここは「ないよりはまし」として、再利用されることを喜びましょう。

ダウンロードについては、
【お知らせ】ドミノ懇談室過去の書き込みファイル
に記載してあります。


上記のどちらを利用するのかは、みなさんの自由です。
ただ、どちらにも言えるのは、質問して得られた回答内容に対するフィードバックを忘れないようにしましょう。
ということですね。


今日はこんなところで終わりにします。

2013年8月4日日曜日

GitHubを使ってのチーム開発 ~応用編~ (後半)

8月ですね。前回の投稿が途中で終わっているのにもかかわらず、二週間も止めてしまいました。大変失礼いたしました。

ということで、今回は前回の続きです。

始める前にボタンをクリックしましょう。
にほんブログ村 IT技術ブログへ


さて、前回はGutHub上にある共通プロジェクトを自分のリポジトリにForkして、それをローカルPC上にクローンとしてコピーして、nsf ファイルに関連づけをしたところまでやりました。


通常、ここまで出来たら、nsfファイルを編集します。これはDomino Designerで従来通りアプリケーションの修正を行えば良いので、詳しい説明は省きます。

修正が終わったら、オンディスクプロジェクトにそれを反映させる必要があります。
nsfをマウスで右クリックして、[チーム開発][オンディスクプロジェクトとの同期]メニューを実行します(下図参照)。
nsfとオンディスクプロジェクトの同期

なお、この作業は省略することもできます。
Domino Designer上で[ファイル][プリファレンス]メニューを実行して、[Domino Designer][ソース制御]タブを開きます。そこにある「変更時の設計要素の自動エクスポート(NSFからディスクへ)を有効にする」と「変更時の設計要素の自動インポート(ディスクからNSFへ)を有効にする」のチェックをつけておきます(下図参照)。
ソース制御のプリファレンス

これで、nsfに変更を行ったら、オンディスクプロジェクトに自動で同期されるようになります。
また、オンディスクプロジェクトに変更を行ったら、自動でnsfに同期されるようになります。

今度は、オンディスクプロジェクトの変更内容をGitHubに反映させます。まずは、変更内容をコミットする必要があるので、次の手順でコミットを行います。
Domino Designerのナビゲータビューを開きます。
オンディスクプロジェクトをマウスで右クリックして、[Team][Commit...]メニューを実行します。
オンディスクプロジェクトの変更をコミットする

「Commit Changes」ダイアログが表示されるので、変更内容を入力後、変更したファイルを選択して、[Commit]ボタンをクリックします(下図参照)。
コミット内容の入力

今度は、GitHub 上の自分のリポジトリに変更内容を反映させます。
再度、オンディスクプロジェクトをマウスで右クリックして、[Team][Push to Upstream]メニューを実行します。
オンディスクプロジェクトをリモートリポジトリにPushする

変更内容がGitHubのリポジトリにPushされます。
Pushが終了すると、下図のような完了確認ダイアログが表示されるので、[OK]をクリックします。
Pushの完了確認ダイアログ

ここで、GitHub の自分のリポジトリにアクセスすると、確かに変更内容が反映されたことが確認できます。
GitHub上の自分のリポジトリ

今度は、Fork元のリポジトリに反映するために、Pull Requestを発行します。
これは、元のリポジトリは管理者しか修正ができない為です。
GitHub のリポジトリの画面右側に「Pull Request」というリンクがあるので、そこをクリックします。
Pull Requestリンクをクリック

Pull Requestの画面に変わるので、「New Pull Request」ボタンをクリックします。
Pull Requestする内容が画面に表示されるので、一通り確認します。
確認が終わったら、画面上部にある「Click to create a pull request for this comparison」というリンクがあるので、クリックします。
Pull Request画面

Pull Requestする際のメッセージを入力する画面が展開されるので、内容を入力して、[Send pull request]をクリックします。
Pull Requestコメント入力画面

Pull Requestが成功すると、Fork元のリポジトリ画面に切り替わります。
Pull Requestが成功した

これで後は、リポジトリの所有者がこのPull Requestを処理してくれます。

本来はそこの手順まで書きたかったのですが、私が所有しているGitHubのプロジェクトがなかったので、それはまた別の機会で・・・

ということで今日はここまでとします。





【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします!

Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ