ヘッダーをスキップ
Oracle BPEL Process Manager開発者ガイド
10g(10.1.3.1.0)
B31874-03
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

D XPath拡張関数

オラクル社では、組込みBPEL機能およびXPath標準を使用するその他のXPath拡張関数を提供しています。

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


関連項目:


D.1 拡張関数

この項では、次の関数について説明します。

D.1.1 create-nodeset-from-delimited-string

この関数は、デリミタ付き文字列を入力としてとり、nodeSetを返します。

シグネチャ:

orcl:create-nodeset-from-delimited-string(qname, delimited-string, delimiter)

引数:

  • qname: 作成するノードセット内ノードのすべてに付ける修飾名。QNameは、次の2つの形式で表現できます。

    • task:assignee

    • {http://mytask/task}assignee

  • delimited-string: 複数の要素からなる文字列。後述のデリミタで区切られます。

  • delimiter: 前述の入力文字列において項目を区切る文字(カンマやセミコロンなど)。

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.1.2 generate-guid

一意のGUIDが生成されます。

シグネチャ:

orcl:generate-guid()

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.1.3 lookup-dvm


注意:

lookup-dvmはOracle Enterprise Service Busでのみ使用します。Oracle BPEL Process Managerにおけるこの関数の使用は、現在サポートされていません。

この関数は、ドメイン値マップ(DVM)内でソース列の値がソース値と一致するターゲット列の値を検索して文字列を返します。ソース値は、XSLTトランスフォーメーションのソース文書にバインドされたXPath式です。式は変換中に評価され、結果値は検索のためにソース値として渡されます。

シグネチャ:

orcl:lookup-dvm(dvmName as string, sourceColumn as string, sourceValue as string, targetColumn as string, defaultValue as string)

引数:

  • dvmName: DVM名。

  • sourceColumn: ソース列名。

  • sourceValue: ソース値(XSLTトランスフォーメーションのソース文書にバインドされたXPath式)。

  • targetColumn: ターゲット列名。

  • defaultValue: 値がみつからない場合は、デフォルト値が返されます。

例:

アメリカ国内の州名を略称から完全名に変換するとします。

orcl:lookup-dvm('State Code','code','CA','state','Not Found')

この場合、略称CACaliforniaという完全名に変換しようとします。デフォルト値は、Not Foundです。

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.1.4 lookup-xml

この関数では、XMLファイル(docURL)において親XPath(parentXPath)、キーXPath(keyXPath)およびキー値(key)が指定されたlookupXPathで定義される要素の文字列値が返されます。

例: orcl:lookup-xml('file:/d:/country_data.xml', '/Countries/Country', 'Abbreviation', 'FullName', 'UK')の場合、ファイルD:¥country_data.xmlAbbreviation = 'UK'である/Countries/Countryの子要素FullNameの値が返されます。

シグネチャ:

orcl:lookup-xml(docURL, parentXPath, keyXPath, lookupXPath, key)

引数:

  • docURL: XMLファイル

  • parentXPath: 親XPath

  • keyXPath: キーXPath

  • lookupXPath: ルックアップXPath

  • key: キー値

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.2 BPEL拡張関数

この項では、次の関数について説明します。

D.2.1 getLinkStatus

この関数では、リンクのステータスを示すブール値が返されます。リンクのステータスが正である場合、値はtrueです。負の場合は、falseです。この関数は、結合条件内でのみ使用できます。

linkName引数は、結合条件に関連付けられたアクティビティの受信リンクの名前を参照します。

シグネチャ:

bpws:getLinkStatus ('linkName')

引数:

  • variableName: データのソース変数

  • propertyName: プロパティのQName

プロパティID:

  • namespace-uri: http://schemas.xmlsoap.org/ws/2003/03/business-process/

  • namespace-prefix: bpws

D.2.2 getVariableData

この関数では、BPEL変数から任意の値が抽出されます。

第1引数のみが存在する場合、変数の値が取得されます。この場合、この変数は、XMLスキーマの単純型または要素を使用して定義されている必要があります。それ以外の場合、この関数の戻り値は、メッセージ・タイプのパート全体(第2引数が存在し、第3引数が存在しない場合)またはlocationPathに基づく選択結果(これらのオプション引数が両方とも存在する場合)を示す単一ノードが含まれるノードセットになります。指定したlocationPathによって選択されるノードセットのサイズが実行時に選択されるノードセットのサイズとは異なる場合、標準フォルトbpws:selectionFailureがスローされます。

シグネチャ:

bpws:getVariableData ('variableName', 'partName'?, 'locationPath'?)

引数:

  • variableName: データのソース変数

  • partName: 変数全体のうち、選択するパート(オプション)

  • locationPath: パートを表すドキュメント・フラグメント内のサブツリーに対して、ルートを明確にした絶対ロケーション・パスを指定します(/により、パート全体を表す、ドキュメント・フラグメントのルートを表します。オプションです)。

プロパティID:

  • namespace-uri: http://schemas.xmlsoap.org/ws/2003/03/business-process/

  • namespace-prefix: bpws

D.2.3 getVariableProperty

この関数では、BPEL変数から任意の値が抽出されます。

指定したプロパティによって選択されるノードセットのサイズが実行時に選択されるノードセットのサイズとは異なる場合、標準フォルトbpws:selectionFailureがスローされます。

シグネチャ:

bpws:getVariableProperty ('variableName', 'propertyname')

引数:

  • variableName: データのソース変数

  • propertyName: プロパティのQName

  • locationPath: パートを表すドキュメント・フラグメント内のサブツリーに対して、ルートを明確にした絶対ロケーション・パスを指定します(/により、パート全体を表す、ドキュメント・フラグメントのルートを表します。オプションです)。

プロパティID:

  • namespace-uri: http://schemas.xmlsoap.org/ws/2003/03/business-process/

  • namespace-prefix: bpws

D.3 BPEL XPath拡張関数

この項では、次の関数について説明します。

D.3.1 addQuotes

この関数では、一重引用符が追加されたstringの内容が返されます。

シグネチャ:

ora:addQuotes(string)

引数:

  • string: 引用符が追加される文字列

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.2 appendToList


注意:

appendToList関数を引き続き使用することもできますが、ノード・リストにデータを追加する場合はassignアクティビティのbpelx:append拡張を使用することをお薦めします。

この関数では、ノード・リストへの追加が行われます。NULLまたは空のノード・リストを追加先とすることはできません。

シグネチャ:

ora:appendToList('variableName', 'partName'?, 'locationPath'?, Object)

引数:

  • variableName: データのソース変数

  • partName: 変数全体のうち、選択するパート(オプション)

  • locationPath: パートを表すドキュメント・フラグメント内のサブツリーに対して、ルートを明確にした絶対ロケーション・パスを指定します(/により、パート全体を表す、ドキュメント・フラグメントのルートを表します。オプションです)。

  • Object: リストまたは単一の項目を指定できます。リストを指定した場合、リスト内の各項目が追加されます。追加される各項目は、要素、または作成するノードの文字列値を持つ要素です。

プロパティID:

  • deprecated

    bpelx:copyListまたはbpelx:append拡張アクティビティを使用して、リストへの追加を行います。この拡張アクティビティについては、サンプルSOA_Oracle_Home¥bpel¥samples¥tutorials¥126.DataAggregatorを参照してください。

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.3 copyList


注意:

copyList関数を引き続き使用することもできますが、ノード・リストまたはノードのコピーにはbpelx:copyList拡張を使用することをお薦めします。

この関数では、ノード・リストまたはノードがコピーされます。NULLまたは空のノード・リストをコピー先とすることはできません。

シグネチャ:

ora:copyList('variableName', 'partName'?, 'locationPath'?, Object)

引数:

  • variableName: データのソース変数

  • partName: 変数全体のうち、選択するパート(オプション)

  • locationPath: パートを表すドキュメント・フラグメント内のサブツリーに対して、ルートを明確にした絶対ロケーション・パスを指定します(/により、パート全体を表す、ドキュメント・フラグメントのルートを表します。オプションです)。

  • Object: リストまたは単一の項目を指定できます。リストを指定した場合、リスト内の各項目がコピーされます。コピーされる各項目は、要素、または作成するノードの文字列値を持つ要素です。

プロパティID:

  • deprecated

    bpelx:copyList拡張アクティビティを使用して、リストへの追加を行います。この拡張アクティビティについては、サンプルSOA_Oracle_Home¥bpel¥samples¥tutorials¥126.DataAggregatorを参照してください。

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.4 countNodes


注意:

countNodes関数を引き続き使用することもできますが、要素のサイズを整数として返すにはXPathのcount()関数のバージョン1.0を使用することをお薦めします。

この関数では、要素のサイズが整数として返されます。

シグネチャ:

ora:countNodes('variableName', 'partName'?, 'locationPath'?)

引数:

  • variableName: データのソース変数

  • partName: 変数全体のうち、選択するパート(オプション)

  • locationPath: パートを表すドキュメント・フラグメント内のサブツリーに対して、ルートを明確にした絶対ロケーション・パスを指定します(/により、パート全体を表す、ドキュメント・フラグメントのルートを表します。オプションです)。

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.5 doc

この関数では、XMLファイルのコンテンツが返されます。

シグネチャ:

ora:doc('fileName','xpath'?)

引数:

  • fileName: XMLファイルの名前

  • xpath: ファイルへのパス

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.6 formatDate

この関数では、標準XSD日付書式が出力用の文字に変換されます。

シグネチャ:

ora:formatDate('dateTime', 'format')

引数:

  • dateTime: XSD書式の日付関連値を指定します。文字列でない引数の場合、この関数は、string()関数を実行した場合と同じように動作します。引数が日付ではない場合、出力は空の文字列になります。引数が有効なXSD日付だが一部のフィールドが空の場合は、未指定のフィールドへの入力が試みられます。たとえば、2003-06-10T15:56:00のようになります。

  • format: java.text.SimpleDateFormat書式に従って書式設定された文字列が格納されます。

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora


関連項目:

この関数の使用例は、「日付または時刻の割当て」を参照してください。

D.3.7 generateGUID

一意のGUIDが生成されます。

シグネチャ:

ora:generateGUID()

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.8 getContentAsString

この関数では、要素のコンテンツがXML文字列として返されます。

シグネチャ:

ora:getContentAsString(NodeList elementAsNodeList)

引数:

  • NodeList: ノード・リスト(データのソース)

  • elementAsNodeList: ノード・リストとしての要素

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.9 getConversationId

この関数では、対話IDが返されます。

シグネチャ:

ora:getConversationId()

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.10 getCreator

この関数では、インスタンスの作成者が返されます。

シグネチャ:

ora:getCreator()

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.11 getCurrentDate

この関数では、現在の日付が文字列として返されます。

シグネチャ:

ora:getCurrentDate('format'?)

引数:

  • format: (オプション)文字列を指定します。この文字列がjava.text.SimpleDateFormat書式に従って書式設定されます。

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora


関連項目:

この関数の使用例は、「日付または時刻の割当て」を参照してください。

D.3.12 getCurrentDateTime

この関数では、現在の日時が文字列として返されます。

シグネチャ:

ora:getCurrentDateTime('format'?)

引数:

  • format: (オプション)文字列を指定します。この文字列がjava.text.SimpleDateFormat書式に従って書式設定されます。

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.13 getCurrentTime

この関数では、現在の時刻が文字列として返されます。

シグネチャ:

ora:getCurrentTime('format'?)

引数:

  • format: (オプション)文字列を指定します。この文字列がjava.text.SimpleDateFormat書式に従って書式設定されます。

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.14 getDomainId

この関数では、現在のドメインIDが返されます。

シグネチャ:

ora:getDomainId()

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.15 getElement

この関数では、要素の配列から、indexを使用して要素が返されます。

シグネチャ:

ora:getElement('variableName', 'partName', 'locationPath', index)

引数:

  • variableName: データのソース変数

  • partName: 変数全体のうち、選択するパート(必須)

  • locationPath: パートを表すドキュメント・フラグメント内のサブツリーに対して、ルートを明確にした絶対ロケーション・パスを指定します(/により、パート全体を表す、ドキュメント・フラグメントのルートを表します。必須です)。

  • index: 動的索引値。最初のノードの索引は1です。

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora


関連項目:

この関数の使用例は、「BPEL getElement関数による動的索引付け」を参照してください。

D.3.16 getGroupIdsFromGroupAlias

この関数では、BPELスーツケース・ディスクリプタのTaskServiceAliasesセクションに指定されたグループ・エイリアスに含まれている、ユーザーIDのリストが返されます。

シグネチャ:

ora:getGroupIdsFromGroupAlias(String aliasName)

引数:

  • aliasName: bpel.xmlファイルに定義されているユーザーまたはグループのリストのエイリアス

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.17 getInstanceId

この関数では、インスタンスIDが返されます。

シグネチャ:

ora:getInstanceId()

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.18 getNodeValue

この関数では、DOMノードの値が文字列として返されます。

シグネチャ:

ora:getNodeValue(node)

引数:

  • node: DOMノード

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.19 getNodes

この関数では、ノード・リストが取得されます。これは、ノード・リストが返されないbpws:getVariableDataにかわるものとして実装されました。

シグネチャ:

ora:getNodes('variableName', 'partName'?, 'locationPath'?)

引数:

  • variableName: データのソース変数

  • partName: 変数全体のうち、選択するパート(オプション)

  • locationPath: パートを表すドキュメント・フラグメント内のサブツリーに対して、ルートを明確にした絶対ロケーション・パスを指定します(/により、パート全体を表す、ドキュメント・フラグメントのルートを表します。オプションです)。

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora


関連項目:

「getVariableData」

D.3.20 getPreference

この関数では、BPELスーツケース・ディスクリプタのpreferencesセクションで指定されているプロパティの値が返されます。

シグネチャ:

ora:getPreference(String preferenceName)

引数:

  • preferenceName: BPELスーツケース・ディスクリプタで指定されているプリファレンスの名前

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.21 getProcessId

この関数では、現在のBPELプロセスのIDが返されます。

シグネチャ:

ora:getProcessId()

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.22 getProcessOwnerId

この関数では、プロセスの所有者であるユーザーがBPELスーツケース・ディスクリプタのTaskServiceAliasesセクションで指定されている場合に、そのユーザーのIDが返されます。

シグネチャ:

ora:getProcessOwnerId()

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.23 getProcessURL

この関数では、現在のBPELプロセスのルートURLが返されます。

シグネチャ:

ora:getProcessURL()

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.24 getProcessVersion

この関数では、現在のプロセス・バージョンが返されます。

シグネチャ:

ora:getProcessVersion()

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.25 getUserAliasId

この関数では、BPELスーツケース・ディスクリプタのTaskServiceAliasesセクションで指定されているエイリアスのユーザーIDが返されます。

シグネチャ:

ora:getUserAliasId (String aliasName)

引数:

  • aliasName: bpel.xmlファイルに定義されているユーザーまたはグループのリストのエイリアス

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.26 integer

この関数では、ノードの内容が整数として返されます。

シグネチャ:

ora:integer(node)

引数:

  • node: 入力ノード

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.27 parseEscapedXML

この関数では、文字列がDOMに解析されます。

シグネチャ:

ora:parseEscapedXML(contentString)

引数:

  • contentString: DOMに解析する文字列

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora


関連項目:

この関数の使用例は、「文字列からのXML要素への変換」を参照してください。

D.3.28 processXQuery

この関数では、XQueryトランスフォーメーションの結果が返されます。

シグネチャ:

ora:processXQuery('template','context'?)

引数:

  • template: XSLTテンプレート

  • input: 変換する入力データ

  • properties: bpel.xmlファイルに定義されているプロパティ

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.29 processXSLT

この関数では、Oracle XDK XSLTプロセッサを使用したXSLTトランスフォーメーションの結果が返されます。

シグネチャ:

xdk:processXSLT('template','input','properties'?)

引数:

  • template: XSLTテンプレート

  • input: 変換する入力データ

  • properties: bpel.xmlファイルに定義されているプロパティ

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: xdk


関連項目:


D.3.30 processXSQL

この関数では、XSQLリクエストの結果が返されます。

シグネチャ:

ora:processXSQL('template','input','properties'?)

引数:

  • template: XSLTテンプレート

  • input: 変換する入力データ

  • properties: bpel.xmlファイルに定義されているプロパティ

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.31 readBinaryFromFile

この関数では、ファイルからデータが読み取られます。

シグネチャ:

ora:readBinaryFromFile(fileName)

引数:

  • fileName: データの読取り元ファイル名

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.3.32 readFile

この関数では、ファイルのコンテンツが返されます。

シグネチャ:

ora:readFile('fileName','nxsdTemplate'?,'nxsdRoot'?)

引数:

  • fileName: ファイルの名前。または、HTTP URLを指定することもできます。

    この関数では、デフォルトでファイルがプロセスのスーツケースJARファイルからの相対パスで読み取られます。読み取るファイルを相対パスでないディレクトリ・パスで指定する場合は、絶対パスであることを示す追加のディレクトリのスラッシュ(/)を指定する必要があります。次に例を示します。

    ora:readFile('file:///c:/temp/test.doc')
    
    

    2つのディレクトリのスラッシュ(//)しか指定しない場合、次のようなエラーを受け取ります。

    XPath expression failed to execute.
    Error while processing xpath expression,
    the expression is "ora:readFile("file://c:/temp/test.doc")",
    the reason is c. Please verify the xpath query.
    
    
  • nxsdTemplate: 出力のNXSDテンプレート

  • nxsdRoot: NXSDルート

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora


関連項目:

この関数の使用例は、「電子メール添付の設定」を参照してください。

D.3.33 writeBinaryToFile

この関数では、変数(または変数のパート)のバイナリ・バイトが指定のファイル名を持つファイルに書き込まれます。

シグネチャ:

ora:writeBinaryToFile(varName[, partName][, query])

引数:

  • varName: 変数名

  • partName: messageType変数の場合はパート名

  • query: ルート要素の子に対する問合せ文字列

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.4 データベース関数

この項では、次の関数について説明します。

D.4.1 lookup-table

この関数では、パラメータから生成されたSQL問合せによる文字列が返されます。

この文字列は、次のSQL問合せを実行することによって取得されます。

SELECT outputColumn FROM table WHERE inputColumn = key

このSQL問合せの対象は、JDBC接続文字列(jdbc:oracle:thin:username/password@host:port:sid)またはデータソースJNDI識別子のいずれかのデータソースです。Oracle Thin Driverがサポートされるのは、JDBC接続文字列が使用される場合のみです。

例: orcl:lookup-table('employee','id','1234','last_name','jdbc:oracle:thin:scott/tiger@localhost:1521:ORCL')

シグネチャ:

orcl:lookup-table(table, inputColumn, key, outputColumn, datasource)

引数:

  • table: データの抽出元となる表

  • inputColumn: 表内の列

  • key: キー

  • outputColumn: データを出力する列

  • datasource: データのソース

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.4.2 query-database

この関数では、指定されたデータベースに対してSQL問合せが実行され、ノードセットが返されます。

シグネチャ:

orcl:query-database(sqlquery as string, rowset as boolean, row as boolean, datasource as string)

引数:

  • sqlquery: 実行するSQL問合せ。

  • rowset: 行を要素で囲むかどうかを指定します。

  • row: 各行を要素で囲むかどうかを指定します。

  • datasource: データベースのJDBC接続文字列(jdbc:oracle:thin:username/password@host:port:sid)またはJNDI名。

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.4.3 sequence-next-val

この関数では、Oracleの順序の次の値が返されます。

この、順序における次の値を取得するため、次が実行されます。

SELECT sequence.nextval FROM dual

この実行の対象は、JDBC接続文字列(jdbc:oracle:thin:username/password@host:port:sid)またはデータソースJNDI識別子のいずれかのデータソースです。Oracle Thin Driverがサポートされるのは、JDBC接続文字列が使用される場合のみです。

例: orcl:sequence-next-val('employee_id_sequence','jdbc:oracle:thin:scott/tiger@localhost:1521:ORCL')

シグネチャ:

orcl:sequence-next-val(sequence as string, datasource as string)

引数:

  • sequence: データベース内の順序番号

  • datasource: JDBCの接続文字列またはデータソースのJNDI識別子

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.5 日付関数

この項では、次の関数について説明します。

D.5.1 add-dayTimeDuration-to-dateTime

この関数では、指定された期間にdateTimeを加算した新しい日時の値が返されます。

期間の値が負の場合、返される値はdateTimeより前の日時になります。

シグネチャ:

xp20:add-dayTimeDuration-from-dateTime(dateTime as string, duration as string)

引数:

  • dateTime as string: 期間を加算するdateTime(文字列書式)

  • duration as string: dateTimeに加算する期間(期間が負の場合は、dateTimeから引く期間。文字列書式)

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.5.2 current-date

この関数では、現在の日付がISO書式YYYY-MM-DDで返されます。

シグネチャ:

xp20:current-date(object)

引数:

  • Object: 標準書式の時刻

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.5.3 current-dateTime

この関数では、現在のdatetime-valueがISO書式CCYY-MM-DDThh:mm:ssTZDで返されます。

シグネチャ:

xp20:current-dateTime(object)

引数:

  • object: 標準書式の時刻

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20


関連項目:

この関数の使用例は、「動的な値の実行時設定」を参照してください。

D.5.4 current-time

この関数では、現在の時刻がISO書式で返されます。この書式はhh:mm:ssTZDです。

シグネチャ:

xp20:current-time(object)

引数:

  • object: 標準書式の時刻

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.5.5 day-from-dateTime

この関数では、dateTimeに含まれる日の情報が返されます。デフォルトの日は1です。

シグネチャ:

xp20:day-from-dateTime(object)

引数:

  • object: 文字列としての標準書式の時刻

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.5.6 format-dateTime

この関数では、指定した書式を使用して書式設定されたdateTimeの文字列が返されます。

シグネチャ:

xp20:format-dateTime(dateTime as string, format as string)

引数:

  • dateTime: dateTime。書式設定の対象にします。

  • format: 出力の書式。

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.5.7 hours-from-dateTime

この関数では、dateTimeに含まれている時刻の時間情報が返されます。デフォルトの時間は0です。

シグネチャ:

xp20:hours-from-dateTime(dateTime as string)

引数:

  • dateTime as string: dateTime

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.5.8 implicit-timezone

この関数では、現在のタイムゾーンが、協定世界時(UTC)からの偏差を示すISO書式+/- hh:mmで返されます。

シグネチャ:

xp20:implicit-timezone(object)

引数:

  • object: 標準書式の時刻

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.5.9 minutes-from-dateTime

この関数では、dateTimeに含まれる分情報が返されます。デフォルトの分は0です。

シグネチャ:

xp20:minutes-from-dateTime(dateTime as string)

引数:

  • dateTime as string: dateTime

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.5.10 month-from-dateTime

この関数では、dateTimeに含まれる月情報が返されます。デフォルトの月は1(1月)です。

シグネチャ:

xp20:month-from-dateTime(dateTime as string)

引数:

  • dateTime as string: 書式設定の対象となるdateTime

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.5.11 seconds-from-dateTime

この関数では、dateTimeに含まれる秒情報が返されます。デフォルトの秒は0です。

シグネチャ:

xp20:seconds-from-dateTime(dateTime as string)

引数:

  • dateTime as a string: 文字列としてのdateTime

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.5.12 subtract-dayTimeDuration-from-dateTime

この関数では、dateTimeから期間を引いて、新規のdateTimeが返されます。

期間の値が負の場合、返されるdateTime値は指定したinput-dateTimeより後の日時になります。

シグネチャ:

xp20:subtract-dayTimeDuration-from-dateTime(dateTime as string, duration as string)

引数:

  • dateTime as string: 期間を引く対象となるdateTime(文字列書式)

  • duration as string: dateTimeから引く期間(期間が負の場合はdateTimeに加算する期間。文字列書式)

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.5.13 timezone-from-dateTime

この関数では、dateTimeに含まれるタイムゾーン情報が返されます。デフォルトのタイムゾーンはGMT+00:00です。

シグネチャ:

xp20:timezone-from-dateTime(dateTime as string)

引数:

  • dateTime as string: この関数にタイムゾーンを返させるdateTime

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.5.14 year-from-dateTime

この関数では、dateTimeに含まれる年情報が返されます。

シグネチャ:

xp20:year-from-dateTime(dateTime as string)

引数:

  • dateTime: dateTime

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.6 算術関数

この項では、次の関数について説明します。

D.6.1 abs

この関数では、inputNumberの絶対値が返されます。inputNumberが負でない場合は、inputNumber自体が返されます。inputNumberが負である場合、inputNumberからマイナス符号をとった値が返されます。

例: abs(-1)の場合、1が返されます。

シグネチャ:

xp20:abs(inputNumber as number)

引数:

  • inputNumber as number: 絶対値を返す対象となる数値

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.7 アイデンティティ・サービス関数

この項では、次の関数について説明します。

D.7.1 getDefaultRealmName

この関数では、デフォルトのレルム名が返されます。

シグネチャ:

ids:getDefaultRealmName()

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath

  • namespace-prefix: ids

D.7.2 getGroupProperty

この関数では、指定したグループのプロパティ値が返されます。グループまたは属性が存在しない場合、NULLが返されます。

シグネチャ:

ids:getGroupProperty(groupName, attributeName, realmName)

引数:

  • groupName: グループ名。

  • attributeName: グループ属性名。属性名の値は、次のいずれかになります。

    1. name

    2. displayName

    3. description

    4. email

    アイデンティティ・サービスがLDAP providerTypeまたはJAZN LDAPベースのプロバイダを使用する場合は、属性で検索できるようにLDAPサーバーを構成します。

  • realmName: レルム名。この引数はオプションです。指定しなければ、デフォルト・レルムとみなされます。

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath

  • namespace-prefix: ids

D.7.3 getManager

この関数では、指定したユーザーのマネージャが取得されます。ユーザーが存在しないか、ユーザーにマネージャがいない場合、NULLが返されます。

シグネチャ:

ids:getManager(userName, realmName)

引数:

  • userName: ユーザー名。

  • realmName: レルム名。この引数はオプションです。指定しなければ、デフォルト・レルムとみなされます。

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath

  • namespace-prefix: ids

D.7.4 getReportees

この関数では、ユーザーの報告先が取得されます。ユーザーが存在しない場合、NULLが返されます。この関数では、ノードのリストが返されます。リストの各ノードはuserです。

シグネチャ:

ids:getReportees(userName, upToLevel, realmName)

引数:

  • userName: ユーザー名。

  • upToLevel: 結果に含める間接報告先のレベル数を定義します。値が1であれば、直接報告先のみが返されます。値が-1であれば、全レベルの報告先が返されます。値xsd:numberまたは文字列('1'など)を含む要素を使用できます。

  • realmName: レルム名。この引数はオプションであり、指定しなければデフォルト・レルムとみなされます。

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath

  • namespace-prefix: ids

D.7.5 getSupportedRealmNames

この関数では、サポート対象のレルム名が返されます。

シグネチャ:

ids:getSupportedRealms()

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath

  • namespace-prefix: ids

D.7.6 getUserProperty

この関数では、ユーザーのプロパティが返されます。ユーザーまたは属性が存在しない場合、NULLが返されます。

シグネチャ:

ids:getUserProperty(userName, attributeName, realmName)

引数:

  • userName: ユーザー名。

  • attributeName: ユーザー属性名。属性名の値は、次のいずれかになります。

    1. name

    2. displayName

    3. description

    4. title

    5. firstName

    6. middleName

    7. lastName

    8. workPhone

    9. homePhone

    10. mobile

    11. pager

    12. fax

    アイデンティティ・サービスがLDAP providerTypeまたはJAZN LDAPベースのプロバイダを使用する場合は、属性で検索できるようにLDAPサーバーを構成します。

  • realmName: レルム名。この引数はオプションです。指定しなければ、デフォルト・レルム名とみなされます。

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath

  • namespace-prefix: ids


関連項目:

例は、「電子メール・アドレスおよび電話番号の動的設定」を参照してください。

D.7.7 getUserRoles

この関数は、ユーザー・ロールを取得する際に使用します。この関数では、roleTypeに応じて、オブジェクト(アプリケーション・ロールまたはグループ)のリストが返されます。ユーザーまたはロールが存在しない場合、NULLが返されます。

シグネチャ:

ids:getUserRoles(userName, roleType, direct)

引数:

  • userName: ユーザー名。

  • roleType: ロール・タイプ。3つの値(ApplicationRoleEnterpriseRoleまたはAnyRole)のいずれかです。

  • direct: 直接ロールをフェッチするか間接ロールをフェッチするかを示すブール・フラグ。この引数はオプションです。指定しなければ、直接ロールのみがフェッチされます。値xsd:booleanまたは文字列'true'/'false'を含む要素を使用できます。

プロパティID:

  • namespace-uri:http://xmlns.oracle.com/bpel/services/IdentityService

  • namespace-prefix: ids

D.7.8 getUsersInGroup

この関数は、グループのユーザーを取得する際に使用します。グループが存在しない場合、NULLが返されます。この関数では、ノードのリストが返されます。リストの各ノードは、userに相当します。

シグネチャ:

ids:getUsersInGroup(groupName, direct, realmName)

引数:

  • groupName: グループ名。

  • direct: ブール・フラグ。trueの場合、この関数では直接のユーザー権限受領者が返され、それ以外の場合はすべてのユーザー権限受領者が返されます。値xsd:booleanまたは文字列'true'/'false'を含む要素を使用できます。

  • realmName: レルム名。この引数はオプションです。指定しなければ、デフォルト・レルム名とみなされます。

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath

  • namespace-prefix: ids

D.7.9 isUserInRole

この関数では、指定されたロールがユーザーに付与されているかどうかが検証され、ブール値trueまたはfalseが返されます。ユーザーが存在しない場合、NULLが返されます。

シグネチャ:

ids:isUserInRole(userID, roleName, realmName)

引数:

  • userID: ユーザー名。

  • roleName: ロール名またはグループ名。

  • realmName: レルム名。この引数はオプションです。指定しなければ、デフォルト・レルム名とみなされます。

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath

  • namespace-prefix: ids

D.7.10 lookupGroup

この関数は、グループを取得する際に使用します。グループが存在しない場合、NULLが返されます。

シグネチャ:

ids:lookupGroup(groupName, realmName)

引数:

  • groupName: グループ名。

  • realmName: レルム名。この引数はオプションです。指定しなければ、デフォルト・レルム名とみなされます。

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath

  • namespace-prefix: ids

D.7.11 lookupUser

この関数は、ユーザー・オブジェクトを取得する際に使用します。ユーザーが存在しない場合、NULLが返されます。

シグネチャ:

ids:lookupUser(userName, realmName)

引数:

  • userName: ユーザー名。

  • realmName: レルム名。この引数はオプションです。指定しなければ、デフォルト・レルム名とみなされます。

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath

  • namespace-prefix: ids

D.8 ワークフロー・サービス関数

この項では、次の関数について説明します。

D.8.1 clearTaskAssignees

この関数では、現在のタスク割当て先が消去されます。

シグネチャ:

hwf:clearTaskAssignees(taskID)

引数:

  • task: タスクのID

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath

  • namespace-prefix: hwf

D.8.2 createWordMLDocument

この関数では、Microsoft Word ML文書がbase 64でエンコードされた文字列として作成されます。

シグネチャ:

hwf:createWordMLDocument(node, xsltURI)

引数:

  • node: ノード

  • xsltURI: ノード(第1引数)からMicrosoft Word MLへの変換に使用されるXSLT

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath

  • namespace-prefix: hwf

D.8.3 getNotificationProperty

この関数は、通知プロパティを取得する際に使用します。この関数は、通知ごとに対応する値と評価されます。この関数は、通知コンテンツのXPath式でのみ使用してください。他の場所で使用すると、nullが返されます。

シグネチャ:

hwf:getNotificationProperty(propertyName)

引数:

  • propertyName: 通知プロパティ名。次の値のいずれかです。

    • recipient: 通知の受信者

    • recipientDisplay: 受信者の表示名

    • taskAssignees: タスク割当て先

    • taskAssigneesDisplay: タスク割当て先の表示名

    • locale: 受信者のロケール

    • taskId: 通知対象となるタスクのタスクID

    • taskNumber: 通知対象となるタスクのタスク番号

    • appLink: Oracle BPEL Worklistアプリケーションのタスク詳細ページへのHTMLリンク

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath

  • namespace-prefix: hwf


関連項目:


D.8.4 getNumberOfTaskApprovals

この関数では、タスクが承認された回数が計算されます。

シグネチャ:

hwf:getNumberOfTaskApprovals(taskId)

引数:

  • taskId: タスクのID

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath

  • namespace-prefix: hwf

D.8.5 getPreviousTaskApprover

この関数では、タスクの前承認者が取得されます。

シグネチャ:

hwf:getPreviousTaskApprover(taskId)

引数:

  • taskId: タスクのID

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath

  • namespace-prefix: hwf

D.8.6 getTaskAttachmentByIndex

この関数では、指定された索引にあるタスク添付が取得されます。

シグネチャ:

hwf:getTaskAttachmentByIndex(taskId, attachmentIndex)

引数:

  • taskId: タスクのID。

  • attachmentIndex: 添付の索引。索引は1から始まります。attachmentIndex引数には、値が索引番号の文字列として評価されるノードを使用できます(すべてのノード値は文字列です)。静的に指定する場合は、'1'として指定できます。

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath

  • namespace-prefix: hwf

D.8.7 getTaskAttachmentByName

この関数では、添付名によってタスク添付が取得されます。

シグネチャ:

hwf:getTaskAttachmentByName(taskId, attachmentName)

引数:

  • taskId: タスクのID

  • attachmentName: 添付の名前

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath

  • namespace-prefix: hwf

D.8.8 getTaskAttachmentContents

この関数では、添付名によってタスクの添付コンテンツが取得されます。

シグネチャ:

hwf:getTaskAttachmentContents(taskId, attachmentName)

引数:

  • taskId: タスクのID

  • attachmentName: 添付の名前

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath

  • namespace-prefix: hwf

D.8.9 getTaskAttachmentsCount

この関数では、タスク添付の数が取得されます。

シグネチャ:

hwf:getTaskAttachmentsCount(taskId)

引数:

  • taskId: タスクID

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath

  • namespace-prefix: hwf

D.8.10 getTaskResourceBundleString

この関数では、タスク定義に関連付けられているリソース・バンドルから国際化されたリソース値が返されます。

シグネチャ:

hwf:getTaskResourceBundleString(taskId, key, locale?)

引数:

  • taskId: タスクのID。

  • key: リソースへのキー。

  • locale: (オプション)ロケール。この値はデフォルトでシステム・ロケールに設定されます。この場合、リソース・バンドルからの文字列を含むネームスペースhttp://xmlns.oracle.com/bpel/services/taskService内のresourceString XML要素が返されます。

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath

  • namespace-prefix: hwf


関連項目:

この関数の詳細は、「多言語設定の指定」および「異なる言語によるメッセージの構成」を参照してください。

D.8.11 wfDynamicGroupAssign

この関数は、指定の割当てパターンに従って選択されたアイデンティティ・サービス・グループの名前を取得する際に使用します。グループは、指定のグループの下位グループ(グループ名を1つ指定した場合)またはグループ・リスト(ユーザー名リストを指定した場合)から選択されます。アイデンティティ・サービスが複数レルムを使用するように構成されている場合は、グループのレルム名も指定する必要があります。さらに割当てパターン固有のパラメータも指定できます。これらの付加的パラメータはオプションで、使用する割当てパターンの詳細によって異なります。

この関数には2つのシグネチャがあります。

シグネチャ1:

hwf:wfDynamicGroupAssign('patternName','groupName','realmName'?,'patternParam1'?,'patternParam2'?,...,'patternParamN'?)

引数1:

  • patternName: 割当てパターン名(ROUND_ROBINなど)

  • groupName: 下位グループの選択元となるグループの名前

  • realmName: グループが属するアイデンティティ・サービス・レルム名

  • patternParam1...patternParamN: 割当てパターン実装に必要な付加的パラメータ(パターンに応じてオプション)

シグネチャ2:

hwf:wfDynamicGroupAssign('patternName','groupList','realmName'?,'patternParam1'?,'patternParam2'?,...,'patternParamN'?)

引数2:

  • patternName: 割当てパターン名(ROUND_ROBINなど)

  • groupList: グループの選択元となるグループ・リスト

  • realmName: グループが属するアイデンティティ・サービス・レルム名

  • patternParam1...patternParamN: 割当てパターン実装に必要な付加的パラメータ(パターンに応じてオプション)

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath

  • namespace-prefix: hwf

D.8.12 wfDynamicUserAssign

この関数では、指定の割当てパターンに従って選択されたアイデンティティ・サービス・ユーザーの名前が返されます。ユーザーは、指定のグループの下位ユーザー(グループ名を1つ指定した場合)またはユーザー・リスト(ユーザー名リストを指定した場合)から選択されます。アイデンティティ・サービスが複数レルムを使用するように構成されている場合は、グループとユーザーのレルム名も指定する必要があります。さらに割当てパターン固有のパラメータも指定できます。これらの付加的パラメータはオプションで、使用する割当てパターンの詳細によって異なります。

この関数には2つのシグネチャがあります。

シグネチャ1:

hwf:wfDynamicUserAssign('patternName','groupName','realmName'?,'patternParam1'?,....,'patternParam2'?,...,'patternParamN'?)

引数1:

  • patternName: 割当てパターン名(ROUND_ROBINなど)

  • groupName: 下位ユーザーの選択元となるグループの名前

  • realmName: グループが属するアイデンティティ・サービス・レルム名

  • patternParam1 ... patternParamN: 割当てパターン実装に必要な付加的パラメータ(パターンに応じてオプション)

シグネチャ2:

hwf:wfDynamicUserAssign(patternName,userList,realmName?,patternParam1?,patternParam2?,...,patternParamN?)

引数2:

  • patternName: 割当てパターン名(ROUND_ROBINなど)

  • userList: ユーザーの選択元となるユーザー・リスト

  • realmName: ユーザーが属するアイデンティティ・サービス・レルム名

  • patternParam1...patternParamN: 割当てパターン実装に必要な付加的パラメータ(パターンに応じてオプション)

プロパティID:

  • namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath

  • namespace-prefix: hwf

D.9 文字列関数

この項では、次の関数について説明します。

D.9.1 compare

この関数では、inputStringcompareStringの両文字列の各文字のUnicode値が比較され、これらの文字列間の辞書的な差異が返されます。

inputStringが辞書的にcompareStringより前にある場合、-1が返されます。

inputStringcompareStringが等しい場合、0が返されます。

inputStringが辞書的にcompareStringより後ろにある場合、1が返されます。

例: xp20:compare('Audi', 'BMW')の場合、-1が返されます。

シグネチャ:

xp20:compare(inputString as string, compareString as string)

引数:

  • variableName: データのソース変数

  • propertyName: プロパティの修飾名(QName)

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.9.2 compare-ignore-case

この関数では、大/小文字を無視してinputStringcompareStringの両文字列の各文字のUnicode値が比較され、これらの文字列間の辞書的な差異が返されます。

inputStringが辞書的にcompareStringより前にある場合、-1が返されます。

inputStringcompareStringが等しい場合、0が返されます。

inputStringが辞書的にcompareStringより後ろにある場合、1が返されます。

例: xp20:compare-ignore-case('Audi','bmw')の場合、-1が返されます。

シグネチャ:

xp:compare-ignore-case(inputString as string, compareString as string)

引数:

  • inputString as string: 入力文字列

  • CompareString as string: 入力文字列と比較される文字列

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.9.3 create-delimited-string

この関数では、nodeSetを基に作成されたデリミタ区切りの文字列が返されます。

シグネチャ:

orcl:create-delimited-string(nodeSet as node-set, delimiter as string)

引数:

  • nodeSet: デリミタ区切りの文字列に変換するノード・セット

  • delimiter: 出力文字列において項目を区切る文字(カンマやセミコロンなど)

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.9.4 ends-with

この関数では、inputStringsearchStringで終わる場合、trueが返されます。

例: xp20:ends-with('XSL Map','Map')の場合、trueが返されます。

シグネチャ:

xp20:ends-with(inputString as string, searchString as string)

引数:

  • inputString: 検索されるデータの文字列

  • searchString: 検索対象の文字列

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.9.5 format-string

この関数では、渡した引数を使用して書式設定されたメッセージが返されます。少なくとも1つの引数が必要であり、最大10の引数がサポートされます。

例: orcl:format-string('{0} + {1} = {2}','2','2','4')の場合、2 + 2 = 4が返されます。

シグネチャ:

orcl:format-string(string,string,string...)

引数:

  • string: 書式設定された出力に使用する文字列の1つ

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.9.6 get-content-as-string

この関数では、入力要素のXML表現が返されます。

シグネチャ:

orcl:get-content-as-string(element as node-set)

引数:

  • element as node-set: 入力要素。これのXML表現を返させます。

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.9.7 get-localized-string

この関数では、キーに対してロケール固有の文字列が返されます。この関数では、言語、国、変数およびリソース・バンドルを使用して、正しいリソース・バンドルが特定されます。

リソース・バンドルは、resourceBaseURLに対してresourceLocationを解決することによって取得されます。URLは、/で終わる場合にかぎりディレクトリとみなされます。

使用方法: orcl:get-localized-string(resourceBaseURL as string, resourceLocation as string, resource bundle as string, language as string, country as string, variant as string, key as string)

例: orcl:get-localized-string('file:/c:/','','MyResourceBundle','en','US','','MSG_KEY')の場合、C:¥ディレクトリにあるリソース・バンドルMyResourceBundleを使用して、ロケール固有の文字列が返されます。

シグネチャ:

orcl:get-localized-string(resourceURL,resourceLocation,resourceBundleName,language,country,variant,messageKey)

引数:

  • resourceURL: リソースのURL

  • resourceLocation: リソースのサブディレクトリの場所

  • resourceBundleName: リソース・バンドルが含まれるzipファイルの名前

  • language: ローカライズされる出力で使用する言語

  • country: ローカライズされる出力で使用する国

  • variant: ローカライズされる出力で使用する言語変数

  • messageKey: リソース・バンドルのメッセージ・キー

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl


関連項目:

この関数の使用例は、「異なる言語によるメッセージの構成」を参照してください。

D.9.8 index-within-string

この関数では、inputStringの中に出現するsearchStringの、ゼロから始まる索引の最初の索引が返されます。

searchStringが見つからない場合は、-1が返されます。

例: orcl:index-within-string('ABCABC, 'B')の場合、1が返されます。

シグネチャ:

orcl:index-within-string(inputString as string, searchString as string)

引数:

  • inputString: 検索される文字列

  • searchString: inputStringから検索する文字列

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.9.9 last-index-within-string

この関数では、inputStringの中に出現するsearchStringの、ゼロから始まる索引の最後の索引が返されます。

searchStringが見つからない場合は、-1が返されます。

例: orcl:last-index-within-string('ABCABC', 'B')の場合、4が返されます。

シグネチャ:

orcl:last-index-within-string(inputString as string, searchString as string)

引数:

  • inputString: 検索される文字列

  • searchString: inputStringから検索する文字列

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.9.10 left-trim

この関数では、inputStringから先頭の空白文字をすべて削除した値が返されます。

例: orcl:left-trim(' account ')の場合、accountが返されます。

シグネチャ:

orcl:left-trim(inputString)

引数:

  • inputString: 左側を切り捨てる文字列

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl


関連項目:

XSLTマッパーにおけるこの関数の使用例は、「関数の連鎖」を参照してください。

D.9.11 lower-case

この関数では、inputStringの文字をすべて小文字に変換した値が返されます。

例: xp20:lower-case('ABc!D')の場合、abc!dが返されます。

シグネチャ:

xp20:lower-case(inputString)

引数:

  • inputString: 入力文字列

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.9.12 matches

この関数では、intputStringが正規表現パターンregexPatternに一致する場合にtrueが返されます。

例: xp20:matches('abracadabra', '^a.*a$')の場合、trueが返されます。

シグネチャ:

xp20:matches(intputString, regexPattern)

引数:

  • inputString: 入力文字列

  • regexPattern: 正規表現パターン

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.9.13 right-trim

この関数では、inputStringから末尾の空白文字をすべて削除した値が返されます。

例: orcl:right-trim(' account ')の場合、accountが返されます。

シグネチャ:

orcl:right-trim(inputString as string)

引数:

  • inputString: 右側を切り捨てる入力文字列

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl


関連項目:

XSLTマッパーにおけるこの関数の使用例は、「関数の連鎖」を参照してください。

D.9.14 upper-case

この関数では、inputStringの文字をすべて大文字に変換した値が返されます。

例: xp20:upper-case('abCd0')の場合、ABCD0が返されます。

シグネチャ:

xp20:upper-case(inputString as string)

引数:

  • inputString: 入力文字列

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20

  • namespace-prefix: xp20

D.10 ユーティリティ関数

この項では、次の関数について説明します。

D.10.1 authenticate

この関数では、Lightweight Directory Access Protocol(LDAP)ユーザーが認証され、trueまたはfalseが返されます。

シグネチャ:

ldap:authenticate('properties','userId','password')

引数:

  • properties: directories.xmlファイルに指定されたディレクトリの名前

  • userId: LDAPユーザーのID

  • password: LDAPユーザーのパスワード

プロパティID:

  • namespace-uri:http://schemas.oracle.com/xpath/extension/ldap

  • namespace-prefix: ldap

D.10.2 batchProcessActive

この関数では、バッチ内のアクティブ・プロセス数が返されます。

シグネチャ:

ora:batchProcessActive(String batchId, String processId)

引数:

  • batchId: バッチのID

  • processId: プロセスのID

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.10.3 batchProcessCompleted

この関数では、バッチ内の完了プロセス数が返されます。

シグネチャ:

ora:batchProcessCompleted(String batchId, String processId)

引数:

  • batchId: バッチのID

  • processId: プロセスのID

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.10.4 format

この関数では、Javaのメッセージ書式を使用してメッセージが書式設定されます。

シグネチャ:

ora:format(formatStrings, args+)

引数:

  • formatStrings: 書式設定するデータの文字列

  • args+:

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.10.5 genEmptyElem

この関数では、指定されたQNameに対して空要素のリストが生成されます。

シグネチャ:

ora:genEmptyElem('ElemQName',size?, 'TypeQName'?, xsiNil?)

引数:

  • ElemQName: この最初の引数は、空要素のQNameです。

  • size: この2番目の引数は、オプションで整数型であり、空要素の数を示します。指定されていない場合、デフォルトのサイズは1です。

  • TypeQName: この3番目の引数はオプションで、生成される空の名前のxsi:typeとなるQNameです。このxsi:typeパターンは、SOAPENC:Arrayに相当します。指定されていないか、空の文字列である場合、xsi:type属性は生成されません。

  • xsiNil: この4番目の引数は、オプションでブール型であり、生成される空の要素において、xsd:nillableがtrueの場合に、xsi:nilをtrueにするかどうかを指定します。デフォルトはfalseです。指定されていないか、falseである場合、xsi:nilは生成されません。

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.10.6 getChildElement

この関数では、指定した要素の子要素が取得されます。

シグネチャ:

ora:getChildElement(element, index)

引数:

  • element: データのソース

  • index: 子要素の索引の整数値

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.10.7 getMessage

この関数では、引数に基づいてメッセージが取得されます。

シグネチャ:

ora:getMessage(locale, relativeLocation, resourceName, resourceKey, resourceLocation?)

引数:

  • locale: メッセージのロケール

  • relativeLocation: メッセージのサブディレクトリ

  • resourceName: メッセージ・リソースの名前

  • resourceKey: リソースのキー

  • resourceLocation: リソースの場所

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.10.8 listUsers

この関数では、LDAPユーザーのリストが返されます。

シグネチャ:

ldap:listUsers('properties','filter')

引数:

  • properties: directories.xmlファイルに定義されているプロパティ名

  • filter: LDAPフィルタ

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension/ldap

  • namespace-prefix: ldap

D.10.9 max-value-among-nodeset

この関数では、ノードセットinputNumberに含まれる入力数値のうちの最大値が返されます。

ノードセットinputNumberには、テキスト・ノードの集合や、テキスト・ノードが含まれる要素の集合を指定できます。

要素の場合、最初のテキスト・ノードの値が対象になります。

シグネチャ:

orcl:max-value-among-nodeset(inputNumber as node-set)

引数:

  • inputNumber: 入力数値のノードセット

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.10.10 min-value-among-nodeset

この関数では、ノードセットinputNumbersに含まれる入力数値のうちの最小値が返されます。ノードセットには、テキスト・ノードの集合や、テキスト・ノードが含まれる要素の集合を指定できます。要素の場合、最初のテキスト・ノードの値が対象になります。

シグネチャ:

orcl:min-value-among-nodeset(inputNumbers as node-set)

引数:

  • inputNumber: 入力数値のノードセット

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.10.11 search

この関数では、LDAPエントリのリストが返されます。

シグネチャ:

ldap:search('properties','filter','scope'?)

引数:

  • properties: bpel.xmlファイルに定義されているプロパティ名

  • filter: エントリのフィルタ

  • scope: 検索範囲

プロパティID:

  • namespace-uri:http://schemas.oracle.com/xpath/extension/ldap

  • namespace-prefix: ldap

D.10.12 square-root

この関数では、inputNumberの平方根が返されます。

例: orcl:square-root(25)の場合、5が返されます。

シグネチャ:

orcl:square-root(inputNumber as number)

引数:

  • inputNumber: 平方根を計算する入力数値

プロパティID:

  • namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc

  • namespace-prefix: orcl

D.10.13 translateFromNative

この関数では、入力ストリームがXMLファイルに変換されます。

シグネチャ:

ora:translateFromNative('string','nxsdTemplate'?,'nxsdRoot'?)

引数:

  • string: XMLファイルに変換するデータ

  • nxsdTemplate: トランスレーションの実行方法を定義するXSDファイル

  • nxsdRoot: XSDファイルに定義されているルート要素

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.10.14 translateToNative

この関数では、XMLがネイティブ・データに変換されます。

シグネチャ:

ora:translateFromNative('string','nxsdTemplate'?,'nxsdRoot'?)

引数:

  • string: 文字列に変換するXMLファイル

  • nxsdTemplate: トランスレーションの実行方法を定義するXSDファイル

  • nxsdRoot: XSDファイルに定義されているルート要素

プロパティID:

  • namespace-uri: http://schemas.oracle.com/xpath/extension

  • namespace-prefix: ora

D.11 カスタムXPath関数の追加

この項では、独自のXPath関数を作成してOracle BPEL Process Managerに追加する方法について説明します。 この例では、getNodeValue(arg1)という関数を作成します。

  1. XPath関数用のcom.oracle.bpel.xml.xpath.IXPathFunctionインタフェースを実装します。 IXPathFunctionインタフェースには、メソッドが1つ(call(context, args))あります。 このメソッドのシグネチャは次のとおりです。

    Object call(IXPathContext context, List args)
        throws XPathFunctionException;
    
    

    次の例では、getNodeValue(arg1)という関数が実装され、値w3c nodeを取得します。

    package com.collaxa.cube.xml.xpath.dom.functions;
    
    public class GetNodeValue  implements IXPathFunction  {
     Object call(IXPathContext context, List args) throws XPathFunctionException {
            org.w3c.dom.Node node = (org.w3c.dom.Node) args.get(0);
            return node.getNodeValue()
       }
    }
    
    

    ここでgetNodeValue XPath関数をOracle BPEL Serverに登録します。

  2. 次のファイルを開きます。

    SOA_Oracle_Home¥bpel¥system¥config¥xpath-functions.xml
    
    
  3. getNodeValue XPath関数を<bpel-xpath-functions>セクションに追加します。

    <function id="getNodeValue" arity=Ó1Ó>
      <classname>com.collaxa.cube.xml.xpath.dom.functions.GetNodeValueFunction
         </classname>
            <property id="namespace-uri">
                <value>http://boo.com/xpath/function</value>
                <comment>Namespace URI for this function</comment>
            </property>
            <property id="namespace-prefix">
                <value>boo</value>
                <comment>Namespace prefix for this function</comment>
            </property>
     </function>
    
    
  4. 次の関数構文詳細に注意してください。

    • <function>の属性は、次のとおりです。

      • id: XPath関数名を定義します。

      • arity: 関数で受け入れ可能な必須引数の数を定義します(たとえば、関数が5つの引数をとる場合に、最後の2つの引数がオプションであれば、arityの値は3となります)。

    • <classname>: XPath実装クラス名を定義します。

  5. 各関数について次の初期化プロパティを指定します。

    • namespace-uri: 各XPathをネームスペースに関連付けます。

    • namespace-prefix: このXPath関数のネームスペース接頭辞を指定します。

    たとえば、Oracle BPEL Process ManagerからXPath関数をコールする必要があるとします。 その場合、namespace uri<process>セクションで次のように定義する必要があります。

    <process name="XPathFunction"
         targetNamespace="http://samples.cxdn.com"
         suppressJoinFailure="yes"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
         xmlns:boo="http://boo.com/xpath/function"
         xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
    
    <copy>
         <from expression="boo:getNodeValue(bpws:getVariableData
            ('output','payload','/invoice/lineItems/item[3]/@sku'))"/>
         <to variable="mySKU"/>
       </copy>
    </process>
    
    
  6. 次のディレクトリに移動して、サンプルにおけるこの関数に使用方法を確認します。

    SOA_Oracle_Home¥bpel¥samples¥references¥XPathFunction
    
    
  7. このサンプルに付属するgetNodeValue() XPath関数のコードを確認します。

    package com.collaxa.cube.xml.xpath.dom.functions;
    
    import java.util.List;
    import com.oracle.bpel.xml.xpath.IXpathFunction;
    import com.oracle.bpel.xml.xpath.IXPathContext;
    import com.oracle.bpel.xml.xpath.XPathFunctionException;
    
    import org.w3c.dom.Node;
    
    /**
     * Returns the value of the dom node as String
     *
     * Usage: String ora:getNodeValue(Node node)
     *  Node - dom node
     *
     */
    public class GetNodeValueFunction implements IXPathFunction
    {
    
        public Object call(IXPathContext context, List args) throws
     XPathFunctionException
        {
            try
            {
                if (args.size() == 1)
                {
                    return evaluate( args.get(0 );
                }
            }
            catch(Exception e)
            {
               throw new XPathFunctionException (e.getMessage());
            }
            throw new XPathFunctionException ("getNodeValue() requires one argument
     which is a dom node.");
        }
    
        public Object evaluate( Object node ) throws Exception {
    
            if (node != null)
            {
                if (node instanceof Node)
                    return ((Node)node).getNodeValue();
                else
                    return String.valueOf(node);
            }
            return null;
        }
    }
    

D.12 まとめ

この付録では、XPath拡張関数、その説明、シグネチャ、引数の説明およびプロパティID情報をリストしました。