第7章

基本的なアクション

これまでの章では、XMLテンプレートおよび入力と出力にテンプレートを使用するXMLマップコンポーネントの作成方法について説明しました。 この章では、実際に行う作業について説明します。ここからはアクションが登場します。

注記:   この章では、XMLコンポーネントで使用できる基本的なアクションについて説明します。次の章では、より強力なアクションを、また、では、これらのアクションをいくつか使用した詳細な例について取り扱います。

 
Top of page

アクションとは

「アクション」は、プログラミングステートメントに類似しており、パラメータの形式で入力を受け付け、特定のタスクを実行します。 たとえば、メールの送信アクションでは、受信者の電子メールアドレスをパラメータの1つとして入力することにより、電子メールが送信されます。

個々のアクションについて学ぶ前に、まずexteNdのアクションモデルを理解する必要があります。これまでの章で、コンポーネントは、XMLドキュメントを処理したり、XML以外のデータソースと通信したりするための手順のセットであるということを説明しました。この手順のセットは「アクションモデル」と呼ばれます。Composerでは、アクションモデルは、データマッピング、データ変換、およびコンポーネントとサービス内でのデータ転送をすべて実行します。

アクションモデルは、アクションのリストから構成されています。アクションモデル内のすべてのアクションは相互に機能します。たとえば、あるコンポーネントのアクションモデルでは、請求書のデータをディスクから読み取り、電子メールアドレスを請求書から取得し、請求書が受信されたことを通知する電子メールメッセージを受信者に送信します。

このアクションモデルの例は、いくつかのアクションから構成されています。そのアクションは次のとおりです。

 
Top of page

Composerアクションの使用

Composerでは、基本のXMLマップコンポーネントでアクションを実行します。これらのアクションは、JDBCコンポーネントやJMSコンポーネントなどの「他のすべてのコンポーネントタイプ」で使用できます。アクションは、[アクション]メニューで、基本的なアクションと高度なアクションに分けられています。 次の表は、Composerで使える基本的なアクションについて説明しています。 高度なアクションについては次の章で解説します。

表7-1

基本的なアクション

説明

コメント

アクションモデルを記録します。 特に、アクションモデルに[決定]または[繰り返し]、あるいはその両方が使用されている場合、コメントを使用して処理を明確にすることができます。

キーボードショートカット: <Ctrl>-<E>

コンポーネント

別のコンポーネントまたはサービスを実行し、渡されるランタイムDOMを指定し、呼び出されたコンポーネントから受信します。

キーボードショートカット: <Ctrl>-<T>

決定

指定した条件に基づいて、アクションの2つのセットのうちいずれかを実行できます。コンポーネントの実行で指定した条件がどのように解決されるかによって、TrueまたはFalseへのパスのブランチを処理します。

キーボードショートカット: <Ctrl>-<D>

エイリアスの宣言

XPathへの任意のラベルを割り当て、操作を便利にすることができます。割り当てたラベルは、ランタイムまたはアニメーション時に完全なXPathに拡張されます。

機能

ECMAScriptスクリプト関数または以前に作成したカスタムスクリプトのいずれかを実行します。 カスタムスクリプトは、Composerのカスタムスクリプトリソースエディタを使用して作成できます。

キーボードショートカット: <Ctrl>-<U>

ログ

コンポーネントに指定されているさまざまなログファイルに情報を書き込みます。次に示す3つのログタイプがあります。システム出力、システムログ、およびユーザログの3種類があります。

キーボードショートカット: <Ctrl>-<L>

マップ

要素のデータをあるXML DOMから別のXML DOMへ転送し、オプションで変換します。

キーボードショートカット: <Ctrl>-<M>

メールの送信

コンポーネントの実行中、指定した電子メールアドレスに自動的に電子メールを送信します。

スイッチ

入力値と大文字小文字の値との一致に基づいて、プログラムの制御をアクションの特定のブロックにブランチさせることができます。これは、長く、読み取りが困難なif/else (決定アクション)のチェーンを排除する場合に使用できる便利なアクションです。

作業

作業の計画や実施状況を管理するための作業リストを操作するアクションです。

 
Top of section

アクションの作成

新規アクションを作成する方法には次の4とおりがあります。

どちらの場合も、アクションを作成する前にコンポーネントを開く必要があります。

Procedure [アクション]メニューを使用したアクションの作成

  1. コンポーネントを開きます。

  2. アクションモデルで、新しいアクションを配置したい場所のすぐ上の行でマウスをクリック(つまり、ハイライト表示または選択)します。選択した行の下に新しいアクションが挿入されます。

  3. Composerの[アクション]メニューで、[新規アクション]を選択し、次に作成するアクションのタイプを選択します。

    ActionMenus

  4. ダイアログボックスが表示されたら、必要に応じてアクションに関するパラメータを入力または選択します。(これらについては、後続のトピックで説明します。以降の説明を参照してください)。次に、該当する場合、ダイアログボックスを閉じます。

Procedure コンテキストメニューを使用したアクションの作成

  1. アクションを配置するアクションモデルの行を選択します。選択した行の下に新しいアクションが挿入されます。

  2. マウスの右ボタンをクリックし、コンテキストメニューを表示します。

7actionContextMenu

  1. コンテキストメニューから、アクションを選択します。

  2. 表示されるダイアログボックスの操作を行います。

  3. ダイアログボックスを閉じます。

Procedure ショートカットキーを使用したアクションの作成

  1. アクションを配置するアクションモデルの行を選択します。選択した行の下に新しいアクションが挿入されます。

  2. 上の表に示した組み合わせのキーボードショートカットを使っても、アクションを作成できます。 たとえば<Ctrl>-<L>キーで、ログアクションをモデルに追加できます。

Procedure アクションを切り取る、コピーする、または貼り付ける

  1. アクションモデルペインで、アクションを選択(クリック)します。

  2. メインメニューバーの[編集]メニューまたはマウスの右ボタンで使用できるコンテキストメニューから、[切り取り]、[コピー]、[貼り付け]、または[削除]を必要に応じて選択します。

  3. 操作を取り消すには、<Ctrl>+<Z>キーを入力(または[編集]メニューから[元に戻す]を選択)します。

アクションの追加に加え、アクションモデルの既存のアクションを編集したり、無効にしたりすることもできます。無効にすると、そのアクションは実行できなくなりますが、アクションモデルにはそのまま保持されるため、あとで有効にすることもできます。

Procedure アクションを編集する

  1. アクションモデルで任意のアクションをダブルクリックし、編集します。

  2. または、アクションモデルペインでアクションを選択します。

  3. [アクション]メニューから、[編集]を選択します。アクションタイプのダイアログボックスが表示されます。

  4. アクションに必要な変更を加えます。

  5. [OK]をクリックします。

Procedure アクションを無効にする

  1. アクションモデルペインで、アクションを選択します。

  2. [アクション]メニューから、[無効]を選択します。アクションがグレー表示になります。

  3. アクションを再び有効にするには、[有効]を選択して手順1と2を繰り返します。

