---
title: "プロセスモデリング"
slug: "process-modeling"
abstract: "Sitecoreデータ交換フレームワークにおけるテナントサービスプロセスのモデリングについて説明しています。"
---
# プロセスモデリング

テナントサービス(TS)はウェブリクエストを処理し、同期プロセスを実行します。

Sitecoreのアイテムを使ってプロセスをモデリングします。あらゆる種類のデータに対応するSitecoreテンプレートを作成できます。コンテンツエディターは、データの作成と編集のための豊富なUIを提供します。Sitecoreのアイテムを使用することで、セキュリティ、バージョン管理、ワークフロー、ローカリゼーションなどのSitecoreプラットフォーム機能を活用できます。

プロセスモデリングの設定には以下のコンポーネントを使用します:

-   テナントサービスエンドポイント
-   パイプラインコンテキストビルダー
-   レスポンスビルダー
-   マッチング条件

> !注TSはData Exchange Framework(DEF)を拡張し、DEFのプロセスモデリングの大部分を使用しています。以下のセクションでは、TSに付属する拡張機能のみを説明します。

## テナントサービスエンドポイント

[テナントサービスエンドポイント](https://doc.sitecore.com/xp/ja/developers/def/60/data-exchange-framework/walkthrough--implementing-a-tenant-service-endpoint.html "Walkthrough: Implementing a Tenant Service Endpoint")(TSE)は、DEFとTSを用いてモデル化された作業単位を表し、DEFパイプラインと暗黙の接続を持っています。

> !注Sitecoreに馴染みがある方は、パイプラインの概念もご存知でしょう。Sitecoreでは、パイプラインは作業単位のモデル化も行います。概念的には、SitecoreのパイプラインとDEF内のパイプラインは同じ目的を果たします。一方、TSEは受信リクエストのリゾルバであり、選択したパイプラインを通じてリクエストデータをプッシュします。
> 
> SitecoreパイプラインとDEFパイプラインの主な違いは、SitecoreパイプラインがSitecoreと密接に連携していることです。これらはSitecore内でしか動作できません。

例えば、以下のようなTSEを設計できます:

-   Sitecore連絡先を作成する *CRM Contact Created* リクエスト。
-   Sitecoreアイテムの作成を *Sitecore Submit Form Triggered* リクエスト。

DEFでは、SitecoreのアイテムがTSEを表します。例えば、以下の画像はSitecoreフォーム送信ボタンからのリクエストを処理するTSEを示しています:

![The TSE that handles requests from the Sitecore Forms submit button](<https://doc.sitecore.com/api/markdown-image/xp/ja/developers/def/60/data-exchange-framework/images/tenant%20service%20endpoint%20settings.jpg>)

> !注TSE項目で選択するパイプラインはSitecoreで設定されていますが、必ずしもSitecore内で実行する必要はありません。それらはDEFテナントのパイプラインを使用するTS内で実行されます。

## パイプラインコンテキストビルダー

パイプラインコンテキストビルダーコンポーネントは、リクエストデータを適切な形式で抽出し、パイプラインコンテキストを構築し、リクエストからデータにコンテキストを提供するよう設計されています。

> !注パイプラインは実行時に構築されたパイプラインコンテキストを使用します。

## レスポンスビルダー

レスポンスビルダーコンポーネントはレスポンスを表します。パイプラインステップが完了すると、結果はパイプラインの文脈に保持されます。レスポンスビルダーは各リクエストに対してレスポンスデータを提供できるようにします。

## マッチング条件

TSを使ってパイプラインを運用する方法は2つあります:

-   テナントサービスエンドポイントIDによって。
-   条件が一致する。

TSはTSE IDまたは条件のマッチングで着信リクエストを処理します。リクエストクエリでエンドポイントIDが設定されていない場合、TSはTSEをループして条件に合致する最初のエンドポイントを見つけます。これにより、同じリクエストに対して異なるデータでリクエストヘッダーや内容を異なるパイプラインを実行できます。

以下のマッチング条件を使って端点を見つけることができます:

-   絶対パス
-   絶対的なURI
-   ヘッダー名 値
-   クエリ文字列
-   URI