---
title: "結果を変換する"
slug: "convert-an-outcome"
abstract: ""
---
# 結果を変換する

このトピックでは、トラッカーからトリガーされた結果をxConnectに保存される前にカスタムCarPurchaseOutcomeに変換する方法について説明します。

using Sitecore.XConnect;
using Sitecore.XConnect.Collection.Model;
using System;

namespace Documentation
{
 public class CarPurchaseOutcome : Outcome
 {
 public static Guid CarPurchaseEventDefinitionId { get; } = new Guid("2b7e9e7e-f7ac-4ac2-8f8e-26a9c8644b23");

 public CarPurchaseOutcome(DateTime timestamp, string currencyCode, decimal monetaryValue, string model, string make)
 : base(CarPurchaseEventDefinitionId, timestamp, currencyCode, monetaryValue)
 {
 Model = model;
 Make = make;
 }

 public string Model { get; set; }
 public string Make { get; set; }
 }

}

## 結果変換プロセッサを作成する

1.  ConvertToXConnectEventProcessorBase<OutcomeData>を継承するパイプラインプロセッサを作成します。
2.  示された通り CreateEvent と CanProcessPageEventData を実装します。このハンドラは、車のメーカーとモデルが CustomValues 辞書に保存されていると仮定しています。

using Sitecore.Analytics.Model;
using Sitecore.Analytics.XConnect.DataAccess.Pipelines.ConvertToXConnectEventPipeline;
using Sitecore.Framework.Conditions;
using Sitecore.XConnect;

namespace Documentation
{
 public class ConvertCarPurchaseOutcome : ConvertToXConnectEventProcessorBase<OutcomeData>
 {
 protected override Event ConvertToEvent(OutcomeData entity)
 {
 var make = entity.CustomValues"Make" as string;
 var model = entity.CustomValues"Model" as string;

 var carPurchase = new CarPurchaseOutcome(entity.Timestamp, make, model, entity.CurrencyCode, entity.MonetaryValue);

 return carPurchase;
 }

 protected override bool CanProcess(Sitecore.Analytics.Model.Entity entity)
 {
 if (entity is OutcomeData)
 {
 OutcomeData outcomeData = (OutcomeData)entity;

 return (outcomeData.OutcomeDefinitionId == CarPurchaseOutcome.CarPurchaseOutcomeID);
 }

 return false;
 }
 }
}

## レジスタ結果変換プロセッサ

**MyBrand.CustomEvents.config**という新しい設定ファイルを作成し、表示通りハンドラーでパッチを当ててください:

> !重要最終結果ハンドラーの前にプロセッサーが接続されなければなりません。

<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
 <sitecore>
 <pipelines>
 <convertToXConnectEvent>
 <processor patch:before="processor@type='Sitecore.Analytics.XConnect.DataAccess.Pipelines.ConvertToXConnectEventPipeline.ConvertOutcomeDataToOutcome, Sitecore.Analytics.XConnect'" type="Documentation.ConvertCarPurchaseOutcome, Documentation"/>
 </convertToXConnectEvent>
 </pipelines>
 </sitecore>
</configuration>

## 結果を誘発する

結果変換パイプラインプロセッサが期待するカスタムデータで結果をトリガーします:

var ev = Sitecore.Analytics.Tracker.MarketingDefinitions.OutcomesCarPurchaseOutcome.CarPurchaseOutcomeID;

if (ev != null)
{
 var outcomeData = new Sitecore.Analytics.Data.OutcomeData(ev, "DKK", 100000.00m);

 outcomeData.CustomValues.Add("Make", "Mazda");
 outcomeData.CustomValues.Add("Model", "MX-5");

 Sitecore.Analytics.Tracker.Current.CurrentPage.RegisterOutcome(outcomeData);
}

> !注9.0 Update-1以降は、現在のやり取りに関するカスタムデータで結果をトリガーすることも可能です。