前のトピック: set view コマンド - ビューの定義

次のトピック: set wait-for-multiwrite コマンド

ビュー パラメータ

set view コマンド内のビュー パラメータを使用して、文字列用のプレースホルダを指定します。 ビューが呼び出されるとき、または DSA がビュー内の以前のフェーズを実行した後、DSA はビュー パラメータの値を決定します。

ビュー パラメータの構文を以下に示します。

[$][phaseNumberList:]attributeName[substringIdentifier]
$

(オプション) DSA がビュー パラメータとしてこれを扱うべきであることを指定します。

$ がない場合、文字列はリテラル属性名として扱われます。また、代用は発生しません。 その場合、substringIdentifier はブランクである必要があります。

phaseNumberList:

(オプション) attributeName の値を生むフェーズ番号を定義します。 phaseNumber: が省略された場合は、DSA は、ビューを呼び出した LDAP 検索コマンドで与えられたフィルタからの attributeName の値を提供します。

phaseNumber はパラメータが使用されるフェーズの数より小さな数字である必要があります。 すなわち、フェーズは、ビューの以前のフェーズのみを参照できます。

条件付きのビューを使用するときはフェーズ番号のリストを指定できます。

attributeName

パラメータを置換するためにその値が使用される属性を指定します。

substringIdentifier

(オプション)属性値文字列内のセクションを指定します。

サブストリング識別子には 2 つの可能な形式があります。

ユーザが区切り文字に基づいてサブストリングを抽出する場合、substringIdentifier 用の最初の形式は役立ち、以下のとおりです。

[delimiterString:substringNumber]

角かっことコロンは構文の一部で、このオプションが使用される場合に必要です。

delimiterString

属性値文字列内の区切り文字を定義します。 これはリテラル文字列であるため、たとえば、スペース、引用符および英数字ではない文字を含めることができます。 区切り文字列はサブストリングへの属性値を分割します。

substringNumber

属性値文字列からどのサブストリングを抽出するべきであるかを指定します。 属性値のサブストリングは、左から右へ 1 から開始する番号が付けられます。

ユーザが一連の DN から先頭の DN を抽出する場合、または文字列の先頭の文字を抽出する場合、substringIdentifier の 2 番目の形式が役立ちます。 この形式を以下に示します。

[numberOfDNsOrCharacters]

角かっこは構文の一部で、このオプションが使用される場合に必要です。

numberOfDNsOrCharacters

属性値文字列からいくつの RDN または文字を抽出するかを、左端の文字から開始して指定します。

このパラメータがフェーズ("subtree=...")のサブツリー指定の一部として使用される場合は、RDN の数を返します。 そうでない場合は文字数を指定します。

例: View Parameter $cn

ビューが呼び出されたとき、DSA は例の文字列を、ビューを呼び出すために使用された検索コマンドのフィルタで提供される cn 属性の値に置換します。

この例では、検索は以下のコマンドで呼び出されます。

ldapsearch... (cn="Smith, John")

$cn は以下の値と置換されます。

Smith, John

例: View Parameter $cn[,:1]

ビューが呼び出されるとき、DSA は例文字列を cn 属性の値内の最初のカンマに先行する文字に置換します。

この例では、検索は以下のコマンドで呼び出されます。

ldapsearch... (cn="Smith,John")

$cn[,:1] は以下の値と置換されます。

Smith

例: $cn[7]

ビューが呼び出されるとき、DSA は例文字列を cn 属性の値内の最初の 7 文字に置換します。

この例では、検索は以下のコマンドで呼び出されます。

ldapsearch... (cn="Smith,John")

$cn[7] は以下の値と置換されます。

Smith,J

例: $3:cn

フェーズを実行した直後に、DSA はこの例の文字列を、フェーズ 3 によって返された cn 属性の値に置換します。 この例の文字列はフェーズ 4 およびそれ以降にのみ有効です。

例: $2,3:cn

以下の例で $2,3:cn を使用すると、どのフェーズが呼び出されたかによって、$2:cn または $3:cn を使用します。

if ( condition )
{ (phase = 2) }
else
{ (phase = 3) }

例: subtree= $1:dn

...
(phase=2
subtree = $1:dn
...

これはセット ビュー コマンドのフラグメントです。 フェーズ 1 を実行した直後に、DSA はストリングの $1:dn を フェーズ 1 で返された各検索結果の DN の値で置換します。 フェーズ 1 が複数の DN を返す場合は、フェーズ 2 は複数回実行されます -- フェーズ 1 から返された各 DN 結果に対して 1 回。

例: subtree= $1:dn[3]

...
(phase=2
subtree = $1:dn[3]
...

これはセット ビュー コマンドのフラグメントです。 フェーズ 1 を実行した直後に、DSA は $1:dn[3] ストリングをフェーズ 1 で返された各検索結果の DN の最初の 3 つの RDN の値で置換します。 フェーズ 1 が複数の DN を返す場合は、フェーズ 2 は複数回実行されます -- フェーズ 1 から返された各 DN 結果に対して 1 回。

例: subtree="uid=$1:uids,o=Democorp,c=AU"

...
(phase=2
subtree="uid=$1:uids,o=Democorp,c=AU"
...

これはセット ビュー コマンドのフラグメントです。 フェーズ 1 を実行した直後に、DSA は $1:uid ストリングをフェーズ 1 検索によって返された 'uids の値で置換します。 フェーズ 1 が複数の DN を返す場合は、フェーズ 2 は複数回実行されます。フェーズ 1 から返された各 DN 結果に対して 1 回。

たとえば、フェーズが uid の値に対して 12345 を返す場合、このフラグメントは以下とまったく同等です。

...
(phase=2
subtree="uid=12345,o=Democorp,c=AU"
...