次の方法で共有


方法: LDAP クエリを使用してメッセージを電子メール アドレスに動的にルーティングするスケジュールを作成する

目標

このセクションでは、LDAP (ライトウェイト ディレクトリ アクセス プロトコル) を使用して電子メール アドレスを照会し、BizTalk Server SMTP アダプターを使用して解決されたエンドポイントに電子メール メッセージを送信するスケジュールを作成する方法について説明します。

このハウツー トピックでは、次の手順を実行します。

  • LDAP クエリを使用してメッセージを動的にルーティングするためのスケジュール ルーティング スリップを作成します。

  • スケジュール テスト クライアント サンプル アプリケーションを使用して、スケジュールをテストします。

[前提条件]

このハウツー トピックの手順では、 開発アクティビティの前提条件を完了する必要があります。

このセクションを完了するコンピューターでは、Microsoft Active Directory ディレクトリ サービスが構成され、実行されている必要があります (コンピューターがドメイン コントローラーである必要はありませんが、ドメインに接続されている必要があります)。 また、SMTP サーバーを構成して実行する必要があります。このハウツー トピックの結果をテストするには、ESB によって送信された電子メールを確認するクライアントが必要です。

このセクションの手順では、グローバル 銀行という名前の組織が、globalbank.com のドメインを持ち、プロファイルに有効な電子メール アドレス ( johne@globalbank.com など) を持つ John Evans という名前のユーザーを含む、Employees という名前の Active Directory 組織単位を持つ組織を想定しています。 これらの環境要因を複製する必要はありません。ただし、環境でこの実装を再作成する目的で、これらの要因を考慮し、必要に応じて置換を行ってください。

ステップス

ESB ルーティング ドメイン固有言語 (DSL) モデルを作成するには

  1. Visual Studio で、C:\HowTos\Patterns\Patterns.sln を開きます。

  2. ソリューション エクスプローラーで、 ItineraryLibrary プロジェクトを右クリックし、[ 追加] をポイントして、[ 新しいスケジュール] をクリックします。

  3. [新しい項目の追加] ダイアログ ボックスで、[名前] ボックスに「LdapResolution」と入力し、[追加] をクリックします。

スケジュールのプロパティを構成するには

  1. Visual Studio で、 LdapResolution.itinerary のデザイン 画面をクリックします。 LdapResolution プロパティ ウィンドウで、次のプロパティを構成します。

    1. [ モデル エクスポーター ] ドロップダウン リストで、[ XML スケジュール エクスポーター] をクリックします。

    2. [ エクステンダーの設定] セクションの [ スケジュール XML ファイル ] プロパティの横にある省略記号ボタン (...) をクリックします。

    3. [XML ファイルの選択] ダイアログ ボックスで、[ファイル名] ボックスに「C:\HowTos\Itineraries\LdapResolution」と入力し、[保存] をクリックします。

      この手順では、スケジュールを XML としてローカル ファイルの場所にエクスポートできます。 スケジュールデータベースではなく、ローカルファイルの場所に旅程をエクスポートすることで、ESBテストクライアントアプリケーションを使用して旅程のテストを可能にします。 このプロセスは、このハウツー トピックの後半で完了します。

