プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebCenter Contentでの開発
12c (12.2.1.1)
E77334-02
目次へ移動
目次

前
前へ
次
次へ

4 Oracle WebCenter ContentでのIdoc Scriptの変数と関数の使用

この章では、様々なタイプのIdoc Scriptの変数と関数、およびそれをOracle WebCenter Contentで使用する方法について説明します。Idoc Scriptのカスタム・スクリプト言語を使用してOracle WebCenter Content Serverをカスタマイズすることができます。Idocスクリプトを使用すると、変数を参照したり、条件付きでコンテンツをHTMLページに含めたり、問合せから返された結果をループ処理できます。Idocスクリプトはクライアント側でなくサーバー側で評価されるため、ページ要素が処理されるのは、ブラウザが要求してから、要求されたページがクライアントに返されるまでの間です。

この章の内容は次のとおりです。

4.1 様々なタイプのIdoc Scriptの変数と関数の使用

様々なタイプのIdoc Scriptの変数と関数を使用して、Content Serverをカスタマイズすることができます。

4.1.1 条件動的変数

いくつかのIdoc Script動的変数は条件付きであり、ifwhileelseifまたはloopなどの条件文の中でのみ使用できます。これらの変数には、次の特徴が備わっています。

  • 条件変数は、取得可能ですが、設定可能ではない内部フラグです。
  • 条件変数はブール型レスポンスのみを提供し、文字列または整数のような値を返しません。
  • 条件変数は、#activeキーワード接頭辞を受け入れません。したがって、変数が見つからない場合は、エラー・レポートがデバッグ出力に印刷されます。

Idoc Scriptの関数と変数では、これらの条件動的変数について説明しています。

4.1.2 動的変数

動的変数は、変数が出現するたびに評価されます。変数が見つかるたびに、値がコードから再評価されます。(対照的に、変数はサービス・コールの最初に1回評価され、その値はサービス・コール全体を通して使用されます。「値変数」を参照してください。)動的変数は通常、文字列または整数などの値を返します。

Idoc Scriptの関数と変数では、この動的変数について説明しています。

4.1.3 環境変数

Webサーバーの変数は、サーバーがゲートウェイ・プログラムを実行するときに設定されるCGI環境変数です。情報リクエストに関するデータをサーバーからクライアントへ渡すために、サーバーはコマンドライン引数と環境変数を使用します。これらの環境変数は、情報をログ・ファイルに出力するために使用したり、Idoc Script文の中で、または評価の一環として使用したりすることができます。

たとえば、このIdoc Script文は、リモート・ホスト・アドレスが特定の文字列と一致するかどうかを評価します。

<$if strEquals("207.0.0.1",REMOTE_HOST)$>

このHTMLとIdoc Scriptのマークアップによって、Webサーバー環境情報のリストがページに表示されます。

<P>HTTP_INTERNETUSER=<$HTTP_INTERNETUSER$></P>
<P>REMOTE_HOST=<$REMOTE_HOST$></P>
<P>SCRIPT_NAME=<$SCRIPT_NAME$></P>

Idoc Scriptの関数と変数では、これらのWebサーバー変数について説明しています。

4.1.4 グローバル関数

Idoc Scriptには、多数のビルトイン・グローバル関数があります。関数は、文字列の比較、操作ルーチン、日付フォーマット化、ResultSetの操作といったアクションを実行します。いくつかの関数は、計算または比較の結果などの結果も返します。

関数名の後に情報をカッコで閉じることによって、情報が関数に渡されます。関数に渡される情報のピースをパラメータといいます。関数には、パラメータをとらないもの、パラメータを1つとるもの、複数のパラメータをとるものがあります。関数のなかには、その使用方法によってパラメータ数が異なるものもあります。

ビルトイン・グローバル関数の他に、カスタム・クラスを含む新規のグローバル関数を、Javaコードを使用して定義できます。詳細は、『コンテンツ・サーバーのコンポーネントのスタート・ガイド』および「カスタム・コンポーネントの作成」を参照してください。

Idoc Scriptの関数と変数では、これらのIdoc Scriptのビルトイン・グローバル変数について説明しています。

