IBM Domino 9.0.1 Social Edition フィーチャーパック 8 の新機能

IBM Domino Designer の新機能と改良点についての情報

このトピックでは、IBM Domino Designer 9.0.1 Social Edition フィーチャーパック 8 の新機能と変更点について説明します。IBM Domino Designer の以下の領域を中心に説明します。
  • アプリケーション開発ツールとしての IBM Domino Designer
  • アプリケーション開発オプションとしての XPages
  • Bluemix® 統合
  • プログラム可能な事項、言語、サービス

IBM Domino Designer のヘルプは、Web 上で定期的に更新されています。 Designer の最新のヘルプファイルをダウンロードするには、developerWorks® の Documentation Library セクション (http://www.ibm.com/developerworks/lotus/documentation/) に移動します。 [Technical Library][by product]、[IBM Domino Designer] の順にクリックし、ダウンロードするリリースをクリックします。

最初に、アプリケーション開発ツールとしての IBM Domino Designer の領域におけるこのリリースでの変更と追加を以下に示します。

  • フィーチャーパック 8 での JVM アップグレード - フィーチャーパック 8 (FP8) では、Notes クライアントと IBM Domino Designer は 1.8 JVM で実行されるようになりました。ただし、Eclipse の非互換性の問題から、Designer は 1.8 JRE を使用して Java コードをコンパイルできません。Java コンパイルを容易にするために、FP8 には古い 1.6 JRE も付属しており、これは <notes_base_dir>¥jvm1.6 ディレクトリにインストールされます。FP8 インストーラは、[Java] > [インストール済み JRE] 設定も変更して 1.6 JRE を自動的に選択し、XPage、Java エージェント、その他の Javaベースの設計要素の Java コンパイルが正常に実行できるようにします。インストール後、元の設定ファイルはタイムスタンプと .bak 拡張子を付けて名前変更されるため、必要に応じて元の設定に戻すことができます。
  • Dojo と CKEditor のアップグレード - CKEditor が 3.6.6.2 から 4.5.3.2 にアップグレードされました (フルビルド番号: 4.5.3.2_20151106-1234)。Dojo が 1.8.3 から 1.9.7 にアップグレードされました (フルビルド番号: 1.9.7-20151126-IBM®)。これらのアップグレードは、IE11 と iOS8 をサポートするためのものです。CKeditor のアップグレードには、重要なセキュリティフィックスも含まれています。
  • 「ヘッドレス」 Designer のサポート - ソースコードリポジトリから NSF ファイルと NTF ファイルを作成できるように、コマンドライン構築システムが IBM Domino Designer に追加されました。シングルコマンドメソッドまたはコマンドファイルメソッドを使用できます。詳細はこのガイドのソース制御のセクションを参照してください。
  • データビューコントロールでの無制限スクロールのサポート (モバイル「タッチ」スクロール) - データビューコントロールが改善され、モバイルユーザー向けの「無制限スクロール」エクスペリエンスを可能にする新規プロパティが追加されました。この機能を有効にすると、ユーザーがモバイルコンテンツをタッチスクロールしたときに、追加コンテンツが自動的に読み込まれます。コンテンツは後続のページから事前に取得され、モバイルアプリケーションで表示されている現在のページに直接追加されます。この機能を有効にするために infiniteScroll という新規プロパティが追加されました。このプロパティは、Designer でページソースに直接設定することも、「すべてのプロパティ」ビューを使用して設定することもできます。詳細はこのガイドの拡張ライブラリ制御とプロパティ参照に関するセクションを参照してください。
  • モバイルテーマでの XPage の日付と時刻モバイルコントロールのサポートの改善。詳しくは、このトピック内の対応するセクションを参照してください。
  • XPages TypeAhead 制御サポートの機能強化。詳しくは、このトピック内の対応するセクションを参照してください。
  • Xsp プロパティエディタでのテーマコンボボックスへの機能強化。詳しくは、このトピック内の対応するセクションを参照してください。
  • シングルページアプリケーションウィザードの追加 - この機能を使用すると、XPage にシングルページアプリケーションコントロールをドラッグした後のアプリケーション作成手順をガイドする「ウィザード」を使用して、XPage モバイルアプリケーション用の初期デザインフレームワークを作成できます。詳細はこのガイドの拡張ライブラリ制御参照に関するセクションを参照してください。
  • XPage 用のリレーショナルデータベースサポートの改善および JDBC ドライバプラグインウィザードの追加。詳しくは、このガイドの「データのバインドと送信」セクションの「XPages を使用したリレーショナルデータベース管理 (RDBMS) のサポート」サブセクションを参照してください。
  • XPage での Bootstrap レスポンシブ Web デザインのサポート。詳しくは、このガイドの「XPages でのテーマによる設計 - XPages でのレスポンシブ Web デザインのサポート」セクションを参照してください。
  • 3 つの新規レスポンシブコントロールとその関連プロパティ、新規レスポンシブアプリケーションレイアウト - このリリースでは、いくつかの新規コントロールとアプリケーションレイアウトコントロール用の新規構成が Bootstrap プラグインに追加されました。これらの新規コントロールと構成により、XPage アプリケーション開発者が使用できるレスポンシブツールセットがさらに強化されます。詳しくは、このガイドの「XPages でのテーマによる設計 - XPages でのレスポンシブ Web デザインのサポート」セクションを参照してください。
  • 値ピッカーコントロールの xe:mapValuePicker タグと xe:collectionValuePicker タグ - 2 つの新しい値ピッカーデータプロバイダタグを使用できます。これらを値ピッカーコントロールの dataProvider プロパティで使用して、値ピッカーダイアログに表示するオプションのリストを提供できます。詳しくは、このトピック内の対応するセクションを参照してください。
  • 新しい inPlaceForm シンプルアクション。このアクションは、複数の文書を一覧表示する繰り返しコントロール内で、個々の文書を直接編集するためによく使用されるインプレースフォームコントロールの表示および非表示に使用されます。詳しくは、このトピック内の対応するセクションを参照してください。
  • データビューコントロール用の xsp.properties の新規オプション「suppress」。詳しくは、このトピック内の対応するセクションを参照してください。
  • 新しい IBM Domino Designer ソース管理拡張ポイント - IBM Domino Designer のチームソース管理機能の制限のために、デフォルト動作を変更するアドオンを開発者が提供できるようにする新しい拡張ポイントが追加されました。新規拡張ポイントは、com.ibm.designer.domino.team.synclistener という名前で、オンディスク同期化処理にフックを提供して、サードパーティの介入を容易にします。ユースケース例としては、リソースをソース管理システムにコミットする前に、ディスク上のファイルから不要なメタデータ要素をクリーンアップする拡張などが挙げられます。
  • IBM Domino Designer 設定に関する資料の拡張と更新。詳細はこのガイドを参照してください。
  • Bluemix での XPage における IBM Domino Designer の使用に関する資料の新規セクション。これには以下についての情報が含まれます。
    • IBM Bluemix と IBM Domino Designer アプリケーションの統合のための IBM Domino Designer ツール
    • プログラマチックに IBM XPages NoSQL データベースサービス情報を取得するための bluemixContext オブジェクトと DataService オブジェクト
    • 他のランタイムでの IBM XPages NoSQL データベースサービスの使用
    • XPages ランタイム環境変数
    • ハイブリッドアプリケーションの実動ユースケースをサポートするために提供される追加の IBM Domino Designer Bluemix 設定
    • ハイブリッドアプリケーションの実動ユースケースをサポートするための IBM Domino Designer Bluemix ツールの変更
    • ハイブリッドアプリケーションの実動ユースケースをサポートするための Bluemix/IBM Domino Designer 環境変数の導入
    詳細はこのガイドを参照してください。
  • IBM Notes/Domino 9.0.1 フィーチャーパック 8 は、XPage を使用して Web 上で文書を暗号化できるようになりました。 これまでは、秘密鍵暗号化機能は Notes クライアントでのみ使用できました。

一部の XPages 項目の詳細については、この文書の「XPages」セクションを参照してください。

プログラム可能な事項、言語、サービスの詳細については、この文書の「プログラム可能な事項、言語、サービス」セクションを参照してください。

XPages

次に、アプリケーション開発オプションとしての XPage の領域におけるこのリリースの変更と追加を以下に示します。

XPage を使用した Domino での文書の暗号化と暗号化解除

IBM Notes/Domino 9.0.1 フィーチャーパック 8 は、XPage を使用して Web 上で文書を暗号化できるようになりました。 これまでは、秘密鍵暗号化機能は Notes クライアントでのみ使用できました。この制限の理由は、暗号化処理で使用される秘密鍵がユーザーの ID ファイル内に格納されており、Web ベースのアプリケーションではアクセスできないためでした。この制限は新しい Notes/Domino ID ボールトの導入によりなくなりました。文書を暗号化および暗号化解除するには、この ID ボールトにアクセスして、アクティブユーザーの秘密鍵を取得する必要があります。

XPage での秘密鍵の暗号化は、Notes クライアントで提供されている基本モデルをエミュレートするように設計されており、同じ規則と制限がすべて適用されます。したがって、秘密鍵暗号化機能を採用した Notes クライアントアプリケーションは、Web 上で XPage アプリケーションとして実行できるようになりました。
注: IBM Domino の暗号化および暗号化解除の基本モデルをより深く理解するためには、『IBM Domino Designer Basic 版 ユーザーガイドおよびリファレンス』の「Notes と Domino の暗号化」セクションを参照してください。

以下の新しいコンポーネントや機能も、XPage 暗号化/暗号化解除サポートの一部です。

  • 秘密鍵ピッカーコントロール - この新規コントロールは、XPage のコントロールパレットの拡張ライブラリ引き出しの中にあります。このコントロールを XPage 上にドラッグしてドロップすると、XPage の暗号化のセットアップを支援するヘルパーダイアログが表示されます。
  • dominoIDVaultBean - このユーティリティオブジェクトは、暗号化処理を円滑に管理するために XPage ランタイムの一部として提供されます。この Managed Bean は、XPage ランタイムによって自動的に各ユーザーのためにインスタンス化されます。そのジョブは、各ユーザーのために ID ボールトのアクセス詳細 (ユーザー名、パスワード、ID ボールトサーバー名) を維持することです。Domino ID ボールトをアクセスするために必要なプロパティを管理するための「Get」メソッドと「Set」メソッドが Bean に用意されています。例えば、getUserID メソッドは、アクセスプロパティに関連付けられた値に基づいて、UserID オブジェクトを返します。この UserID オブジェクトを使用して、暗号化操作を実行するために必要な秘密鍵を取得できます。
  • @UserSecretKeys() Javascript 関数 - この便利な関数は、ユーザーの ID ファイルから秘密鍵を取得するために使用されます。
  • @UserId() Javascript 関数 - この関数は、特定のユーザーについて ID ボールト内に保管されている UserID オブジェクトを返します。

この機能の詳細については、Knowledge Center のオンラインバージョンの XPage ユーザーガイドで「データのバインドと送信」セクションを参照してください。

アクセシビリティ対応の XPage テーマ提供の継続的な取り組み

このリリースでは、XPages が現在のアクセシビリティガイドラインと要件に準拠する新規テーマをサポートするようになりました。テーマの名前は Bootstrap3.6.6 です

モバイルテーマでの XPage の日付と時刻モバイルコントロールのサポートの改善

IBM Domino Designer リリース 9.0.1 では、デスクトップ Web ブラウザで特定の XPage コントロールを使用して、日付、時刻、または日付と時刻の両方を選択できます。ただし、これらのコントロールは、XPage モバイルテーマで使用した場合は正しく機能しませんでした。具体的には、モバイルテーマを使用して、編集ボックスで [日付/時刻ピッカーポップアップを使用] オプションを選択すると、壊れた機能しない Dojo ベースの Web 日付ピッカーが Web ページに表示されました。このリリースでは、この動作が改善され、モバイルデバイスで、日付、時刻、日時の値を入力できるようになりました。

この機能改善により、日付と時刻コントロールをクリックしてカレンダー (または時刻のリスト) から選択するか、dateTime コントロール (ポップアップカレンダーがない) に日付と時刻の値を入力することができます。

追加の iOS オプション

iOS デバイスの場合、日時フィールドをクリックするとポップアップが表示される、以下のオプションも使用可能になりました。このオプションにより時間を簡単に選択できますが、現在は日単位で日付をスクロールする必要があります。これは、前の年の値を選択するのに非常に時間がかかるため、最も望ましいオプションではない場合があります。

(iPhone/iPad/iPod で使用される) 現在の iOS ソリューションは、正しい形式で正確に日付を入力する必要がある要件を、よりユーザーフレンドリーな方法に変更するように、今後変更される可能性があります。

使い方の詳細

以下の使用法情報は、これらの機能改善に関する追加の詳細情報です。

  • 日付のみの編集ボックスと時刻のみの編集ボックスの場合、デバイスのネイティブ日付ピッカーと時刻ピッカーが使用されます (HTML ページに <input type="date"> または <input type="time"> がある)。
  • 日時の編集ボックスの場合、Android と非 iOS ブラウザでは、デバイスのネイティブ日時ピッカーが使用されます (HTML ページに <input type="datetime-local"/> がある)。
  • iPhone の日時編集ボックスの場合の動作は、アプリケーションの xsp.properties ファイル内のオプションに依存します。デフォルトでは、iPhone での dateTime の動作は、2013-01-14T12:51 などのプレースホルダ推奨値が設定された編集ボックスを表示します。この場合、日付と時刻の値を推奨フォーマットに従って入力して日付を指定する必要があります。このプレースホルダー値 (ユーザーが入力を開始すると表示されなくなる) は、実際には、必要な形式での現在の日付と時刻です。カレンダーから日付を選択できるようにするピッカーはありません。以前の動作を修正するための解決策としてこの動作が提供されていますが、これが iPhone/iOS デバイスでの dateTime の長期にわたる動作になることは意図されていません。
  • 上述のとおり、アプリケーションの xsp.properties ファイルに設定できる xsp.theme.mobile.iOS.native.dateTime=true というオプションもあります。このオプションが指定されている場合、iOS デバイスはネイティブの iOS 日時ピッカーを使用します (HTML ページに <input type="datetime-local"/> がある)。この「スクロールホイール」オプションの使用の制約については、このセクションで前述したとおりです。

モバイルテーマでの XPage の入力補完コントロールサポートの改善および使用方法の情報

これまでは、XPage アプリケーションでモバイルテーマを使用する場合、XPage の入力補完コントロールのサポートはありませんでした。「android」、「iphone」、「blackberry」という名前のモバイルテーマに新しいモバイル入力補完のサポートが追加されました。新しいモバイル入力補完の動作は、Dojo Toolkit の dojox/mobile/ComboBox コントロールに基づいています。

使い方の詳細

モバイルの入力補完コントロールは、「oneui_idx_v1.3」という名前の IDX モバイルテーマでは使用されていません。

新しいモバイル Type Ahead コントロールでも、編集ボックスへの複数の値の入力はサポートされません。(通常の Web 入力補完では、「aaa, bbb, ccc」などのコンマで区切り値をサポートしています)。入力補完コントロールで複数の値を使用するように構成された XPage は、モバイルテーマではエラーになります。

iOS には既知の問題があります。これは、入力保管ドロップダウンが閉じられた後に、ページ見出しの位置がおかしくなり、ページの上部にとどまる代わりに、入力補完コントロールの編集ボックスにかぶさってしまうというものです。

Xsp プロパティエディタでのテーマコンボボックスへの機能強化

現在、XPage ランタイムにテーマを提供するためには、com.ibm.commons.Extension 拡張を使用して StyleKitFactory インターフェースを使用する必要があります。IBM Domino Designer の Xsp プロパティエディタでテーマコンボボックスに themeId も提供できるようになりました。

これを行うには、StyleKitFactory の実装に StyleKitListFactory も実装し、getThemeIds メソッドから themeIds の配列を返す必要があります。

テーマコンボボックスをさらに強化するために、アプリケーション内に定義されたテーマは、他のテーマと区別するために「(Application)」のラベルが後ろに付加されます。

新しい xe:mapValuePicker タグと xe:collectionValuePicker タグ

2 つの新しい値ピッカーデータプロバイダタグ xe:mapValuePickerxe:collectionValuePicker が使用できます。これらを値ピッカーコントロールの dataProvider プロパティで使用して、値ピッカーダイアログに表示するオプションのリストを提供できます。

xe:mapValuePicker

最初のタグであるピッカーデータプロバイダのマップ (xe:mapValuePicker) を使用すると、ピッカーダイアログの項目に使用される java.util.Map を計算できます。マップのキーはラベルであり、マップの値は保存されるデータ値です。以下は、このタグを使用したコードの例です。

<xe:valuePicker id="valuePicker13" for="inputText1">
		<xe:this.dataProvider>
			<xe:mapValuePicker>
				<xe:this.options><![CDATA[#{javascript://
var map = new java.util.LinkedHashMap();
map.put("Cat", "CAT");
map.put("Dog", "DOG");
map.put("Fish", "FISH");
return map;}]]&gt;</xe:this.options>
			</xe:mapValuePicker>
		</xe:this.dataProvider>
	</xe:valuePicker>