この章の残りの部分では、基本的なアクションとその使用方法の例を示します。

 
Top of page

コメントアクション

コメントアクションを使用すると、アクションモデルを記録して実行する処理を明確にすることができます。コメントはアクションモデル内のどこにでも追加できます。コメントそれ自体は処理を行いません。

Procedure コメントアクションを追加する

  1. コンポーネントを開きます。

  2. コメントを配置するアクションモデルの行を選択します。選択した行の下に新しいコメントが挿入されます。

  3. [アクション]メニューから、[新規アクション]、[コメント]の順に選択します。キーボードショートカット<Ctrl>-<E>でも同じです。[コメント]ダイアログボックスが表示されます。

    7comment01

  4. コメントを入力します。

  5. [OK]をクリックします。

 
Top of page

コンポーネントアクション

コンポーネントアクションでは、指定したランタイムの入力と出力で別のコンポーネントまたはサービスを呼び出し、実行します。プロジェクト内のどのコンポーネントでも呼び出すことができます。別のコンポーネントを呼び出すには、アクションに対して次の4種類のパラメータを指定する必要があります。

[コンポーネントタイプ]には、呼び出すコンフリクトのカテゴリを指定します。コンポーネントタイプは、コンポーネントの見出しの付いた、Composerのカテゴリペインにリストされるタイプとは一致しません。次に挙げる文字列は有効な値であり、大文字小文字が区別されます。

これらは、そのコンポーネントタイプを実装する接続がインストールされているかどうかによって異なります。

[コンポーネント名]には、呼び出すコンポーネントまたはターゲットコンポーネントの名前を指定します。[コンポーネントタイプ]で選択したタイプに存在するコンポーネント名でなければなりません。

[渡されたID]には、現在のコンポーネントまたはサービス内のドキュメント名を指定します。ターゲットコンポーネントに渡すドキュメントを、1つまたは複数指定できます。何も指定しないことも可能です。ここで指定するドキュメント名は、入力ドキュメントとしてターゲットコンポーネントに渡されます。

[返されたID]には、ターゲットコンポーネントの結果を受け取る、現在のコンポーネントまたはサービス内のドキュメント名を指定します。既存のドキュメント名を使用するか、存在しない名前を指定して新しいドキュメントを作成することもできます。

これらのパラメータは、[事前定義]または[ダイナミック]のいずれかの方法で指定できます。定義済みのコンポーネントアクションでは、プロジェクトの現在の状態における値を使用した4種類のパラメータを指定します。一度指定されると、これらの値は手動で変更されない限り、アクションのすべての実行に対して適用されます。ダイナミックなコンポーネントアクションでは、ランタイム時の4種類のパラメータは、作成した式によって計算された値で指定します。 この場合、コンポーネントアクションの動作は柔軟になり、実行ごとにランタイムでの条件に対応できるようになります。1度のコンポーネントアクションで、さまざまなランタイムの条件に基づいて異なるコンポーネントを実行する、異なる入力ドキュメントを渡す、または異なるドキュメントで結果を受け取ることができます。

Procedure 定義済みのコンポーネントアクションを追加する

  1. コンポーネントを開きます。

  2. コンポーネントを呼び出すアクションモデルの行を選択します。選択した行の下に新しいアクションが挿入されます。

  3. [アクション]メニューから、[新規アクション]、[コンポーネント]の順に選択します。キーボードショートカット<Ctrl>-<T>でも同じです。[コンポーネント]ダイアログボックスが表示されます。

  4. [事前定義]ラジオボタンが選択されていない場合、クリックしてオンにします。

    7Componentpredefined

  5. [コンポーネントタイプ]ドロップダウンリストから該当するコンポーネントタイプを選択します。

  6. [コンポーネント名]から、実行するコンポーネント名を選択します(コンポーネントのリストは、[コンポーネントタイプ]で選択したコンポーネントタイプに対応しています)。

  7. [渡されたID]フィールドで、ソースコンポーネントDOMを選択します。

  8. [渡されたID]フィールドで、呼び出されるコンポーネントが出力を返すソースDOMを選択します。新しいDOMを作成する場合、[返されたID]フィールドに名前を入力します。

  9. [OK]をクリックします。

Procedure ダイナミックコンポーネントアクションを追加する

  1. コンポーネントを開きます。

  2. コンポーネントを呼び出すアクションモデルの行を選択します。選択した行の下に新しいアクションが挿入されます。

  3. [アクション]メニューから、[新規アクション]、[コンポーネント]の順に選択します。キーボードショートカット<Ctrl>-<T>でも同じです。[コンポーネント]ダイアログボックスが表示されます。

  4. [ダイナミック]ラジオボタンが選択されていない場合、クリックしてオンにします。

  5. 有効なコンポーネントタイプ(map、service、JDBC、3270、5250、CICSRPC、JMS、HTML)のうちの1つを返すECMAScript式を作成します。

注記:   コンポーネントタイプは、そのタイプを実装している接続が、使用しているComposerにインストールされている場合にのみ有効です。

7componentdynamic

  1. プロジェクト内の有効なコンポーネント名またはサービス名を返すECMAScript式を作成します。

  2. 現在のコンポーネントまたはサービス内のランタイム時における有効なドキュメントIDを返すECMAScript式を作成します。このドキュメントは、入力ドキュメントとしてターゲットコンポーネントまたはサービスに渡されます。複数のドキュメントを渡す場合、式は、ドキュメントIDのコンマで区切られたリスト(たとえば、Input、Input 1、Temp、MyDoc)を含む単一文字列を返す必要があります。

  3. ターゲットコンポーネントの結果を受け取るドキュメントIDを返すECMAScript式を入力します。

 
Top of page

決定アクション

決定アクションでは、アクションまたはアクションのグループにブランチするif. . . thenステートメントが作成されます。決定アクションは、指定した条件に基づいて、あるブランチか別のブランチを選択するために使用します。条件には、= =、<、>、!、>=、<=、(&)、OR (||)、または<>のような、ECMAScript比較演算子を使用する必要があります。式はブールtrueステートメントまたはブールfalseステートメントを解決する必要があります。たとえば、請求書がある日付よりも古いかどうかを確認し、そうである場合に電子メールを送信できます。

Procedure 決定アクションを追加する

  1. コンポーネントを開きます。

  2. アクションを配置するアクションモデルの行を選択します。選択した行の下に新しいアクションが挿入されます。

  3. [アクション]メニューから、[新規アクション]、[決定]の順に選択します。キーボードショートカット<Ctrl>-<D>でも同じです。[決定]ダイアログボックスが表示されます。

  4. 任意のECMAScript比較演算子を使用して式を入力するか、[式ビルダ]ボタンをクリックして、ランタイム時にtrueまたはfalseを返す決定スクリプト(ECMAScript式)を作成します。

  5. [OK]をクリックします。アクションモデルには、次の決定アクションが表示されます。これにより、INVOICEノードの存在が確認されます。

    7DecisionResultinActionModel

  6. アクションモデルペインで、[TRUE]アイコンを選択します。

  7. 式がtrueである場合に実行する1つまたは複数のアクションを追加します。trueブランチの外側から内側へ切り取り/コピーアクションをドラッグアンドドロップできます。

  8. [FALSE]アイコンを選択します。

  9. 式がfalseである場合に実行する1つまたは複数のアクションを追加します。

