SOAP 用 Web サービス コネクタ ワークフロー ガイド

この記事では、Web サービス構成ツールでデータ ソース用の新しいプロジェクトを作成する方法について説明します。 プロジェクトを作成するには、次の手順に従います。

  1. Web サービス構成ツールを開きます。 空のプロジェクトが開きます。

    Web サービス構成ツール

  2. [SOAP Project] を選択し、[追加] を選択します

    SOAP プロジェクト

  3. 次のページで、次の情報を入力し、[次へ] を 選択します

    • 新しい Web サービス名
    • 公開されているサービス、エンドポイント、および操作を取得するアドレス (WSDL パス)
    • 名前空間
    • セキュリティ モード (認証の種類)
  4. このサンプルでは、[資格情報]ページに Basic セキュリティ モード(前の手順で選択したモード) の要件が表示されます。 セキュリティ モードに "None" が指定されている場合、[資格情報] ページは表示されません。 [次へ] を選択します。

    ユーザー名とパスワードを含む SOAP サービス画面

  5. WSDL パスにアクセスしてサービス情報を取得すると、公開されている関数の一覧が表示されます。 入力された WSDL パスが正しくない場合、構成ツールはサービス情報の取得に失敗し、エラーをスローします。

    Web サービスのダウンロードの進行状況画面

  6. 検出が実行された後、検出されたエンドポイントと操作が一覧表示されます。 [完了] を選択します。

    SOAP サービス エンドポイントと検出された操作

  7. コンパイルが実行されます。 コンパイルは、データ コントラクト アセンブリをコンパイルするプロセスです。これは、時間のかかる操作になる可能性があります。 コンパイル エラーがユーザーに通知されます。 検出が実行された後、ツールには次のページが表示されます。

    Soap 検出

  8. SOAP プロジェクト を展開し 、下の画面で提供される公開エンドポイントを選択します。 この画面には、エンドポイントで宣言されている操作が一覧表示されます。

    エンド ポイントで宣言された操作

  9. エンドポイントを展開すると、操作の一覧が表示されます。 操作は、エンドポイントによって宣言された関数です。 各操作は、サービス内で実行できるタスクの種類にアドレスを指定します。 この画面には、操作に対して宣言されている引数が一覧表示されます。 これらの引数は、ワークフローの構成で操作が使用される場合に定義されます。

    展開されたエンドポイント

  10. 次の手順では、コネクタ スペース スキーマを定義します。これは、オブジェクトの種類を作成し、そのオブジェクトの種類を定義することで実現されます。 [オブジェクト の種類] を選択 し、[追加] を 選択します。 新しいウィンドウで、新しいオブジェクトの種類を追加し、名前を指定します。 [OK] を選択します。

    オブジェクト型の定義

  11. オブジェクトの種類を追加すると、次の画面が提供されます。

    新しく作成されたオブジェクトの種類の表示

  12. オブジェクトの種類に対応する右側のウィンドウを使用すると、選択したオブジェクトの種類の属性とそのプロパティを維持できます。 [追加] を選択します。 属性を追加する新しいウィンドウが開きます。

    属性とデータ型

    Anchor オプションが選択された属性とデータ型

  13. 必要なすべての属性を追加すると、次の画面が表示されます。

    属性情報を含むオブジェクト型

  14. オブジェクトの種類と属性が作成されると、2016 年 1 月に実行された操作 (Microsoft Identity Manager に対応する空のワークフローがMIM。

    オブジェクトの種類は、従業員が実行できる操作を示します

Web サービス構成ツールでワークフローを構成する

次の手順では、オブジェクトの種類のワークフローを構成します。 ワークフロー ファイルは、実行時に Web サービス コネクタによって使用される一連のアクティビティです。 ワークフローは、適切なワークフロー操作を実装MIMされます。 Web サービス構成ツールを使用すると、次の 4 つの異なるワークフローを作成できます。

  • インポート: 次の 2 種類のワークフローのデータ ソースからデータをインポートします。

    • 完全インポート: 構成できる完全なインポート。
    • 差分インポート: Web サービス構成ツールではサポートされていません。
  • エクスポート: 接続されたデータ ソースMIMデータをエクスポートします。 操作では、次の 3 つのアクションがサポートされています。 これらのアクションは、要件に基づいて構成できます。

    • 追加
    • 削除
    • Replace
  • パスワード: ユーザーのパスワード管理 (オブジェクトの種類) を実行します。 この操作では、次の 2 つのアクションを使用できます。

    • パスワードの設定
    • パスワードの変更
  • テスト接続: データ ソース サーバーとの接続が正常に確立された場合に確認するワークフローを構成します。

注意

これらのワークフローは、プロジェクト用に構成するか、Microsoft ダウンロード センター から既定のプロジェクト をダウンロードできます

ワークフロー デザイナー

このワークフロー デザイナー作業領域を開き、要件に従ってワークフローを構成します。 構成ツールは、すべてのオブジェクトの種類 (新しい /existing) に対して、ツールでサポートされているワークフローのノードを提供します。

ワークフロー デザイナー

次ワークフロー デザイナーは、次の UI 要素で構成されます。

  • 左側のウィンドウのノード: どのワークフローを設計する必要があるのか選択するのに役立ちます。

  • 中央ワークフロー デザイナー:ここでは、ワークフローを構成するためのアクティビティを削除できます。 エクスポート、インポートMIM、パスワード管理など、さまざまな操作を実行するには、.NET Workflow Framework 4 の標準ワークフロー アクティビティとカスタム ワークフロー アクティビティを使用できます。 Web サービス構成ツールでは、標準およびカスタムのワークフロー アクティビティを使用します。 標準アクティビティの詳細については、「アクティビティ デザイナーの 使用」を参照してください

    • 中央のワークフロー デザイナーアクティビティの横に感嘆符が付く赤い円は、操作が削除され、正しく完全に定義されていない状態を示します。 赤い円の上にマウス ポインターを合わせると、正確なエラーが確認されます。 アクティビティが正しく定義された後、赤い円は黄色の情報マークに変わります。

    • 中央のワークフロー デザイナーアクティビティの横にある黄色の三角形の情報マークは、アクティビティが定義されているが、アクティビティを完了するために実行できるその他の情報が表示されます。 黄色の三角形にカーソルを合わせると、詳細が表示されます。

  • ツールボックス: ワークフローを設計するために、システムアクティビティとカスタム アクティビティ、定義済みのステートメントを含むすべてのツールをパッケージします。 詳細については、「ツールボックス」をご覧ください。

  • ツールボックスセクション: ツールボックスには、次のセクションとカテゴリがあります。

    • 説明: ツールボックスのヘッダー。 1 つのタブがツールボックスと、選択したワークフロー アクティビティのプロパティにアクセスします。

    • ワークフローのインポート: インポート ワークフローを構成するカスタム アクティビティ。

    • エクスポート ワークフロー: エクスポート ワークフローを構成するカスタム アクティビティ。

    • 共通: 任意のワークフローを構成するカスタム アクティビティ。

    • デバッグ: ワークフロー 4 で定義されたデバッグ用のシステム ワークフロー アクティビティ。 これらのアクティビティにより、ワークフローの問題の追跡が可能です。

    • ステートメント: ワークフロー 4 で定義されたシステム ワークフロー アクティビティ。 詳細については、「アクティビティ デザイナーの 使用」を参照してください

  • プロパティ: [プロパティ] タブには、デザイナー領域にドロップされ、選択された特定のワークフロー アクティビティのプロパティが表示されます。 左側の図は、Assign アクティビティのプロパティ を示 しています。 アクティビティごとに、プロパティが異なり、カスタム ワークフローの構成中に使用されます。 このタブを使用すると、中央ワークフロー デザイナーにドロップされた選択したツールの属性を定義できます。 詳細については、「 プロパティで定義されているインターフェイスのプライベート C++ 固有の実装です。

  • タスク バー:タスク バーには、変数、引数、インポート の 3つの要素が含まれています。 これらの要素は、ワークフロー アクティビティと共に使用されます。 詳細については、「.NET 4 での Windows Workflow Foundation (WF) の開発者向け概要」を参照してください

Web サービス構成ツールで完全インポート ワークフローを構成する

次の手順では、Web サービス構成ツールを使用して SOAP の完全インポート ワークフローを構成する方法を示します。

警告

このサンプルでは、ワークフローのみを作成します。 API でカスタム ロジックを使用するなどのワークフローの変更が必要になる場合があります。

  1. 構成する完全インポート ワークフローを選択します。 引数 とインポート に定義され、アクティビティに固有です。 詳細については、次の画面を参照してください。

    完全インポート ワークフロー引数

    [インポートされた名前空間]

    呼び出しの再構成後に、変更する属性の名前を変更し、名前空間を追加または変更して、API の戻り構造を参照する変数と、古い名前空間を参照するオブジェクト型に変更します。 右側のウィンドウのツールボックスには、構成に必要なすべてのカスタム ワークフロー固有のアクティビティが保持されます。 ロジックに使用する変数に値を割り当てる。 中央ワークフロー デザイナーの一番下のセクションに移動し、変数を宣言します。 変数は次の手順で宣言します。

  2. シーケンス アクティビティを追加します。 Sequence アクティビティデザイナーを [ツールボックス] からドラッグし、その上の [シーケンス] Windows ワークフロー デザイナーします。 次の画面を参照してください。 Sequence アクティビティ には、順番に実行される子アクティビティの順序付けされたコレクションが含まれている。

    シーケンス アクティビティ

  3. 変数を追加するには、 [変数の作成 ] を探します。 [名前] に「wsResponse」と入力し、[変数の種類] ドロップダウンを選択し、[型の参照] を選択します ダイアログが表示されます。 [生成された既定の応答]を選択します。 [スコープ] と [既定値] はオフのままにします。 または、[プロパティ] ビューを使用してこれらの値 を設定 します。

    既定の応答

    完全なインポート プロパティ

  4. 次に、他のすべての変数を追加し、次に最後の画面を示します。

    完全なインポート変数

  5. 既に追加されている Sequence アクティビティ 内のツールボックスから、もう 1 つのシーケンス アクティビティ デザイナーをドラッグします。

  6. [共通] の下に表示される WebServiceCallActivityドラッグします。 このアクティビティは、探索後に使用できる Web サービス操作を呼び出す場合に使用されます。 これはカスタム アクティビティであり、さまざまな操作シナリオで一般的です。

    サービス名操作

    Web サービス操作を使用するには、次のプロパティを設定します。

    • サービス名: Web サービスの名前を入力します。

    • エンドポイント名: 選択したサービスのエンドポイント名を指定します。

    • 操作名: サービスのそれぞれの操作を指定します。

    • 引数: [引数 ] を選択します。 次のダイアログで、次の図に示すように、引数の値を割り当てる必要があります。

      引数の割り当て

      重要

      このダイアログを使用して、引数の名前、方向、または型を変更しない。 これらの値が変更された場合、アクティビティは無効になります。 引数の 値のみを 設定します。 この図に示すように、値 wsResponse が 設定されています。

  7. WebServiceCallActivity の下に ForEachアクティビティを追加します。 このアクティビティは、オブジェクト型のすべての属性 (アンカーと非アンカーの両方) を反復処理するために使用されます。 このアクティビティをオブジェクト サーフェスにドラッグワークフロー デザイナー、オブジェクトのすべての属性名が自動的に列挙されます。 次の画面に従って、必要な値を設定します。

    Web サービス呼び出しアクティビティ

  8. ForEach 本文内で CreateCSEntryChangeScopeアクティビティをドラッグ します。 このアクティビティは、ターゲット データ ソースからデータを取得しながら、各レコードのワークフロー ドメインに CSEntryChange オブジェクトのインスタンスを作成するために使用されます。 このアクティビティをドラッグすると、次の画面が表示されます。 CreateAnchorAttribute アクティビティは自動的に継承されます。

    CS エントリ変更スコープ アクティビティを作成する

  9. DN 式の値を として設定します ‘string.Concat ("Employee",item.EmployeeID)’EmployeeIDの AnchorValue'Convert.tostring(item) に設定します。EmployeeID)'ObjectTypeName を Employee に設定します。 これらの変更を行った後、次の画面が表示されます。

    従業員 ID を取得する

    注意

    アンカー値とオブジェクト名は、公開されている Web サービスによって異なります。 図は例を示しています。

  10. CreateAttributeChange アクティビティをCreateAnchorAttribute アクティビティの下にドラッグします。 ドラッグするアクティビティの数は、アンカー以外の属性の数と同じ数です。 参照については、次の図を参照してください。

    アンカーの作成

  11. CreateAttributeChangeアクティビティ内でCreateValueChangeActivityをドラッグし、下の画面に従って属性値を設定します。

    属性を変更する

    注意

    このアクティビティを使用するには、ドロップダウンからそれぞれのフィールドを選択して割り当て、値を割り当てる必要があります。 複数値属性の場合は、CreateAttributeChangeActivityアクティビティ内に複数のCreateValueChangeActivityアクティビティを削除します。

  12. 属性の条件を追加するには、次の図に示すように If アクティビティを追加します。

    If アクティビティ

  13. 最後に、次の図に示すように 、Assign アクティビティを追加し、式を設定します。

    アクティビティを割り当て、式を設定する

  14. このプロジェクトを の場所に保存します %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

    既定のプロジェクトは、ターゲット システム上の場所に %FIM_INSTALL_DIR\2010\Synchronization Service\Extensions ダウンロードして保存する必要があります。 その後、Web サービス コネクタ ウィザードにプロジェクトが表示されます。

    実行可能ファイルを実行するときに、インストールの場所を指定するように求めるメッセージが表示されます。 保存場所を入力します。

    重要

    プロジェクト ファイルは、任意の場所 (Executor の適切なアクセス特権を持つ) から保存および開くことができる。 フォルダーに保存されているプロジェクト ファイルのみを Web サービス コネクタ ウィザードで選択できます。このウィザードには、[同期] UI を使用MIM Synchronization Service\Extension アクセスします。

    Web サービス構成ツールを実行しているユーザーには、次の特権が必要です。

    • Synchronization Service Extension フォルダーへのフル コントロール。
    • 拡張フォルダー パスが格納されている HKLM\System\CurrentControlSet\Services\FIMSynchronizationService\Parameters レジストリ キーへの読み取りアクセス。

Web サービス構成ツールでエクスポート ワークフローを構成する

次のセクションでは、Web サービス構成ツールを使用してワークフローをエクスポートする方法について説明します。

ワークフローを追加する

Web サービス構成ツールの次の手順に従って、エクスポート ワークフローを追加します。
  1. 構成するエクスポート ワークフローを選択します。 [エクスポート ] で、 [追加] を選択します。 引数 とインポート に定義され、アクティビティに固有です。 参照については、次の画面を参照してください。

    追加

  2. シーケンス アクティビティ を追加 します。 Sequence アクティビティデザイナーを [ツールボックス] からドラッグし、その上の [シーケンス] Windows ワークフロー デザイナーします。 Sequence アクティビティ には、順番に実行される子アクティビティの順序付けされたコレクションが含まれている。 [変数の作成] を選択します。 ロジックに使用する変数に値を割り当てる。

    エクスポート

    注意

    変数を追加する手順については、「完全なインポート ワークフローを作成する 」セクションを参照してください

  3. 既に 追加されている Sequence アクティビティ内で ForEach アクティビティを ドラッグ して、アンカー属性値を反復処理します。

  4. [プロパティ ] を 選択し、 下の画面に 従って [値] を設定します。 ここで objectToExport は 引数です。

    ForEach アクティビティのプロパティを設定する

  5. DisplayName をForEach AnchorAttribute に設定する

    表示名を設定する

  6. TypeArgument を に設定します

    型引数を設定する

  7. AnchorAttributeの ForEach本体内に Switch アクティビティを追加します。

    Switch アクティビティを追加する

  8. 次の画面に従って式を追加します。

    式を追加する

  9. [新 しいケースの追加] を 選択し 、EmployeeId の値を入力します。 シーケンス アクティビティ をドラッグ し、その中に Assign アクティビティ を追加 します。

    新しいケースを追加してシーケンスに割り当てる

  10. Assign アクティビティの To プロパティ と Value プロパティを 割り当 てる。

    To プロパティと Value プロパティを割り当てる

  11. ForEach アクティビティは、アンカー値に使用されます。 アンカー以外の 値を割り当 てる別の ForEach アクティビティを追加します。 この例では 、AttributeChange アンカー が使用されています。

    AttributeChange アンカーを使用して別の ForEach アクティビティを追加する

  12. AttributeChange アンカーの ForEach本体内にSwitch アクティビティを追加します。

    AttributeChange アンカーの Switch アクティビティを追加する

  13. 次の画面に従って式を追加します。

    switch アクティビティの式を追加する

  14. [新 しいケースの追加] を 選択し 、FirstName の値を入力します。 シーケンス アクティビティ をドラッグ し、その中に Assign アクティビティ を追加 します。 Assign アクティビティの To プロパティ と Value プロパティを 割り当 てる。

    シーケンスの新しいケースを追加する

  15. LastName、Email、など、必要な属性値を追加します。

    必要な属性の値を追加する

  16. [ 共通] の下で 、WebServiceCallActivity をドラッグし 、その 引数に [ 値] を設定します

    Web サービス呼び出しアクティビティを追加し、値を設定する

    重要

    このダイアログを使用して、引数の名前、方向、または型を変更しない。 これらの値が変更された場合、アクティビティは無効になります。 引数の 値のみを 設定します。 この図に示すように、値 wsResponse が 設定されています。

  17. 最後に 、If アクティビティを追加 して、Web サービス操作から返された応答を確認します。

追加操作を使用したエクスポート ワークフロー の作成 は完了です。

完了したエクスポート ワークフロー

このプロジェクトを の場所に保存します %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

ワークフローの削除

Web サービス構成ツールの次の手順に従って、エクスポート ワークフローを削除します。

  1. 構成するエクスポート ワークフローを選択します。 [エクスポート ] で、 [削除] を選択します。 引数 とインポート に定義され、アクティビティに固有です。 参照については、次の画面を参照してください。

    削除ワークフローをエクスポートする

  2. シーケンス アクティビティ を追加 します。 [変数の作成] を選択します。 ロジックに使用する変数に値を割り当てる。

    シーケンス アクティビティを追加する

    注意

    変数を追加する手順については、「完全なインポート ワークフローを作成する 」セクションを参照してください

  3. 既に 追加されている Sequence アクティビティ内で ForEach アクティビティを ドラッグ して、アンカー属性値を反復処理します。

  4. [プロパティ ] を 選択し、下 の画面ごとに [値] を設定します。 ここで objectToExport は 引数です。

    ForEach アクティビティのプロパティを設定する

  5. DisplayNameを に設定します

    表示名を設定する

  6. TypeArgument を に設定します

    型引数を設定する

  7. AnchorAttributeの ForEach本体内に Switch アクティビティを追加します。

    Switch アクティビティを追加する

  8. 次の画面に従って式を追加します。

    式を追加する

  9. [新 しいケースの追加] を 選択し 、EmployeeId の値を入力します。 シーケンス アクティビティ をドラッグ し、その中に Assign アクティビティ を追加 します。

    新しいケースを追加してシーケンスに割り当てる

  10. Assign アクティビティの To プロパティ と Value プロパティを 割り当 てる。

    To プロパティと Value プロパティを割り当てる

  11. [ 共通] の下で 、WebServiceCallActivity をドラッグし 、その 引数に [ 値] を設定します

    Web サービス呼び出しアクティビティを追加し、値を設定する

    重要

    このダイアログを使用して、引数の名前、方向、または型を変更しない。 これらの値が変更された場合、アクティビティは無効になります。 引数の 値のみを 設定します。 この図に示すように、値 employeeID が 設定されています。

  12. 最後に 、If アクティビティを 追加して、Web サービス操作から返された応答を確認します。

削除操作によるエクスポート ワークフロー の削除 が完了しました。

削除されたエクスポート ワークフロー

このプロジェクトを の場所に保存します %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

ワークフローを置き換える

Web サービス構成ツールの次の手順に従って、エクスポート ワークフローを置き換える。

  1. 構成するエクスポートワークフローを選択します。 [ エクスポート] で、[ 置換] を選択します。 引数インポートは既に定義されており、アクティビティに固有です。 参照するには以下の画面を参照してください。

    ワークフローの置換

  2. Sequenceアクティビティを追加します。

  3. AnchorAttribute のForEachアクティビティをドラッグし ます。

  4. 別のForEach 属性 >を追加して、アンカー以外の値を割り当てます。

  5. 最後に、画面は次の図のようになります。 このアクティビティを構成する手順については、「 エクスポートワークフローを追加する」セクションを参照してください。

    Switch アクティビティと anchor 属性を使用した ForEach

  6. [共通] で、 WebServiceCallActivityをドラッグして、引数を設定します。

    Web サービス呼び出しアクティビティを追加し、値を設定する

    重要

    このダイアログを使用して、引数の 名前方向、または を変更しないでください。 これらの値のいずれかが変更されると、アクティビティは無効になります。 引数の のみを設定します。 この図に示すように、 employee の値は設定されています。

  7. 最後に、 If アクティビティを追加して、web サービス操作から返される応答を確認します。

置換操作によるエクスポートワークフローの置換が完了しました:

エクスポートワークフローの置換

このプロジェクトを場所に保存 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions します。

デバッグアクティビティ

次のカスタムアクティビティを使用して、ワークフローテンプレートをデバッグできます。

ログアクティビティ

ログ アクティビティは 、ログファイルにテキストメッセージを書き込むために使用されます。 詳細については、ログ記録に関するページを参照してください。

注意

ワークフローを簡単にデバッグできない場合は、実稼働環境でワークフローのデバッグを試してみてください。

Logアクティビティを使用するには、次のプロパティを設定します。 プロパティは、ワークフローデザイナーでアクティビティを選択し、そのアクティビティの プロパティ を表示すると表示されます。

WriteLine アクティビティ

WriteLineアクティビティは、プロバイダーのライターにテキストメッセージを書き込むために使用されます。 使用できるライターがない場合、 WriteLine アクティビティはテキストをコンソールウィンドウに書き込みます。

テキストボックスに、ライターターゲットに表示するメッセージを記述します。

重要

コンソールウィンドウは、このアクティビティには使用できません。 このタスクには別のウィンドウ出力ライターを使用します。

WriteLineアクティビティを使用するには、次のプロパティを設定します。 プロパティは、ワークフローデザイナーでアクティビティを選択し、そのアクティビティの プロパティ を表示すると表示されます。

  • ログレベル: ログ値に書き込むコンテンツの量を指定します。 設定できる値は次のとおりです。

    • High: ログの重要度が高に設定されている場合に、ログファイルに Logtext メッセージを書き込みます。
    • Verbose: ログの重大度が Verbose に設定されている場合は、ログファイルに Logtext メッセージを書き込みます。
    • Disabled: ログファイルに書き込まないでください。
  • Logtext: ログに書き込むテキストコンテンツを指定します。

  • タグ: メッセージにタグを追加して、ログに書き込まれているコンテンツの種類を識別します。 指定できる値は、Error、Trace、または Warning です。

次の手順