チュートリアル : ユーザー設定フォームの保存アクションの作成

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このトピックでは、Experience Formsのカスタムデータ交換フレームワーク(DEF)保存アクションを設定する方法の例を示します。

このチュートリアルでは、次の方法について説明します。

  • フォームを作成する

  • テナントを作成する

  • 価値アクセサーの作成

  • パイプラインを作成する

  • 価値ある読者を作成する

  • パイプライン コンテキスト ビルダーを作成する

  • テナント サービス エンドポイントの作成

  • フォームを設定します。

フォームを作成する

Webサイトの訪問者がWebサイトでフォームを送信すると、保存アクションがトリガーされます。

フォームを準備するには:

  1. Sitecore FormsのFormsダッシュボードで、Createをクリックします。フォームの基になるテンプレートを選択します。

  2. 少なくとも1つのフィールドを追加するには、フォーム要素 ウィンドウからフォームに要素をドラッグします。

  3. ツールバーで、Saveをクリックしてフォームを保存し、名前を付けます。

    メモ

    フォーム デザイナを使用すると、必要に応じてさまざまなフォーム要素を使用して フォームのデザイン を続行できます。

  4. フォームをWebページで利用できるようにするには、「 Webページにフォームを追加する」の手順に従います。

手記

Sitecore Scaled Deployment (XP1) を使用している場合は、フォームの .cshtmlファイルがコンテンツ配信 (CD) サーバーにコピーされていることを確認する必要があります。たとえば、<CD server>\Views\Shared\<filename>.cshtml.

テナントを作成する

テナントは、保存アクション用に構成する必要がある設定のコンテナーです。

テナントを作成するには:

  1. コンテンツ エディタで、/sitecore/system/Data Exchangeに移動します。

  2. Folderタブで、「Empty Data Exchange Tenant」をクリックします。

  3. 作成したテナントを選択し、上部のメニュー バーにあるData Exchange SDKタブをクリックします。リボンのUpgrade Tenantをクリックします。

  4. Upgrade TenantダイアログのInstruction Setフィールドで、「Tenant Service」をクリックします。

  5. テナントIDをメモします。テナントID、ホスト、およびクレデンシャルを <tenant service>\App_Config\ConnectionStrings.configファイルのSitecoreという接続文字列に追加します。例えば:

    <connectionStrings>
        <add name="sitecore" connectionString="database=master;tenant id={841B0E94-4348-494D-B32D-CA5E94F26ACC};host=my-sitecore;password=b;user name=sitecore\admin;timeout=20" />
    </connectionStrings>
    手記

    Sitecoreのスケーリング デプロイメント (XP1) を使用している場合は、データベース パラメーターをwebに変更し、ホスト パラメーターをCDサーバーのURLに変更します。

  6. Sitecoreコンテンツ管理サーバーのApp_Config\connectionstring.configファイルで、テナントに関連付けられたテナントWebサービスの接続文字列があることを確認します。例えば:

    <xmlversion="1.0" encoding="utf-8">
    <connectionStrings>
        <add name="my-tenant" connectionString="https://my-tenant.service"/>
    </connectionStrings>
  7. Sitecoreスケーリング デプロイメント (XP1) を使用している場合は、テナント サービス接続文字列をCDサーバー上のconnectionstring.configファイルにも追加する必要があります。

価値アクセサーの作成

値アクセサは、フォーム内のフィールドの値を読み取ります。値アクセサは、値アクセサ セットに収集されます。

値アクセサを作成するには、次のようにします。

  1. <tenant>/Data Access/Value Accessor Sets/Providersに移動します。すでにFormsフォルダがある場合は、それを開きます。そうでない場合は、FolderタブでForms Value Accessor Setをクリックして、Formsフォルダーを作成して開きます。

  2. FormsフォルダーのFolderタブで、Forms Value Accessor Setをクリックして新しいアイテムを作成します。たとえば、Get in touch formという名前を付けます。

    Get in touch form element in the content tree
  3. 作成したアイテムを選択し、Contentタブに切り替えます。作成したフォームを選択してアイテムを保存します。

    Settings section on the Content tab on the Get in touch form item
  4. 上部のメニュー バーで、Data Exchangeをクリックし、Add Form Fieldsをクリックします。

    Add Form Fields button on the Data Exchange tab on the menu ribbon
  5. 値アクセサを作成するには、値を読み取るフォームフィールドを選択し、「 OK」をクリックします。

    Form field value accessors dialog

    値アクセサは、値アクセサ セット項目の下にあります。

    Full name value accessor under the Get in touch form item in the content tree

パイプラインを作成する

パイプラインは、アクションを一緒に実行する個々のプロセスであるパイプライン ステップを収集して整理します。