決定アクションのTRUEブランチまたはFALSEブランチ、あるいはその両方の内側に他の決定アクションをネストできます。アクションモデルペインの完全な決定は、次の図のとおりです。

7decision02

 
Top of page

エイリアスの宣言アクション

エイリアスの宣言アクションでは、特定のXpath式に独自のカスタムラベルを適用できます(特定のアクションモデルのスコープ内でのみ有効です)。このアクションを使用すると、アクションモデルを認識しやすくでき、また入力の手間を省くことができます。

Procedure エイリアスの宣言アクションを追加する

  1. コンポーネントを開きます。

  2. エイリアスの宣言アクションを配置するアクションモデルの行を選択します。選択した行の下に新しいアクションが挿入されます。

  3. [アクション]メニューから、[新規アクション]、[エイリアスの宣言]の順に選択します。[エイリアスの宣言]ダイアログボックスが表示されます。

    7DeclareAlias

  4. [Alias]テキストフィールドに、使用する名前を入力します。

  5. [XPath]ラジオボタンまたは[式]ラジオボタンのいずれかを選択します。

  6. [XPath]ラジオボタンを選択した場合、ドロップダウンメニューから、ターゲットDOM(ターゲットXpathを含むドキュメントを示す)を選択します。次に、下のテキストフィールドに、ターゲットノードへのXPathを入力します。

  7. [式]ラジオボタンを選択した場合、テキストフィールドに、ターゲットXPathのECMAScriptでの適切な表現を入力するか、またはテキストフィールドの右にある[式ビルダ]アイコンをクリックして、式ビルダピックリストを使用して式を作成します。

  8. [OK]をクリックします。アクションモデルに新しいアクションが追加されます。

図の例では、入力パートにSHOW_PRODUCT/LIST_PRICEというノードがあります。XPath式へのエイリアス(任意の名前)を割り当てると、アクションモデルを全体を通して「$Input/SHOW_PRODUCT/LIST_PRICE」と繰り返し入力する必要がなくなるため便利です。この例では、$Input/SHOW_PRODUCT/LIST_PRICEに、「aPrice」というエイリアスが割り当てられています。エイリアスを割り当てると、アクションモデル全体を通して「$Input/SHOW_PRODUCT/LIST_PRICE」ではなく「aPrice」を使用できます。ランタイム時には、エイリアスは完全なXPathに拡張されます。

 
Top of page

関数アクション

関数アクションでは、ECMAScript関数またはカスタムスクリプトリソースエディタで作成したカスタムスクリプト関数のいずれかを実行できます。DOMの要素を操作するには、関数アクションで呼び出すスクリプトが現在のコンポーネント内の完全に識別できるDOM要素の名前を参照している必要があります。

作成してアクションモデルに追加するカスタムスクリプト関数は、どのXMLツリー要素に対しても使用できます。 たとえばデータ要素の書式を変更する関数を作成できます。 要素の中身に対して数学演算を施す関数を作成できます。 メッセージパートとのやり取りのないsystem関数、database関数、またはURL関数を実行することもできます。関数アクションは、カスタムスクリプトリソースで登録したJavaメソッドを呼び出すために使用することもできます。これにより、複雑(および単純)なJavaの処理をアクションモデルに視覚的に直接統合することができます。

Procedure 関数アクションを追加する

  1. コンポーネントを開きます。

  2. 関数アクションを配置するアクションモデルの行を選択します。選択した行の下に新しいアクションが挿入されます。

  3. [アクション]メニューから、[新規アクション]、[関数]の順に選択します。キーボードショートカット<Ctrl>-<U>でも同じです。[関数]ダイアログボックスが表示されます。

    7Function130

  4. [関数コール]フィールドに関数を入力するか、[式ビルダ]ボタンをクリックしてECMAScript式を作成します(後の説明を参照)。関数のコールでは、大文字小文字が区別されます。また、関数にパラメータが必要な場合、関数のコールにそれらを含めることを忘れないでください。

  5. [OK]をクリックします。[適用]ボタンをクリックすると、ダイアログボックスを閉じずに関数アクションの結果を表示できます。これにより、関数アクションを繰り返し編集しても、結果をすばやく確認できます。

Procedure 式ビルダを使用する

  1. 前の節での手順に従って、新しい関数アクションを追加します。

  2. [式ビルダ]ボタンをクリックし、[関数式ビルダ]ダイアログボックスを開きます。

  3. 変数、関数/メソッド、または演算子をダブルクリックし、それらを関数に挿入します。関数に直接入力することもできます。

    注記:   関数がECMAScriptの標準に準拠しているかどうかを確認します。準拠していない場合、関数は正しくコンパイルまたは動作しません。通常、関数をカスタムスクリプトリソース内で作成し、使用する前にテストすると、効率がよくなります。関数アクションの作成時には、カスタムスクリプトの関数名を参照し、それをパラメータとして指定できます。

  4. [検証]をクリックして、保存する前にスクリプトを検証します。

  5. [OK]をクリックして、スクリプトを保存します。

  6. [OK]をもう一度クリックして、関数アクションを保存します。

注記:   ECMAScriptは解釈済みの言語であるため、[検証]では、有効なECMAScript構文に準拠しているかどうかは確認されますが、ランタイムの従属式についてはチェックされません。

 
Top of page

ログアクション

ログアクションは、カスタマイズ可能なレポート機能(設計時、ランタイムとも)をComposerアプリケーションに展開できます。 ログレベル設定(後の節で説明)を使用すると、レポートのレベルを詳細に制御できます。ログアクションを単に「オン」または「オフ」にする必要はありません。

ログアクションを使用する場合の例は、次のとおりです。

 
Top of section

ログファイルの場所

ログアクションでは、ComposerおよびexteNd Composer Enterprise Serverの外部のさまざまな場所に情報を記録できます。実際の場所はアクションによって指定されます。 ログ出力の場所には、システム出力、システムログ、およびユーザログの3種類があります(次を参照)。

システム出力

[システム出力]オプションでは、[ログ式]フィールドに指定するメッセージが設計時のJava仮想マシンの処理ウィンドウまたはランタイム時のアクションサーバコンソールに書き出されます。

ログメッセージを作成するには、有効なECMAScript式を作成したり、式ビルダを使用してログの式を生成したりすることができます。書き出されるメッセージの前には、日付と時間のスタンプおよびログを実行しているコンポーネントの情報が記録されます。これらのメッセージは、Composerメインウィンドウのメッセージフレームにも表示されます。

システムログ

[システムログ]オプションでは、[ログ式]フィールドに指定するメッセージがComposerの設定ファイルxconfig.xmlの<LOGFILE>要素に指定されたファイル名に書き出されます。 Composerのメニューバーから[ツール]>[初期設定]の順に選択し、[一般]タブに切り替えます。

