パーソナライズでのエンゲージメント オートメーションの条件の使用に関する事象


説明

Sitecore では、エンゲージメント オートメーションなどの、さまざまなタイプの条件に基づいてパーソナライズ ルールを作成できます。例えば、次のようなルールを使用して、訪問者が特定のエンゲージメント プランに追加されているかを確認できます。

しかし、Sitecore バージョン 7.5以降のエンゲージメント オートメーションの条件は、条件付きレンダリング コンテキスト用には設計されていません。したがって、これらのルールは、パーソナライズのルール セット エディターでは、デフォルトで使用できなくなりました。

註: 「/sitecore/system/Settings/Rules/Conditional Renderings/Tags/Default」アイテムの「Tags」フィールドに「Engagement Automation」を追加する際に、「Rule Set Editor」ダイアログにルールが表示されます。しかし、これらの条件を使用すると、ログ ファイルに次のエラーが記録されます。

ERROR Failed to get type of condition
Exception: System.ArgumentException
Message: GenericArguments[0], 'Sitecore.Rules.ConditionalRenderings.ConditionalRenderingsRuleContext', on 'Sitecore.Analytics.Automation.Rules.Workflows.Conditions.HasAutomationStateCondition`1[T]' violates the constraint of type 'T'.
Source: mscorlib
   at System.RuntimeType.ValidateGenericArguments(MemberInfo definition, RuntimeType[] genericArguments, Exception e)
   at System.RuntimeType.MakeGenericType(Type[] instantiation)
   at Sitecore.Reflection.ReflectionUtil.GetGenericType(String typeName, Type genericArgumentType)
   at Sitecore.CodeDom.Scripts.ItemScripts.GetGenericType[T](Item item)
   at Sitecore.Rules.RuleFactory.GetRuleCondition[T](Database database, XElement element)
...

解決策

本事象を修正するには、次のパッチを適用してください。

  1. 添付の「Sitecore.Support.424148.dll」アセンブリ ファイルを「\Website\bin」フォルダーに配置します。
  2. /sitecore/system/Settings/Rules/Definitions/Elements/Engagement Automation/Is in Engagement Plan」アイテム ({131CC7E1-6DA4-4875-897F-79E0198EC26F}) の「タイプ」フィールドに、次の値を入力します。
    Sitecore.Support.Analytics.Automation.Rules.Workflows.Conditions.HasAutomationCondition,Sitecore.Support.424148
  3. /sitecore/system/Settings/Rules/Definitions/Elements/Engagement Automation/Is in Specific State」アイテム ({78168526-2783-4700-AD73-E78B9A056027}) の「タイプ」フィールドに、次の値を入力します。
    Sitecore.Support.Analytics.Automation.Rules.Workflows.Conditions.HasAutomationStateCondition,
    Sitecore.Support.424148
  4. 上記の変更したアイテムを再度パブリッシュします。