パイプラインを作成するには:

  1. <tenant>/Pipelinesに移動します。

  2. 右側のペインのFolderタブで、Pipelineをクリックします。たとえば、Form Testing Pipelineという名前を付けます。

  3. Folderタブで、Write to Log Pipeline Stepをクリックして新しいパイプライン ステップを作成します。たとえば、Write to Log Pipeline Stepという名前を付けます。

  4. パイプライン ステップを選択し、次に示すようにFull Name値アクセサーを構成します。

    Configuring the value accessor on the Write to Log Pipeline Step dialog
  5. 変更を保存します。

価値ある読者を作成する

値リーダーを使用して、フォーム内のフィールドの値を読み取ります。

バリューリーダーを作成するには:

  1. <tenant>/Data Access/Value Readers/Common/に移動します。

  2. Homeタブで新しいアイテムを作成するには、Dot Net Object from HttpRequest Content Value Readerをクリックします。たとえば、FormModel From Http Contentという名前を付けます。

  3. TypeフィールドをSitecore.DataExchange.ExperienceForms.Models.FormModel, Sitecore.DataExchange.ExperienceForms.Modelsに設定します。

    The Type field in the Settings section for the FormModel From Http Content item
  4. <tenant>/Data Access/Value Readers/Common/に移動します。

  5. Folderタブで、Raw Value Readerをクリックして新しいアイテムを作成します。たとえば、Raw Value Readerという名前を付けます。

  6. <tenant>/Data Access/Value Readers/Common/に移動します。

  7. Folderタブで、Synchronization Settings Plugin Value Readerをクリックして新しいアイテムを作成します。 Synchronization Settings Plugin Value Readerという名前を付けます。

  8. Storage LocationSourceに設定します。

    The Storage Location field in the Setting section for the Synchronization Settings Plugin Value Reader item
  9. 変更を保存します。

パイプライン コンテキスト ビルダーを作成する

パイプライン コンテキスト ビルダー コンポーネントは、要求データを適切な形式で抽出し、パイプライン コンテキストを構築し、要求からデータにコンテキストを提供します。

パイプライン コンテキスト ビルダーを作成するには:

  1. <tenant>/Tenant Service Settings/Pipeline Context Buildersに移動します。

  2. Folderタブで、Pipeline Context Plugin Builderをクリックして新しいアイテムを作成します。たとえば、Pipeline Context Plugin Builderという名前を付けます。

  3. Value Transformerフィールドを、前の手順で作成したhttp要求値リーダーに設定します。

  4. Plugin Readersフィールドを、前の手順で作成した同期設定プラグイン値リーダーに設定します。

    The Plugin Readers field in the Content tab of the Pipeline Context Plugin Builder item
  5. 変更を保存します。

テナント サービス エンドポイントの作成

DEFパイプラインを介してリクエストデータをプッシュするには、着信リクエストを解決するためのテナントサービスエンドポイント(TSE)が必要です。

テナント サービス エンドポイントを作成するには:

  1. <tenant>/Tenant Service Endpointsに移動します。

  2. Folderタブで、Pipeline Tenant Service Endpointをクリックして新しいアイテムを作成します。たとえば、Form submitted endpointと呼びます。

  3. 次の表のパラメータを使用してエンドポイントを設定します。

    パラメーター

    コンテンツ

    リクエスト値リーダー

    Value Readers/Common/Raw Value Reader

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

    Pipeline Context Builders/Pipeline Context Plugin Builder

    パイプライン

    Pipelines/Form Testing Pipeline

  4. Enabledチェック ボックスをオンにします。変更を保存します。

フォームを構成する

ユーザーがフォームを保存したときにテナントサービスエンドポイントをトリガーするようにフォームを構成する必要があります。

フォームを設定するには:

  1. Sitecoreスタート画面でFormsをクリックし、作成したフォームを選択します。

  2. フォームのSubmitボタンを選択します。 GeneralタブのSubmit Actionsセクションで、プラス記号をクリックしてアクションの一覧を開きます。リストでTrigger DEF Sync Processをクリックして送信アクションを追加します。

    The Trigger DEF Sync Process option in the list of Submit actions
  3. Select the tenant service endpointダイアログのData Exchange構造で、フォームが送信されたときにトリガーするテナントサービスエンドポイントを選択します。

  4. Connection String Nameフィールドに、テナントWebサービスのURLを指す接続文字列を入力します。

    The Select the tenant service endpoint dialog
  5. フォームをWebページに添付して公開します。これで、ユーザーがフォームを送信するたびに、テナント サービス エンドポイントがトリガーされ、選択したパイプラインが実行されます。

プロセスのトラブルシューティングを行う場合は、テナント サービス ログを確認します。

この記事を改善するための提案がある場合は、 お知らせください!