この例では、編集ボックスに選択した項目のデータ値が表示されます。

他の入力コントロールの一部を使用している場合、一部のコントロールには、常に項目ラベルが表示されます。例えば、以下の Dojo リストテキストボックスのコードは、小さいボックスに選択した項目のラベルを表示します (コントロールで複数項目の選択を許可している場合には複数のボックス)。

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
<!--	<xp:inputText id="inputText1" value="#{viewScope.category}"></xp:inputText>-->
	<xe:djextListTextBox id="djextListTextBox1"
		value="#{viewScope.category}" displayLabel="true">
	</xe:djextListTextBox>
	<xe:valuePicker id="valuePicker13" for="djextListTextBox1">
		<xe:this.dataProvider>
			<xe:mapValuePicker>
				<xe:this.options><![CDATA[#{javascript://
var map = new java.util.LinkedHashMap();
map.put("Cat", "CAT");
map.put("Dog", "DOG");
map.put("Fish", "FISH");
return map;}]]&gt;</xe:this.options>
			</xe:mapValuePicker>
		</xe:this.dataProvider>
	</xe:valuePicker>
</xp:view>

この例で、Dojo リストテキストボックスには、選択した項目のデータ値も表示されます。

xe:collectionValuePicker

コレクションピッカーデータプロバイダ (xe:collectionValuePicker) により、ダイアログに表示される値を指定する java.util.Collection を計算できます。例:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
	<xp:inputText id="inputText1" value="#{viewScope.category}"></xp:inputText>
	<xe:valuePicker id="valuePicker13" for="inputText1">
		<xe:this.dataProvider>
			<xe:collectionValuePicker>
				<xe:this.collection><![CDATA[#{javascript://
var collection = new java.util.ArrayList();
collection.add("Cat");
collection.add("Dog");
collection.add("Fish");
return collection;}]]&gt;</xe:this.collection>
			</xe:collectionValuePicker>
		</xe:this.dataProvider>
	</xe:valuePicker>