ユーザログ

[ユーザログ]オプションでは、[ログ式]フィールドに指定するメッセージが、[ログアクション]ダイアログボックスの[ユーザログファイル]フィールドに指定するファイルに書き出されます(後を参照)。

ログメッセージを作成するには、スタティックな文字列を入力したり、有効なECMAScript式を作成したり(または式ビルダを使用してログの式を生成したり)することができます。ログの式の結果は、テキストとしてログに書き出されます。書き出されるメッセージの前には、日付と時間のスタンプおよびログを実行しているコンポーネントの情報が記録されます。

ユーザログファイルを作成するには、有効なECMAScript式を作成してファイル名を生成したり、[式ビルダ]ボタンをクリックして、式ビルダを使用したりすることもできます。

 
Top of section

ログ優先度レベル

個々のログアクションには、優先度レベル(1から10まで)を割り当てることができます。 ランタイム時のログアクションの優先度は、[ツール]メニューの[初期設定]ダイアログボックスの[一般]タブで設定した、レポートのしきい値と比較されます。優先度がレポートのしきい値と等しいまたはレポートのしきい値より高いログアクションが実行され(つまり、メッセージは必要に応じてシステム出力またはディスクに記録されます)、優先度の低いログアクションのメッセージは記録されません。

個々のログアクションの優先度レベルは、[ログアクション]ダイアログボックスで設定できます。 記録のしきい値は、[初期設定]ダイアログボックスの[一般]タブで設定します(次の説明を参照)。しきい値を設定すると、それと等しいかそれより高い優先度のログアクションが実行されます。 たとえば、ログアクションAの優先度が4に、ログアクションBの優先度が9に、それぞれ設定されており、[初期設定]ダイアログボックスのしきい値が8に設定されている場合、ランタイム時にはログアクションBが実行されます。ログアクションAは無視されます。

注記:   レポートのレベルは、プロジェクトの展開後に、exteNd Composer Enterprise Serverのコンソール画面で調整することもできます。詳細については、Composer Enterprise Serverのドキュメントを参照してください。

Procedure ログのレポートしきい値を設定する

  1. [ツール]メニューにアクセスし、[初期設定]を選択します。[初期設定]ダイアログボックスが表示されます。

    3ToolsConfig

  2. [一般]タブで、「ログのしきい値」を1から10までの値に設定します。ここで設定する値が、「しきい値」です。優先度がこの値と等しいまたはこの値よりも高いログアクションのみが実行されます。

  3. [OK]をクリックして、ダイアログボックスを閉じます。

Procedure ログアクションを作成する

  1. コンポーネントを開きます。

  2. アクションの行を選択します。

  3. [アクション]メニューから、[新規アクション]、[ログ]の順に選択します。キーボードショートカット<Ctrl>-<L>でも同じです。[ログ]ダイアログボックスが表示されます。

    8log01

  4. [ログ先]ラジオグループで、メッセージを書き込む場所を選択します。(前に扱った場所についての説明を参照)。

  5. [ログレベル]スピンコントロールを使用して、このログアクションの優先度レベル(1から10まで)を選択します。デフォルトでは5に設定されています。一般的に、重要度が高いメッセージには、高い値を割り当てます。ここで割り当てる優先度は、前の節で選択したしきい値と比較されます(前の節を参照)。優先度がしきい値と等しいまたはしきい値より高い場合、メッセージは記録されます。それ以外の場合では、メッセージは記録されません。

  6. [ログ式]テキストフィールドに、文字列またはECMAScript式を入力します。 (テキストフィールドの右側にある小さなアイコンをクリックして式ビルダにアクセスし、ピックリストの選択肢を使用して式を作成できます)。

  7. コンポーネントの実行ごとにログファイルのデータをクリアする場合は、[ログファイルのクリア]をオンにします。

ログファイルの詳細については、システムメッセージの表示を参照してください。

 
Top of page

マップ アクション

マップアクションは、DOMノードの入力/出力のマッピングです。これにより、あるドキュメントのコンテキストのデータが別のドキュメントのコンテキストに転送(または、オプションで変換)されます。コンテキストには2つの部分があります。通常、最初の部分でDOMを特定し、2つ目の部分でDOM内の場所を特定します。Composerの基本ドキュメントコンテキストは、XPath式を通して特定される要素の場所(場所として参照)と結合されたDOM名として表されます。通常DOM名は、入力、入力1、入力(n)、一時、出力、またはコンポーネントにロード済みの名前の付いたDOMです。DOM内の場所を特定するXPath式には、「/」で区切られたパス要素があります。

注記:   Composerのコンテキストは、それ自体がXPath式の単なるエイリアスまたは省略形であるグループ名である場合もあります。

 
Top of section

XPathおよびECMAScript式について

マップアクションを作成すると、XPathおよびECMAScriptという2種類のメソッドから選択して、XMLドキュメント内での場所を特定できます。デフォルトはXPathです。これは基本の特定メソッドです。

基本メソッド: Xpathの単独使用

XPathを使用する主な目的は、XMLドキュメントの部分(つまり、要素および属性)を特定または検索することです。XPathは文字列、数値、およびブール値を単純な式構文を通して操作するための基本機能も備えています。 XPathは、要素ノード、属性ノード、およびテキストノードを含む、メッセージパートノードを特定します。

XPathはパターンの一致に基づいています。ターゲットドキュメントのノードを解決する要素名のパターンを入力します。ほとんどの場合、XPathによって、入力したパターンと一致する特定ノードを含む「ノードリスト」が返されます。(多くのXPath式では、1つのノードのみが返されますが、複数のノードが返されることもあります)。その他の場合、XPathにより、プリミティブ値(文字列、数値、またはブール値)が返されることもあります。

XPath式を取るすべてのComposerダイアログボックスでは、式ビルダのピックリストを使用して式を作成できます(後のECMAScriptを使用して式を作成するを参照)。

完全なXPathの仕様については、http://www.w3.org/TR/xpathを参照してください。

注記:   XPathの仕様は、Composerの\Docディレクトリの下層にもあります。

他のメソッド: ECMAScript内でのXPathの使用

DOM内の場所をアドレスするもう1つのメソッドは、XPathでECMAScriptを使用することです。このメソッドは、厳密なXPathアドレッシングの範囲を超える場合に使用します。ECMAScriptは、ホスト環境(つまりComposer)でオブジェクトを操作するための、オブジェクト指向のスクリプト言語です。ECMAScript (ECMA-262およびISO/IEC 16262)は、JavaScript (Netscape)およびJScript (Microsoft)の両方の基盤となる標準ベースのスクリプト言語です。 ECMAScriptは、Composerのグラフィカルユーザインタフェースのような、ホスト環境における既存の機能を補完および拡張する目的で開発されました。ホスト環境として、ComposerはECMAScriptにさまざまなオブジェクト(XMLドキュメントを含む)へのアクセスを提供し、処理できるようにします。代わりに、ECMAScriptは、これらのオブジェクトで動作できるJavaのような言語を提供します。

