BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA
 ドキュメントのダウンロード   サイト マップ   用語集 
検索

WebLogic Integration Studio ユーザーズ ガイド

 前 次 目次 索引 PDFで表示  

ワークフロー式の使用法

この章ではワークフローを表現する式の言語を説明し、またワークフロー式を生成する場合の Expression Builder と XPath Wizard の使用法について説明します。

 


ワークフロー式の概要

Studio のダイアログ ボックス内でフィールドの横に [式] ボタン が表示される場合、そのフィールドにはワークフロー式の言語で定式化したエントリを入力する必要があります。式は、テンプレート定義ラベルの作成、分岐ノードやイベントでの条件の定義、イベント キーの設定、および実行時に提供する情報の指定を行うために、Studio 全体で使用されます。

ワークフロー式は、実行時にシステムによって実行される計算を定義する数式で、文字列、整数、およびその他の定数などのリテラルや、ワークフロー変数、演算子、ワークフロー関数で構成されます。ワークフロー式構文を使って、文字列の操作、関係と条件のテスト、算術計算の実行、実行時にワークフローまたは XML メッセージからの情報を取得する関数の使用などを行うことができます。

式の結果は、文字列、整数、倍精度の値、日付/時間の値、またはブール値になります。結果としてブール値を返す式は、条件式または条件と呼びます。

また Studio では、式の作成に役立つ次の 2 つのツールが用意されています。1 つは Expression Builder で、これは構文の検査とエラー情報を提供します(Expression Builder の使い方を参照)。もう 1 つは XPath Wizard で、これはサンプルの XML ドキュメントから XPath 式を生成する場合に使います(XPath Wizard を使用する XPath 式の作成を参照)。

以下の節では、リテラル、演算子、およびワークフローの各変数の構文を示し、また組み込み関数の使用法と構文について説明します。

 


リテラルの使い方

式には、リテラルの値または定数が含まれています。使用可能なリテラルは次の表のとおりです。

表8-1 リテラルの使用法

リテラル型

フォーマット

説明

サンプル

文字列


string または string

文字列は一重または二重引用符で囲まれる。文字列に特殊文字を埋め込むには、以下のエスケープ シーケンスを使用する。


¥r キャリッジ リターン

¥n 改行文字

¥' 一重引用符

¥" 二重引用符

¥f 用紙送り文字

¥t タブ文字

¥¥ バックスラッシュ文字

¥0 ASCII ヌル文字

“cancelled”

整数

[+|-] digits

-2,147,483,647 +2,147,483,648 の
範囲内の 32 ビット符号付き整数(約 9 桁または精度)。

5000

倍精度の値

[+|-]digits[.[digits]]

64 ビット IEEE 標準の倍精度浮動小数点数。範囲は -253 X 10104 〜 + 253 X 10104 まで(約 15 桁の精度)。

5000.00

日付

MM/dd/yyyy hh:mm:ss AM|PM GMT[+|-]hh:mm:ss


"10/01/2001 12:11:11 AM GMT-04:00"


 

注意: 日付のリテラルは、日付型の変数を設定するためにのみ使用できます。他のコンテキストで使用する関数や式には、日付のリテラルを使用できません。

 


変数の使い方

式には、カレント ワークフローで定義したワークフロー変数の参照が含まれます。

ワークフロー変数の参照には、以下の構文のいずれか 1 つを使用できます。

 


演算子の使い方

次の表は、利用可能な演算子の値を示します。

表8-2 演算子の使用法

演算子

記号

構文

オペランド

結果

AND

AND

expr1 AND expr2

論理オペランド

expr1 と expr2 の両方が True の場合は、True。それ以外の場合は False。

OR

OR

expr1 OR expr2

論理オペランド

expr1 または expr1 と expr2 の両方が True の場合は、True。それ以外の場合は False。

XOR

XOR

expr1 XOR expr2

論理オペランド

expr1 または expr2 の一方のみが True の場合は、True。それ以外の場合は False。

NOT

NOT

NOT expr

論理オペランド

expr が False の場合は True。それ以外の場合は False。

(括弧)

()

(expr)

任意の式

expr を最初に評価する。

乗算

*

expr1 * expr2

数値オペランド

数値の積。

除算

/

expr1 / expr2

数値オペランド

数値の商。

モジュロ


%

expr1 % expr2

数値オペランド

数値のモジュロ(expr1 を expr2 で除算した時の残り)。

加算

+

+ expr

expr1 + expr2

数値オペランド

文字列または数値

単項プラス。

文字列の連結または数値の加算。

減算

-

- expr

expr1 - expr2

数値オペランド

数値オペランド

マイナスの単項演算子(expr を減算する)。

減算。

より小さい

<

expr1 < expr2

文字列または数値オペランド

expr1 が expr2 より小さい場合は、論理的に True。それ以外の場合は False。

より小さいまたは等しい(以下)

<=

expr1 <= expr2