</xp:view>

この例では、コレクション内のそれぞれの値は、ラベルと保存されるデータ値の両方として機能します。つまり、ダイアログに表示されるラベルとフィールドに保存されるテキストが常に同じになります。

xe:mapValuePickerxe:collectionValuePicker には、検索の実行時にピッカーによって返されるデータを制御するオプションもいくつかあります。値ピッカーコントロールで検索を実行には、2 つの異なる方法があります。dojoType="extlib.dijit.PickerListSearch などの検索 dojoType を指定して値ピッカーを構成した場合、ダイアログの上部に検索ボタンと編集ボックスが表示されます。ユーザーは検索編集ボックスに入力し、[検索] ボタンをクリックしてリストをフィルタに掛けることで、検索に一致する項目のみを表示できます。この方式は、ダイアログに多数のオプションがある場合に、迅速に値を選択する場合に便利です。

値ピッカーコントロールを使用して行うことができるもう一方の種類の検索では、値ピッカーからのデータリストを使用する編集ボックスに typeAhead を構成します。例:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
	<xp:inputText id="inputText1" value="#{viewScope.category}">
		<xp:typeAhead mode="partial" minChars="1"
			preventFiltering="true">
			<xp:this.valueList><![CDATA[#{javascript:getComponent("valuePicker1").getTypeAheadValue(this)}]]&gt;</xp:this.valueList>
		</xp:typeAhead>
	</xp:inputText>
	<xe:valuePicker id="valuePicker1" for="inputText1">
		<xe:this.dataProvider>
			<xe:collectionValuePicker>
				<xe:this.collection><![CDATA[#{javascript://
var collection = new java.util.ArrayList();
collection.add("Cat");
collection.add("Dog");
collection.add("Fish");
return collection;}]]&gt;</xe:this.collection>
			</xe:collectionValuePicker>
		</xe:this.dataProvider>
	</xe:valuePicker>
</xp:view>

この場合、この編集ボックスに値の入力を開始すると、typeAhead は一致する値を valuePicker から検索し、編集ボックスの下のドロップダウン内に一致した項目を表示します。この場合でも、typeAhead 動作を使用する代わりに、値ピッカーアイコンをクリックしてダイアログを表示するオプションがあります。

デフォルトでは、いずれかの種類の検索でも、ブラウザに入力された値が使用され、ブラウザからの値で始まるダイアログリスト内の一致の検索が試行されます。

xe:collectionValuePickerxe:mapValuePicker には、ブラウザの値を突き合わせる基準を選択できるようにする searchType プロパティがあります。デフォルトでは startsWith 検索が実行されますが、「contains」検索を実行するように構成できます。例:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
	<xp:inputText id="inputText1" value="#{viewScope.category}">
	</xp:inputText>
	<xe:valuePicker id="valuePicker1" for="inputText1" dojoType="extlib.dijit.PickerListSearch">
		<xe:this.dataProvider>
			<xe:collectionValuePicker searchType="contains">
				<xe:this.collection><![CDATA[#{javascript://
var collection = new java.util.ArrayList();
collection.add("John Paul Smith");
collection.add("Paul Adams");
collection.add("James Paul Jones");
collection.add("John Smith");
collection.add("Phil Cooper");
return collection;}]]&gt;</xe:this.collection>
			</xe:collectionValuePicker>
		</xe:this.dataProvider>
	</xe:valuePicker>