4.1.5 ページ変数

ページ変数は、特定のページ属性または機能を有効にするために、特定のWebページで設定されます。ページ変数は、設定されたページのみに適用されます。

この項には次のトピックが含まれます:

4.1.5.1 ページ表示変数

ページの表示に影響するページ変数は通常、ページの最上部の近くに設定されます。ページ表示変数は読取り専用変数として使用します。これらの変数の値を設定または変更することにより、通常はページでのメタデータの表示方法が変更されます。多くの場合、これは望ましい影響ではありません。

リストされた変数名が別のドキュメントを参照する場合は、その変数がWebページ用にIdoc ScriptまたはURLに設定できることを意味しています。

Idoc Scriptの関数と変数では、これらのページ表示変数について説明しています。

4.1.5.2 フィールド表示変数

フィールド表示変数は、次のタイプにグループ化できます。

4.1.5.2.1 フィールド情報変数

次の変数は、メタデータ・フィールドに関する情報を定義します。メタデータ・フィールドごとに、変数の値がロードされたり、計算されたりします。

Idoc Scriptの関数と変数では、これらのフィールド情報変数について説明しています。

リソース・ファイルIdcHomeDir/resources/core/std_page.htmにあるstd_prepare_metafield_includeインクルードは、現在のメタデータ・フィールドの表示を準備するために、多数のフィールド情報変数をローカル・データからロードします。

<@dynamichtml std_prepare_metafield_include@>
<!--Prepare for presenting field-->
<$fieldName=dName, fieldCaption=dCaption, fieldDefault=dDefaultValue$>
<$fieldType=dType, fieldIsOptionList=dIsOptionList, fieldOptionListType=dOptionListType$>
<@end@>
4.1.5.2.2 共通フィールド表示変数

よく使用されるページ変数がいくつか存在し、これらはメタデータ・フィールドの表示に影響します。これらの変数は、それぞれの現在の使用法に応じて、ページの場所ごとに異なる構文を使用して設定できます。

注意:

構成マネージャ・アプレットのプロファイル・エンジンおよびルール・エンジンには、これと同じ機能がコード数を少なくして組み込まれています。

次のフォーマットを使用して、特殊なフィールド表示変数を設定できます。

  • 名前と値のペア: 変数は、標準のvariable=valueフォーマットを使用して設定されます。たとえば、isHidden=1となります。このフォーマットは通常、現在のメタデータ・フィールドがループ済のコードにより生成されるページ上の場所に、そのフィールドを表示するために使用します。
  • FieldName:Variableのフォーマット: 変数は、適用先のメタデータ・フィールドのパラメータとして定義することにより設定されます。たとえば、myMetadata:isHiddenとなります。このフォーマットは通常、特定のメタデータ・フィールドのグローバル表示を設定するために、ページの最上部に使用します。

共通フィールド表示変数をテンプレート・ページの最上部に設定する場合は、<HEAD>タグの前に置いてください。この変数を<HEAD></HEAD>セクションの中または後に置くと、意図したようにフィールドが表示されます(または、非表示になります)が、ヘッダーにあるJavaScript検証コードは評価されても、…はオブジェクトではないため、チェックイン・ページを表示しようとするとエラーがスローされます。

Idoc Scriptの関数および変数

Idoc Scriptの関数と変数では、これらの共通フィールド表示変数について説明しています。n

メタデータ・フィールドを表示するための代替方法

これらの共通フィールド表示変数のみで必要なフレキシビリティが得られない場合には、フィールド変数を、かわりに使用するリソース・インクルード(たとえば、myField:include=customInclude)の名前に設定して、メタデータ・フィールドの実装全体を置き換えることができます。

標準実装は変数defaultFieldIncludeにより参照されます。この変数の値は、フィールドがチェックイン/更新ページ、問合せページまたは情報ページのいずれに生成されるかによって異なります。さらに、表示されるフィールドのタイプによっても大きく異なります。標準のフィールド・インクルードがオーバーライドされた場合、新しい実装では、JavaScript検証とアップロード・アプレットも含めて、様々なページの問題点をすべて考慮する必要があります。