文字列または数値オペランド

expr1 が expr2 以下の場合は、論理的に True。それ以外の場合は False。

等しい

=

expr1 = expr2

文字列または数値オペランド

expr1 が expr2 と等しい場合は、論理的に True。それ以外の場合は False。

等しくない

<>

expr1 <> expr2

文字列または数値オペランド

expr1 が expr2 に等しくない場合は、論理的に True。それ以外の場合は False。

より大きい

>

expr1 > expr2

文字列または数値オペランド

expr1 が expr2 より大きい場合は、論理的に True。それ以外の場合は False。

より大きいまたは等しい(以上)

>=

expr1 >= expr2

文字列または数値オペランド

expr1 が expr2 以上の場合は、論理的に True。それ以外の場合は False。


 

 


関数の使用法

関数とは組み込みの式のことで、これを使用して実行時にデータを取得できます。関数は、変数の型キャスト、ワークフロー情報の識別、データ演算の実行など、さまざまな目的で使用します。また多くの関数では、特定のワークフローやシステム データを実行時に返す組み込み属性を指定できます。

以下の節では、ワークフロー関数をカテゴリ別にグループ化して示します。それぞれのリスト内では、関数の代表的な属性を丸かっこで囲んで示しています。ただし、関数に他の関数や式を組み込んだり、属性を埋め込み式として表現することもできます。

注意: この節で示すデフォルトの関数の他に、プラグイン関数も使用することができます。

関数の結果を変数に代入するか、または 2 つの関数の結果を比較したい場合は、それぞれのデータの型が一致することを確認する必要があります。したがって、返却値の型も以下の関数の説明に一覧で示します。

実行時のシステム データを収集する

システム情報を実行時に収集するには、次の関数を使用します。

Date()

説明

ノードのアクティブ化、またはアクションの実行時など、式が評価された瞬間のシステム日時を返す。

フォーマット

Date()

戻り値の型

Java の Date オブジェクト。

戻り値を文字列としてフォーマットし、Date() 関数を DateToString() 関数に組み込み、フォーマットを指定する。詳細については、DateToString()を参照。


 

実行時のイベント データを抽出する

ワークフローの JMS メッセージのヘッダまたは XML 本文から内容を抽出する場合、あるいはプロパティを調べる場合に以下の関数を使うことができます。

EventAttribute()

説明

受信する JMS メッセージまたはプラグイン定義イベントから、イベント プロパティを取得する。

フォーマット

EventAttribute(expression)

expression は、JMS ヘッダまたはプロパティ フィールドの名前を返す式。JMS ヘッダおよびプロパティ フィ-ルドについては、次の URL にある『WebLogic JMS プログラマーズ ガイド』の「WebLogic JMS の基礎」の「Message」を参照。

http://edocs.beasys.co.jp/e-docs/wls/docs70/jms/fund.html

注意: EventAttribute() は、受信した JMS メッセージが消費される、以下のコンテキストのみで使用します。

サンプル

EventAttribute(“JMSDestination”)

戻り値の型

Java オブジェクト


 

EventData()

説明

受信 JMS メッセージの実際の内容、またはプラグインが定義されたイベントを検索する。内容は XML ドキュメントの場合もある。

注意: EventData() は、受信 JMS メッセージが使用される、以下のコンテキストのみで使用。

フォーマット

EventData()

戻り値の型

Java オブジェクト


 

XPath()

説明

XML ドキュメントから内容を抽出する。

フォーマット

XPath(“xpathstring, [,xmldocument])

xpathstring は、XPath 言語の式。

xmldocument は、XPath 式の評価対象となる XML ドキュメントを取得する式。これは、有効な XML ドキュメントのソース テキストを含む文字列、または XML テキストを含む XML または文字列変数への参照(この方が一般的)を指す。このパラメータは省略できる。これを指定しない場合、XML ドキュメントが着信 XML イベントと見なされる。

注意: XML ドキュメントを含む変数を指定しなかった場合、XPath() 関数は、受信する XML ドキュメントのアイデンティティが判明している以下のコンテキストの中でのみ使用できる。

サンプル

以下を参照。

戻り値の型

DOM オブジェクト

通常は Node List を返すワークフローの XPath 関数式の中で、XPath 言語の text() 関数を使用する(詳細は以下を参照)。ただし、他の XPath の関数は、倍精度の値、ブール値、文字列、または整数の型を返すことがある。


 

XPath は、XML ドキュメントの部分をアドレッシングする言語です。これは文字列、数字、およびブール値を扱う基本的な機能を提供します。XPath は、XML ドキュメントの階層構造でナビゲートするための URL のパス名から名前を取得します。XPath 言語の公式な仕様を入手するには、次のインターネット サイトを参照してください。http://www.w3.org/TR/xpath.html

XPath の表記法や関数のクイック リファレンス ガイドを入手するには、次のインターネット サイトを参照してください。http://www.mulberrytech.com/quickref/XSLTquickref.pdf