</xp:view>

完全一致のみを表示するには、searchType="equals" を使用します。

searchRange プロパティを使用して検索を構成し、デフォルトの動作である restrictToSearch (検索値に一致する項目のみが返される) から新しい動作である jumpTo に変更することもできます。後者の場合、検索値に一致する最初の項目を見つけた後、その項目と後続のすべての項目が表示されます。以下の例は、このメソッドを使用しています。

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
	<xp:inputText id="inputText1" value="#{viewScope.category}"></xp:inputText>
	<xe:valuePicker id="valuePicker13" for="inputText1" dojoType="extlib.dijit.PickerListSearch">
		<xe:this.dataProvider>
			<xe:collectionValuePicker searchRange="jumpTo">
				<xe:this.collection><![CDATA[#{javascript://
var collection = new java.util.ArrayList();
collection.add("Cat");
collection.add("Dog");
collection.add("Fish");
return collection;}]]&gt;</xe:this.collection>
			</xe:collectionValuePicker>
		</xe:this.dataProvider>
	</xe:valuePicker>
</xp:view>

大/小文字の区別がないオプションもあります。このオプションにより、検索値と項目ラベルの突き合わせで大/小文字を区別しないようにできます。

最後に、preventFiltering オプションは、データプロバイダが実行する自動フィルタを無効にし、mapValuePicker の options プロパティまたは collectionValuePicker の collection プロパティの計算で requestScope.startValue 変数を使用できるようにします。このオプションを使用すると、カスタムフィルタリングコードをダイアログ項目のプロパティ計算に入れることができます。例:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
	<xp:inputText id="inputText1" value="#{viewScope.category}"></xp:inputText>
	<xe:valuePicker id="valuePicker13" for="inputText1" dojoType="extlib.dijit.PickerListSearch">
		<xe:this.dataProvider>
			<xe:collectionValuePicker preventFiltering="true">
				<xe:this.collection><![CDATA[#{javascript://
var collection = new java.util.ArrayList();
collection.add("Cat");
collection.add("Dog");
collection.add("Fish");
if( ! requestScope.startValue ){
	// not doing a search, return entire list.
	return collection;
}
// do custom filtering
// Doing a case-sensitive equals jumpTo search, with added support for Puppy and Kitten 
var submittedValue = requestScope.startValue;
if( submittedValue.equals("Puppy") ){
	submittedValue = "Dog";
}else if( submittedValue.equals("Kitten") ){
	submittedValue = "Cat";
}
var indexOfSubmitted = java.util.Collections.binarySearch(collection, submittedValue);
if( indexOfSubmitted < 0 ){ // no match
	return collection;
}
// remove everything before index
while( indexOfSubmitted > 0 ){
	collection.remove(0);
	indexOfSubmitted = indexOfSubmitted -1; 
}
return collection;
}]]&gt;</xe:this.collection>
			</xe:collectionValuePicker>
		</xe:this.dataProvider>
	</xe:valuePicker>