Composerの組み込みECMAScriptインタープリタは、XPath()と呼ばれるカスタムメソッドを認識します。これにより、次のような式を使用できます。

  Input.XPath(“Inventory/Books/Engineering”)

このタイプの式の作成は、Composerの式ビルダ機能を使用することにより大幅に容易になります(後のECMAScriptを使用して式を作成するを参照)。

 
Top of section

マップアクションの追加

Procedure マップアクションを追加する

  1. コンポーネントを開きます。

  2. マップアクションを配置するアクションモデルの行を選択します。選択した行の下に新しいアクションが挿入されます。

  3. [アクション]メニューから、[新規アクション]、[マップ]の順に選択します。キーボードショートカット<Ctrl>-<M>でも同じです。[マップ]ダイアログボックスが表示されます。

    7MapAction124

  4. [コピー元]のタイプは、[XPath]です。 プルダウンメニューから、パート([入力]、[出力]、または[一時])を選択し、次に、マップする要素を検索するXPath式を入力します。

    注記:   [式ビルダ]をクリックして、XPath式の作成にComposerを利用することもできます。 XPath式ビルダの使用を参照してください。

    パート名とXPathはともに、マップアクションのソースコンテキストを示します。

  5. [ターゲット]で、手順4から5を繰り返します。

  6. ダイアログボックスの中央にある[オプション]で、[コンテンツエディタ]、[コードテーブルマップ]、または[詳細]、あるいはこれら全部もしくはこのうちの2つをオンにし、マッピングの詳細な設定を行います。

    注記:   [コンテンツエディタ ]オプションおよび[コードテーブルマップ]オプションの詳細については、要素の変換を参照してください。[詳細]オプションについては、後の節で説明します。

  7. [OK]をクリックします。アクションモデルペインにマップアクションが表示されます(次の図を参照)。

    注記:   [適用]ボタンを押すと、ダイアログボックスを閉じずにマップアクションの結果を表示できます。これにより、マップアクションを繰り返し編集しても、結果をすばやく確認できます。

7newmap03

デフォルトのマッピング動作

マップアクションを使用してXMLドキュメント内で要素と属性をマップすると、あるデフォルトの動作が行われます。デフォルトの動作は、次の表のとおりです。

表7-2

マップのタイプ

デフォルトの動作

リーフ要素からリーフ要素へ

要素のデータのみを転送します。

リーフ要素からブランチ要素へ

要素のデータのみを転送します。

ブランチ要素からリーフ要素へ

ブランチの下層にあるすべてのチャイルド要素と属性のデータを含むブランチ全体を転送します。

ブランチ要素からブランチ要素へ

ターゲットの現在のブランチを削除した後、前のタイプと同様にブランチ全体を転送します。

リーフ要素のリストにある特定のリーフ要素から要素へ

選択したリーフ(または要素のインスタンス)からターゲット要素へ要素のデータを転送します。

属性から属性へ

属性のデータのみを転送します。

要素から属性へ

要素のデータを属性のデータへ転送します。

属性から要素へ

属性のデータのみを転送します。

これらの動作の多くは、[詳細]マッピングダイアログボックスでのオプションの使用によって、アクションごとに変化します(次の節を参照)。

マークアップを含むリーフ要素

ランタイム時にJavaまたはECMAScript操作を使用して要素をマップすると、ある特別な状況が発生することがあります。 要素は、マークアップ、つまり<および>などの無効な文字を含む文字列を含むデータを受け取る可能性があります。これにより、Composerがそのような要素の加工されていないコンテンツをそのまま出力DOMのノードにマップした場合に出力ドキュメントに異常が発生するというマッピングの問題が生じます。

Composerでは、ターゲットドキュメントにその場で作成されるCDATAセクションにマークアップを含むデータをマッピングすることでこの問題を解決します。

注記:   設計時にマークアップを手動で入力すると、少々異なる動作が起こります。設計時に、(マウスボタンを右クリックし、[データの編集])を選択して)マークアップデータをノードに入力すると、マークアップ文字はその場でエンティティ化されます。 加工されていないXMLをテキストビューで表示すると、手動で入力した「<」文字は、&lt; に変換されていることなどがわかります。次に、エンティティ化されたデータは出力に直接マップされます。

 
Top of page

詳細な マッピングオプション

[マップアクション]ダイアログボックスで[詳細]チェックボックスをオンにすると、次のダイアログボックスが表示されます。このダイアログボックスで設定するオプションは、現在のマップアクションにのみ適用され、次のアクションには適用されません。

7AdvancedMapPrefs

このダイアログボックスのオプションにより、入力パートノードの出力パートへのマッピングを詳細に制御できます。

[属性のコピー]

このコントロールのグループでは、属性のマップ方法を指定します。このグループには、次の3種類のラジオボタンがあります。

[ディープコピー]

Composerはデフォルトで、ブランチ全体(つまり、ターゲットノードとすべてのチャイルドノード)を一度にマップします。場合によっては、この「ディープコピー」動作をオフにして、チャイルド要素を除いてペアレント要素のみをコピーします。 Composerの標準のディープコピー動作を無効にする場合、[従属要素のマップ]というチェックボックスをオフにします。

[ターゲットの作成]

[ターゲットの作成]オプションでは、ソースノード(またはブランチ)がソースDOMに存在するかどうかによって、[マップアクション]ダイアログボックスの[ターゲット]で指定したマップ先のノード(またはブランチ)をオプションで作成できます。デフォルトの動作では、ComposerはマッピングのソースXPathで指定したノードがランタイムのソースDOMに含まれているかどうかにかかわらず、ターゲットを作成します。

たとえば、次のとおりです。[マップアクション]ダイアログボックスで、次のようなソースXPathを指定したとします。

  $Input/Root/MySourceElement

一方、[ターゲット]では、次のように指定したとします。

  $Output/Root/MyParentNode/SomeOtherElement

使用する入力ドキュメントがRoot/MySourceElementに対応するノードを持たない場合、Composerはあくまでも(デフォルトで)出力DOMに空のRoot/MyParentNode/SomeOtherElementノードを作成します。ただし、場合によっては、この状況を望まないこともあります。このような場合、[詳細]マッピングダイアログボックスにあるこのラジオボタンを使用すると、デフォルトの動作を変更できます。

注記:   [マップアクション]ダイアログボックスで[コードテーブルマップ]が選択されている場合、[ターゲットの作成]オプションは無効です。

このラジオボタンクループで使用できるオプションは次のとおりです。

CDATAセクションとしてのターゲットの作成

このラジオボタンクループでは、要素のデータをCDATAセクションにマップする方法を制御できます。オプションは次のとおりです。

[ソースにマークアップが含まれている場合のみ] - このオプションでは、ソースデータがXMLタグ、HTMLタグ、または「無効な」文字が使用されているその他のタイプのマークアップを含む場合、データはターゲットDOMのCDATAセクションにそのまま配置されます。これはComposerのデフォルトの動作です。

