マップにスクリプト Functoid を追加する方法
Scripting Functoid を使用すると、実行時にカスタム スクリプトまたはコードを使用して、使用できない関数を実行できます。 たとえば、スクリプト functoid を使用し、独自のカスタム スクリプトを 記述することで、実行時に COM オブジェクトを呼び出すことができます。
スクリプト Functoid の概念については、「Scripting Functoid」を参照してください。
マップにスクリプト Functoid を追加して構成するには
Visual Studio ツールボックスがアクティブな状態で、[ 高度な Functoid] タブをクリックして、そのカテゴリの Functoid を選択します。
選択したカテゴリに含まれる高度な Functoid の一覧が表示されます。
スクリプティング Functoid をドラッグします。をクリックして、グリッド ページ上の適切な場所に移動します。
Note
Functoid は表示されているグリッド ページに配置されます。 Functoid を別のグリッド ページに配置する場合は、その他のグリッド ページを最初に表示する必要があります。
Note
複数の Functoid を一緒に使用してマップを構築する場合は、相対的な左から右への配置を考慮する必要があります。 Functoids は左から順に実行されます。 1 つの Functoid からの出力は、これよりも右にある Functoid にのみ入力することができます。
表示されているグリッド ページに追加した スクリプト Functoid を選択します。
Visual Studio プロパティ ウィンドウで、Script プロパティに関連付けられている省略記号 (...) ボタンをクリックします。
Note
または、Functoid を右クリックし、コンテキスト メニューの [ Functoid スクリプトの構成 ] をクリックします。 [ スクリプト Functoid の構成 ] ダイアログ ボックスが表示され、[ スクリプト Functoid の構成 ] タブが選択されています。
[ スクリプト Functoid の構成 ] ダイアログ ボックスの [ スクリプトの種類の選択 ] ドロップダウン リストで、スクリプトの種類を選択します。
Note
選択されるスクリプトの種類に応じて、残りのダイアログ ボックス フィールドのさまざまなサブセットが有効および無効になります。
スクリプトの種類として [外部アセンブリ ] を選択した場合は、[ スクリプト アセンブリ]、[ スクリプト クラス]、および [スクリプト メソッド ] ドロップダウン リストを使用して、アセンブリ、クラス、およびメソッドをそれぞれ選択して、この Scripting Functoid に関連付けます。
警告
外部アセンブリのコードは、スレッド セーフであることが必要です。 ストレス条件下では、マップの複数のインスタンスが同時に実行される場合があります。
Note
アセンブリを選択すると、[ スクリプト クラス ] ドロップダウン リストに、そのアセンブリ内のクラスが設定されます。 同様に、クラスを選択すると、[ スクリプト メソッド ] ドロップダウン リストにそのクラスのメソッドが設定されます。
Note
[インライン スクリプト] テキスト ボックスは、スクリプトの種類として [外部アセンブリ] を選択すると無効になります。
スクリプトの種類として [外部アセンブリ ] 以外のものを選択した場合 (インライン選択のいずれか) は、[ インライン スクリプト ] テキスト ボックスを使用して、選択した言語でスクリプトを入力します。
Note
スクリプト functoid のインライン言語の選択肢には、C# .NET、JScript.NET、Visual Basic .NET、XSLT、XSLT 呼び出しテンプレートなどがあります。
C# でスクリプトを記述する場合、"using" ステートメントは使用できません。 スクリプトで特殊な .NET クラスを使用する必要がある場合は、対応するアセンブリとその依存アセンブリを BizTalk プロジェクトの "参照" に追加し、スクリプト コードでは完全修飾名を使用してください。 カルチャに応じた小文字変換を実行するスクリプトを記述する場合は、対応する次のようなコードを記述する必要があります。 同様の制限は、サポートされるすべてのスクリプト言語に適用されます。
string x = y.ToLower(System.Globalization.CultureInfo.CurrentCulture);
このスクリプトでは、任意のアセンブリのクラスを使用するために、マップが含まれる BizTalk プロジェクトの "参照" に、対応するアセンブリとその依存アセンブリを追加します。
Note
[ インライン スクリプト ] テキスト ボックスでカスタム スクリプトを直接作成することも、別の場所にスクリプトを作成して[ インライン スクリプト ] テキスト ボックスに貼り付けることもできます。
Note
スクリプトの種類としてインラインの選択肢 (外部アセンブリ以外のもの) のいずれかを選択すると、スクリプト アセンブリ、スクリプト クラス、および Script メソッドのドロップダウン リストが無効になります。
重要
複数の関数を含むスクリプトを作成すると、最初の関数がメイン関数または主要な関数として扱われます。他の関数は、主要な関数の実行時にのみ呼び出されます。
[OK] をクリックします。
スクリプトまたは外部アセンブリの関連付けられているメソッドに入力パラメーターが必要な場合は、基本的な Functoid の処理と同様に、適切な数および種類の入力リンクを作成します。
ほとんどの状況では、 Scripting Functoid は、基本的な Functoid とほとんど同じ方法で、変換先スキーマのフィールドを設定したり、別の Functoid への入力として使用する出力値を生成します。