</xp:view>

この例では、検索フィールドに Puppy が入力された場合、戻されるリストの一番上に Dog が表示されます。

新しい inPlaceForm シンプルアクション

このリリースには、新しい xe:inPlaceFormAction サーバーサイドシンプルアクションが用意されています。xe:inPlaceFormAction は、複数の文書を一覧表示する繰り返しコントロール内で、個々の文書を直接編集するためによく使用されるインプレースフォームコントロールの表示および非表示に使用されます。以下は、このアクションを使用するコードの例を示します。

<xp:link escape="true" id="link1" text="Click Me to Edit Form">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="inform">
		<xp:this.action>
			<xe:inPlaceFormAction for="inPlaceForm1" 	formAction="toggle">
			</xe:inPlaceFormAction>
		</xp:this.action>
</xp:eventHandler>
</xp:link>

このシンプルアクションには、以下のプロパティが使用できます。

  • for - このアクションにより状態が変更されるインプレースフォームコントロールの ID を指定します。空の場合は、親階層内で最も近いインプレースフォームコントロールが使用されます。
  • formAction - インプレースフォームで実行するアクション (show、hide、または toggle) を指定します。

データビューコントロール用の xsp.properties の新規オプション「suppress」

以下の例のように、関連する Domino ビューデータソース (xp:dominoView) に databaseName を割り当てたときに発生する、dataView コントロールの既存の動作があります。

<xe:dataView var="viewEntry" pageName="/topicThread.xsp">
	<xe:this.data>
		<xp:dominoView var="dominoView" viewName="xpAllDocuments"
 		databaseName="Discussion_data.nsf">
		</xp:dominoView>
	</xe:this.data>

この例では、データビューコントロールにより文書ごとのリンクが生成されます。その結果生成される URL は、次のようになります。

