カスタム値

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

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

カスタム値を使用すると、アクティビティタイプ間でデータを共有できます。カスタムデータは現在の登録に固有であり、オートメーションデータベースにのみ保存されます。これは、恒久的な保管を目的としたものではありません。重要な情報を別の場所またはサービスに保存します (xConnectクライアントの使用など)。

カスタム値は、文字列のキーと値のペアです。アクティビティは、カスタム値の読み取りと書き込みの両方を行うことができます。プラン内の他のアクティビティは、これらの値を読み取って更新できます。

カスタム値の一般的な用途は、あるアクティビティから別のアクティビティに計算が繰り返されないようにすることです。たとえば、現在のインタラクションで特定の結果を検索するアクティビティがあるとします。結果が存在する場合、アクティビティは結果に関する関連データをカスタム値に格納できるため、他のアクティビティは結果を検索する必要がなく、代わりにカスタム値に直接アクセスできます。

カスタム値の設定

Invokeメソッド内でcontext.SetCustomValue(string,string) メソッドを使用します。

public ActivityResult Invoke(IContactProcessingContext context)
{
        var outcome = context.Interaction.Events.FirstOrDefault(x => x.DefinitionId == MyOutcomeDefinitionId) as Outcome;

        if(outcome != null)
        {
                context.SetCustomValue("cost", outcome.MonetaryValue.ToString());
                return new SuccessMove("triggered");
        }

        return new SuccessMove("not-triggered");
}

カスタム値の取得

Invokeメソッド内でcontext.GetCustomValue(string,string) メソッドを使用します。

public double ValueLimit { get; set; }

public ActivityResult Invoke(IContactProcessingContext context)
{
        var monetaryValue = decimal.Parse(context.GetCustomValue("cost"));

        if(monetaryValue >= ValueLimit)
        {
                return new SuccessMove("over");
        }

        return new SuccessMove("under");
}

カスタム値の有効期間

Sitecoreは、登録とともにカスタム値をAutomationデータベースに保存します。登録を削除すると、アクティビティはSuccessExitPlanに戻り、カスタム値データは破棄されます。

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