---
title: "カスタムパーソナライズトークンでフォームデータを変換するためのパイプラインプロセッサを作成します"
slug: "create-a-pipeline-processor-to-convert-form-data-in-a-custom-personalization-token"
abstract: "チェックボックスリストフィールドの値を変換し、カンマ区切られた値のリストとしてレンダリングする新しいパイプラインプロセッサの実装方法。"
---
# カスタムパーソナライズトークンでフォームデータを変換するためのパイプラインプロセッサを作成します

顧客がサイトからフォームを完成・提出した後に自動メールキャンペーンを開始するためにEXMを設定できます。ただし、レンダリングされたメールメッセージの [カスタムパーソナライズトークン](https://doc.sitecore.com/xp/ja/developers/exm/100/email-experience-manager/create-a-custom-personalization-token.html "Create a custom personalization token") として使うために、元のフォームフィールドの値を別の形式に変換することも検討できます。

以下の例では、パイプラインプロセッサがチェックボックスリストフィールドの値を変換し、カンマ区切られた値のリストとしてレンダリングします。同じロジックはあらゆる種類のフォームコントロールに使用できます。

新しいパイプラインプロセッサを実装するには:

1.  CheckBoxListViewModelフィールドをチェックし、元のフィールド値をList<string>からカンマ区切られた文字列に変換し、TransformedTokenValueプロパティ値を設定するTransformCheckboxListプロセッサを実装します。
    
    public class TransformCheckboxList : Sitecore.EmailCampaign.Cd.Pipelines.TransformFormsCustomToken.ITransformFormsCustomTokenProcessor
     {
     public void Process(Sitecore.EmailCampaign.Cd.Pipelines.TransformFormsCustomToken.TransformFormsCustomTokenArgs args)
     {
     if (args == null)
     {
     throw new ArgumentException();
     }
    
     if (args.Field is Sitecore.ExperienceForms.Mvc.Models.Fields.CheckBoxListViewModel checkBoxListViewModel)
     {
     List<string> checkboxListValues = checkBoxListViewModel.Value;
    
     args.TransformedTokenValue = string.Join(", ", checkboxListValues);
     }
     }
     }
    
2.  Sitecore構成をパッチして、transformFormsCustomTokenパイプラインに実装されたプロセッサを含めるようにします:
    
    <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:role="http://www.sitecore.net/xmlconfig/role/">
     <sitecore role:require="Standalone or ContentDelivery">
     <pipelines>
    
     <group groupName="exm.sendEmailSubmitAction">
     <pipelines>
     <transformFormsCustomToken>
     <!-- Transforms the checkbox list field value from a List<string> to a comma separated string -->
     <processor type="Sitecore.EmailCampaign.Samples.FormsIntegration.Pipelines.TransformFormsCustomToken.TransformCheckboxList, Sitecore.EmailCampaign.Samples.FormsIntegration" />
     </transformFormsCustomToken>
     </pipelines>
     </group>
    
     </pipelines>
     </sitecore>
    </configuration>