http://servername.example.com/Discussion_design.nsf/topicThread.xsp?databaseName=servername!!Discussion_data.nsf&documentId=2924D3C6A80C523280257DFD005C35A0&action=openDocument

ここで、xp:dominoViewdatabaseName が存在する場合、生成される URL には databaseName パラメータが含まれます。例:

databaseName=servername!!Discussion_data.nsf

このリリースでは、アプリケーションの Xsp プロパティエディタの [ソース] タブで構成できる、以下の新しい xsp.properties のオプションがあります。

xsp.dominoView.url.databaseName.suppress=true

suppress オプションが存在し、true に設定されている場合、データビューコントロールによって生成される URL は、次のようになります。

http://servername.example.com/Discussion_design.nsf/topicThread.xsp?
documentId=2924D3C6A80C523280257DFD005C35A0&action=openDocument

この URL の中には、databaseName パラメータが含まれていません。

注: ビューパネル (xp:viewPanel) コントロールによって生成される同様の URL は変更されず、引き続き databaseName URL パラメータが含まれています。

既存のコントロールに対する Designer の拡張性の改善

IBM Domino Designer に付属するコアコントロールと拡張ライブラリコントロールの設計時のツール設定をオーバーライドできるようにする新しい拡張ポイント (com.ibm.designer.domino.xsp.editor.componentOverride)が Designer に追加されました。この拡張ポイントを使用して設定する拡張は、コントロールあたり 1 つのみにしてください。これにより、コントロールのパレット項目をオーバーライドしたり、独自のドロップウィザードやプロパティパネルを追加したりできます。詳細はこのガイドを参照してください。

XPage エディタの改善

追加のプリファレンスが XPages エディタに追加され、ユーザビリティが向上しました。これらのコンポーネントは次のとおりです。
  • 常にソースタブを開く - XPages エディタを開いたときに開くタブを選択できます。
  • 設計タブ用のスタイルシート (CSS) のロードを禁止する - [設計] タブ用の CSS リソースファイルのロードを停止します。これにより、大容量の CSS リソースファイルが XPage に含まれている場合にエディタが遅くならないようにします。
  • パレットドロワーの内容をアルファベット順 にソート - パレットの引き出しの一部 (コアコントロールなど) はソートされないため、このプリファレンスを有効にすることでこれを修正できます。

Bluemix 統合

XPage を使用した Bluemix アプリケーション開発と Bluemix 統合の領域で、以下が追加されました。

Bluemix で作成された XPage アプリケーションとの統合を改善するための Domino Designer Bluemix ツール