このアプローチは、最後の手段としてのみ使用してください。既存の機能を拡張し、ローカル変数にカスタム機能を持たせることを優先してください。

このようにincludeタグを使用して特殊なメタデータ・フィールドのカスタムHTMLコードを挿入する場合は、ページの</HEAD>タグの後にインクルード文を置く必要があります。</HEAD>タグの前に置いた場合、システムはカスタムHTMLコードをヘッダーに挿入し、JavaScriptとして読み取ろうとします。

4.1.5.2.3 その他のフィールド表示変数

メタデータ・フィールドの表示に影響するその他の変数が多数存在しています。通常、これらの変数は、現在生成中のフィールドと、関連する列の共通フィールド表示変数の値に応じてメタデータ・フィールドの表示を定義する際に使用します。

Idoc Scriptの関数と変数では、これらその他のフィールド表示変数について説明しています。n

この例では、IdcHomeDir/resources/core/templates/std_page.htmリソース・ファイルにあるcompute_std_field_overridesインクルードが、現在生成中のフィールドが非表示か、参考用か、排他的かまたは再配置されたものかどうかを判別する方法を示しています。このコードは、ページ上で各メタデータ・フィールドの生成中にループされます。

<@dynamichtml compute_std_field_overrides@>
<$isCustomHidden = getValue("#active", fieldName & ":isHidden")$>
<$if isHidden or isCustomHidden$>
    <$isFieldHidden = 1$>
<$else$>
    <$isFieldHidden = ""$>
<$endif$>
<$isCustomInfo = getValue("#active", fieldName & ":isInfoOnly")$>
<$if isInfo or isCustomInfo or isFieldHidden or isInfoOnly$>
    <$isFieldInfoOnly = 1$>
<$else$>
    <$isFieldInfoOnly = ""$>
<$endif$>
<$isCustomExcluded = getValue("#active", fieldName & ":isExcluded")$>
<$isCustomRelocated = getValue("#active", fieldName & ":isRelocated")$>
<$if isCustomExcluded or (isCustomRelocated and not isRelocated) or isExcluded or (isFieldHidden and not isFormSubmit)$>
    <$isFieldExcluded = 1$>
<$endif$>
<@end@>

4.1.6 読取り専用変数

読取り専用変数は、現在のテンプレート、現在ログインしているユーザーまたはその他の現在の設定に関する情報を収集するために使用します。これらの変数は読取り専用であり、値を割り当てることはできません。

4.1.6.1 テンプレート読取り専用変数

テンプレート読取り専用変数により、テンプレートのアイデンティティに基づいてテンプレートに条件付きコンテンツを作成できます。これらの事前定義の変数を使用すると、すべてのテンプレートのクラス、ファイル・パス、名前またはタイプをコンテンツ・サーバーのWebページに表示できます。これは、Webサイトの開発には特に役立ちます。

Idoc Scriptの関数と変数では、これらのテンプレートに関連する読取り専用変数について説明しています。

この例では、テンプレートの内部名は、コンテンツ・サーバーのすべてのWebページの左サイドバーにある「管理リンク」の下に表示されます。この変更を遂行するために、事前定義されたTemplateName変数が、「管理リンク」を定義するpne_nav_admin_linksインクルードに追加されています。

次に、内部テンプレート名をWebページに表示するためのTemplateName事前定義変数の使用例を示します。

<$if IsSubAdmin$>
<tr>
    <td>
        <a href="<$HttpCgiPath$>?IdcService=GET_ADMIN_PAGE&Action=
           GetTemplatePage&Page=ADMIN_LINKS"
        OnMouseOver="imgAct('admin')"
        OnMouseOut="imgInact('admin')">
        <img src="<$HttpImagesRoot$>
           <$button_admin_grey_ish_image$>" width="<$navImageWidth$>"         height="<$navImageHeight$>" name="admin" border="0"         alt="<$lc("wwProductAdministration", ProductID)$>"></a>
    </td>
        <td>
        <a class=pneHeader href="<$HttpCgiPath$>?IdcService=GET_ADMIN_
              PAGE&Action=GetTemplatePage&Page=ADMIN_LINKS"
        OnMouseOver="imgAct('admin')"
        OnMouseOut="imgInact('admin')">
        <$lc("wwAdministration")$></a>
    </td>