[使用しない] - このオプションを設定すると、ソースデータが出力のCDATAセクションにラップされることはありません。ソースデータに含まれている無効な文字は、たとえば、>の場合、&gt;になるなど、適切にエスケープされたエンティティに出力側で変換されます。

[常時] - ソースデータは、その形式にかかわらず出力のCDATAセクションにラップされます。

XPath式ビルダの使用

[マップアクション]ダイアログボックスでは、該当するテキストフィールドの右端にある[式ビルダ]ボタンを選択して、独自のXPath式を作成できます。 表示される[XPath式ビルダ]ダイアログボックスには、クリックするだけで有効なXPath構文を作成できるピックリストがあります。これは、基本のXPathアドレッシングの範囲を超えて、XPathのより強力な機能のいくつかを使用する場合に特に便利です。

exteNd Composerでは、W3Cで採用されてるアドレッシング構文を使用します。XPath構文は、基本的な概観ではURIアドレスと同様ですが、XMLのアドレッシングおよび操作のための詳細で強力な機能を多く備えています。より一般的な構文ルールのいくつかは、次の表のとおりです。

表7-3

XPath構文

説明

/

単一のスラッシュは要素への絶対パスを示します。/ABCではABCのルート要素が選択されます。

//

二重スラッシュはパス内のすべての要素を示します。//ABCでは、ABCが現れるすべての箇所が選択されます。//ABC//DEFでは、ABCのチャイルド要素であるすべてのDEF要素が選択されます。

*

アスタリスクでは、前のパスで指定されたすべての要素が選択されます。*ABC/DEFでは、要素ABC/DEFで囲まれたすべての要素が選択されます。//*では、すべての要素が選択されます。

[ ]

角括弧は特定の要素を示します。/ABC[3]では、ABCの3番目の要素が選択されます。これはフィルタ(SQLでのWhere節と同様)として使用できます。//ABC["Table"]では、「Table」というコンテンツを持つすべての要素が選択されます。

@

アット記号では、特定の属性を持つ要素が選択されます。/ABC@nameでは、nameという属性を持つ、ABC内のすべての要素が選択されます。

|

縦線では、複数のパスを指定できます。//ACB|//DEFでは、ABCおよびDEF内のすべての要素が選択されます。

$

ドル記号では、現在のドキュメント以外の他のドキュメントを参照できます。INVOICEBATCH/INVOICE[SELLER/NAME=$PROJECT/USERCONFIG/COMPANYNAME]

function()

XPathには、XPathのアドレスに追加できる多くの関数があります。たとえば、//*[count(*)=2]では、2つのチャイルド要素を持つすべての要素が選択されます。

math operator()

XPathには、XPathのアドレスに追加できる多くの算術演算子があります。たとえば、/ABC|position() mod 2 = 0]では、ABC内のすべての偶数要素が選択されます。

演算子の完全なリストについては、http://www.w3.org/TR/XPathを参照してください。

Procedure XPathを使用して式を作成する

  1. コンポーネントを開きます。

  2. [アクション]メニューから、[マップ]アクションを選択します。

  3. [XPath]ラジオボタンがオンになっていることを確認します。

  4. [式ビルダ]ボタンをクリックします。[ソースXPath]ダイアログボックスが表示されます。

    7sourceXpath

  5. ペインでアイテムをダブルクリックして式を作成します。

  6. 式の構文が正しいかどうかを検証します([検証]ボタンを使用します)。

  7. [OK]をクリックします。

ECMAScript式ビルダの使用

マップアクションの[ECMAScript]ラジオボタンをオンにすると、[ECMAScript式ビルダ]が表示され、有効なECMAScript構文を簡単に作成できます。これは、厳密なXPathアドレッシングの範囲を超えて、ComposerによるECMAScriptアドレッシングのより強力な機能をいくつか使用する場合に便利です。

ECMAScript式ビルダは、次の図のとおりです。

7sourceexpression

ピックリストのオブジェクトは、使用頻度が高いものから順に表示されます。オブジェクトのすべてのプロパティおよびメソッドにも順序があります。 常にプロパティが最初にアルファベト順に表示され、その後にすべてのオブジェクトのメソッドがアルファベット順に表示されます。

[関数/メソッド]ピックリストおよび[演算子]ピックリストのすべてのアイテムには、関連付けられたツールヒントがあります。 ツールヒントを表示するには、該当するアイテムの上にカーソルを合わせます。 [変数]ピックリストのアイテムにカーソルを合わせると、アイテムに関連付けられたデータが表示されます。

注記:   複雑なECMAScript式を作成できますが、それらの式は、DOMとDOM内のアドレスを構成するドキュメントコンテキストを返す必要があります。

Procedure ECMAScriptを使用して式を作成する

  1. コンポーネントを開きます。

  2. [アクション]メニューから、[マップ]アクションを選択します。

  3. [式]の隣にあるラジオボタンをオンにします。

  4. [式ビルダ]ボタンをクリックします。[ソース式]ダイアログボックスが表示されます。

    7sourceexpression

  5. ペインでアイテムをダブルクリックして式を作成します。

  6. [検証]をクリックすると、式の構文が正しいかどうかをオプションで検証できます。 (これによって式が実行されることはありません。単に解析されるだけです)。

  7. [OK]をクリックします。

 
Top of page

メールの送信アクション

メールの送信アクションは、コンポーネントの実行中に、ダイナミックに電子メールメッセージを作成したり送信したりします。 メールの送信アクションを作成する際には、電子メールの宛先や送信方法をComposerに認識させるために必要な、さまざまなパラメータを指定する必要があります。 パラメーターをハードコードするほか、実行時に評価されるECMAScriptの式の形で記述しても構いません。

メールの送信アクションには次のような使い道があります。

メールの送信アクションで送信する電子メールには、任意のMIMEタイプの書類を添付することもできます。 また、メールサーバの種類(ユーザ名やパスワードがある場合、ない場合など)に応じ、さまざまなメールの送信アクションが使えます。

 
Top of section

SMTP簡易認証によるメール送信

内部使用のメールサーバの中には、ユーザ名やパスワードがなくてもメールを送信できるものもありますが、多くのSMTPサーバは認証が済まないとアクセスできないようになっています。 メールの送信アクションで呼び出すメールサーバがユーザIDやパスワードを要求する場合は、「メール簡易認証」接続リソースを用意する必要があります。 このリソースには、使いたいメールサーバのネットワークアドレスの他、ユーザ名およびパスワードを格納します。 一度作ったリソースは、プロジェクト内のコンポーネントやサービスで、何回でも再利用できます。

使いたいサーバごと(あるいはそれぞれのユーザ名/パスワードごと)にMail via SMTPリソースが必要なわけではないことに注意してください。 Mail via SMTP接続リソースのパラメータはすべて、ECMAScriptで間接的に指定することができます。サーバ名やユーザの資格情報は、ディレクトリやデータベースを検索し、実行時に与えるようにしても構わないのです。 ECMAScriptを使えば、どのメールサーバや資格情報を使うか、独自のビジネスロジックで実行時に決めることができます。

