Domino® Designer の新機能と改良点についての情報
このトピックでは、Domino Designer 9.0.1 Social Edition の新機能と変更点について説明します。
Domino Designer のヘルプは、Web 上で定期的に更新されています。 Designer の最新のヘルプファイルをダウンロードするには、developerWorks® の Documentation Library セクション (http://www.ibm.com/developerworks/lotus/documentation/) に移動します。 [Technical Library]、[by product]、[Domino Designer] の順にクリックし、ダウンロードするリリースをクリックします。
Domino Designer と XPages の領域におけるこのリリースの変更と追加を以下に示します。
XPiNC (XPages in the Notes Client) クライアントサイドの JavaScript 拡張 - XSP.executeCommand() 機能の追加。
一部の XPages 項目の詳細については、この文書の「XPages」セクションを参照してください。
プログラム可能な事項、言語、サービスの詳細については、この文書の「プログラム可能な事項、言語、サービス」セクションを参照してください。
さまざまな能力や障害を持つユーザーが使用できるソフトウェアアプリケーションを設計し作成することが、ビジネス界で要求されます。XPages を使用してアクセシビリティ対応アプリケーションを作成するには、障害のある方や加齢障害を持つ成人のユーザーなど、多種多様なユーザーのニーズを把握する必要があります。
このリリースの XPages 領域では、開発者によるアクセシビリティ対応 XPages アプリケーションの作成を支援し、XPages の実行時体験をよりアクセシビリティ要件に準拠させるために、大幅な変更が加えられました。
以下の項目は、このリリースで行われたアクセシビリティ準拠の変更点や追加点の要約を示します。
動的コンテンツの改善 - このリリースでは、動的コンテンツ機能が改善されて、クライアントサイドの JavaScript コードを実行できない検索ボットによる文書索引作成がサポートされるようになりました。
Web クローラとして認識する必要があるユーザーエージェント ID を指定するための新規プロパティが構成ファイルに追加されました。リストに存在する ID が要求のユーザーエージェントヘッダーに含まれている場合は、リンクのレンダリング時、またはリダイレクト応答のロケーションヘッダー内で、別の URL が返されます。この違いは、「#」記号が「?」または「&」に置き換わっていることです。
この処理が実行されるのは、要求内に content パラメータが存在する場合だけです。 このチェックが実行された場合は、パフォーマンスへの影響を最小限にするために、結果はセッション属性に保管されます。
返された URL をたどることにより、Web クローラは、クライアントサイド JavaScript を実行せずに文書を検索できるようになります。 この例では、このプロパティの使用方法を示しています。
# ########################################
# Search Engine web crawler User-Agent Ids
# ########################################
# A comma-separated and lowercase list of Web crawler user-agent Ids. If this property is missing an hard coded list of well known search crawlers is used (Google,Bing,Yahoo). Few keywords can be used with a special meaning
# <empty>: The feature is disabled and no check will be performed against the user-agent header
# <auto>: This keyword is replaced with the list of hard coded search crawlers ids.
#xsp.search.bot.id.list=<empty> (will disable the check) the usual behaviour is followed and no check is performed against the useragent.
#xsp.search.bot.id.list=<auto>,blekkobot (will include google,bing,yahoo and blekko search crawlers in the list of ids to be checked against the user agent, if one of the id is found in the user-agent header, it will be treated as bot and url will be normalize to help indexing. i.e. Avoid use of # sign in URLs)
この構成が有効になっている場合、Google 検索ボットのユーザーエージェント Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) はボットとして認識され、代わりの動作が実行されます。
これを機能させるためには、まず Notes にアカウントをセットアップして、HTTP サーバーにアクセスできるようにする必要があります。 Notes アカウントを作成または表示するには、Notes で [ファイル] -> [プリファレンス] -> [アカウント] を選択して、正しいタイプ (HTTP/HTTPS) になっていることと、サーバーへのアクセスに使用する必要がある完全修飾ホスト名が含まれていることを確認します。SSO を使用する場合、名前は、サーバーに登録されているサーバー名と正確に一致しなければなりません。Notes ワークスペース内の情報からホスト名を正確に導き出せない場合は、エラーが表示される可能性があります。
その場合は、使用したい (ホスト名を提供したい) RunOnServer アプリケーションを登録する必要があります。これを行うには、[ファイル] > [プリファレンス] > [XPages パフォーマンス] > [サーバーで実行] を選択して、アプリケーション、サーバー、ホスト名を追加します。
XPages とは関係なくこれをテストするには、アカウントをセットアップして、アプリケーションの HTTP アドレスを Notes URL アドレスバーに入力します。プロンプトが表示されることなくアプリケーションがロードされた場合、Notes 組み込みブラウザは Notes アカウントフレームワークに定義された情報を正しくパススルーしています。また、アドレスバーで使用したのと同じサーバー名が、[RunOnServer] プリファレンスにオプションのホスト名として格納され、使用されていることを確認してください。
XPiNC (XPages in the Notes Client) クライアントサイドの JavaScript 拡張 - XSP.executeCommand() 機能の追加。9.0 以降では XSP.executeCommand(commandID, commandParameters) が追加されています。commandID は要求された関数を識別します。commandParams は任意の arg 値を含むオブジェクトですが、NULL でも構いません。この機能では、他の XPiNC XSP JavaScript コマンド (例えば、XSP.alert()、XSP.confirm()、XSP.publishEvent()、など) と同じランタイムパスを使用します。
XSP.executeCommand() が呼び出されると、XPages は登録されたコマンドプロバイダのリストを調べます。 コマンドを処理する投稿者が見つかった場合は、コマンドが呼び出され、実行されて、必要な場合は結果が返されます。
プログラム可能な事項と言語に関しては、次の追加や変更が行われました。
詳細は、「ユーザー・ガイド」を参照してください。
deviceBean - モバイルアプリケーション開発拡張の分野でも、deviceBean が、それに関連付けられている API とともにこのリリースで追加されました。
これより前にバージョンでは、XPage は context.getUserAgent() サーバーサイドユーザーエージェント API を提供していました。この API は、要求もとのユーザーエージェントを識別するために使用されます。 これにより、CSS、クライアントサイド JavaScript などのリソースをサーバーサイドで管理しやすくなります。 これはアプリケーションレイアウトにも役立ち、要求元のユーザーエージェントに応答を送信する前に、XPage 内でコンポーネントの表示と非表示を切り替えることができるようになります。
モバイルコンピューティングの人気度を考慮すると、現代では、複数のユーザーエージェントタイプ (つまり、モバイルデバイス) を識別できることも、標準的なデスクトップブラウザアプリケーションの識別よりはるかに重要です。この作業に役立つように、deviceBean と呼ばれる新しい管理 Bean が XPage ランタイムに導入されました。これにより、サーバーサイド JavaScript 計算式、または式言語 (EL) 計算式の中で直接、人気の高い範囲のモバイルデバイスとタブレットデバイスを識別するための、使いやすくプログラミングしやすい方法を提供します。この Bean から提供される情報により、デバイスやブラウザの要求に基づいて、アプリケーションページのさまざまな部分のロードやアンロードをするかどうかというプログラミング上の判断ができます。
例えば、# {deviceBean.mobile} を呼び出すことで、EL 内でモバイルデバイスを識別でき、もう 1 つの方法のサーバーサイド JavaScript でも、# {javascript:deviceBean.isMobile()} を呼び出すことで識別できます。この deviceBean は、拡張ポイントもサポートするため、これを将来、IBM® からのアップグレードパックで拡張したり、独自のカスタムプロジェクトのニーズを満たすように調整したりできます。
この Bean では次の API を使用できます。
<?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">
<xe:singlePageApp id="singlePageApp1"
selectedPageName="appPage1">
<xe:appPage id="appPage1" pageName="appPage1">
<xe:djxmHeading id="djxmHeading1">deviceBean</xe:djxmHeading>
<xe:djxmRoundRectList id="djxmRoundRectList1">
<xe:djxmLineItem id="djxmLineItem2" label="Mobile"
rightText="#{deviceBean.mobile}">
</xe:djxmLineItem>
<xe:djxmLineItem id="djxmLineItem5" label="Tablet"
rightText="#{deviceBean.tablet}">
</xe:djxmLineItem>
<xe:djxmLineItem id="djxmLineItem1" label="Android"
rightText="#{javascript:deviceBean.isAndroid()}">
</xe:djxmLineItem>
<xe:djxmLineItem id="djxmLineItem7" label="Apple"
rightText="#{javascript:deviceBean.getValue
('apple')}">
</xe:djxmLineItem>
<xe:djxmLineItem id="djxmLineItem8" label="Windows"
rightText="#{javascript:deviceBean.getValue
('windows')}">
</xe:djxmLineItem>
<xe:djxmLineItem id="djxmLineItem9" label="Blackberry"
rightText="#{javascript:deviceBean.getValue
('blackberry')}">
</xe:djxmLineItem>
<xe:djxmLineItem id="djxmLineItem22" label="iPhone"
rightText="#{javascript:deviceBean.isIphone()}">
</xe:djxmLineItem>
<xe:djxmLineItem id="djxmLineItem23" label="iPad"
rightText="#{deviceBean.ipad}">
</xe:djxmLineItem>
<xe:djxmLineItem id="djxmLineItem24" label="iPod"
rightText="#{javascript:deviceBean.getValue
('ipod')}">
</xe:djxmLineItem>
</xe:djxmRoundRectList>
</xe:appPage>
</xe:singlePageApp>
</xp:view>
Domino アクセスサービス (REST API) の分野では、このリリースで次の追加と変更が行われました。