</tr>
<tr>
    <td colspan=2><font color=#FFFFFF style="Arial"
        size="-1"><$TemplateName$></font></td>
</tr>
<$endif$>

4.1.6.2 ユーザー読取り専用変数

ユーザー関連の読取り専用変数を使用すると、現在のユーザーに関する情報を収集できます。

Idoc Scriptの関数と変数では、これらのユーザーに関連する読取り専用変数について説明しています。

4.1.6.3 コンテンツ読取り専用変数

Idoc Scriptの関数と変数に説明するコンテンツ関連の読取り専用変数、SourceIDを使用して、現在の動的サーバー・ページのコンテンツIDを取得できます。

この変数は、ref:dIDと同じ値を返します。

4.1.6.4 その他の読取り専用変数

Idoc Scriptの関数と変数に説明する読取り専用変数、SafeDirは、内部フラグとしてのみ設定されています。これは取得可能ですが、直接設定することはできません。

4.1.7 設定可能変数

設定可能変数は、スクリプトの中に設定したり、CGI文字列の中で使用することができます。たとえば、変数IsPageDebugをサービス・コールのパラメータとして使用すると、デバッグ・トレース表示をページに表示できます。これらの変数の1つを設定すると、ページのコンテンツを変更できます。

Idoc Scriptの関数と変数では、これらの設定可能変数について説明しています。

4.1.8 ワークフロー

Idoc Scriptには、特にワークフローに使用される事前定義の関数と変数が組み込まfれています。

  • ワークフロー関数は、ワークフローに関連するアクションを実行したり、結果を返したりします。

  • ワークフロー変数を使用すると、ワークフローに関連する変数に値を設定できます。

ワークフローがコンテンツ・サーバーに実装される方法についての詳細は、『Oracle Fusion Middleware Oracle WebCenter Contentの管理』を参照してください。

次の各項目では、ワークフローにおけるIdoc Scriptの使用を要約しています。

  • ワークフロー・ジャンプは、特定のステップ・イベント(入力、更新または終了)に定義されているIdoc Scriptの評価を通して開始されます。

  • リビジョンはステップからステップへ移動するため、リビジョンの状態に関する情報をワークフローに保持するコンパニオン・ファイルが作成されます。関数wfGet()およびwfSet()を使用すると、必要に応じてデータをコンパニオン・ファイルにコード化することができます。ユーザー定義オプションとともに、リビジョンが移動してきたステップの履歴、最後のエントリ時間、リビジョンが特定のワークフロー・ステップに入った回数も保持されます。

    • リビジョンがステップからステップに移動するにつれて、グローバルな状態情報が保持されていきます。

    • ローカライズ状態情報はステップに格納され、リビジョンがそのステップにいるときに使用可能になります。

  • コンパニオン・ファイルでは、キーを使用してワークフロー状態情報を追跡します。キーの構文は、次のとおりです。

    step_name@workflow_name.variable=value
    

    たとえば、次のキーは、MarketingというワークフローのEditorステップに対してエントリ・カウント変数と最後のエントリ変数の値を定義します。

    Editor@Marketing.entryCount=1
    Editor@Marketing.lastEntryTs={ts '2002-05-28 16:57:00'}
    
  • すべてのワークフロー評価は、データベース・トランザクションの内側で行われます。そのため、検出された深刻なエラーまたは中止によってデータベースまたはコンパニオン・ファイルのいずれかが変更されることはありません。また、どのIdoc Scriptワークフロー関数でも、処理にほとんど時間がかかりません。したがって、外部プロセスをトリガーするには、別個のスレッドで実行するようにIdoc Script関数を作成する必要があります。

    注意:

    Idoc Scriptまたはカスタム・コンポーネントを使用してワークフロー情報をローカル・データにロードしている場合は、データ汚染のリスクがあることに留意してください。現在のリビジョンとは異なるリビジョンの情報をロードしている場合、これは特に重要です。

4.1.8.1 ワークフロー関数