注記:   ECMAScriptを使って接続リソースのパラメータ値をダイナミックに決める方法について詳しくは、リソースに関する章の定数駆動型および式駆動型の接続についてを参照してください。

Procedure 「メールの簡易認証」接続リソースを作成する手順

  1. ナビゲーションフレームで、「リソース」の下層にある「接続」を右クリックし、次のように、コンテキストメニューから[新規]を選択します。

    7SendMailSMPTResource

  2. ウィザードペイン(下の図)が現れます。接続リソース名を[名前]に指定し、必要に応じて説明文も入力してください。

    7SMPTConnection1

  3. [次へ]をクリックします。 ウィザードの2番目のパネル(これが最後)が表示されます。

    7SMPTConnection2

  4. [接続タイプ]プルダウンメニューから、[ SMTP簡易認証によるメール送信]を選択します。

  5. [SMTPサーバ]に、使いたいメールサーバ名またはIPアドレスを入力します。

  6. [ユーザID]に、使いたいメールアカウントのユーザ名を入力します。

  7. [パスワード]に、当該ユーザアカウントのパスワードを入力します。

    注記:   先にも述べたように、このパラメータはECMAScriptの式で指定しても構いません。 ECMAScriptの使い方について詳しくは、リソースに関する章の定数駆動型および式駆動型の接続についてを参照してください。

  8. [完了]をクリックします。

 
Top of section

メールの送信アクションの作成方法

Procedure メールの送信アクションを追加する手順

  1. コンポーネントを開きます。

  2. メールの送信アクションを配置するアクションモデルの行を選択します。選択した行の下に新しいアクションが挿入されます。

  3. [アクション]メニューから、[新規アクション]、[メールの送信]の順に選択します。[メールの送信]ダイアログボックスが表示されます。 ここには[メッセージ]、[サーバ]、および[添付ファイル]という3つのタブがあります。

  4. [メッセージ]タブをまだ選択していない場合は、それを選択します。

    8email01

  5. [メール受信者]フィールドに、ECMAScript式を入力して受信者の電子メールアドレスを指定します。 この式を評価した結果は、「name@domain.extension」という形式になっていなければなりません。 文字列値をハードコードする場合は、テキストを引用符で囲んでください。

  6. [メール送信者]フィールドに、送信者の電子メールアドレスを表すECMAScript式を入力します (実際の電子メールアドレス以外にも、任意の文字列を指定できます)。 文字列値をハードコードする場合は、やはりテキストを引用符で囲んでください。

  7. [メールの件名]フィールドに、有効なECMAScript式を入力して電子メールの件名を指定するか、件名を入力します。 文字列値をハードコードする場合は、やはりテキストを引用符で囲んでください。

  8. [メール本文]フィールドに、有効なECMAScript式を入力して電子メールの本文テキストを指定するか、引用符で囲んで本文テキストを入力します。

  9. [エンコード]プルダウンメニューから、メッセージ本文のエンコーディング方法を指定します。 初期状態ではASCIIになっています。

  10. [サーバ]タブをクリックします。 ダイアログが次のように切り替わります。

    7SendmailServerTab

  11. メールサーバのアドレスを求めるECMAScriptを指定する場合は、ラジオボタンの[メールサーバ]を選択します。 「SMTP簡易認証によるメール送信」接続リソースで指定されたサーバを使う場合は、ラジオボタンの[接続名]を選択します (このリソースタイプについてはSMTP簡易認証によるメール送信を参照)。 (ユーザ名とパスワードによる)認証が必要な場合は、[接続名]を選択することになります。

  12. 電子メールにファイルを添付する場合は、[添付ファイル]タブに切り替えます (必要なければ[OK]をクリックしてコンポーネントエディタに戻ります)。 ダイアログが次のように切り替わります。

    7SendMailAttachmentsTab

  13. 「+」ボタンをクリックし、添付ファイルを追加します。

  14. [タイプ]欄のプルダウンメニューで、[文字列]か[URL]のいずれかを選びます。

  15. [コンテンツタイプ]に添付ファイルのMIMEタイプを指定します。 ドロップダウンメニューから選択しても、直接入力しても構いません。

  16. [添付ファイル]に、ファイルの内容を表すEXMAScriptの式([タイプ]欄で[文字列]を選んだ場合)、またはURLを入力します。 上の1行目の例では、コンポーネントの入力ドキュメントの /messageノードを参照して、添付ファイルの内容を求めるようになっています。 2行目の例では、ECMAScriptであらかじめ宣言された「image」という変数を参照し、JPEG画像のURLを求めるようになっています。 変数の値は実行時に、たとえば「file:///d:/server-1/resourcestore/images/stockimage.jpgというように求められます。

  17. [OK]をクリックします。 コンポーネントのアクションモデルに、新しいメールの送信アクションが表示されます。

    7SendMailActionModelLine

 
Top of page

スイッチアクション

スイッチアクション(JavaおよびC言語のswitchステートメントにより呼び出される)は、特定の入力変数の値またはXPath式に基づいてアプリケーションを適切なカスタムロジックへブランチさせるためのものです。スイッチアクションは、ネストされた決定アクションの連続を使用する必要性を回避できる便利なアクションです。このアクションを使用すると、複数のアクションを除外したり、それらを一貫した、わかりやすく読みやすい単一のアクションに統合したりすることによって、アクションモデルの読みやすさを大幅に向上させることができます。

 
Top of section

ケースについて

スイッチアクションでは、一連の値または選択肢(「ケース」)を入力値と比較します。値または選択肢は、スタティックまたはダイナミックのいずれかです。入力値と選択肢のうちの1つに完全一致が起こると、実行は選択肢の下層にリストされているアクションにブランチします。ケースは、一連のif/elseステートメントと同様に「リストされた順序で」テストされ、一致が起こると、一致ロジックの実行はスイッチアクション内の他の実行を除外します。

ケースに関連付けられたカスタムロジックは、単一のアクションまたはアクションのブロックで構成でき、アクションにはComposerの標準(基本的または高度な)アクションと特定の接続に固有のアクションを含むことができます。

スイッチの例

受信するXMLドキュメントが商品の小売り注文であり、アプリケーションで実行する必要のあるタスクの1つが顧客の住所に基づく発送方法の決定であるとします。スイッチアクションへの入力には、次のようなXPath式が考えられます。

  $Input/Order/Customer/Address/Country

スイッチアクションのケースの値および各選択肢に対して関連付けられたロジックは、次のような場合があります。

  CASE:"USA"
     CALL shipMethod = (weight < 10) ?"FedEx" :"UPS";
  CASE:"ANGOLA"
     CALL shipMethod = "Air Gemini";
  CASE:"ARGENTINA"
     CALL shipMethod = "International First Services";
  CASE:"AUSTRALIA"
     CALL shipMethod = "Ansett International";
  .
  .
  .
  DEFAULT:
     CALL shipMethod = "UPS";

