| Oracle® Fusion Middleware Oracle JDeveloperによるWebCenter Portalアセットとカスタム・コンポーネントの開発 12c (12.2.1) E72546-01 |
|
![]() 前 |
![]() 次 |
この付録の内容は次のとおりです。
ポータル問合せでの自由形式のJPQL WHERE句およびSORT句の非サポート
関連項目:
EL APIの詳細は、Oracle WebCenter Portal Java APIリファレンスを参照してください。
ページ・コンポーネントまたはアセットを構成する場合、現在のアプリケーション・コンテキストを利用する変数として値を表すことができます。たとえば、現在のユーザーの名前、ユーザーに割り当てられたロール、現在のページの状態などを、変数を使用して取得できます。このような柔軟性は、JDeveloperで式ビルダーを使用して作成したEL式を使用するか、実行時に式エディタを使用することで実現できます。
この項では、次の内容について説明します。
JDeveloperでEL式を使用すると、属性と実行時に決まるオブジェクト値とをバインドできます。特定のコンポーネントの値は、実行時にそのvalue属性によって決定されます。コンポーネントにはその値として静的テキストを割り当てることができますが、通常、value属性には、表示データを決定するために実行時インフラストラクチャにより評価されるEL式が含まれます。
JDeveloperの式ビルダーを使用してEL式を作成できます。ビルダーにはプロパティ・インスペクタからアクセスできます。プロパティ・インスペクタで変更する属性を特定し、「プロパティ・メニュー」アイコンをクリックして、ポップアップから「式ビルダー」を選択します(図A-1)。
「式ビルダー」ダイアログ(図A-2)では、「式」ボックスにEL式を直接入力できます。「変数」ドロップダウン・リストを使用して、式に含める項目を選択することもできます。演算子ボタンを使用して、式に論理演算子または算術演算子を追加します。
式ビルダーの詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』の「ADF Facesのスタート・ガイド」を参照してください。
WebCenter Portalでは、式エディタと呼ばれる単純な式言語(EL)エディタを提供しています。式エディタは、動的な計算をしなければ不明なプロパティ値(たとえば、現在のユーザーや現在のページ・モードなどを指定する場合)を定式化する場合に使用します。
式エディタは、WebCenter Portalの管理および編集画面で使用できます。式エディタを開くには、フィールド、チェック・ボックスまたはドロップダウン・リストの横の「拡張編集オプション」アイコンをクリックして、「式ビルダー」をクリックします(図A-3を参照)。
関連項目:
コンポーネント・プロパティへのアクセスの詳細は、『Oracle WebCenter Portalでのポータルの構築』のコンポーネントの変更に関する項を参照してください。
式エディタには、式の入力用に2つのオプションが用意されています。
値の選択: シード済EL式を選択します。
値または式の入力: 式を手動で入力します。
「値の選択」の下のオプションは、式から返される情報のタイプに基づいて分類されます。最初のメニューでカテゴリを選択し、2番目のメニューで返される値のタイプを選択します(図A-4)。
関連項目:
シード済EL式の詳細は、「式エディタの組込み式」を参照してください。
「値または式の入力」オプションの下のテキスト・ボックスを使用して、目的の式を手動で入力できます(図A-5)。
この付録にある表の式の多くは、結果として返されるオブジェクトを絞り込むための構成要素です。すなわち、必ずしも単独で使用することを意図したものではなく、ELを組み合せて必要な問合せを構築するために使用します。
たとえば、次の式は、3つのアセット関連ELを使用して、特定のポータル・テンプレートを返す問合せを1つ構築します。これは、親ポータルstoresからテンプレートstoresMasterTemplateを取得します。
#{srmContext.resourceScope['stores'].resourceType['siteTemplate'].displayName[‘storesMasterTemplate'].singleResult}
式エディタでは、次のいずれかを実行できます。
「値の選択」を選択して、ドロップダウン・リストから事前定義された値を選択します。
「値または式の入力」を入力して、値またはEL式を入力します。次の形式を使用します。
リテラル数値: #{123}
リテラル文字列: #{'string'}
リテラルブール値: #{true}
値を戻すために呼び出されるJava Bean: #{generalSettings.preferredTimeStyle}
エディタには「テスト」ボタンがあり、ELの入力を検証できます。「テスト」ボタンは、「値または式の入力」の下のテキスト・ボックスに入力した式に対して使用できます。
検証では、EL構文がチェックされて式が評価されます。式の値は、それが実行されるコンテキストによって異なるため、エディタには実際の使用時に戻される値とは異なる結果値が表示される可能性があります。
ただし、「テスト」をクリックしたときに検証されるのはELのみで、他のタイプの値は検証されないことに注意してください。結果はポップアップに表示されます。
注意:
「コンポーネント・プロパティ」ダイアログの汎用の「表示オプション」タブでELを入力すると、入力内容が自動的に検証されます。EL構文が無効な場合、エラーが表示され、その値は適用も保存もされません。汎用の表示オプションは、『Oracle WebCenter Portalでのポータルの構築』の表示オプション・プロパティの表に記載されているオプションです。
ELの検証は、汎用ではない表示オプションに対しては実行されません。
次の表では、WebCenter Portal情報に関連するEL式を示し、提供される機能のタイプについて説明します。
表A-1 WebCenter Portal情報に関連するEL式
| 式 | 機能 |
|---|---|
|
現在のWebリクエスト内で、すべてのWebCenter Portal関連情報へのアクセス・ポイントを提供する |
|
現行のWebリクエストを表すURLを戻します。このURLの末尾には、リクエストのブックマーク設定可能なWebCenter Portal URLパラメータが追加されています(パラメータは順不同の場合があります)。 例: http://www.example.com/webcenter/faces/oracle/webcenter/page/scopedMD/someguid/SomePage.jspx?wc.contextURL=/spaces/somename&wc.pageScope=1234 |
|
WebCenter Portalからのメタデータのペイロードを含む |
|
現在のWebCenter Portalアプリケーションの表示名(「WebCenter Portal管理」設定で構成)を返します。 デフォルトでは、WebCenter Portalを返します。 |
|
アプリケーション・ロゴが「WebCenter Portal管理」設定を介してアップロードされた場合、この式はアプリケーション・ロゴ・イメージへのURLを返します。 デフォルトでは、nullを戻します。 |
|
WebCenter Portalで使用するヘルプ・アプリケーションへのURL (「WebCenter Portal管理」設定で構成)を返します。 デフォルトでは、/webcenterhelp/spacesを戻します。 <<レビューアへ: /spacesではなく/portalとすべきか?>> |
|
著作権メッセージが「WebCenter Portal管理」設定によって構成されている場合は、アプリケーションの著作権メッセージを返します。 デフォルトでは、 |
|
アプリケーションのプライバシ・ポリシーを含むドキュメントへのURL (「WebCenter Portal管理」設定で構成)を返します。 デフォルトでは、 |
|
アプリケーションでページのレンダリングに使用するデフォルトのADF Facesスキン・ファミリの名前(「WebCenter Portal管理」設定で構成)を返します。 この式は、すべてのWebリクエストで使用できるとはかぎらないアプリケーション・レベルの設定のみを表します。たとえば、ユーザーがアプリケーションの「プリファレンス」を介してスキンをオーバーライドするように選択している場合、この式は正常に使用できません。 |
|
アプリケーション・レベルで構成されている要素や現在のユーザーのプリファレンス設定などに応じて、現在のWebリクエストで使用されるADF Facesスキン・ファミリの名前を返します。
|
表A-2では、ポータル・ページに関連するEL式を示し、提供される機能のタイプについて説明します。
表A-2 特定のページに関連するEL式
| 式 | 機能 |
|---|---|
|
ページの表示名を戻します。次に例を示します。 FinanceProject |
|
ページを作成したユーザーのユーザー名を戻します。次に例を示します。 monty |
|
ページの作成日時を戻します。次に例を示します。 2008-11-19T10:18:36 |
|
ページを最後に更新したユーザーのユーザー名を戻します。次に例を示します。 monty |
|
ページが最後に更新された日時を戻します。次に例を示します。 2008-11-19T10:18:36 |
|
アプリケーションのルート・ディレクトリに対する相対パスとして、ページへのファイル・ディレクトリ・パスを戻します。次に例を示します。 /oracle/webcenter/page/scopedMD/s8bba98ff_4cbb_40b8_beee_296c916a23ed/user/Umonty/Page4.jspx |
|
ページのファイル名を戻します。次に例を示します。 Page4.jspx |
|
ページで使用されたスタイル・スキームの名前を戻します。次に例を示します。 WCSchemeEggShell |
|
ページ・スキームの背景イメージのディレクトリ・パスとファイル名を戻します。 |
|
ページ・スキームの背景色の16進値を戻します。次に例を示します。 #ffa500 |
|
ページに対する現行ユーザーの権限を戻します。次に例を示します。 oracle.webcenter.page.model.security.CustomPagePermission |
|
現行のページをセキュリティ・システムに対して一意に識別する60文字程度の文字列です。次に例を示します。 oracle_webcenter_page_scopedMD_s8bba98ff_4cbb_40b8_beee_296c916a23ed_user_Umonty_Page4PageDef |
|
現在のページがコンポーザ・モードの場合は、trueを返します。現在のページがコンポーザ・モードでない場合は、falseを返します。 |
|
ページで現在使用されているレイアウトの表示名を返します。 |
|
ページで使用されているレイアウト・ビューを返します。 |
|
レイアウトで使用されているCSSファイルを返します。 |
表A-3では、ポータルに関連するEL式を示し、提供される機能のタイプについて説明します。
注意:
ポータルの内部名は、ポータルの管理設定の「概要」ページにある「PortalのURL」で指定された名前のことです。ポータルの表示名は、「名前」で指定された名前です。表A-3に示すEL式の多くは、ポータルの内部名を呼び出します。
表A-3 特定のポータルに関連するEL式
| 式 | 機能 |
|---|---|
|
現在のWebリクエスト内で、すべてのポータル関連情報へのアクセス・ポイントを提供する この式の値は、Java API |
|
現在のWebリクエストに関連付けられているポータルを表す この式の値は、Java API |
|
現行のWebリクエストに関連付けられているポータルの名前。現在のWebリクエストがホーム・ポータル・コンテキストにある場合は、 この式の値は、Java API |
|
この式の値は、現行の |
|
指定した名前 この式の値は、ポータルのポータル・オブジェクトに対して |
|
この式の値は、現在の |
|
|
|
|
|
|
|
|
|
指定した名前 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注意: このELを使用してWebCenter Portal Administrationでフィールドに値を入力する場合、「テスト」ボタンをクリックすると空白値が戻される可能性があります。ただし、実行中のポータルでは値は適切に解決されます。 |
|
|
|
式に たとえば、次のEL式は検出可能なすべてのポータルのリストを返します。 #{spaceContext.spacesQuery.unionOf['DISCOVERABLE'].listSpaces}
たとえば、次のEL式は、すべての問合せ条件が移入された状態で、タイプが #{spaceContext.spacesQuery.unionOf['DISCOVERABLE']}
|
|
現在のユーザーがメンバーになっているすべてのポータルのリストを返します。 例は、「例: 様々なポータルに対するEL式の使用」を参照してください。 |
|
現在のユーザーがメンバーになっているすべてのポータルのリストを返します。 このELは、現在のユーザーがアクセスできる各親ポータルの下にあるすべてのサブポータルも返します。 |
|
ソート基準によって指定された順序にソートされたポータルを返します。 たとえば、次の問合せは、ユーザーがアクセス可能なポータルのリストを、 次の例では、識別子 #{spaceContext.spacesQuery.unionOf['ALL_QUERIABLE'].sort['sp.discoverable']['asc']['sp.lastUpdateDate']['desc'].listSpaces}
|
|
問合せ基準と一致する結果から選択するページ番号を指定できます(0ベース)。 たとえば、次の式は、ユーザーがアクセス可能なすべてのポータルのリストを返し、結果セットの3ページ目を返します。 #{spaceContext.spacesQuery.unionOf['ALL_QUERIABLE'].pageNumber[2].listSpaces]}
|
|
結果のポータルをページに分割するときに、各ページに含まれる結果の数を指定できます。 たとえば、次の式は、ユーザーがアクセス可能なすべてのポータルのリストを返し、各ページに10レコードずつリストします。 #{spaceContext.spacesQuery.unionOf['ALL_QUERIABLE'].pageNumber[10].listSpaces]}
|
#{spaceContext.spacesQuery.unionOf.ALL_QUERIABLE.where[wCond['sp.createdBy']['like']['monty%'] ['and'] [wCond['sp.selfSubEnabled']['is']['null'] ['or'] [wCond['sp.selfSubEnabled']['=']['N']] ['not'] ]].listSpaces}
|
指定されたユーザーが作成し、自己サブスクリプションが有効な、ユーザーがアクセス可能なすべてのポータルのリストを返します。詳細は、Oracle WebCenter Portal Java APIリファレンスの |
|
ポータル・ブラウザのポータルで使用されている色コードを返します。 |
|
ポータル・ブラウザのポータルで使用されている頭文字を返します |
この項では、様々なポータルを問い合せるためのEL式の使用例を示します。
この例では、次のELを使用して、自分がメンバーになっているすべてのポータルのリストを表示します。
"#{spaceContext.spacesQuery.unionOf['USER_JOINED'].shape['ROOT_LEVEL'].listSpaces}"
さらに次のメソッドを使用して、ポータルのロゴ、名前、説明、メンバー数も表示します。
displayName: ポータル名を表示
description: ポータルの説明を表示
memberCount: ポータルのメンバー数を表示
ポータルを問い合せるには:
『Oracle WebCenter Portalでのポータルの構築』の「タスク・フローの使用」の説明に従って、新しいタスク・フローを作成し、使用可能のマークを付けます。
タスク・フローのソース・コードを編集します。「アセット」タブで、タスク・フローを選択します。「アクション」メニューから、「ソースの編集」を選択します。
「ソースの編集」ダイアログの「フラグメント」タブで、既存のコードを次のコードに置き換えます。
<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:pe="http://xmlns.oracle.com/adf/pageeditor" xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable"
xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions">
<af:panelGroupLayout id="pgl1">
<cust:panelCustomizable id="pc1">
<table border="0" width="100%">
<af:iterator id="it1" var="row" value="#{spaceContext.spacesQuery.unionOf['USER_JOINED'].shape['ROOT_LEVEL'].listSpaces}">
<c:set var="displayName" value="#{row.displayName}"/>
<c:set var="description" value="#{row.description}"/>
<c:set var="numMembers" value="#{row.memberCount}"/>
<tr class="PortletText1">
<af:image id="img1"
source="#{WCPrepareImageURL[spaceContext.space[row.name].metadata.icon]}/ICON16"/>
</td>
<td>
<af:outputText id="otCol1"
value="#{displayName}"
inlineStyle="color:#333333; font-size:12px; font-weight:bold;"/>
</td>
</tr>
<tr>
<td>
<af:outputText id="otCol3"
value="#{description}"
inlineStyle="color:#666666; font-size:12px;"/>
</td>
</tr>
<tr>
<td>
<af:outputText id="otCol4"
value="members (#{numMembers}) -"
inlineStyle="color:#666666; font-size:10px;"/>
<af:spacer id="spacer1" width="5px"/>
<af:goLink id="gl1"
destination="/spaces/#{row.name}"
targetFrame="_blank"
text="view"/>
</td>
</tr>
</af:iterator>
</table>
</cust:panelCustomizable>
</af:panelGroupLayout>
</jsp:root>
このタスク・フローをページに追加します。リソース・カタログでは、「UIコンポーネント」→「タスク・フロー」でカスタム・タスク・フローを使用できます。
ページには、自分がメンバーになっているすべてのポータルのリストが表示されます。
表A-4に、ペイロードの受け渡しをトリガーできるポータル・イベントのタイプ(イベント機能に関連するイベントではない)に関連するEL式を示します。
表A-4に示すイベント・ペイロードには、発生後、その全部または一部にアクセスできます。
たとえば、ペイロード全体に対して、次のELを使用します。
#{wcEventContext.events.eventName}
たとえば、次のようにします。
#{wcEventContext.events.WebCenterUserSelected}
表A-4のELのペイロードはすべてマップです。マップ・エントリを参照解除するには、マップ用の標準のELを使用します。
#{wcEventContext.events.WebCenterUserSelected.UserName}
関連項目:
イベント・ワイヤリングの詳細は、『Oracle WebCenter Portalでのポータルの構築』の「ページ、タスク・フロー、ポートレット、ADFコンポーネントのワイヤリング」を参照してください。
表A-4 イベント・コンテキストに関連するEL式
| 式 | 機能 |
|---|---|
イベント・コンテキスト #{wcEventContext.events.WebCenterResourceSelected}
ドキュメント名 #{wcEventContext.events.WebCenterResourceSelected.name}
ドキュメント作成者 #{wcEventContext.events.WebCenterResourceSelected.createdBy}
ドキュメント最終変更者 #{wcEventContext.events.WebCenterResourceSelected.lastModifiedBy}
|
プロデューサとコンシューマ間のコンテキスト・ワイヤリングで使用します。プロデューサのメタデータの一部分をコンシューマのメタデータの一部分に(たとえば、ドキュメント作成者を作成者のプロファイルに)関連付けるマップを返します。 プロデューサのタスク・フローには次のものが含まれます。
|
コンシューマのタスク・フローには次のものが含まれます。
|
|
イベント・コンテキスト #{wcEventContext.events.WebCenterUserSelected}
ユーザー名 #{wcEventContext.events.WebCenterUserSelected.userName}
ユーザーGUID #{wcEventContext.events.WebCenterUserSelected.userGUID}
ポータル名 #{wcEventContext.events.WebCenterUserSelected.
ポータルGUID #{wcEventContext.events.WebCenterUserSelected.
|
プロデューサとコンシューマ間のコンテキスト・ワイヤリングで使用します。プロデューサのメタデータの一部分をコンシューマのメタデータの一部分に(たとえば、ユーザーをユーザーのコネクションに)関連付けるマップを返します。 プロデューサのタスク・フローには次のものが含まれます。
コンシューマのタスク・フローには次のものが含まれます。
|
イベント・コンテキスト #{wcEventContext.events.WebCenterConnectionSelected}
プロファイルのユーザー名 #{wcEventContext.events.WebCenterConnectionSelected.profileUserName}
プロファイルのユーザーGUID #{wcEventContext.events.WebCenterConnectionSelected.profileUserGUID}
コネクションがあるユーザー名 #{wcEventContext.events.WebCenterConnectionSelected.userName}
コネクションがあるユーザーGUID #{wcEventContext.events.WebCenterConnectionSelected.userGUID}
|
-- |
|
選択されたポータルの名前を返します |
|
選択されたポータルのGUIDを返します |
この項の式を使用して、アセットの問合せを行います。EL式によるアセットの問合せは、APIコールによるアセットの問合せと類似しています。すなわち、問合せパラメータは['property']['like']['value'] (propertyはid、resourceScopeなどのプロパティの名前、valueは属性の検索値)という形式で設定する必要があります。
問合せを実行すると、1件または複数件の結果が返される可能性があります。問合せデザイナは、どちらの結果を望むのかを決める必要があります。問合せデザイナは式で次の値のいずれかを使用して、1件の結果を返すのか、複数件の結果を返すのかを指定します。
singleResult: 1つのアセットを返します。一致するアセットが見つからない場合、nullを返します。
resultList: アセットのリストを返します。一致するアセットが見つからない場合、空のリストを返します。
注意:
式で使用されているsingleResultまたはresultListは、内部的には問合せのエンド・ポイントとして使用され、検出されるとすぐに問合せが実行されます。エンド・ポイント以降に何かが設定されていた場合、予想外の動作が発生する可能性があります。
次の例は、表示名にmyPageが含まれる、最初に見つけたページ・テンプレート・アセットを返します。
#{srmContext[wCond['resourceType']['like']['siteTemplate']]['and'][wCond['displayName']['like']['myPage']].singleResult}
次の例は、ディレクトリresourceDirに存在し、説明にsampleDescが含まれるページ・テンプレート・アセットのリストを返します。
#{srmContext[wCond['resourceType']['like']['siteTemplate']]['and'][wCond['description']['like']['sampleDesc']]['and'][wCond['contentDirectory']['like']['resourceDir'].resultList}
このクラスのプロパティには、このクラスの任意の属性が含まれます。たとえば、Id、DisplayName、iconURI、contentDirectoryなどのプロパティが含まれます。
プロパティ値は、明示的な値として、またはそのタイプの値を返すEL式として、指定できます。たとえば、次の2つの問合せは同じ結果を返します。
#{srmContext[wCond['id']['like']['resourceId']].singleResult}
#{srmContext[wCond['id']['like']['spacesContext.currentSpace.uiMetadata.siteTemplateId']].singleResult}
EL式を使用する問合せでは、このクラスの任意のプロパティをproperty['value']という形式で、任意の順序で使用できます。たとえば、次の2つの問合せは同じ結果を返します。
#{srmContext[wCond['resourceScope']['like']['scopeName']]['and'][wCond['id]['like']['resourceId']].singleResult}
#{srmContext[wCond['id']['like']['resourceId']]['and'][wCond['resourceScope']['like']['scopeName']].singleResult}
表A-5 では、アセットに関連するEL式を示し、提供される機能のタイプについて説明します。
表A-5 アセットに関連するEL
| EL | 機能 |
|---|---|
|
指定されたIDのアセットを返します |
|
指定された表示名を持つ任意のアセットを返します |
|
指定された表示名キーを持つ任意のアセットを返します |
|
指定された値が説明に含まれるアセットを1つ返します 複数の結果を取得するには、 |
|
指定された説明キーを持つアセットを1つ返します 説明キーは、アセットの説明を示す、 複数の結果を取得するには、 |
|
指定された作成日を持つ任意のアセットを返します |
|
指定されたユーザー名のユーザーにより最後に変更された任意のアセットを返します |
|
指定された日付以前に最後に変更された任意のアセットを返します |
|
指定されたスコープに該当する任意のアセットを返します |
|
指定されたカテゴリに該当する任意のアセットを返します 例:
カテゴリ名として使用できるものには、 |
|
指定されたディレクトリに格納されている任意のアセットを返します |
|
指定されたメタデータ・ファイルからアセット・メタデータを返します たとえば、次の式はファイル
|
|
指定された場所にある任意の たとえば、次の式は
|
|
指定されたページ定義が含まれる任意の |
|
指定されたアイコンURIのアイコンを返します |
|
より大きな式で使用され、除外されたスコープで使用可能なリソースを除く、指定されたすべてのリソースを返します |
|
より大きな式で使用され、カスタム・セキュリティを使用する、または使用しない、任意のアセットを返します
|
|
より大きな式で使用され、指定された値に応じてシードされる、またはシードされない、任意のアセットを返します
|
|
より大きな式で使用され、指定された可視性タイプの任意のアセットを返します
|
|
より大きな式で使用され、可視性が |
|
より大きな式で使用され、指定されたユーザーによって作成された任意のアセットを返します |
|
より大きな式で使用され、指定されたタイプの1つまたは複数のアセットを返します たとえば、次の式はタイプ
すべてのアセット・タイプのリストは、Oracle WebCenter Portal Java APIリファレンスの |
|
より大きな式で使用され、指定されたバージョンのアプリケーションで使用可能な1つまたは複数のアセットを返します |
|
より大きな式で使用され、指定されたスコープで使用可能な1つまたは複数のアセットを返します たとえば、次の式はスコープ(このインスタンスではポータル)が
デフォルト・スコープ、すなわちアプリケーション・スコープ内を検索するには、 |
|
より大きな式で使用され、組み込まれている他の式で設定された値が含まれる、またはその値に等しい、1つまたは複数のアセットを返します
|
この項では、ユーザーのロールに基づいてページ・テンプレートを表示するためのEL式の使用例を示します。
この例では、EL式を使用して、ポータル・マネージャに特定のページ・テンプレートが表示されるようにして、ポータル・マネージャがそのページ・テンプレートで使用できる機能やリンクにアクセスできるようにします。
ユーザー・ロールに基づいてページ・テンプレートを表示するには:
目的のポータルの管理設定に移動します。
「設定」ページの「アセット」で、「ページ・テンプレート」に対して「ページ・テンプレート」ドロップダウン・リストの横にある「拡張編集オプション」アイコンをクリックし、「式ビルダー」を選択してエディタを開きます。
「値または式の入力」で、次の式を入力します。
#{srmContext[wCond['resourceType']['like']['siteTemplate']][wCond['displayName']['like'][WCSecurityContext.userInScopedRole['Moderator'] ? 'Fusion Side Navigation' : 'WebCenter Portal Top Navigation']].singleResult.id}
説明:
srmContext[wCond['resourceType']['like']['siteTemplate']]
スコープ内のすべてのページ・テンプレートのリストを取得します。
[wCond['displayName']['like'][WCSecurityContext.userInScopedRole['Moderator'] ? 'Fusion Side Navigation' : 'WebCenter Portal Top Navigation']]
現在のユーザーがポータル・マネージャかどうかによって、リストを1つまで縮小します。ユーザーがポータル・マネージャであれば、「Fusionサイド・ナビゲーション」ページ・テンプレートが適用されます。その他すべてのユーザー・ロールでは、「WebCenter Portalトップ・ナビゲーション」ページ・テンプレートを使用してポータルがレンダリングされます。
singleResult.id
必要とされるエントリのGUIDを返します。
「OK」をクリックします。
「セキュリティに関連するEL」では、アプリケーション・セキュリティに関連するEL式を示し、提供される機能のタイプについて説明します。
表A-6 セキュリティに関連するEL式
| 式 | 機能 |
|---|---|
|
ELが呼び出されているコンテキスト内で現在のユーザーが認証済の場合は |
|
現在ログインしているユーザーのユーザー名を返します。現在ユーザーがログインしていない場合、値を返しません。 |
|
指定されたユーザーが現在のユーザーである場合は |
|
指定されたグループが現在のユーザーに割り当てられている場合はtrueを返します。例: #{WCSecurityContext.userInGroup['Administrators']}
|
|
現在のユーザーが現在のポータルのポータル・マネージャである場合は、値trueを返します。 |
|
現在のスコープの指定されたロールが現在のユーザーに割り当てられている場合はtrueを返します。ロールは スコープは暗黙的に現在のスコープに解決されます。このELをホーム・ポータルで使用した場合、ホーム・ポータルのGUIDと、アプリケーション・レベルで定義されたロールに解決されます。このELをポータル・スコープで使用した場合、ポータルに対して定義されたロールに解決されます。 |
「一般設定に関連するEL」では、アプリケーションの一般設定に関連するEL式を示し、提供される機能のタイプについて説明します。ここに示すELは、WebCenter Portalで構築されたポータルとJDeveloperで構築されたPortal Frameworkアプリケーションの両方に適用されます。
表A-7 一般設定に関連するEL式
| 式 | 機能 |
|---|---|
|
現在のユーザーがアプリケーション・プリファレンスで選択しているタイムゾーンを返します。 |
|
現在のユーザーがアプリケーション・プリファレンスで選択している日付書式を返します。 |
|
現在のユーザーの優先日付書式パターンが設定されている場合はそれを返し、それ以外の場合は |
|
現在のユーザーがアプリケーション・プリファレンスで選択している時間書式を返します。 |
|
現在のユーザーの優先時間書式パターンが設定されている場合はそれを返し、それ以外の場合は |
|
現在のユーザーの日付書式と時間書式の優先パターンが設定されている場合はそれを返し、それ以外の場合は |
|
現在のユーザーの優先アクセシビリティ・モード( |
|
現在のユーザーの優先スキン名が指定されている場合はその名前、それ以外の場合はデフォルト値。 |
|
現在のユーザーが選択しているロケールの現在の日付を返します。 |
|
現在のユーザーが選択しているロケールの現在の時間を返します。 |
|
現在のユーザーが選択しているロケールの現在の日付と時間を返します。 |
|
アプリケーション・レベルで構成されている要素や現在のユーザーのプリファレンス設定などに応じて、現在のWebリクエストで使用されるADF Facesスキン・ファミリの名前を返します。 |
この項の式を使用して、ポータル・リソースの問合せを行います。EL式によるポータル・リソースの問合せは、APIコールによるリソースの問合せと類似しています。すなわち、問合せパラメータは.property['value']という形式で設定する必要があり、propertyはid、resourceScopeなどのプロパティの名前、valueは属性の検索値です。
問合せを実行すると、1件または複数件の結果が返される可能性があります。問合せデザイナは、どちらの結果を望むのかを決める必要があります。問合せデザイナは式で次の値のいずれかを使用して、1件の結果を返すのか、複数件の結果を返すのかを指定します。
singleResult: 1つのポータル・リソースを返します。一致するリソースが見つからない場合、nullを返します。
resultList: ポータル・リソースのリストを返します。一致するポータル・リソースが見つからない場合、空のリストを返します。
注意:
式で使用されているsingleResultまたはresultListは、内部的には問合せのエンド・ポイントとして使用され、検出されるとすぐに問合せが実行されます。エンド・ポイント以降に何かが設定されていた場合、予想外の動作が発生する可能性があります。
次の例は、表示名にmyPageが含まれる、最初に見つけたページ・テンプレート・ポータル・リソースを返します。
#{srmContext.resourceType['siteTemplate'].displayName['myPage'].singleResult}
次の例は、ディレクトリresourceDirに存在し、説明にsampleDescが含まれるページ・テンプレート・ポータル・リソースのリストを返します。
#{srmContext.resourceType['siteTemplate'].description['sampleDesc'].contentDirectory['resourceDir'].resultList}
このクラスのプロパティには、このクラスの任意の属性が含まれます。たとえば、Id、DisplayName、iconURI、contentDirectoryなどのプロパティが含まれます。
プロパティ値は、明示的な値として、またはそのタイプの値を返すEL式として、指定できます。たとえば、次の2つの問合せは同じ結果を返します。
#{srmContext.id['resourceId'].singleResult}
#{srmContext.id['spacesContext.currentSpace.uiMetadata.siteTemplateId'].singleResult}
EL式を使用する問合せでは、このクラスの任意のプロパティをproperty['value']という形式で、任意の順序で使用できます。たとえば、次の2つの問合せは同じ結果を返します。
#{srmContext.resourceScope['scopeName'].id['resourceId'].singleResult}
#{srmContext.id['resourceId'].resourceScope['scopeName'].singleResult}
表A-8では、ポータル・リソースに関連するEL式を示し、提供される機能のタイプについて説明します。表A-8の多くの式は、返すポータル・リソースを絞り込むためのブロックを作成します。すなわち、必ずしも単独で使用することを意図したものではなく、ELを組み合せて必要な問合せを構築するために使用します。
たとえば、次の式は、3つのポータル・リソース関連ELを使用して、特定のポータル・テンプレートを返す問合せを1つ構築します。これは、親ポータルstoresからテンプレートstoresMasterTemplateを取得します。
#{srmContext.resourceScope['stores'].resourceType['siteTemplate'].displayName['storesMasterTemplate'].singleResult}
WebCenter Portalアセットにのみ関連するEL式の詳細は、「アセットに関連するEL」を参照してください。
表A-8 ポータル・リソースに関連するEL
| EL | 機能 |
|---|---|
|
指定されたIDのポータル・リソースを返します |
|
指定された表示名を持つ任意のポータル・リソースを返します |
|
指定された表示名キーを持つ任意のポータル・リソースを返します |
|
指定された値が説明に含まれるポータル・リソースを1つ返します 複数の結果を取得するには、 |
|
指定された説明キーを持つポータル・リソースを1つ返します 説明キーは、ポータル・リソースの説明を示す、 複数の結果を取得するには、 |
|
指定された作成日を持つ任意のポータル・リソースを返します |
|
指定されたユーザー名のユーザーにより最後に変更された任意のポータル・リソースを返します |
|
指定された日付以前に最後に変更された任意のポータル・リソースを返します |
|
指定されたスコープに該当する任意のポータル・リソースを返します |
|
指定されたカテゴリに該当する任意のポータル・リソースを返します 例: #{srmContext.category['siteTemplates']}
|
|
指定されたディレクトリに格納されている任意のポータル・リソースを返します |
|
指定されたメタデータ・ファイルからポータル・リソース・メタデータを返します たとえば、次の式はファイル #{srmContext.metadataFile['/home/metadat/data.xml']}
|
|
指定された場所にある任意の たとえば、次の式は #{srmContext.jspx['/home/web/page.jspx']}
|
|
指定されたページ定義が含まれる任意の |
|
指定されたアイコンURIのアイコンを返します |
|
より大きな式で使用され、除外されたスコープで使用可能なポータル・リソースを除く、指定されたすべてのリソースを返します |
|
より大きな式で使用され、カスタム・セキュリティを使用する、または使用しない、任意のポータル・リソースを返します
|
|
より大きな式で使用され、指定された値に応じてシードされる、またはシードされない、任意のポータル・リソースを返します
#{srmContext.seeded['TRUE']}
|
|
より大きな式で使用され、指定された可視性タイプの任意のポータル・リソースを返します
#{srmContext.visibleType['TRUE']}
|
|
より大きな式で使用され、可視性が |
|
より大きな式で使用され、指定されたユーザーによって作成された任意のポータル・リソースを返します |
|
より大きな式で使用され、指定されたタイプの1つまたは複数のポータル・リソースを返します たとえば、次の式はタイプ #{srmContext.resourceType['SITE_TEMPLATE']}
すべてのリソース・タイプのリストは、Oracle WebCenter Portal Java APIリファレンスの |
|
より大きな式で使用され、指定されたバージョンのアプリケーションで使用可能な1つまたは複数のポータル・リソースを返します |
|
より大きな式で使用され、指定されたスコープで使用可能な1つまたは複数のポータル・リソースを返します たとえば、次の式はスコープ(このインスタンスではポータル)が #{srmContext.resourceScope['MyPortal']}
デフォルト・スコープ、すなわちアプリケーション・スコープ内を検索するには、 |
|
より大きな式で使用され、組み込まれている他の式で設定された値が含まれる、またはその値に等しい、1つまたは複数のポータル・リソースを返します
|
表A-9では、アプリケーションのナビゲーションに関連するEL式を示し、提供される機能のタイプについて説明します。
表A-9 ナビゲーションに関連するEL式
| 式 | 機能 |
|---|---|
ナビゲーション・コンテキスト式 |
|
|
デフォルト・ナビゲーション・モデルを返します。プリファレンスBeanから値を取得します。プリファレンスBeanは、 次の例は、指定されたデフォルト・ツリー・モデルを返します。 #{navigationContext.defaultNavigationModel.defaultTreeModel}
|
|
現在のビュー(すなわち現在のページ)にナビゲートするために使用したナビゲーション・モデルを返します。 現在のナビゲーション・モデルは、 次の例は、現在のナビゲーション・モデルのデフォルト・ツリー・モデルを返します。 #{navigationContext.currentNavigationModel.defaultTreeModel}
|
|
このELは非推奨になりました。かわりに、 |
|
UIコンポーネントの
<af:forEach var="node" varStatus="vs"
items="#{navigationContext.defaultNavigationModel.rootNode.children}">
<af:subform id="pt_sfm1">
<af:commandLink id="pt_cl1"
text="#{node.title}"
inlineStyle="font-size:small;color:White;"
actionListener="#{navigationContext.processAction}"
action="pprnav">
<f:attribute name="node" value="#{node}"/>
<af:showPopupBehavior popupId="menuPopup"
align="afterStart"
triggerType="mouseOver"/>
</af:commandLink>
<af:commandLink id="pt_cl1" text="Prescriptions"
inlineStyle="font-size:small; color:White;"
actionListener="#{navigationContext.processAction}"
action="pprnav">
<f:attribute name="path" value="/prescriptions"/>
<f:attribute name="model" value="#{navigationContext.defaultNavigationModel}"/>
</af:commandLink>
|
ナビゲーション・モデル式 |
|
|
デフォルト設定に基づいて、ツリー/メニュー/リスト・モデルを返します この設定のデフォルト値は次の行を参照してください。たとえば、
この式は、次のタイプのモデルを返します。
|
|
指定されたカンマ区切りパラメータに基づいて、ツリー/メニュー/リスト・モデルを返します。使用可能なパラメータ(と例としてのデフォルト値)を次に示します。
例: #{navigationContext.defaultNavigationModel.treeModel['startNode=home,includeStartNode=false,depth=2']}
|
|
ナビゲーション・モデルのルート・ノード(タイプ 例: <af:commandLink id="pt_cl1" text="Prescriptions"
inlineStyle="font-size:small; color:White;"
actionListener="#{navigationContext.processAction}"
action="pprnav">
<f:attribute name="node"
value="#{navigationContext.
defaultNavigationModel.
rootNode.children[2]"/>
</af:commandLink>
|
|
指定されたパスに基づいてノード(タイプ 例: #{navigationContext.defaultNavigationModel.node['home/page1']}
|
|
現在選択されているナビゲーション・ポータル・リソースを返します。 |
|
与えられたパスによって指定されたノードに現在の選択を設定します(ルート・ノードをリクエストする場合を除き、/を接頭辞として指定する必要はありません。例: ユーザーは、実際にノードにナビゲートせずに、現在の選択を明示的に設定できる必要があります。 これは、ユーザーがページを直接入力し、選択が設定されていない場合に使用できます。これは、現在の選択が存在しない場合に何をデフォルトにするかをユーザーが制御するメカニズムを提供します。 例: <c:set value="${navigationContext.defaultNavigationModel.newCurrentSelection['home/page1']}"
var="currSel" scope="session"/>
<c:if test="${currSel!=null}">
<af:forEach items="#{currSel.children}"
var="cnode" varStatus="cnodestatus">
...</c:if>
|
|
ナビゲーション・モデルの指定された属性の値を返します。 |
|
ナビゲーション・モデルの指定されたプロパティの値を返します( |
ナビゲーション・ポータル・リソース式 |
|
|
ナビゲーション・ポータル・リソースの指定された属性の値を返します。 |
|
ナビゲーション・ポータル・リソースの指定されたパラメータの値を返します。 |
|
ナビゲーション・ポータル・リソースの指定されたパラメータのRAW値(評価前の値)を返します。 |
|
ナビゲーション・ポータル・リソースのタイトルを返します。 |
|
ナビゲーション・ポータル・リソースへのパスを返します。 |
|
タイプ |
|
このナビゲーション・ポータル・リソースの識別パスを返します。 |
|
深さを指定して識別パスのコレクションを返し、別のナビゲーション・ビューを動作させる開始パスとして使用できるようにします。 たとえば、
|
|
<af:goLink id="pt_gl2" text="#{node.title}"
destination="#{node.goLinkPrettyUrl}"
targetFrame="#{node.attributes['Target']}"
inlineStyle="font-size:small;#{node.selected ?
'font-weight:bold;' : ''}"/>
|
|
このポータル・リソースがセパレータ・アイテムかどうかを返します。 |
|
このポータル・リソースにナビゲート可能かどうかを返します。 |
|
このポータル・リソースが現在選択されているかどうかを返します。 |
|
ポータル・リソースが現在選択されているポータル・リソースであり、モデルが現在選択されているモデルであるかどうかを返します。 |
|
このノードが選択されたパス上に存在するかどうかを返します。これは、たとえば選択されているタブを強調表示する場合に便利です。 たとえば、現在選択されているノードが <c:set value="${navigationContext.defaultNavigationModel.node['home']}"
var="home" scope="session"/>
<af:commandImageLink id="cil1"
icon="#{(home.onSelectedPath) ?
'/images/caremark/nav/HomeSelected.png' :
'/images/caremark/nav/HomeIcon.png'}"
actionListener="#{navigationContext.processAction}"
action="pprnav">
<f:attribute name="node" value="#{home}"/></af:commandImageLink>
|
|
このリソースがリーフ・ノードかどうかを返します。 |
|
このノードの親ノード(タイプ |
|
このノード(タイプNavigationResource)の祖先の、ルート・ノードで始まる階層リストを返します。 たとえば、現在のノードが
|
|
このノードのルート・ノードからの深さを返します。ルート・ノードの深さは0です。 |
|
このノード(タイプ |
|
このノード(タイプ たとえば、次のコードでは、1つの行内に2つのセパレータが連続して出力されることはありません。 <c:if test="${(node.separator) && (!node.nextSibling.separator}">
<af:separator id="s166"/>
</c:if>
|
|
このノードのリスト内の前の兄弟(タイプ |
|
このノードの、その兄弟からの0相対インデックスを返します。 |
|
子リソースのコレクションを返します。 |
|
このノードの子の数を返します。 |
|
0相対インデックスで指定された子ノード(タイプ 見つからない場合、 |
|
このノードからの相対パスで指定された子ノード(タイプ パスは1レベルよりも深くすることができ、 |
#{node. |
ナビゲーション・ポータル・リソースの指定されたプロパティの値を返します。 |
「ツールとサービスに関連するEL」では、ツールとサービスに関連するEL式を示し、提供される機能のタイプについて説明します。ここに示すELは、WebCenter Portalで構築されたポータルとJDeveloperで構築されたPortal Frameworkアプリケーションの両方に適用されます。
表A-10 ツールとサービスに関連するEL式
| 式 | 機能 |
|---|---|
|
サービスID #{webcenterService['oracle.webcenter.doclib']}
サービスIDについては、表A-11を参照してください。 |
|
サービスID #{webcenterService['oracle.webcenter.collab.forum'].configured}
サービスIDについては、表A-11を参照してください。 |
|
指定されたポータル・ディスカッション・フォーラムのフォーラムIDを返します。 |
|
指定されたWebCenter Portalディスカッション・フォーラムのカテゴリIDを返します。 |
表A-11に、WebCenter Portalのツールとサービスに関連付けられているサービスIDを示します。
表A-11 サービスとツールのID
| サービス/ツール | ID |
|---|---|
お知らせ |
oracle.webcenter.collab.announcement |
ディスカッション |
oracle.webcenter.collab.forum |
ドキュメントとWiki |
oracle.webcenter.doclib |
イベント |
oracle.webcenter.collab.calendar.community |
インスタント・メッセージおよびプレゼンス(IMP) |
oracle.webcenter.collab.rtc |
リンク |
oracle.webcenter.relationship |
リスト |
oracle.webcenter.list |
メール |
oracle.webcenter.collab.mail |
通知 |
oracle.webcenter.notification |
ページ |
oracle.webcenter.page |
ピープル・コネクション: アクティビティ・ストリーム |
oracle.webcenter.activitystreaming |
ピープル・コネクション: コネクション |
oracle.webcenter.peopleconnections.connections |
ピープル・コネクション: フィードバック |
oracle.webcenter.peopleconnections.kudos |
ピープル・コネクション: メッセージ・ボード |
oracle.webcenter.peopleconnections.wall |
ピープル・コネクション: プロファイル |
oracle.webcenter.peopleconnections.profile |
RSS |
oracle.webcenter.rss |
検索 |
oracle.webcenter.search |
タグ |
oracle.webcenter.tagging |
ブログ |
oracle.webcenter.blog |
ワークリスト |
oracle.webcenter.worklist |
表A-12では、ドキュメントに関連するEL式を示し、提供される機能のタイプについて説明します。
表A-12 ドキュメントに関連するEL式
| 式 | 機能 |
|---|---|
|
デフォルトのコンテンツ・リポジトリ接続名を取得します。接続名が定義されていない場合、 |
|
ドキュメント機能が構成されているかどうかを確認します。ドキュメント機能が構成されている場合は |
表A-13では、ピープル・コネクションのプロファイル機能に関連するEL式を示し、提供される機能のタイプについて説明します。
注意:
エントリsecurityContext.userNameは、すべてのプロファイル式に含まれ、現在のユーザーの名前を返します。情報はユーザーのプロファイルに存在する場合にのみ返されることにも注意してください。情報がプロファイルに含まれない場合、null値が返されます。また、現在のユーザーが表示できる場合のみ、情報が返されます。
表A-13 ピープル・コネクション(プロファイル)に関連するEL式
| 式 | 機能 |
|---|---|
|
ユーザーのマネージャの表示名。 |
|
ユーザーの従業員番号。 |
|
ユーザーに関連付けられた私書箱番号。 |
|
ユーザーの勤務先がある場所のタイムゾーン。 |
|
ユーザーの(プロファイル「自己紹介」からの)説明。 |
|
ユーザーが属している部門。 |
|
ユーザーの勤務先ページャ番号。 |
|
ユーザーがいる市区。 |
|
ユーザーの旧姓。 |
|
ユーザーの勤務先FAX番号。 |
|
ユーザーの入社日。 |
|
ユーザーの名前に付加される追加情報( |
|
ユーザーのミドル・ネーム。 |
|
ユーザーの自宅の電話番号。 |
|
ユーザーの従業員タイプの分類( |
|
ユーザーの姓。 |
|
ユーザーの生年月日。 |
|
ユーザーの勤務先がある都道府県。 |
|
ユーザーの自宅住所。 |
|
ユーザーの勤務先がある番地。 |
|
ユーザーの郵便番号。 |
|
ユーザーのイニシャル。 |
|
ユーザーのファースト・ネーム。 |
|
ユーザーが属している組織単位( |
|
ユーザーのワイヤレス・アカウント番号。 |
|
ユーザーの勤務先電話番号。 |
|
ユーザーが割り当てられている国。 |
|
ユーザーの優先言語。 |
|
ユーザーの表示名。 |
|
ユーザーの本名。 |
|
ユーザーの役職名 |
|
ユーザーの勤務先電子メール・アドレス。 |
|
ユーザーが属している組織( |
|
ユーザーの携帯電話番号。 |
|
ユーザーの専門業務。 |
表A-14では、WebCenter Portal偽装に関連するEL式を示し、提供される機能のタイプについて説明します。ここに示すELは、WebCenter Portalで構築されたポータルとJDeveloperで構築されたPortal Frameworkアプリケーションの両方に適用されます。
これらのELの使用方法の詳細は、「WebCenter Portal偽装セキュリティのカスタマイズ」を参照してください。
表A-14 偽装に関連するEL式
| 式 | 機能 |
|---|---|
|
現在のドメインで偽装が有効化されているかどうかを返します。 このELは、偽装セッションの終了が早すぎることが原因でエラーが発生したのかどうかを判別したり、セッションが終了したことを示す追加のインジケータを提供する場合に便利です。 |
|
現在のユーザーが偽装セッションにあるのかどうかを返します。 このELを使用して、コンテンツを保護し、偽装セッション中はアクセスできないようにレンダリングできます。たとえば、ページ上の管理タスク・フローのレンダリングされた属性をこのELにマップして、ユーザーが偽装セッションでタスク・フローを表示しない場合、タスク・フローのレンダリングのみを行うことができます。 |
|
このELを使用すると、ページ・テンプレートを変更して偽装者を表示したり、特定の偽装者のみにアクセスできるようにコンテンツをレンダリングできます。 |
表A-15に、WebCenter Portalページ・エディタに関連するEL式を示します。これらのEL式は、WebCenter Portalを使用して構築されたポータルとOracle JDeveloperを使用して構築されたアセット・アプリケーションの両方で使用できます。
表A-15 ページ・エディタに関連するEL式
| 式 | 機能 |
|---|---|
|
現在のページが表示モードなのか編集モードなのかを決定します。 例: <af:outputText id="ot1"
value="#{composerContext.inEditMode ne
true ? 'View mode' : 'Edit mode'} />
この例は、ページが表示モードの場合、ADF Facesの |
|
例: <af:popup childCreation="#{changeModeBean.inEditMode
? 'immediate' : 'deferred'}" />
|
この項では、表示モードと編集モードで異なるページを表示するためのEL式の使用例を示します。自分のページのうちの1つ(Page1)について、表示モードでは別のページ(Page2)を表示することを考えてみます。ただし、Page1の編集中は、Page2ではなく、www.example.comというWebサイトを表示させます。次の形式のELを使用できます。
#{ composerContext.inEditMode ? 'http://www.example.com' : 'url_of_Page2' }
このELにより、ページが編集モードのときは指定されたWebサイトが表示され、表示モードのときにはPage2が表示されます。
次の手順は、ページ・モードによって異なるページを表示する方法を示しています。
ページ・エディタでPage1という名前のページを開きます。
デザイン・ビューで、リソース・カタログの「Web開発」をクリックします。
「Webページ」の横に表示されている「追加」をクリックします。
新しく追加されたWebページの「編集」アイコンをクリックします。
「コンポーネント・プロパティ」ダイアログの「表示オプション」タブで、「ソース」フィールドに、次の形式で値を入力します。
#{ composerContext.inEditMode ? 'website_url' : 'url_of_Page2' }
「OK」をクリックします。
コンポーザでは、指定したWebサイトがPage1に表示されます。ページを保存して閉じます。Page1にはPage2が表示されます。
この項では、デバイス設定に関する情報を取得するELについて説明します。デバイス設定の詳細は、『Oracle WebCenter Portalの管理』の「デバイス設定の管理」を参照してください。
EL式を使用して、特定のデバイスをターゲットとするアセット(スキンおよびページ・テンプレート)を設定できます。デバイス設定が指定されたEL式の使用の詳細は、『Oracle WebCenter Portalの管理』の「デバイス設定の管理」を参照してください。
表A-16では、デバイス・グループ・マッピングに関する情報を取得するためのEL式を示します。
表A-17では、デバイスに関する情報を取得するためのELを示します。
表A-18では、デバイス・グループに関連付けられているスキンおよびページ・テンプレートに関する情報を取得するためのELを示します。
「デバイス属性を検出するタスク・フローのサンプル・コード」では、ポータルへのアクセスに使用するデバイスの属性を検出するためのタスク・フローで使用できるサンプル・コードを示します。
たとえば、ページ・デザイナは、デバイスの属性を使用してページのコンテンツ領域の幅を制御するために、次のELを使用できます。
#{DeviceAgent.device.attributes['display_resolution_width']
表A-16 デバイス・エージェントに関連するEL式
| 式 | 関連するJava API | 説明 |
|---|---|---|
|
|
すべてのデバイス設定ELに対するルート・エントリ・ポイント。 |
|
|
現在のリクエストのマップ先のデバイス。 |
|
|
現在のデバイスのマップ先のデバイス・グループのリスト。この操作では、 |
|
|
特定のポータルについて着信リクエストがマップされたデバイス・グループを取得します。このELによって、特定のデバイスについてページ・バリアントが表示されない理由に関する問題を、管理者が診断しやすくなります。 |
表A-17 デバイスに関連するEL式
| 式 | 関連するJava API | 説明 |
|---|---|---|
|
|
現在のリクエストのマップ先のデバイス。 |
|
|
デバイスの名前。システム・フレンドリな識別子で、内部リンクに使用できます。 |
|
|
デバイスの表示名。 |
|
|
デバイスに関連付けられている属性のマップ。画面サイズ、OSバージョンなど。 たとえば、次のELは、デバイスの作成時に設定された表示解像度の幅を返します。
|
表A-18 デバイス・グループに関連するEL式
| 式 | 関連するJava API | 説明 |
|---|---|---|
|
|
現在のリクエストのマップ先のデバイス・グループ。適切なデバイス・グループを識別するための一般的なフローは次のとおりです。
|
|
|
デバイス・グループの名前。次に例を示します。
|
|
|
このデバイス・グループ・オブジェクトに関連付けられているポータル・ページ・テンプレートのGUIDを返します。メソッドからNULLが返された場合、ポータルのデフォルト・ページ・テンプレート設定が有効になっています。 注意: 取得したGUIDでの操作に使用するリソースELの詳細は、「ポータル・リソースに関連するEL」を参照してください。 |
|
|
このデバイス・グループに関連付けられているポータル・スキンのGUIDを返します。メソッドからNULLが返された場合、ポータルのデフォルト・スキン設定が有効になっています。 注意: 取得したGUIDでの操作に使用するリソースELの詳細は、「ポータル・リソースに関連するEL」を参照してください。 |
|
|
デバイス・グループが現在のデバイスのデフォルトである場合は、trueを返します。デバイス・グループがデバイスのデフォルトでない場合は、falseを返します。たとえば、デフォルトのデバイス・グループがデスクトップ・ブラウザになっているときに、iPad上でポータルにアクセスした場合、デバイス・グループはiPadになりますが、これはデフォルトのデバイス・グループではありません。この場合、メソッドはfalseを返します。 |
|
|
このデバイス・グループが現在のポータルに対して有効とマークされているかどうかを識別します。 注意: この呼出しでは、デバイス・グループは常に |
次の例では、デバイス属性を検出するタスク・フローの作成に使用できるJSFページ・フラグメントを示します。ELによって属性が返されます。このタスク・フローは、デバイス上でポータルが正しくレンダリングされないような状況のトラブルシューティングなどに役立ちます。デバイス属性を検出することで、レンダリング問題の修正処理を行えます。図A-6は、このサンプル・コードによって作成されたタスク・フローからの出力を示しています。
例: デバイス属性を検出するタスク・フロー・コード
<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:pe="http://xmlns.oracle.com/adf/pageeditor" xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable" xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
<af:panelGroupLayout layout="scroll" id="pgl1">
<cust:panelCustomizable id="pc1"/>
<f:facet name="separator">
<af:separator id="s1"/>
</f:facet>
<af:panelFormLayout id="pfl1">
<af:group id="g1">
<af:panelLabelAndMessage id="it0" label="Current Device" labelStyle="color:#0000ff;font-weight:bold;"/>
<af:panelLabelAndMessage id="it1plm" label="Internal Name">
<af:outputText id="it1" value="#{DeviceAgent.device.name}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="it2plm" label="Display Name">
<af:outputText id="it2" value="#{DeviceAgent.device.displayName}"/>
</af:panelLabelAndMessage>
</af:group>
<af:group>
<af:panelLabelAndMessage id="it01" label="Current Device Group" labelStyle="color:#0000ff;font-weight:bold;"/>
<af:panelLabelAndMessage id="it3plm" label="Internal Name">
<af:outputText id="it3" value="#{DeviceAgent.currentScopeDeviceGroup.name}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="it4plm" label="Display Name">
<af:outputText id="it4" value="#{DeviceAgent.currentScopeDeviceGroup.displayName}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="it5plm" label="PageTemplate">
<af:outputText id="it5" value="#{srmContext.id[DeviceAgent.currentScopeDeviceGroup.portalPageTemplate].singleResult.displayName}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="it6plm" label="Skin">
<af:outputText id="it6" value="#{srmContext.id[DeviceAgent.currentScopeDeviceGroup.portalSkin].singleResult.displayName}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="it7plm" label="Is Default">
<af:outputText id="it7" value="#{DeviceAgent.currentScopeDeviceGroup.default}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="it8plm" label="Is Enabled">
<af:outputText id="it8" value="#{DeviceAgent.currentScopeDeviceGroup.enabled}"/>
</af:panelLabelAndMessage>
</af:group>
<af:group>
<af:panelLabelAndMessage id="it9plm" label="Current Browser User Agent" labelStyle="color:#0000ff;font-weight:bold;">
<af:outputText id="it9" value="#{DeviceAgent.userAgent}"/>
</af:panelLabelAndMessage>
</af:group>
<af:group>
<af:panelLabelAndMessage id="pt0" label="Page Template Info" labelStyle="color:#0000ff;font-weight:bold;"/>
<af:panelLabelAndMessage id="it010plm" label="Expected PageTemplate:GUID">
<af:outputText id="it010" value="#{DeviceAgent.currentScopeDeviceGroup.portalPageTemplate}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="it0010plm" label="Expected PageTemplate:Name">
<af:outputText id="it0010" value="#{srmContext.id[DeviceAgent.currentScopeDeviceGroup.portalPageTemplate].singleResult.displayName}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="it10plm" label="Current PageTemplate:GUID">
<af:outputText id="it10" value="#{WCAppContext.application.siteTemplatesManager.currentSiteTemplateId}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="it10aplm" label="Current PageTemplate:Name">
<af:outputText id="it10a" value="#{srmContext.id[WCAppContext.application.siteTemplatesManager.currentSiteTemplateId].singleResult.displayName}"/>
</af:panelLabelAndMessage>
</af:group>
<af:group>
<af:panelLabelAndMessage id="sk0" label="Skin Info" labelStyle="color:#0000ff;font-weight:bold;"/>
<af:panelLabelAndMessage id="it0111plm" label="Expected Skin:GUID">
<af:outputText id="it0111" value="#{DeviceAgent.currentScopeDeviceGroup.portalSkin}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="it0112plm" label="Expected Skin:Name">
<af:outputText id="it0112" value="#{srmContext.id[DeviceAgent.currentScopeDeviceGroup.portalSkin].singleResult.displayName}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="it111plm" label="Current Skin:GUID">
<af:outputText id="it111" value=""/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="it112plm" label="Current Skin:Name">
<af:outputText id="it112" value="#{requestScope['oracle.webcenter.webcenterapp.view.shell.WebCenterShellManager.SHELLHANDLER'].adfFacesSkin}"/>
</af:panelLabelAndMessage>
</af:group>
<af:group>
<af:panelLabelAndMessage id="pg0" label="Page Info" labelStyle="color:#0000ff;font-weight:bold;"/>
<af:panelLabelAndMessage id="pg10" label="Page Path">
<af:outputText id="pg1" value="#{pageDocBean.pagePath}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="pg20" label="Page Style">
<af:outputText id="pg2" value=""/>
</af:panelLabelAndMessage>
</af:group>
<af:group>
<af:panelLabelAndMessage id="ap90" label="Optional Attributes" labelStyle="color:#0000ff;font-weight:bold;"/>
<af:panelLabelAndMessage id="ap1opta" label="brand-name">
<af:outputText id="ap1" value="#{DeviceAgent.device.attributes['brand-name']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap2opta" label="device-os">
<af:outputText id="ap2" value="#{DeviceAgent.device.attributes['device-os']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap3opta" label="device-type">
<af:outputText id="ap3" value="#{DeviceAgent.device.attributes['device-type']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap4opta" label="device_default_aspect_ratio">
<af:outputText id="ap4" value="#{DeviceAgent.device.attributes['device_default_aspect_ratio']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap5opta" label="device_os-version">
<af:outputText id="ap5" value="#{DeviceAgent.device.attributes['device_os-version']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap6opta" label="device_preview_css">
<af:outputText id="ap6" value="#{DeviceAgent.device.attributes['device_preview_css']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap7opta" label="device_preview_horizontal_css">
<af:outputText id="ap7" value="#{DeviceAgent.device.attributes['device_preview_horizontal_css']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap8opta" label="device_preview_viewport_css">
<af:outputText id="ap8" value="#{DeviceAgent.device.attributes['device_preview_viewport_css']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap9opta" label="device_preview_viewport_horizontal_css">
<af:outputText id="ap9" value="#{DeviceAgent.device.attributes['device_preview_viewport_horizontal_css']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap10opta" label="device_streaming_flv">
<af:outputText id="ap10" value="#{DeviceAgent.device.attributes['device_streaming_flv']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap11opta" label="device_streaming_preferred_http_protocol">
<af:outputText id="ap11" value="#{DeviceAgent.device.attributes['device_streaming_preferred_http_protocol']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap12opta" label="device_streaming_preferred_protocol">
<af:outputText id="ap12" value="#{DeviceAgent.device.attributes['device_streaming_preferred_protocol']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap13opta" label="device_video_streaming">
<af:outputText id="ap13" value="#{DeviceAgent.device.attributes['device_video_streaming']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap14opta" label="display_orientation_support">
<af:outputText id="ap14" value="#{DeviceAgent.device.attributes['display_orientation_support']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap15opta" label="display_resolution_height">
<af:outputText id="ap15" value="#{DeviceAgent.device.attributes['display_resolution_height']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap16opta" label="display_resolution_width">
<af:outputText id="ap16" value="#{DeviceAgent.device.attributes['display_resolution_width']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap17opta" label="is-wireless_device">
<af:outputText id="ap17" value="#{DeviceAgent.device.attributes['is-wireless_device']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap18opta" label="marketing-name">
<af:outputText id="ap18" value="#{DeviceAgent.device.attributes['marketing-name']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap19opta" label="model-name">
<af:outputText id="ap19" value="#{DeviceAgent.device.attributes['model-name']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap20opta" label="model-version">
<af:outputText id="ap20" value="#{DeviceAgent.device.attributes['model-version']}"/>
</af:panelLabelAndMessage>
<af:panelLabelAndMessage id="ap21opta" label="icon">
<af:outputText id="ap21" value="#{DeviceAgent.device.attributes['icon']}"/>
</af:panelLabelAndMessage>
</af:group>
</af:panelFormLayout>
</af:panelGroupLayout>
</jsp:root>
表A-19では、実用的なEL式を示し、提供される機能のタイプについて説明します。
表A-19 実用的なEL式
| 式 | 機能 |
|---|---|
|
現在の日付を現在のユーザーのプリファレンスで指定されている形式で戻します。 |
|
|
|
どちらの式も、リクエストのロケール(ブラウザのロケール設定)を返します。 |
|
現行のアプリケーション・スキン・ファミリを戻します。戻り値は |
式エディタで、「値の選択」オプションを選択すると、ダイアログ内のテキスト・ボックスに組込みEL式を移入できます。まず式のカテゴリを選択し、次に式から返される情報のタイプを選択します。選択内容に関連するELが、ダイアログ下部のテキスト・ボックスに表示されます(図A-7)。
この項は、カテゴリごとの項に分類されます。各項では、そのカテゴリに関連付けられるELをリストし、説明しています。
この項では、次の内容について説明します。
アプリケーション情報の組込みEL式は、Oracle WebCenter Portalに関連する値を返します。たとえば、#{WCAppContext.application.applicationConfig.title}という式は、WebCenter Portal管理の「一般」ページで指定されるアプリケーション名を返します。
関連項目:
アプリケーションに関連するその他のEL式は、「WebCenter Portal情報に関連するEL」を参照してください。
表A-20に、「アプリケーション情報」カテゴリで使用できる組込みEL式と、返される値のタイプの例を示します。
表A-20 「アプリケーション情報」の組込みEL式
| オプション | 式 | 戻り値の例 |
|---|---|---|
現在のスコープ |
|
|
現在のページ・テンプレート・スコープ |
|
|
以前に設定されたページ・テンプレート |
|
|
アプリケーション |
|
|
アプリケーションURL |
|
|
現在のWebCenter Portal URI |
|
|
アプリケーション構成 |
|
|
アプリケーション構成タイトル |
|
|
アプリケーション構成ロゴ |
|
|
アプリケーション構成ヘルプ・ページ |
|
|
アプリケーション構成著作権メッセージ・カスタム値 |
|
|
アプリケーション構成プライバシ・ポリシーURL |
|
|
アプリケーション構成スキン |
|
|
たとえば、現在のページのURLをコピーおよび共有できるようにするリンクをポータルのすべてのページに表示する場合を考えてみます。HTMLマークアップ・アイテムをページ・テンプレートに追加して、ページURLを返すELを追加できます。
次の手順は、ELを使用してページURLを取得する方法を示しています。
カスタム・ページ・テンプレートを編集モードで開きます。
デザイン・ビューで、リソース・カタログの「Web開発」をクリックします。
「HTMLマークアップ」の横の「追加」をクリックします。
新しく追加されたHTMLマークアップの「編集」アイコンをクリックします。
「コンポーネント・プロパティ」ダイアログの「表示オプション」タブで、「値」フィールドに、次のELを入力します。
<a href="javascript:{
var returnvalue =prompt( '#{pageDocBean.title}
URL','#{WCAppContext.applicationURL}/faces#{WCAppContext.currentWebCenterURI}');
}">Share Link</a>
「OK」をクリックします。
ページ・テンプレートをポータルに適用します。
アセット情報の組込みEL式は、WebCenter Portalリソース(テンプレート、スタイル、リソース・カタログなど)に関連する値を返します。たとえば、#{srmContext.id['ResourceID'].singleResult}という式は、指定されたGUIDのアセットを返します。
関連項目:
アセットに関連するその他のEL式は、「アセットに関連するEL」を参照してください。
表A-21に、「アセット情報」カテゴリで使用できる組込みEL式と、返される値のタイプの例を示します。
表A-21 「アセット情報」の組込みEL式
| オプション | 式 | 戻り値の例 |
|---|---|---|
アセットID |
|
|
表示名 |
|
戻り値の例は、「アセットID」を参照してください。 |
説明 |
|
戻り値の例は、「アセットID」を参照してください。 |
作成日 |
|
戻り値の例は、「アセットID」を参照してください。 |
変更者 |
|
戻り値の例は、「アセットID」を参照してください。 |
更新日 |
|
戻り値の例は、「アセットID」を参照してください。 |
アセット・スコープ |
|
戻り値の例は、「アセットID」を参照してください。 |
ページ情報の組込みEL式は、WebCenter Portalページに関連する値を返します。たとえば、#{pageDocBean.createdBy}という式は、現在のページの作成者のユーザー名を返します。
表A-22に、「ページ情報」カテゴリで使用できる組込みEL式と、返される値のタイプの例を示します。
表A-22 「ページ情報」の組込みEL式
| オプション | 式 | 戻り値の例 |
|---|---|---|
タイトル |
|
|
作成者 |
|
|
作成日文字列 |
|
|
最終更新者 |
|
|
最終更新日文字列 |
|
|
ページ・パス |
|
|
名前 |
|
|
UI CSSスタイル |
|
|
UIスキームの背景イメージ |
|
|
UIスキームの背景色文字列 |
|
|
ページ権限 |
|
|
ページ・セキュリティ・ターゲット |
|
|
ページ・パラメータの組込みEL式は、WebCenter Portalページ・パラメータに関連する値を返します。エディタには、現在のページで定義されているすべてのパラメータが表示されます。パラメータが定義されていない場合、「ページ・パラメータ」カテゴリは使用できません。
たとえば、組込みページ・スタイル「ブログ」には、5つの組込みページ・パラメータがあります(表A-23を参照)。widthパラメータは、各列に割り当てられる、幅全体の割合(パーセント)を表します。showパラメータは、ページのヘッダーとフッターがレンダリングされるかどうかを指定します。どのページも独自のカスタム・ページ・パラメータを持つことができます。
組込みでもカスタムでも、使用可能なページ・パラメータは、「ページ・パラメータ」カテゴリの式エディタに表示されます。
関連項目:
ページ・パラメータの作成および使用方法の詳細は、『Oracle WebCenter Portalでのポータルの構築』のページ・パラメータの追加または変更に関する項を参照してください。
表A-23では、「ブログ」ページ・スタイルに基づくページについて、「ページ・パラメータ」カテゴリで使用できるEL式を示します。各パラメータから返される値のタイプの例も示します。
表A-23 「ページ・パラメータ」の組込みEL式
| オプション | 式 | 戻り値の例 |
|---|---|---|
leftWidth |
|
|
centerWidth |
|
|
rightWidth |
|
|
showHeader |
|
|
showFooter |
|
|
ポータル情報の組込みEL式は、(ホーム・ポータル以外の)ポータルに関連する値を返します。たとえば、#{spaceContext.space}という式は、現在のポータルの名前を返します。
関連項目:
ポータルに関連するその他のEL式は、「特定のポータルに関連するEL」を参照してください。
表A-24に、「ポータル情報」カテゴリで使用できる組込みEL式と、返される値のタイプの例を示します。
注意:
表A-24に示されているEL式は、ホーム・ポータル以外のポータルのコンテキストでのみ使用してください。
表A-24 「ポータル情報」の組込みEL式
| オプション | 式 | 戻り値の例 |
|---|---|---|
NamedPortal |
|
|
CurrentPortal |
|
|
CurrentPortal名 |
|
|
NamedPortalメタデータ・パス |
|
|
CurrentPortalメタデータ・パス |
|
|
NamedPortalメタデータ |
|
|
CurrentPortalメタデータ |
|
|
NamedPortalメタデータ表示名 |
|
|
CurrentPortalメタデータ表示名 |
|
|
NamedPortalメタデータ・アイコン |
|
|
CurrentPortalメタデータ・アイコン |
|
|
NamedPortalメタデータ説明 |
|
|
CurrentPortalメタデータ説明 |
|
|
NamedPortalメタデータ作成日 |
|
java.util.GregorianCalendar[time=1290103432242,areFieldsSet=true,areAllFieldsSet=false,lenient=false,zone=java.util.SimpleTimeZone[id=,offset=-28800000,dstSavings=3600000,useDaylight=false,startYear=0, startMode=0,startMonth=0,startDay=0,startDayOfWeek=0,startTime=0,startTimeMode=0,endMode=0,endMonth=0,endDay=0,endDayOfWeek=0,endTime=0,endTimeMode=0],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1, YEAR=2010,MONTH=10,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=18,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=3,SECOND=52,MILLISECOND=242,ZONE_OFFSET=?,DST_OFFSET=?] |
CurrentPortalメタデータ作成日 |
#{spaceContext.currentSpace.metadata.creationDate} |
java.util.GregorianCalendar[time=1290103432242,areFieldsSet=true,areAllFieldsSet=false,lenient=false,zone=java.util.SimpleTimeZone[id=,offset=-28800000,dstSavings=3600000,useDaylight=false,startYear=0, startMode=0,startMonth=0,startDay=0,startDayOfWeek=0,startTime=0,startTimeMode=0,endMode=0,endMonth=0,endDay=0,endDayOfWeek=0,endTime=0,endTimeMode=0],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2010,MONTH=10, WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=18,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=3,SECOND=52,MILLISECOND=242,ZONE_OFFSET=?,DST_OFFSET=?] |
NamedPortalメタデータ作成者 |
|
|
NamedPortalメタデータ・キーワード |
|
|
CurrentPortalメタデータ・キーワード |
|
|
NamedPortalメタデータ・オフライン |
|
指定されたポータルがオフラインかどうかによって、 |
CurrentPortalメタデータ・オフライン |
|
現在のポータルがオフラインかどうかによって、 |
NamedPortalメタデータ・クローズ |
|
指定されたポータルが閉じているかどうかによって、 |
CurrentPortalメタデータ・クローズ |
|
現在のポータルが閉じているかどうかによって、 |
NamedPortalメタデータ自己登録 |
|
指定されたポータルで自己登録が有効かどうかによって、 |
CurrentPortalメタデータ自己登録 |
|
現在のポータルで自己登録が有効かどうかによって、 |
NamedPortalメタデータ検出可能 |
|
指定されたポータルが検出可能かどうかによって、 |
CurrentPortalメタデータ検出可能 |
|
現在のポータルが検出可能かどうかによって、 |
NamedPortalメタデータ公開RSS |
|
指定されたポータルがRSSリーダーで公開可能どうかによって、 |
CurrentPortalメタデータ公開RSS |
|
現在のポータルがRSSリーダーで公開可能どうかによって、 |
NamedPortal配信リスト |
|
|
CurrentPortal配信リスト |
|
|
NamedPortalメタデータ・カスタム属性 |
|
名前付きカスタム属性に入力される値が返されます 注意: このELを使用してWebCenter Portal Administrationでフィールドに値を入力する場合、「テスト」ボタンをクリックすると空白値が戻される可能性があります。ただし、実行中のポータルでは値は適切に解決されます。 |
CurrentPortalメタデータ・カスタム属性 |
|
名前付きカスタム属性に入力される値が返されます 注意: このELを使用してWebCenter Portal Administrationでフィールドに値を入力する場合、「テスト」ボタンをクリックすると空白値が戻される可能性があります。ただし、実行中のポータルでは値は適切に解決されます。 |
CurrentPortalメタデータ・ロゴ |
|
|
CurrentPortalロール - ポータル・マネージャ |
|
現在のスコープ内のいずれかのユーザーに |
CurrentPortalロール - 参加者 |
#{WCSecurityContext.userInScopedRole['Participant']} |
現在のスコープ内のいずれかのユーザーにParticipantロールが割り当てられているかどうかによって、falseまたはtrue |
CurrentPortalロール - 閲覧者 |
#{WCSecurityContext.userInScopedRole['Viewer']} |
現在のスコープ内のいずれかのユーザーにViewerロールが割り当てられているかどうかによって、falseまたはtrue |
CurrentPortalロール - カスタム |
|
現在のスコープ内のいずれかのユーザーに名前付きカスタム・ロールが割り当てられているかどうかによって、 |
NamedPortal子 |
|
注意: 角カッコ([])はセットを示します。 |
CurrentPortal子 |
|
注意: 角カッコ([])はセットを示します。 |
NamedPortal親 |
|
|
CurrentPortal親 |
|
|
NamedPortalセキュリティ親 |
|
|
CurrentPortalセキュリティ親 |
|
|
すべての表示可能なルート・レベル・スペース |
|
|
指定された親ポータルGUIDのすべての子孫ポータル |
|
oracle.webcenter.spaces.query.SpacesQueryParameters@4da22f |
指定された親ポータル名の直近のサブ・ポータル |
|
oracle.webcenter.spaces.query.SpacesQueryParameters@1089971 |
指定されたポータル名に一致するポータルのリスト |
|
|
指定されたポータルGUIDに一致するポータルのリスト |
|
|
基準に基づいてソートされたポータルのリスト |
|
|
検索パターンに基づいたポータルのリスト |
|
|
ページ・サイズが制限されたポータルのリスト |
|
|
WHERE句に一致するポータルのリスト |
|
|
「ポータル・ページ情報」での選択内容は、EL式ではなく、様々なアプリケーション・ページへのディレクトリ・パスです。たとえば、これらを使用して、指定されたページへのナビゲーション情報を設定したりします。
表A-25に、「ポータル・ページ情報」カテゴリで使用できる組込みディレクトリ・パスと、返される値のタイプの例を示します。ドロップダウン・リスト内の値の数は、ユーザーが使用するテンプレートや作成するページによって異なります。
表A-25 「ポータル・ページ情報」の組込みパス
| オプション | パス | 宛先 |
|---|---|---|
PortalSiteHome.jspx |
|
現在のポータルのホーム・ページへのパス |
GroupSpaceDocLibMainView.jspx |
|
現在のポータルの「ドキュメント」ページへのパス |
ForumMainView.jspx |
|
現在のポータルの「ディスカッション」ページへのパス |
AnnouncementsMainView.jspx |
|
現在のポータルの「お知らせ」ページへのパス |
ListsMainView.jspx |
|
現在のポータルの「リスト」ページへのパス |
EventsMainView.jspx |
|
現在のポータルの「イベント」ページへのパス |
GroupSpaceActivityStreamMainView.jspx |
|
現在のポータルの「アクティビティ・ストリーム」ページへのパス |
システムの組込みEL式は、現在のユーザーのユーザー名や現在のユーザーの指定されたロケールなど、システム設定に関連する値を返します。たとえば、#{securityContext.userName}という式は、現在ログインしているユーザーの名前を返します。たとえば、ユーザーj.doeがこの式の使用されているページを表示すると、j.doeのビューでの戻り値はj.doeになります。ユーザーj.smithが同じページを表示すると、j.smithのビューでの戻り値はj.smithになります。
関連項目:
その他の実用的なEL式の詳細は、「実用的なEL式」を参照してください。
表A-26に、「システム」カテゴリで使用できる組込みEL式と、返される値のタイプの例を示します。
表A-26 「システム」の組込みEL式
| オプション | 式 | 戻り値の例 |
|---|---|---|
ユーザー |
|
現在のユーザーのユーザー名 |
ロケール |
|
現在のユーザーの指定されたロケール これは、アプリケーション、ポータルレベルの設定、ユーザー・プリファレンスのいずれか優先度の高いものから取得されます。 例: en_US |
ユーザー情報の組込みEL式は、特定のユーザーのプロファイルに関連する値を返します。たとえば、#{webCenterProfile[securityContext.userName].description}という式は、現在のユーザーのプロファイルの「自己紹介」属性のコンテンツを返します。
関連項目:
ユーザーに関連するその他の式は、「ピープル・コネクションに関連するEL」を参照してください。
表A-27に、「ユーザー情報」カテゴリで使用できる組込みEL式と、返される値のタイプの例を示します。
表A-27 「ユーザー情報」の組込みEL式
| オプション | 式 | 戻り値の例 |
|---|---|---|
自己紹介 |
|
現在のユーザーのプロファイルの「自己紹介」属性のコンテンツを返します |
ユーザー名 |
|
現在のユーザーのプロファイルで指定されたユーザー名 |
名 |
|
現在のユーザーの名。 |
ミドル・ネーム |
|
現在のユーザーのミドルネーム。 |
姓 |
|
現在のユーザーの姓 |
使用されるイニシャル |
|
現在のユーザーのイニシャル。 |
表示名 |
|
現在のユーザーの表示名。 |
電子メール |
|
現在のユーザーの業務用電子メール・アドレス。 |
部門 |
|
現在のユーザーの部門 |
役職/職種 |
|
現在のユーザーの役職または職種 |
マネージャ |
|
現在のユーザーのマネージャの表示名 |
タイムゾーン |
|
現在のユーザーに関連付けられたタイムゾーン |
従業員タイプ |
|
現在のユーザーの従業員タイプ |
従業員番号 |
|
現在のユーザーの社員番号。 |
優先言語コード |
|
現在のユーザーの優先言語。 |
組織 |
|
現在のユーザーが所属する会社組織 |
組織単位 |
|
現在のユーザーが所属する会社組織の単位 |
専門 |
|
現在のユーザーの専門(例: |
勤務先FAX |
|
現在のユーザーの業務用FAX番号。 |
勤務先携帯電話番号 |
|
現在のユーザーの勤務先の携帯電話番号 |
勤務先電話番号 |
|
現在のユーザーの勤務先電話番号 |
勤務先ページャ番号 |
|
現在のユーザーの業務用ページャの番号。 |
勤務先番地 |
|
現在のユーザーの勤務先の住所 |
勤務先市区町村 |
|
現在のユーザーの勤務先がある市区町村 |
勤務先都道府県 |
|
現在のユーザーの勤務先がある都道府県 |
勤務先私書箱 |
|
現在のユーザーの勤務先の私書箱番号 |
勤務先郵便番号 |
|
現在のユーザーの勤務先の郵便番号 |
勤務先国 |
|
現在のユーザーの勤務先がある国 |
自宅の住所 |
|
現在のユーザーの自宅住所 |
自宅電話番号 |
|
現在のユーザーの自宅の電話番号。 |
生年月日 |
|
現在のユーザーの生年月日 |
旧姓 |
|
現在のユーザーの旧姓 |
入社日 |
|
現在のユーザーの入社日 |
名前接尾辞 |
|
現在のユーザーの名前に追加される役職や資格(例: |
ワイヤレス・アカウント番号 |
|
現在のユーザーのワイヤレス・インターネット・アカウントのアカウント番号 |
WebCenterイベントの組込みEL式は、ドキュメント関連のイベントに関する値を返します(選択されているドキュメント、ドキュメントの作成者、ドキュメントが最後に変更された日付など)。たとえば、#{wcEventContext.events.WebCenterResourceSelected.name}という式は、現在選択されているドキュメントの名前を返します。
表A-28に、「WebCenterイベント」カテゴリで使用できる組込みEL式と、返される値のタイプの例を示します。
表A-28 「WebCenterイベント」の組込みEL式
| オプション | 式 | 戻り値の例 |
|---|---|---|
選択したユーザー名 |
|
現在選択されているユーザーのユーザー名 |
選択したドキュメント名 |
|
現在選択されているドキュメントの名前 |
選択したドキュメント作成者 |
|
現在選択されているドキュメントの作成者の名前 |
選択したドキュメント最終変更者 |
|
選択されているドキュメントが最後に変更された日付 |
JPQL WHERE句に基づいてポータルを問い合せるためにEL式を使用していた場合、WebCenter Portalでは、自由形式のJPQL WHERE句がサポートされないことを認識する必要があります。かわりに、構造化されたWHERE句を使用します。自由形式のSORT句もサポートされません。かわりに、構造化された方法でポータル問合せのソート基準を指定します。
たとえば、ポータル問合せに対してWHERE句を形成するために、次の構文を使用していたとします。
#{spaceContext.spacesQuery.unionOf['ALL_QUERIABLE'].whereClause['sp.keywords like \'forquery%\' and not
(sp.discoverable is null or sp.discoverable =\'N\')'].listSpaces}
これからは、WHERE句を形成するには、次の構文を使用する必要があります。
#{spaceContext.spacesQuery.unionOf['ALL_QUERIABLE'].where[wCond['sp.keywords']['like']['forquery']['and'][wCond['sp.discoverable']
['is']['null']['or'][wCond['sp.discoverable']['=']['N']]['not']]].listSpaces}
説明:
wCondはアトミック条件で、wCond[p][op][v]と表すことができます。
説明:
pはポータル属性です(WcSpaceHeaderのフィールド。下記の箇条書きリストを参照)。
opは、JPQL比較演算子の制限されたセット('=', 'like', '!=', '<', '>', '<=', '>=', 'is')のいずれかです。
vは、演算子opによって解釈が決まる文字列です。
この演算子がisの場合、vには文字列'null'または'not null'を設定でき、JPQLでそれぞれnullまたは非nullであることをチェックされる属性として、条件が認識されます。この演算子がそれ以外である場合、vはリテラルとして解釈され、条件はリテラル値と比較される属性として認識されます。
WHERE句では、次のようなWcSpaceHeaderで定義されるフィールドのいずれかを使用できます。
closed
createDate
createdBy
description
discoverable
displayName
keywords
icon
logo
lastUpdateDate
selfSubEnabled
rssEnabled
spaceGuid
spaceId
spaceOffline
spacePublic
spacesType
spacesUser
updatedBy
version
parentGuid
securityParentGuid
ancestorPath
seeded
groupSpaceMemCount
spは、ポータルWcSpaceHeaderのJPAエンティティを表しています。
たとえば、ユーザー名がmontyで始まり、自己サブスクリプションが有効になっているユーザーによって作成されたすべてのポータルに対するフィルタを作成するには、次の条件を使用できます。
sp.createdBy like 'monty%' and not (sp.selfSubEnabled is null or sp.selfSubEnabled ='N')
and、or、not (wCondとともに使用)は、条件のタイプです。
説明:
andは、2つの条件の論理積を表します。論理積の条件は、cond1['and'][cond2]と表すことができます。ここで、cond1とcond2は、結合する2つの条件を表す式です。
orは、分離条件を表します。分離条件は、cond1['or'][cond2]と表すことができます。ここで、cond1とcond2は、分離する2つの条件を表す式です。
notは、否定条件を表します。否定条件は、cond['not']と表すことができます。ここで、condは、結合する条件を表す式です。
たとえば、次のELは、ユーザー名がmontyで始まり、自己サブスクリプションが有効になっているユーザーによって作成されたすべてのポータル(現在のユーザーがアクセス可能なポータル)のリストを返します。
#{spaceContext.spacesQuery.unionOf.ALL_QUERIABLE.where[wCond['sp.createdBy']
['like']['monty%'] ['and'] [wCond['sp.selfSubEnabled']['is']['null'] ['or'] [wCond['sp.selfSubEnabled']['=']['N']] ['not'] ]].listSpaces}
次に、ポータル問合せに対してSORT条件を指定するために、次の構文を使用していたとします。
#{spaceContext.spacesQuery.unionOf['ALL_QUERIABLE'].sortCriteria
['sp.discoverabledesc, sp.keywords'].listSpaces}
これからは、ポータル問合せに対してSORT条件を指定するには、次の構文を使用する必要があります。
#{spaceContext.spacesQuery.unionOf['ALL_QUERIABLE'].sort['sp.discoverable']
['desc'].sort['sp.keywords']['asc'].listSpaces}
説明:
spは、ポータルWcSpaceHeaderのJPAエンティティを表しています(WcSpaceHeaderで定義されるフィールドは、前述の箇条書きリストを参照)。
descとascは、それぞれ降順と昇順のソート順序を定義します。
たとえば、次の問合せは、ユーザーがアクセス可能なポータルのリストを返し、フィールドdiscoverableおよびlastUpdateDateを基準に結果セットをソートします。
#{spaceContext.spacesQuery.unionOf['ALL_QUERIABLE'].sort['sp.discoverable']
['asc'].sort['sp.lastUpdateDate']['desc'].listSpaces}
Oracleでは、既存の自由形式のJPQL WHERE句とSORT句をすべて新しい構文に変換することを強くお薦めします。
なんらかの理由で既存の構文を維持する必要がある場合は、WebCenter Portal管理者が、webcenter-config.xml.xmlファイル内で次のグローバル・フラグを設定することで、自由形式のJPQLに対するサポートを明示的に有効にする必要があります。
oracle.webcenter.spaces.query.DIRECT_JPQL_CLAUSE_SUPPORTED
注意:
webcenter-config.xml.xmlファイルは、webcenter-config.xmlのカスタマイズ・ドキュメントです。
従来の自由形式のWHERE句とSORT句のサポートを継続するには、このフラグをtrueに設定します。このオプションをtrueに設定すると、WebCenter Portalログ・ファイルには警告が格納されます。
webcenter-config.xml.xmlでこのフラグを設定するには:
MDSから最新のwebcenter-config.xml.xmlをエクスポートします。
例:
exportMetadata(application='webcenter', server='WC_Portal', toLocation='/tmp/mydata',docs='/oracle/webcenter/webcenterapp/metadata/mdssys/cust/site/webcenter/webcenter-config.xml.xml')
テキスト・エディタでファイルを開き、必要に応じて設定を変更します。
例:
<mds:insert parent="webcenter(xmlns(webcenter=http:// xmlns.oracle.com/webcenter/webcenterapp))/webcenter:custom-attributes" position="last"> <attribute name= "oracle.webcenter.spaces.query.DIRECT_JPQL_CLAUSE_SUPPORTED" xmlns="http://xmlns.oracle.com/webcenter/webcenterapp"> <description/> <type>java.lang.String</type> <value>true</value> <visible/> </attribute> </mds:insert>
webcenter-config.xml.xmlを保存して閉じます。
更新後のwebcenter-config.xml.xmlファイルをWebCenter Portalにインポートします。
例:
importMetadata(application='webcenter', server='WC_Portal', fromLocation='/tmp/mydata', docs='/oracle/webcenter/webcenterapp/metadata/mdssys/cust/site/webcenter/webcenter-config.xml.xml')