旅程の構造を定義するには

  1. ツールボックスから、 On-Ramp モデル要素をデザイン サーフェイスにドラッグします。 OnRamp1 プロパティ ウィンドウで、次のプロパティを構成します。

    1. Name プロパティをクリックし、「ReceiveNAOrder」と入力します。

    2. [ エクステンダー ]ドロップダウン リストで、[ On-Ramp ESB エクステンダー]をクリックします。

    3. BizTalk アプリケーションのドロップダウン リストで、Microsoft.Practices.ESB をクリックします。

    4. [受信ポート] ドロップダウン リストで、[OnRamp.Itinerary] をクリックします。

  2. ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグし、 On-Ramp モデル要素の右側に配置します。 [ ItineraryService1 プロパティ] ウィンドウで、次のプロパティを構成します。

    1. Name プロパティをクリックし、「RouteMessageEmail」と入力します。

    2. [ スケジュール サービス エクステンダー ] ドロップダウン リストで、[ メッセージング エクステンダー] をクリックします。

      このプロパティは、プロセスがパイプライン (メッセージング) で実行されることを定義します。 または、プロセスがオーケストレーションで行われる場合は、 スケジュール サービス エクステンダー プロパティを オーケストレーション エクステンダーに設定します。

    3. [コンテナー] ドロップダウン リストで、[ReceiveNAOrder] を展開し、[受信ハンドラー] をクリックします。

    4. [ サービス名 ] ドロップダウン リストで、[ Microsoft.Practices.ESB.Services.Routing] をクリックします。

  3. RouteMessageEmail モデル要素のリゾルバー コレクションを右クリックし、[新しいリゾルバーの追加] をクリックします。 [ 競合回避モジュール 1 のプロパティ] ウィンドウで、次のプロパティを構成します。

    1. [名前] プロパティをクリックし、「LdapResolver」と入力します。

    2. [ リゾルバーの実装 ] ドロップダウン リストで、[ LDAP リゾルバー拡張機能] をクリックします。

    3. [ トランスポート名 ] ドロップダウン リストで、[ SMTP] をクリックします。

    4. [トランスポートの場所] プロパティをクリックし、「{mail} 」と入力します。

    5. SearchRoot プロパティをクリックし、「ou=Employees,dc=globalbank,dc=com」と入力します。

      「前提条件」セクションの仕様に従って環境を設定していない場合は、前のプロパティの値を環境に適した値に置き換えます。

    6. Filter プロパティをクリックし、値を (&(objectClass=User)(|(givenName=john))) に変更します。

      既存のテキストを置き換えるには、上記の値を入力します。

    7. ThrowErrorIfNotFound ドロップダウン リストで、[True] をクリックします。

  4. [プロパティ] ウィンドウで、[ エンドポイント構成 ] プロパティをクリックし、省略記号ボタン (...) をクリックします。

    1. [ エンドポイント構成 ] ダイアログ ボックスで、 EmailBodyText プロパティをクリックし、「 Order is ready to be processed」と入力します。

    2. [ From ] プロパティをクリックし、「 orders@globalbank.com」と入力します。

    3. MessagePartsAttachment プロパティをクリックし、「2」と入力します。

    4. Subject プロパティをクリックし、「{givenName} の注文」と入力します。

    5. ローカル環境の接続情報を使用して、SMTPAuthentication、SMTPHost、UserName、および Password のプロパティを構成します。

    6. [ OK] を クリックして [ エンドポイント構成] ダイアログ ボックスを閉じます。

  5. LdapResolver リゾルバーを右クリックし、リゾルバー設定のテストをクリックします。

  6. [出力] ウィンドウで、解決された エンドポイント構成 の値の件名が [Order for John] であることを確認し、解決された トランスポートの場所 が Active Directory のユーザーのアカウントに関連付けられている電子メール アドレス (たとえば、 johne@globalbank.com) であることを確認します。

  7. ツールボックスで、[ コネクタ] をクリックします。 ReceiveNAOrder モデル要素から RouteMessageEmail モデル要素に接続をドラッグします。

  8. ツールボックスから 、Off-Ramp モデル要素をデザインサーフェイスにドラッグし、 RouteMessageEmail モデル要素の右側に配置します。 [OffRamp1 プロパティ] ウィンドウで、次のプロパティを構成します。

    1. [名前] プロパティをクリックし、「EmailNAOrderDoc」と入力します。

    2. [ エクステンダー ] ドロップダウン リストで、[ ESB エクステンダーOff-Ramp クリックします。

    3. BizTalk アプリケーションのドロップダウン リストで、[GlobalBank.ESB] をクリックします。

    4. [送信ポート] ドロップダウン リストで、[DynamicResolutionOneWay] をクリックします。

  9. ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグし、 RouteMessageEmail モデル要素と EmailNAOrderDoc モデル要素の間に配置します。 [ ItineraryService1 プロパティ] ウィンドウで、次のプロパティを構成します。

    1. Name プロパティをクリックし、「SendPortFilter」と入力します。

    2. Itinerary Service Extenderのドロップダウン リストで、エクステンダーOff-Rampをクリックします。

    3. [オフランプ] ドロップダウン リストで、[EmailNAOrderDoc] を展開し、[送信ハンドラー] をクリックします。

  10. ツールボックスで、[ コネクタ] をクリックします。 RouteMessageEmail モデル要素から SendPortFilter モデル要素に接続をドラッグします。

  11. ツールボックスで、[ コネクタ] をクリックします。 接続を SendPortFilter モデル要素から EmailNAOrderDoc モデル要素にドラッグします。

スケジュール テスト クライアントで使用するモデルをエクスポートするには

  1. Visual Studio で、 LdapResolution スケジュールのデザイン画面を右クリックし、[ モデルのエクスポート] をクリックします。

    スケジュールの XML バージョンが Visual Studio で開きます。

  2. すべてのプロジェクト成果物を保存します。

  3. Windows エクスプローラーで、[C:\HowTos\Itineraries and notice the creation of your itinerary XML (LdapResolution.xml] を参照します。

旅程をテストするには

  1. 開発アクティビティの前提条件 (C:\HowTos\ESB.Itinerary.Test.exe - ショートカット) で作成したショートカットを使用して、Itinerary Test Client サンプル アプリケーションを開きます。

  2. スケジュール テスト クライアントで、[ WCF サービスの使用 ] チェック ボックスをオフにし、[ スケジュールの読み込み] をクリックします。

  3. [ スケジュール ファイルを開く ] ダイアログ ボックスで、C:\HowTos\Itineraries に移動します。 LdapResolution.xmlを選択し、[開く] をクリックして旅程を読み込みます。

  4. [ OK] を クリックして、 スケジュールが正常に読み込まれたメッセージを クリアします。

  5. スケジュール テスト クライアントで、[ メッセージの読み込み ] ボックスの横にある省略記号ボタン (...) をクリックします。

  6. [ 読み込む XML ドキュメントの選択 ] ダイアログ ボックスで、C:\HowTos を参照します。 NAOrderDoc.xml選択し、[開く] をクリックしてテスト メッセージを読み込みます。

  7. [ 要求の送信] ボタンをクリックします。 テストが完了したら、[ OK] をクリックして、表示される確認を閉じます。

  8. Microsoft Outlook Express (または任意のメール クライアント) を開き、John Evans の電子メールへのメッセージの配信を確認します。

その他のリソース

詳細については、次の関連項目を参照してください。