Bluemix プラットフォームとの間で XPage アプリケーションを構成およびデプロイするために IBM Domino Designer クライアントサイドに必要なインフラストラクチャを提供するために、新しいアプリケーション開発ツールが IBM Domino Designer に追加されました。新しいツールには以下が含まれます。

  • 正しい Bluemix サーバー接続を定義できるようにする新しい IBM Domino Designer プリファレンスページ。Bluemix プリファレンスを開くには、[ファイル] -> [プリファレンス] を選択してから、[IBM Domino Designer -> [IBM Bluemix] を選択します。
  • Designer ワークスペースに XPage スタータコードアプリケーションをインポートできるようにするインポートウィザード。このウィザードを開くには、[ツール] -> [IBM Bluemix スタータコードのインポート] をクリックします。アプリケーションコピー、アプリケーションレプリカを作成するか、または実際の NSF をスタータコード ZIP ファイルから使用するかを選択できます。
  • Bluemix へのデプロイメントのために既存の XPage アプリケーションを構成することが可能な、Bluemix 構成ウィザード。このウィザードを開くには、[設計] -> [IBM Bluemix] -> [デプロイメント用に構成] を選択するか、Bluemix ツールバーボタンに関連付けられているドロップダウンメニューを使用します。または、アプリケーションナビゲータでアプリケーションを右クリックして、[IBM Bluemix] ->[デプロイメント用に構成] ポップアップメニューを使用することもできます。このウィザードでは、デプロイメントプロセス中に、デプロイメントディレクトリに NSF をコピーする方法を決定するオプションがあります。 コピーまたはレプリカを作成することを選択できます。
  • 各アプリケーションとそのランタイムに関連付けられた Bluemix と XPage のランタイム環境変数を変更できる新規エディタ。エディタを開くには、[プリケーションナビゲータ] の [アプリケーション構成] カテゴリの下にある [IBM Bluemix Manifest] を選択します。

    このエディタには、[ハイブリッド構成] エディタページもあります。このページでは、アプリケーションのハイブリッド構成を表示および編集できます。[ハイブリッドプロファイルのロード] ボタンをクリックして、ハイブリッドプロファイルのいずれかをロードできます。これにより、プロファイルがリストされたダイアログが表示され、ロードするプロファイルを選択できます。その後、プロファイル設定がマニフェストにロードされ、指定したデプロイメントディレクトリに ID ファイルがコピーされます。

    マニフェストからすべてのハイブリッド設定を削除するには、[この構成の削除] ボタンをクリックします。この削除オプションでは、以前にコピーされた ID ファイルはデプロイメントディレクトリから削除されないことに注意してください。必要な場合、この操作を手動で行う必要があります。

    このエディタの追加オプションには、[ホスト]オプションと [ドメイン] オプションがあります。これらの新しいオプションは、Manifest エディタの [一般] ページにあります。[ホスト] オプションでは、複数のホスト名またはサブドメインを指定できます。各ホスト名はアプリケーションへの固有の経路を生成します。[ドメイン] オプションでは、アプリケーションの複数のドメインを指定できます。

  • インポートウィザードを使用してアプリケーションをインポートしたとき、または構成ウィザードを使用して構成した場合に、アプリケーションを Bluemix にデプロイする機能。アプリケーションをデプロイするには、[設計] -> [IBM Bluemix] -> [アプリケーションのデプロイ] を選択し、Bluemix ツールバーボタンをクリックするか、アプリケーションナビゲータのアプリケーションを右クリックして、[IBM Bluemix] -> [アプリケーションのデプロイ] ポップアップメニューを使用します。
  • Bluemix にデプロイされている XPage アプリケーションを取得して、それをデフォルトブラウザで開くことができる機能。アプリケーションを開くには、[設計] -> [IBM Bluemix] -> [デフォルトシステムブラウザで開く] を選択するか、Bluemix ツールバーボタンに関連付けられているドロップダウンメニューを使用します。あるいは、アプリケーションナビゲータ内のアプリケーションを右クリックし、[IBM Bluemix] -> [デフォルトシステムブラウザで開く] ポップアップメニューを使用することができます。個々の XPages はアプリケーションナビゲータ内で選択して上記の方法を使用して開くことができます。

Bluemix で作成された XPage アプリケーションとの統合を改善するための bluemixContext オブジェクトと DataService オブジェクト

前述したように、Bluemix で稼働する XPage アプリケーションの開発を支援するために、新しいグローバルオブジェクト bluemixContext が提供されています。このオブジェクトは、バインドされた XPages NoSQL データベースサービスの接続情報に加えて、XPage ランタイムから情報を取得するためのメソッドを提供します。これは、バインドされているサービスによって提供された Bluemix VCAP_SERVICES 環境変数を解析することで行われます。

bluemixContext のメソッド getDataServicegetDataServiceByName は、DataService オブジェクトを返します。このオブジェクトも、バインドされた XPages NoSQL データベースサービスの情報を VCAP_SERVICES 環境変数から取得するメソッドを提供します。

これらのオブジェクトは、Java と JavaScript でのみ使用可能です。

これらのオブジェクトの詳細および Bluemix で作成された XPage アプリケーションの処理については、IBM Domino Designer の製品資料と Bluemix の資料を参照してください。

Bluemix ランタイム環境変数用の IBM XPages

Bluemix 上で使用可能な XPages ボイラープレート (IBM XPages NoSQL Database for Bluemixサービスと IBM XPages for Bluemix ランタイムの両方を使用するスタータアプリケーション) では、環境変数は、クラウドランタイムサービスがデプロイされているスタータアプリケーションに環境について伝える手段として使用されます。

Bluemix では特に、VCAP_SERVICES 環境変数を使用して、各種 Bluemix ランタイムを使用して IBM XPages NoSQL Database for Bluemix サービスにアクセスするために必要な情報および資格情報を取得します。IBM Domino Designer では、bluemixContext オブジェクトが、XPages ランタイムから情報を取得したり、バインドされている XPages NoSQL Database サービスから接続情報を取得したりできるようにする各種メソッドを提供します。これは、バウンドサービスによって提供される VCAP_SERVICES 環境変数を構文解析することによって行います。VCAP_SERVICES 環境変数については、Bluemix の資料を参照してください。

VCAP_SERVICES 環境変数によって自動的に提供される情報に加え、XPages ランタイムは、Bluemix プラットフォームとの統合を最適化するのに役立つように、独自の環境変数コレクションを提供します。IBM Domino Designer では、Bluemix Manifest エディタには、XPages ランタイム環境変数のセクションが含まれています。このセクションでは、この一連の環境変数を必要な値に設定できます。

提供されている一連の XPages ランタイム環境変数には、以下のものがあります。

  • APP_HOME_URL
  • APP_PRELOAD_DB
  • APP_INCLUDE_XPAGES_TOOLBOX
  • APP_JVM_HEAPSIZE
  • APP_VERBOSE_STAGING
  • APP_JAVA_POLICY_ALL_PERMISSION

XPage のランタイム環境変数について詳しくは、製品資料を参照してください。

IBM Domino Designer と Bluemix を併用する際のハイブリッドアプリケーションのサポート

ハイブリッドアプリケーションの主な特性は、アプリケーションデータが Bluemix の外部にあることです。ハイブリッドアプリケーションモデルの利点は、パスワード管理やディレクトリアシスタンスなどの信頼できる IBM Domino サーバー構成オプションを使用して、Bluemix と関連して使用されるクラウドおよびオンプレミスプラットフォームを横断できるところにあります。

IBM Domino Designer と Bluemix を使用するハイブリッドアプリケーション開発をサポートするために、以下の機能が導入されました。
  • ハイブリッドアプリケーションの実動ユースケースをサポートするための追加の IBM Domino Designer Bluemix プリファレンス
  • ハイブリッドアプリケーションの実動ユースケースをサポートするための IBM Domino Designer Bluemix ツールの変更
  • ハイブリッドアプリケーションの実動ユースケースをサポートするための Bluemix/IBM Domino Designer 環境変数の導入
  • 複数のハイブリッド構成プロファイルの保管 - Bluemix アプリケーションで使用するための複数 (最大で 20) のハイブリッド構成 (プロファイル) を保管して管理できます。
  • bluemixContext オブジェクトのハイブリッドユーティリティメソッド - bluemixContext オブジェクトには、XPage と Bluemix のアプリケーションの Java コードまたはサーバーサイド JavaScript コードで使用できる多数の便利なメソッドが用意されています。ハイブリッドアプリケーションの作業に役立つ、3 つのユーティリティメソッドが用意されています。3 つのメソッドは、isHybridApplication()findHybridDatabaseName(String db Path)atHybridDbName(String db Path) です。より詳しい情報については、製品資料と Bluemix の資料を参照してください。

詳細はこのガイドを参照してください。

プログラム可能な事項、言語、サービス

このセクションでは、プログラム可能な事項、言語、サービスの領域で行わた変更と追加について説明します。このリリースでのこの領域の変更と追加には、以下のものがあります

プログラム可能な事項と言語に関して、以下の追加や変更がこのリリースで行われました。

Bluemix で作成された XPage アプリケーションとの統合を改善するための bluemixContext オブジェクトと DataService オブジェクト

Bluemix で稼働する XPage アプリケーションの開発を支援するために、新しいグローバルオブジェクト bluemixContext が提供されています。このオブジェクトは、バインドされた XPages NoSQL データベースサービスの接続情報に加えて、XPage ランタイムから情報を取得するためのメソッドを提供します。これは、バインドされているサービスによって提供された Bluemix VCAP_SERVICES 環境変数を解析することで行われます。

bluemixContext のメソッド getDataServicegetDataServiceByName は、DataService オブジェクトを返します。このオブジェクトも、バインドされた XPages NoSQL データベースサービスの情報を VCAP_SERVICES 環境変数から取得するメソッドを提供します。

これらのオブジェクトは、Java と JavaScript でのみ使用可能です。

これらのオブジェクトの詳細および Bluemix で作成された XPage アプリケーションの処理については、IBM Domino Designer の製品資料と Bluemix の資料を参照してください。

このリリースでは、以下のメソッド、プロパティ、数式などが追加されました。

  • IDVault クラスと NotesIDVault クラス用の LotusScript®、Java、JavaScript のメソッド/プロパティ。これらのクラスは、ポリシーによって IBM Domino に対して構成される可能性があるユーザー ID 用のセキュアストレージ機能を実現します。管理者やユーザーによる管理を容易にするために、ID がそこに保管されます。完全な詳細については、製品資料を参照してください。
  • HTMLReference クラスと HTMLReference クラス用の LotusScript、Java、JavaScript のメソッド/プロパティ。これらのクラスは、HTML 参照内に含まれているデータを表現するために使用されます。HTML ストリングには、リンク、添付ファイル、Web サーバーコマンドへの参照が埋め込まれている場合があります。完全な詳細については、製品資料を参照してください。
  • bluemixContext グローバルオブジェクトの Java とサーバーサイド JavaScript のメソッドとプロパティ。完全な詳細については、製品資料を参照してください。
  • bluemixContext グローバルオブジェクトにより返される DataService オブジェクト/コンポーネント用の Java とサーバーサイド JavaScript のメソッドとプロパティ。完全な詳細については、製品資料を参照してください。
  • View クラスと NotesView クラス用の FTSearchSorted メソッド (LotusScript、Java、JavaScript)。完全な詳細については、製品資料を参照してください。
  • EmbeddedObject クラスと NotesEmbeddedObject クラス用の FileEndcoding プロパティ/メソッド (LotusScript、Java、JavaScript)。添付ファイルのエンコード情報を返します。完全な詳細については、製品資料を参照してください。
  • @AddedToThisFile - この @ コマンドは、現在のファイル内にいつ文章が作成されたかを示す時刻/日付の値を返します (@Created により返されるグローバル作成時刻とは異なる)。
  • @ModifiedInThisFile - この @ コマンドは、現在のファイル内で最後に文章が変更されたのはいつかを示す時刻/日付の値を返します (@Modified により返されるグローバル変更時刻とは異なる)。
  • @UserSecretKeys() Javascript 関数 - この便利な関数は、ユーザーの ID ファイルから秘密鍵を取得するために使用されます。
  • @UserId() Javascript 関数 - この関数は、特定のユーザーについて ID ボールト内に保管されている UserID オブジェクトを返します。

IBM Domino アクセスサービス (REST API) の分野では、このリリースで次の追加と変更が行われました。

REST カレンダーサービス内の新しい URL パラメータ

このリリースでは、カレンダーイベントの GET 要求に 2 つの新規 URL パラメータが追加されました。パラメータ dayssincenow により、現在の日付に対する相対日付範囲を制御できます。状況によっては、sincebefore で想定される日付/時刻の絶対値よりもこの方式が便利な場合があります。

カレンダーイベントの GET 要求についての資料は、http://www-10.lotus.com/ldd/ddwiki.nsf/xpAPIViewer.xsp?lookupName=IBM+Domino+Access+Services+9.0.1#action=openDocument&res_title=Calendar_events_GET&content=apicontentにあります。

以下の表では、当該トピックへの補足を提供します。

表 1. REST カレンダーサービス内の新しい URL パラメータ
URL パラメータ 例: 説明
since since=2015-01-01T00:00:00Z 日付範囲の開始時刻。since を設定しない場合、デフォルト値は要求の時刻になります。
次の値より前 before=2015-02-02T00:00:00Z 日付範囲の終了時刻。before が指定されていない場合、デフォルト値は、since パラメータの値から 1 年です。
sincenow (新規) sincenow=-60 現在からの相対的な日数として指定された開始時刻。整数値 (正、ゼロ、または負) でなければなりません。since と組み合わせることはできませんが、before または days とは組み合わせることができます。
days (新規) days=120 日付範囲の日数。正の整数でなければなりません。before と組み合わせることはできませんが、since または sincenow とは組み合わせることができます。