各ノードからのテキスト値の取り出し、属性値の取り出し、サブツリーの選択、属性値などによる XML ドキュメントからのノードの選択など、XPath の最も一般的な使用サンプルを次に示します。リスト 8-1 の XML ドキュメントを検証してください。

コード リスト 8-1 XML サンプル ドキュメント

<?xml version="1.0"?>
<a>
<b name="bill">This is the first value</b>
<c>
<d id="d1">This is the second value</d>
<d id="d2">This is the third value</d>
<d id="d3">This is the fourth value</d>
<d id="d4">This is the fifth value</d>
</c>
</a>

<b> 要素のテキスト値("This is the first value" など)を選択する場合:

XPath("/a/b/text()")

ID 属性が "d3" の値を持つ <d> 要素("This is the fourth value" など)を選択するには次のコードを使います。

XPath("/a/c/d[@id=¥"d3¥"]/text()")

2番目の <d> 要素のテキスト値("This is the third value" など)を選択するには次のコードを使います。

XPath("/a/c/d[2]/text()")

<b> 要素の名前属性の値("bill" など)を選択するには次のコードを使います。

XPath("/a/b/@name")

<c> サブツリー全体を選択するには次のコードを使います。

<c>
<d id="d1">This is the second value</d>
<d id="d2">This is the third value</d>
<d id="d3">This is the fourth value</d>
<d id="d4">This is the fifth value</d>
</c>)
XPath("/a/c")

注意: XPath 式は、ユーザ自身がキー入力するか、または XPath Wizard を使って作成できます。Wizard の使用法の詳細は、XPath Wizard を使用する XPath 式の作成を参照してください。

XML 要素のドット表記

変数の初期化の際に、[開始のプロパティ]、[イベントのプロパティ]、[例外ハンドラのプロパティ]、および [XML をクライアントに送信] でより簡素なドット(.)表記を使用して XML ドキュメントから要素データを取得することができます。それには、次の構文を使います。

root_element.subelement1.subelement2.subelement3 . . .

XML ドキュメントの例としては次のようなものがあります。

コード リスト 8-2 XML ドキュメントの例

<account>	
<number>847365</number>
<customer>John Doe</customer>
<balance>
<status>past due</status>
<date_due>7-11-2001</date_due>
<amount_due>5670.85</amount_due>
</balance>
<credit_limit>7500.00</credit_limit>
</account>

この例では、期限切れの値を検索するのに、次の式を使用します。

account.balance.status

この表記を使って属性値を取得することはできません。また、式の先頭がルート要素である必要があります。サブ要素で式を始めることはできません。

この表記では常に文字列が返されます。型キャストを実行する関数と併用したとしてもその他のデータ型を返すことはできません。

実行時のワークフロー データを収集する

実行時のデータをワークフローから収集するには、以下に一覧で示す関数を使用します。

CurrentUser()

説明

現在タスクを実行しているユーザの ID (ユーザ名) を返す。

フォーマット

CurrentUser()

戻り値の型

文字列


 

TaskAttribute()

説明

ワークフローのタスクに関する情報を提供する。

フォーマット