ワークフロー関数は、ワークフローに関連するアクションを実行したり、結果を返したりします。

Idoc Scriptの関数と変数では、これらのワークフロー関数について説明しています。

4.1.8.2 ワークフロー変数

ワークフロー変数は、ワークフローに関連する値の設定に使用します。

Idoc Scriptの関数と変数では、これらのワークフロー変数について説明しています。

4.1.9 値変数

変数はサービス・コールの最初に1回評価され、その値はサービス・コール全体を通して使用されます。その後、変数は新規サービス・コールごとに再評価されます。対照的に、動的変数は、変数が出現するたびに評価されます。たとえば、値変数isNewは、チェックインの実行時にコンテンツ・アイテムが新規か、またはリビジョンかどうかを評価します。その評価は、チェックイン・サービスのコール全体にわたって使用されます。

Idoc Scriptの関数と変数では、これらの値変数について説明しています。

4.2 Oracle WebCenter Contentの各種機能によるIdoc Scriptの変数と関数の使用

Oracle WebCenter Contentの各種機能によってIdoc Scriptの変数と関数が使用できます。Idoc Scriptの関数と変数では、Idoc Scriptの変数と関数について説明しています。

WebCenter Contentのconfig.cfgファイル、intradoc.cfgファイルおよびその他の.cfgファイルで使用可能なシステム構成変数の詳細は、『Oracle Fusion Middleware Oracle WebCenter Content構成リファレンス』を参照してください。

これらのOracle WebCenter Contentの各種機能によって、Idoc Scriptの変数と関数が使用できます。

4.2.1 バッチ・ローダー

Idoc Scriptの関数と変数に説明する次のIdoc Script変数は、バッチ・ローダー・ユーティリティに関連しています。

バッチ・ローダー・ユーティリティに関連するその他のIdoc Script構成変数の詳細は、『Oracle Fusion Middleware Oracle WebCenter Content構成リファレンス』のバッチ・ローダーに関する項を参照してください。

4.2.2 クライアント

次のIdoc Scriptの変数は、クライアント・アプリケーションに関連しています。

4.2.4 コンテンツ・プロファイル

次のIdoc Scriptの関数は、コンテンツ・プロファイルに関連しています。

4.2.6 変換

これらの変換製品は、いくつかのIdoc Script変数で使用できます。

4.2.6.1 Inbound Refinery

次のIdoc Scriptの変数は、Oracle WebCenter Content: Inbound Refineryシステムに関連しています。

4.2.6.2 Dynamic Converter

次のIdoc Scriptの変数および関数は、Dynamic Converterに関連しています。

4.2.7 データベース

次のIdoc Scriptの関数は、データベースに関連しています。

4.2.9 デバッグ

次のIdoc Scriptの変数および関数は、デバッグに関連しています。

デバッグに関連するその他のIdoc Script構成変数の詳細は、『Oracle Fusion Middleware Oracle WebCenter Content構成リファレンス』のデバッグに関する項を参照してください。

4.2.13 Idoc Script

次のIdoc Scriptの関数は、どの機能にも関連していません。

4.2.13.1 キーワード

次のIdoc Scriptの変数は、キーワードに関連しています。

4.2.14 索引付け

次のIdoc Scriptの変数および関数は、索引付けに関連しています。

4.2.15 ローカライズ

次のIdoc Scriptの変数および関数は、ローカライズに関連しています。

4.2.17 パーソナライズ

次のIdoc Scriptの関数は、ユーザー・トピック(パーソナライズ)ファイルに関連しています。

4.2.19 スキーマ

次のIdoc Scriptの関数は、スキーマに関連しています。

スキーマは、スキーマの各部分間の関係に影響する可能性のある変更が生じたときには必ず、再公開されます。これらの設定は公開要因に関連しています。

4.2.23 テンプレート

次のIdoc Scriptの変数は、テンプレートに関連しています。

4.2.26 ワークフロー

次の各項では、ワークフローに関連するIdoc Scriptの変数と関数を示しています。

4.2.26.1 グローバル関数

次のIdoc Scriptのグローバル関数は、ワークフローに関連しています。