ランタイム時には、Order/Customer/Address/Countryの入力DOM要素の値は、一致が起こるまで、「USA」を始め、後続の各ケースの値と比較されます。この例では、「ANGOLA」で一致で起こった場合、「Air Gemini」を(ECMAScript)変数shipMethodに割り当てる関数アクションが実行され、その後直ちにスイッチアクションは終了し、次に実行は、スイッチアクションの後に最初のアクション(存在する場合)へと続きます。

注記:   JavaおよびC言語のケースステートメントに組み込まれている「フォールスルー」動作は、Composerのスイッチアクションではないため、明示的なブレークアクションをケースのアクショングループに挿入する必要はありません。 一致が起こると、次のケースへのフォールスルーが起こることはありません。

前の例は、決定アクションの連続として作成することもできます。決定アクションの連鎖の擬似ロジックは、次のようになります。

  country = inputValue
  if (country == USA)
     ship via A or B
     else if (country == ANGOLA)
        ship via C
        else if (country == ARGENTINA)
           ship via D
           else if (country == AUSTRALIA)
              ship via E
  [etc]
                 else ship via Default shipper
  

スイッチを使用すると、この種類のコードに特有の階段状のインデントとif/elseロジックの繰り返しを使用する必要がなくなります。また、読みやすく、保守の容易なコードを作成することにもつながります。一般に、長い条件文を取り扱う場合は、スイッチアクションの使用を考慮する必要があります。

 
Top of section

デフォルトのケースについて

各スイッチアクションの下の最後の「ケース」には、常にDefaultというラベルが付きます。この行は自動的に生成され、削除することはできません。Defaultの下に配置されるアクションは、スイッチアクションがランタイム時に、ケースのリストで一致するケースと遭遇しなかった場合に限り、実行されます。

注記:   Defaultの下にアクションを配置することを要求されていない場合、ログアクションまたはRaise Errorアクションであっても、「一致なし」の場合に備えて何らかの予備ロジックを用意しておくことがプラグラム作成上、望まれます。

Procedure スイッチアクションを追加する

  1. コンポーネントを開きます。

  2. スイッチアクションを配置するアクションモデルの行を選択します。選択した行の下に新しいアクションが挿入されます。

  3. [アクション]メニューから、[新規アクション]、[スイッチ]の順に選択します。[スイッチ]アクションダイアログボックスが表示されます。 (次のダイアログボックスに指定されているテキスト値はデフォルトではありません。これらの値は単に例として示されているものです)。

    8SwitchDialog

  4. ダイアログボックスの上部にある[式]に、XPathまたはECMAScript式を入力します。これは、スイッチアクションに対する入力値です。

  5. コンボボックスに、前の手順で指定した入力値と比較される、スタティックな文字列値またはECMAScript式を入力します。各ケースの値は、ランタイム時には、リストした順序で比較されます。 (ヒント: パフォーマンスを最適にするには、可能性の高い一致から順にリストします)。

    注記:   デフォルトでは、ケースの新しいエントリは既存のリストの最後に追加されます。 ただし、選択肢を選び、必要に応じて[上]ボタンと[下]ボタンをクリックすると、選択肢の順序を変更できます。

  6. [OK]をクリックします。 ダイアログボックスが閉じ、アクションモデルに新しいスイッチアクションが表示されます。次の例を参照してください。

    7Switch

アクションモデルに新しいスイッチアクションを追加すると、ケースの値のリストが表示されます。ケースに独自のカスタムロジックを関連付けるには、ケースをクリックし、次に新しいアクションを必要に応じて1つずつ追加します。新しいアクションを追加するには、マウスの右ボタンをクリックし、コンテキストメニューから[新規アクション]を選択します。アクションブロックに含めることができるアクションの数(およびタイプ)に制限はありません。

Procedure カスタムケース処理ロジックを追加する

  1. アクションモデルで、処理ロジックの追加先となるケースを探します。

  2. 該当するケースの下にあるアクションの行をクリックします。

  3. マウスを右クリックして、コンテキストメニューを表示します。[新規アクション]を選択し、サブメニューの使用可能なアクションから任意のアクションを選択します。

  4. 前の手順を繰り返し、必要なだけアクションを追加します。

スイッチアクションの編集

スイッチアクションの編集に使用する主なツールは、[スイッチ]アクションダイアログボックスです。ここでは、入力式を編集したり、ケースの順序を変更したり、ケースの式を編集したり、ケースの値を追加または削除したりすることができます。 このダイアログボックスには、アクションモデルで任意のスイッチアクションをダブルクリックするだけでアクセスできます。

アクションモデル自体(設定のダイアログボックスを開かない場合)では、編集できる内容に制限があります。この制限は次のとおりです。

  1. ケースのアクションリストにあるアクションは通常の方法で編集できます。

 
Top of page

作業 アクション

WebサービスやXML統合アプリケーションの開発には、非常に複雑な作業が必要です。 Composerには、アプリケーション開発に必要な数多くの作業を整理するために、作業リストを管理する機能があります。

Procedure 作業アクションを追加する手順

  1. コンポーネントを開きます。

  2. アクションモデルで、作業リストを追加しようとする箇所のすぐ上の行を選択します。 選択した行の下に新しいリスト項目が挿入されます。

  3. [アクション]メニューから、[新規アクション]、[作業]の順に選択します。 次の[作業]ダイアログが表示されます。

    7TodoAction

  4. 作業内容の説明文を入力します。作業リストにはこの文が表示されることになります。

  5. 必要ならば[注記]に追加情報を入力します。このテキストは、マウスのポインタが項目上にある場合に項目のツールヒントの一部として表示されます。

  6. 下向き矢印をクリックし、作業の[完了パーセント]を指定します。まだ作業を始めていなければ0のままで構いません。作業の進捗に合わせてこの値を更新していくことになります。

  7. [OK]をクリックするとこの作業項目がアクションモデルに追加されます。

プロジェクト全体の作業リスト

作業リストはコンポーネント内だけで有効なものではありません。 プロジェクト全体に関係する作業も管理できます。

Procedure コンポーネントの範囲外にも及ぶ作業項目を追加する手順

  1. プロジェクトを開きます。

  2. メッセージフレームの[作業]タブをクリックします(28ナビゲーションフレーム、メッセージフレーム、およびコンテンツフレームを参照)。

  3. マウスを右クリックし、コンテキストメニューの[項目の追加]を選択すると、作業項目が追加されます。 作業内容は上記と同様にして指定してください。

[メッセージフレーム]タブを使った作業項目の追跡

コンポーネントまたはプロジェクトに追加した作業項目の進捗状況は、メッセージフレームの[作業]タブで追跡できます。

[作業]タブに切り替えると、各作業項目の状況をひと目で見渡すことができます。

作業項目の管理は、アクションモデルから行うほか、メッセージフレームの[作業]タブで右クリックすることによっても行えます。 [インデント]、[アウトデント]メニューを使って、作業項目の編集、追加、削除、および再グループ化ができます。

7TodoTab




Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...