TaskAttribute(“attribute” [,"taskname”])

attribute は、タスクの属性を示す。以下の属性が使用できる。

関数の属性

情報

戻り値の型

TaskId

システム定義のタスク インスタンス ID

文字列

Assignee

ユーザまたは assignee (受託者) の役割 ID

文字列

Priority

ユーザが設定した優先順位

整数

Due

タスクの期限経過日

日付

Name

タスクの名前

文字列

Started

タスクの開始日/時間

日付

Completed

完了日/時間

日付

Comment

ユーザが設定したタスクのコメント

文字列


taskname を使って、式が定義された現在のタスク以外のタスクを指定できる。

注意: 指定できるのは同じワークフロー内のタスクのみです。


 

注意: 上記の表に示す属性以外のものを使用すると、サーバで例外が発生します。

WorkflowAttribute()

説明

現在のワークフローのみの情報を表示する。

フォーマット

WorkflowAttribute(“attribute” )

attribute はワークフローの属性である。以下の属性が使用できる。

関数の属性

情報

戻り値の型

InstanceId

システム定義のワークフロー インスタンス ID

文字列

TemplateId

システム定義のワークフロー テンプレート ID

文字列

TemplateDefinitionId

システム定義のワークフローのテンプレート定義 ID

文字列

Initiator

ワークフロー イニシエータ

文字列

ParentId

呼び出されたワークフロー インスタンスの場合、親ワークフロー インスタンスのシステム定義のワークフロー インスタンス ID

文字列

Name

ユーザが設定したテンプレート名

文字列

Started

開始日/時間

日付

Completed

完了日/時間

日付

Label

Id

ユーザが設定したテンプレート定義ラベル。

文字列

Comment

ユーザが設定したワークフローのコメント

文字列

ExceptionType

ErrorType

エラーを発生した Java 例外クラスの名前。

文字列

ExceptionNumber

ErrorNumber


例外ハンドラで処理された、エラーのメッセージ番号。

ワークフローのエラー メッセージをエラー番号やテキストで分類したリストについては、システム エラー メッセージを参照。

整数

ExceptionSeverity

ErrorSeverity

重大度は、以下の 5 つの値のいずれかで示される。

注意: ワークフローが例外ハンドラを呼び出しアクションを介すか、または API を介して例外ハンドラを呼び出した場合、この値は 4 に設定されます。

整数

ExceptionText

エラー メッセージ本文

例外ハンドラで処理された、エラーのメッセージ テキスト。

ワークフローのエラー メッセージをエラー番号やテキストで分類したリストについては、システム エラー メッセージを参照。

文字列

ExceptionObject

ErrorObject

例外ハンドラで処理される、例外オブジェクト。

例外オブジェクト


 

注意: 上記の表に示す属性以外のものを使用すると、サーバで例外が発生します。

WorkflowVariable()

説明

特定のワークフロー インスタンスに関するワークフロー変数の値を返す。

フォーマット

workflowVariable(instanceid, variable)

instanceid は、ワークフロー インスタンスの ID で、通常は別のワークフローから送信された WorkflowAttribute (“InstanceID”) 関数によって値が設定される、文字列型の変数として表現される。

variable は、ワークフロー変数。フォーマットの詳細は、変数の使い方を参照。

サンプル

workflowVariable($InstanceID), $ItemQuantity)

戻り値の型

オブジェクト


 

データ型を変換する

以下の関数を使用して、1 つの式の戻り値の型を別のものに変換できます。ワークフローの型の変換ルールについては、変数を代入した場合の日付の型変換を参照してください。

DateToString()

説明

日付を文字列に変換する。

フォーマット

dateToString(“date”, “format”)

date は文字列の値に変換する日付を表す。日付は Java の日付オブジェクトとして表現しなければならず、したがって日付を指定する場合は以下の関数を組み込む。

format は文字列のフォーマットを指定する文字列を表す。以下は指定可能な値である。

注意: フォーマットで指定する文字は、大文字と小文字が区別されます。

フォーマット

説明

サンプル

yyyy

2000

MM


1 月 = 01、2 月 = 02

dd

02 または 28

DD

1 年の日数(365 日)をベースにした、3 桁の日付

2000 年 10 月 18 日 = 292(1 月 1 日から数えて 292 日目)

hh

時間(12 時間制)

午後 1 時 = 01、午後 2 時 = 02

HH

時間(24 時間制)

午後 1 時 = 13、午後 2 時 = 14

mm

02

ss

35

SSS

ミリ秒

370

次のセパレータ文字、-(ハイフン)、/(スラッシュ): (コロン)、.(ピリオド)、スペースが有効です。

サンプル

DateToString(Date(), “yyyy-MM-dd HH:mm:ss.SSS”) は次のようになる 2000-10-18 14:30:35.370

戻り値の型

文字列


 

StringToDate()

説明

文字列を日付に変換する。

フォーマット

StringToDate(“string”, “format”)

string は、日付の値に変換する文字列を表す。文字列のフォーマットは、2 番目の引数で指定したフォーマットに従う必要がある。

format は、日付のフォーマットを指定する文字列を表す。利用可能なフォーマットについては、日付関数のフォーマットを参照。

サンプル

StringToDate(“2001.09.10”, “yyyy.MM.dd”)

戻り値の型

日付


 

ToInteger()

説明

文字列値を整数に変換する。

注意: 文字列は、有効な整数値を表す必要がある。

フォーマット

ToInteger(expression)

expression は、整数に変換する式(二重引用符で囲んだ文字列)。

サンプル

ToInteger(ToString(XPath(“/item/quantity/text()”)))

戻り値の型

整数


 

ToString()

説明

任意のデータ型を文字列に変換する。

フォーマット

ToString(expression)

expression は、文字列に変換する式。

サンプル

ToString($TotalPrice)

戻り値の型

文字列


 

データを処理する

データに対して各種のオペレーションを行う場合、以下に示す関数を使用できます。

Abs()

説明

式の絶対値を返す。

フォーマット

Abs(expression)

expression は、絶対値を計算するワークフロー式を表す。

サンプル

Abs($ItemPrice * $ItemQuantity)

戻り値の型

整数、倍精度の値、または文字列(入力値による)


 

DateAdd()

説明

日付計算を実行する。

フォーマット

DateAdd(date, “interval”, number [,business calendar name])

date は、基本の日付を表す。日付は Java の日付オブジェクトを返却しなければならず、したがって日付を指定する場合は以下の関数を組み込む。

interval は、使用する時間の単位を表す。以下は、指定可能な値である。

注意: 時間の単位は、mM 以外は大文字と小文字を区別しません。

インターバル

説明

S

m

H

時間

D

W

M

BH

ビジネス時間

BD

ビジネス日

number は、加算または減算を行う単位の数を示す整数である(符号付も可能)。

business calendar name は、ビジネス時間およびビジネス日の計算で使用するビジネス カレンダーの名前である。この値を指定しないと、デフォルトのカレンダーが使用される。

サンプル

DateAdd(Date(), D, 7, mycalendar)

戻り値の型

日付


 

StringLen()

説明

文字列の長さの値を返す。

フォーマット

stringlen(expression)

string は、長さを示す文字列または式を表す。

サンプル

stringlen(TaskAttribute(“Comment”))

戻り値の型

整数


 

SubString()

説明

文字列からサブ文字列を抽出する。

フォーマット

SubString(expression, start [,length])

string は、下位文字列を抽出する文字列を表す。

start は、文字列内の開始位置を表す(最初の位置は、0)。

length は下位文字列の長さを表す。このパラメータは省略できる。サブ文字列が文字列に収まらない場合、開始文字から最後の文字まで抽出される。

サンプル

SubString(TaskAttribute(“Comment”), 0, 50)

戻り値の型

文字列


 

日付関数のフォーマット

日付関数の日付フォーマットを指定するには、タイム パターン 文字列を使用して日付と時間を記述します。 たとえば、DateToString() 関数では、次のようなタイム パターン文字列が使用されています。

"yyyy.MM.dd G 'at' hh:mm:ss z"

結果は、次のようなフォーマットになります。

2000.07.31 AD at 13:10:35 PDT

同様に、StringToDate() 関数を使用する場合は、ユーザが指定するフォーマットに応じて日付のリテラルを書式指定しなければなりません。

ここではパターンの文字を説明し、書式指定の指針を示し、また指定サンプルを示します。

表8-3 パターンの文字の定義

記号

説明

フォーマット

サンプル

G

紀元前/後の表示

Text

AD

y

number

1996

M

月 & 01 - 12

July & 07

d

01 - 31

10

h

午前/午後の時間

1 - 12

12

H

0 - 23

0

m

number

30

s

number

55

S

ミリ秒

number

978

E

曜日

曜日

Tuesday

D

1 月 1 日からの積算日数

number

189

F

1 か月の中の何週目

number

2 (7 月の 2 週目の水曜日)

w

1 年の中の何週目

number

27

W

1 か月の中の何週目

number

2

a

午前/午後(am/pm)マーカー

AM または PM

PM

k

1 - 24

24

K

午前/午後の時間

0 - 11

0

z

時間帯

短縮形のテキスト

PST

'

テキストのエスケープ文字


‘at’

''

一重引用符

'

‘Wednesday’’s’


 

フォーマットの指針

フォーマットはパターン文字の数によって決定されます。

パターン内のいずれかの文字が ['a'..'z'] ['A'..'Z'] の範囲外の場合、その文字は引用符で囲まれたテキストとして扱われます。たとえば、 ':', '.', ' ', '#' および '@' などの文字は、一重引用符で囲まれていなくても、結果は時間のテキストで示されます。

無効なパターン文字を含むパターンは、フォーマット処理またはパーシングの結果例外が発生します。

時間パターンのサンプル

表8-4 米国のロケールを使用したサンプル

フォーマット パターン

結果

"yyyy.MM.dd G 'at' hh:mm:ss z"

1996.07.10 AD at 15:08:56 PDT

"EEE, MMM d, ''yy"

Wed, July 10, '96

"h:mm a"

12:08 PM

"hh 'o''''clock' a, zzzz"

12 o'clock PM, Pacific Daylight Time

"K:mm a, z"

0:00 PM, PST

"yyyyy.MMMMM.dd GGG hh:mm aaa"

1996.July.10 AD 12:08 PM


 

 


変数を代入した場合の日付の型変換

式を実行した結果の値をワークフローの変数に代入する場合があります。たとえば、XML ドキュメントから XPath 式で返されたデータを使って、ワークフローの起動時に変数を初期設定する場合です。また、1 つの変数の型の値を別のものに割り当てたい場合があります。

式の戻り値の型が、式の結果の値を割り当てたい変数の型と異なる場合、サーバは自動的に型の変換を行います。ただし、型の変換を行うことができない場合もあり、その場合は例外が発生します。次の表は、型の変換を行う方法を示します。表中の * の数は、表の後の「メモ」の項目番号に対応しています。

注意: 以下の表で示す型の変換ルールは、データ型のデフォルト設定値に適用されます。ヌル値のサポートに用いる変換ルールについては、『WebLogic Integration の起動、停止およびカスタマイズ』の「WebLogic Integration のカスタマイズ」にある「Null 変数をサポートする BPM のコンフィグレーション」を参照してください。

表8-5 データの型の変換ルール

評価する元の式

ターゲットの変数の型

文字列

整数

倍精度の値

日付

Boolean

XML

文字列

文字列

整数*

倍精度の値*

日付*

ブール値**

メモの ***** を参照。

整数

文字列

整数

整数の倍精度値

NS

整数の値が 0 の場合は False、それ以外の値の場合は True。

NS

倍精度の値

文字列

倍精度の整数の値

倍精度の値

NS

倍精度の値が 0.0 の場合は False、それ以外の値の場合は True。

NS

日付

文字列

NS

NS

日付

NS

NS

Boolean

「True」または「False」

True の場合は 1、False の場合は 0。

True の場合は 1.0、False の場合は 0.0。

NS

ブール値の True または False。

NS

XML

文字列にシリアライズされた DOM

整数***

倍精度の値***

日付***

ブール値****

XML

ノード
リスト

文字列にシリアライズされた DOM

整数***

倍精度の値***

日付***

ブール値****

XML ノード***


 

NS = サポートされません(Not supported)。変換を行おうとすると、型の変換が違法なことを示すエラー メッセージが表示されます。

ノード リスト = XPath の text() 関数で返されるオブジェクトです。

* ソースの値が、ターゲットのデータの型に対して有効な入力でない場合、型の変換が違法なことを示すエラー メッセージが表示されます。

** 文字列の値が「True」、「t」、または「1」の場合は True です。文字列の値が「False」、「f」、「0」の場合は False です。文字列の値がそれ以外の場合は、型の変換が違法なことを示すエラー メッセージが表示されます。

*** 文字列にシリアライズされ、その後でターゲットのデータの型に変換される DOM オブジェクトです。ソースの値が、ターゲットのデータの型に対して有効な入力でない場合、型の変換が違法なことを示すエラー メッセージが表示されます。

**** 文字列にシリアライズされる DOM オブジェクトです。文字列の値が「True」、「t」、または「1」の場合は True です。文字列の値が「False」、「f」、「0」の場合は False です。文字列の値がそれ以外の場合は、型の変換が違法なことを示すエラー メッセージが表示されます。

***** XML ドキュメントの要素に解析する DOM で、単なるノードではありません。これは、文字列に再変換した場合に、文字列に以下のような XML のヘッダが含まれることを意味します。<?xml version=”1.0” encoding=”UTF-8”?>.ソースの値が、DOM の解析に有効でない場合、型の変換が違法なことを示すエラー メッセージが表示されます。

これらの変換ルールは式の計算を完全にサポートしていないことに注意してください。たとえば、次の式を仮定します。

XPath(“your_expression”) + 2

your_expression のデータの型が不明なため、この文の結果は計算できません。この文を有効にするには、型キャスト関数を使用して、ユーザが希望するデータの型に結果を変換する必要があります。

たとえば、your_expression の評価が 3 の値になると仮定し、また結果を文字列のデータ型にすると仮定します。その場合は、次の文を使用する必要があります。

ToString(XPath(“your_expression”) + 2

この場合、式の評価は 52 の文字列の値になります。

たとえば、your_expression の評価が 3 の値になると仮定し、また結果を整数にすると仮定します。その場合は、次の文を使用する必要があります。

ToInteger(ToString(XPath(“your_expression”)) + 2

この場合、式の評価は 7 の整数値になります。

 


Expression Builder の使い方

Expression Builder は、関数、演算子、リテラルおよび変数から成る式の作成に役立ちます。Studio 全体を通して、次の図に示す [Expression Builder] ボタンがダイアログ ボックスの各フィールドに表示されます。

図8-1 [Expression Builder] ボタン


 

[Expression Builder] ダイアログ ボックスを表示するには、このボタンをクリックします。

図8-2 [Expression Builder] ダイアログ ボックス


 

注意: 式の一部になる関数に対してプラグインが定義されている場合、このダイアログ ボックスには新しい関数が含まれます。

式を作成する手順は次のとおりです。

  1. 次の操作を行います。

  2. [式] フィールド内の式が完成した後、[OK] をクリックして式をダイアログ ボックスの元のフィールドに戻します。

無効な式を入力した場合、式が無効な理由を説明するメッセージが表示されます。表示されることのあるメッセージについて、考えられる原因を以下の表に示します。

表8-6 無効な式に対するメッセージ

メッセージ

主な原因

無効な operator オペランドです

AND、OR、XOR、NOT、*、/、%、+、-、<、<=、=、<>、>=、> 演算子に対する一方または両方のオペランドが有効でない。たとえば、次のような非数値の文字列に対して算術演算を行おうとした場合 :"Name: " * 25.4

比較オペランド operator、operator が一致しません

異なる型の値の比較を試みた。たとえば、次のように文字列と数値を比較した場合。“mystring” <= 56.9

NumberFormatException

数字の文字列表現で、数字の型に必要なフォーマットを使っていない。たとえば、1.23ZX

関数名"function" が認識されません

未定義の関数を式で呼び出している。たとえば、"Name: " + somefunc() は、有効な関数名ではない。

不完全なエスケープ シーケンス

引用符で囲んだ文字列内の最後の文字がバックスラッシュ文字で、その後に続く文字が次のどれにも該当しない。r、n、f、t、¥、'、"、0

無効なエスケープ シーケンス

引用符で囲んだ文字列にバックスラッシュ文字が含まれ、その後に続く文字が次のどれにも該当しない。r、n、f、t、¥、'、"、0

Fatal error

式の評価子で内部エラーが発生した。式には構文エラーが含まれると考えられる。

文字列 "string" が閉じていません

文字列のリテラルで、終りの引用符が一致していない。次のサンプルでは、前が二重引用符で後が一重引用符になっており、引用符が一致していない。"This is an unclosed string'

第 n 行に不正な文字「x」があります

式に、式言語の構文に違反する文字が含まれる。次の例では、! が無効な文字。7 * $wks + " days" !

Error:unmatched input

評価子が式を解釈できない。式には構文エラーが含まれると考えられる。

構文エラー


式に、無効なトークンが含まれている。次の例では、+ 演算子が省略されているため、名前は無効。"Name: " $name

正しい式は、次のとおり。"Name: " + $name


 

Expression Builder は、次のそれぞれについて有効性は調べません。

 


XPath Wizard を使用する XPath 式の作成

XPath Wizard のグラフィカル インタフェースを使って、実際の XML エンティティから自動的に XPath 式を生成したり、XML エンティティの定義と検証を行う XPath 式を定義およびテストできます。XPath 式を生成してテストした後でその式を Expression Builder に返すことにより、ワークフロー構文に準拠するために追加する必要がある引数を Expression Builder に追加できます。

XPath Wizard は、サンプルの XML ドキュメント、つまり Document Type Definition (DTD)、XML Schema Document (XSD)、Extensible Stylesheet Language (XSL) または Message Format Language (MFL) ファイルをサンプリングできます。ユーザが DTD、Schema、XSL、または MFL ファイルを Wizard にロードすると、ユーザが選択したファイル内の仕様に基づいて、サンプルの XML ドキュメントが自動的に生成されます。生成された XML ドキュメントを使用して、XPath 式を作成します。

[XPath Wizard] を開くには、[Expression Builder] から XPath Wizard をクリックします。

図8-3 XPath Wizard


 

[XPath Wizard] には、[ワークスペース] タブ、[サンプル] タブ、および [テスト] タブの 3 つのタブが含まれています。これらは次を行うために使用します。

これらの 3 つのタブには、ツールバーと以下の 2 つの読み取り専用フィールドが表示されます。

ツールバーのボタンについて以下の表で説明します。

表8-7 [XPath Wizard] ツールバー ボタン

ボタン

説明


XML エンティティを XPath Wizard にロードする。詳細については、XPath ロケーション式を XML エンティティから生成するを参照。


XML 式を [ワークスペース] に固定する。詳細については、XPath ロケーション式を XML エンティティから生成するを参照。


選択した XML 式を、XML エンティティに対してテストする。詳細については、XPath 式をテストするを参照。


XPath Wizard に関する情報を表示する。


 

XPath ロケーション式を XML エンティティから生成する

Xpath Wizard を使用して、以下をターゲットとする XPath ロケーション式を生成できます。

XML§MFL、XSL、DTD または XSD ドキュメントをサンプリング用にロードできます。ユーザが DTD または XSD ドキュメントを開くと、Wizard はサンプルの XML ドキュメントを、ユーザが選択した DTD または Schema から生成します。生成された XML ドキュメントを使用して、XPath 式を作成します。

XPath ロケーション式を生成する手順は、次のとおりです。

  1. [Expression Builder] ダイアログ ボックスで [XPath Wizard] をクリックし、[XPath Wizard] を表示します。

  2. [XPath Wizard] の [サンプル] タブを選択し、XPath 式を作成する [サンプル] 領域を表示します。

  3. ボタンをクリックして、[XML ファインダ] ダイアログ ボックスを開きます。[XML ファインダ] ダイアログ ボックスを使って、XPath 式の作成に使用する XML、DTD、XSD、MFL または XSL ドキュメントを検索します。詳細については、XML エンティティを取り出すを参照してください。

    XML ファインダによってドキュメントが検出されると、ドキュメントのコンテンツが Xpath Wizard に表示されます。ユーザが DTD または XSD ドキュメントを開くと、Wizard はサンプルの XML ドキュメントを、ユーザが選択した DTD または Schema から生成します。

    図8-4 [XPath Wizard] : サンプルの XML ドキュメントを持つ [サンプル] タブ


     

  4. XPath 式のターゲットにする、要素、属性、またはノードのマークアップまたはコンテンツを選択します。選択したターゲットに基づいて、XPath Wizard によって XPath 式が生成され、[XPath 式] フィールドに表示されます。

  5. ボタンをクリックして、ユーザが作成した XPath 式を [ワークスペース] に入れます。

  6. 作成した式を表示するには、[ワークスペース] タブをクリックします。詳細については、XPath 式を表示するを参照してください。

  7. 作成した式をテストするには、[テスト] タブをクリックします。詳細については、XPath 式をテストするを参照してください。

  8. [OK] をクリックして、式を [Expression Builder] に返します。

XPath 式を表示する

Studio セッション中に XPath Wizard で作成したすべての XPath 式は、[ワークスペース] に配置できます。XPath 式を作成するごとに、式を [ワークスペース] に固定できます。このようにして、1 つの XML ドキュメントに対して複数の式を作成し、これらの式が正しい結果を返すことを後でテストできます。

図8-5 [XPath Wizard] : [ワークスペース] タブ


 

ワークスペースには、各 XPath 式について以下の情報が表示されます。

XPath 式

[サンプル] タブで生成した、または [テスト] タブに入力した XPath ロケーション式。

ターゲット

XPath 式のターゲットである、XML ドキュメント内の要素または属性。

ドキュメント

XPath 式が生成される元となったソース ドキュメント。


 

式をテストするには、リスト内の式を選択して [テスト] タブをクリックします。テストの手順については、XPath 式をテストするを参照してください。

[Expression Builder] に式を返すには、リスト内の式を選択して [OK] をクリックします。[XPath Wizard] ウィンドウが閉じ、選択した式が [Expression Builder] に配置されます。

XPath 式をテストする

XPath Wizard のテスト機能は、次の目的で使用します。

ロケーション式をテストする

XPath のロケーション式をテストする手順は、次のとおりです。

  1. (省略可能)テストする XPath 式を [Expression Builder] に入力して、[XPath Wizard] をクリックします。XPath 式が、[ワークスペース] 内の [XPath 式] リストの最初の項目として表示されます。

  2. [サンプル] タブをクリックして [開く] ボタンをクリックし、[XML ファインダ] ダイアログ ボックスを表示します。[XML ファインダ] ダイアログ ボックスを使って、XPath 式のテストに使用する XML、DTD、XSL、XSD、または MFL ドキュメントを検索します。詳細については、XML エンティティを取り出すを参照してください。

    XML ファインダによってドキュメントが検出されると、ドキュメントのコンテンツが XPath Wizard に表示されます。ユーザが DTD または XSD ドキュメントを開くと、Wizard はサンプルの XML ドキュメントを、ユーザが選択した DTD または Schema から生成します。

  3. 手順 1 で Expression Builder から式を渡さなかった場合、サンプル ドキュメントから XPath ロケーション式を生成します。手順については、XPath ロケーション式を XML エンティティから生成するを参照してください。

  4. [ワークスペース] 内で、テストする式を選択します。

  5. [テスト] タブを選択します。[テスト] 領域に XML ドキュメントが表示され、XPath 式のターゲットが強調表示されます。

    図8-6 [XPath Wizard] : [テスト] タブ


     

  6. 必要に応じて、[XPath 式] フィールドで XPath 式を編集して修正します。

  7. 式を再びテストして、その値をドキュメント内でハイライトさせるには、 ボタンをクリックします。式の新しい結果が XML ドキュメント内で強調表示されます。

  8. [OK] をクリックして、式を [Expression Builder] に返します。

関数を含む式をテストする

関数を含む XPath 式をテストする手順は、次のとおりです。

  1. (省略可能)テストする XPath 式を [Expression Builder] に入力して、[XPath Wizard] をクリックします。XPath 式が、[ワークスペース] 内の [XPath 式] リストの最初の項目として表示されます。

  2. [サンプル] タブをクリックして [開く] ボタンをクリックし、[XML ファインダ] ダイアログ ボックスを表示します。[XML ファインダ] ダイアログ ボックスを使用して、XPath 式のテストに使用する XML、DTD、または Schema (XSD) ドキュメントを取り出します。詳細については、XML エンティティを取り出すを参照してください。

    ユーザが DTD または XSD ドキュメントを開くと、Wizard はサンプルの XML ドキュメントを、ユーザが選択した DTD または Schema から生成します。生成された XML ドキュメントを使用して、XPath 式をテストします。

  3. (省略可能)サンプル ドキュメントから XPath ロケーション式を生成します。手順については、XPath ロケーション式を XML エンティティから生成するを参照してください。

  4. [テスト] タブを選択します。

  5. [XPath 式] フィールドに式を入力するか、[ワークスペース] から配置した式を編集(関数を追加するなど)します。

  6. ボタンをクリックします。[テスト] 領域に関数の戻り値が表示されます。

    図8-7 XPath の関数の演算結果


     

  7. 必要に応じて、[XPath 式] フィールドで XPath 関数を編集して修正します。

  8. 関数を再びテストする場合は、 ボタンをクリックします。[テスト] 領域に関数の戻り値が表示されます。

  9. [OK] をクリックして、関数を [Expression Builder] に返します。

 

ページの先頭 前 次