Thanks! Here's the code:
using System;
using Microsoft.Xrm.Sdk;
using System.ServiceModel;
using System.Linq;
using Microsoft.Xrm.Sdk.Query;
namespace A.ContactInteractionScore
{
public class ContactInteractionScore : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
//upon Interaction Create or Update, sum Interaction.adm_interacionscore for Contact
string sPlugin = "ContactInteractionScore";
// Obtain the execution context from the service provider.
IPluginExecutionContext context =
(IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
// Get a reference to the Organization service.
IOrganizationServiceFactory factory =
(IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = factory.CreateOrganizationService(context.UserId);
string sActivityId = "";
string sContactId = "";
if (context.InputParameters.Contains("Target") &&
context.InputParameters["Target"] is Entity)
{
Entity entity = (Entity)context.InputParameters["Target"];
if (entity.LogicalName == "adm_interaction")
{
sActivityId = entity.Attributes["activityid"].ToString();
}
}
if (sActivityId != "")
{
#region GetContactId
try
{
var fetchDataActivity = new
{
activityid = sActivityId,
participationtypemask = "1"
};
var fetchXmlActivity = $@"
<fetch top='1'>
<entity name='adm_interaction'>
<attribute name='activityid' />
<attribute name='adm_interactionscore' />
<attribute name='subject' />
<attribute name='actualstart' />
<attribute name='activitytypecode' />
<filter>
<condition attribute='activityid' operator='eq' value='{fetchDataActivity.activityid/*f4a5f3dc-6ee9-e711-80f6-00155dcfc153*/}'/>
</filter>
<link-entity name='activityparty' from='activityid' to='activityid' link-type='outer' alias='activityparty1'>
<attribute name='partyidname' />
<attribute name='participationtypemaskname' />
<attribute name='partyid' />
<attribute name='participationtypemask' />
<attribute name='partyobjecttypecode' />
<attribute name='activityid' />
<filter>
<condition attribute='participationtypemask' operator='eq' value='{fetchDataActivity.participationtypemask/*1*/}'/>
</filter>
</link-entity>
</entity>
</fetch>";
Entity entityActivity = service.RetrieveMultiple(new FetchExpression(fetchXmlActivity)).Entities.FirstOrDefault();
if (entityActivity != null)
{
if (entityActivity.Attributes.Contains("activityparty1.partyid"))
{
sContactId = ((EntityReference)(entityActivity.GetAttributeValue<AliasedValue>("activityparty1.partyid").Value)).Id.ToString();
}
else
{
return;
}
} //END: if (entityActivity != null)
}
catch (FaultException ex)
{
throw new InvalidPluginExecutionException("Plugin Error - " + sPlugin + " @ get sContactId: ", ex);
}
#endregion //END: GetContactId
if (sContactId !="")
{
#region Get contact interaction sum
try
{
var fetchData = new
{
participationtypemask = "1",
partyid = sContactId
};
var fetchXML_ContactSum = $@"
<fetch aggregate='true'>
<entity name='adm_interaction'>
<attribute name='activityid' alias='count_totalinteractions' aggregate='count' />
<attribute name='adm_interactionscore' alias='sum_interactionscore' aggregate='sum' />
<attribute name='actualstart' alias='max_lastinteractiondate' aggregate='max' />
<link-entity name='activityparty' from='activityid' to='activityid'>
<attribute name='partyid' alias='contactid' groupby='true' />
<filter>
<condition attribute='participationtypemask' operator='eq' value='{fetchData.participationtypemask/*1*/}'/>
<condition attribute='partyid' operator='eq' value='{fetchData.partyid/*7c9d913b-b99a-e111-a651-a4badb3593f3*/}'/>
</filter>
</link-entity>
</entity>
</fetch>";
Entity entityContact = service.RetrieveMultiple(new FetchExpression(fetchXML_ContactSum)).Entities.FirstOrDefault();
if (entityContact != null)
{
#region update contact with aggregates
//set the update entity
Entity mainContact = new Entity("contact");
mainContact.Id = new Guid(sContactId);
mainContact.Attributes.Add("contactid", new Guid(sContactId));
if (entityContact.Attributes.Contains("sum_interactionscore"))
{
//get Recall Decay constant
double dblRecallDecay = 0;
bool boolRecallDecayPoints = true; //true = add, false = multiply
bool boolFound = false;
var fetchData_Decay = new
{
statecode = "0",
adm_name = "%Recall Decay%",
adm_updateperiodname = "Day"
};
var fetchXml_Decay = $@"
<fetch>
<entity name='adm_interactionscoring'>
<attribute name='adm_interactionscoringid' />
<attribute name='adm_name' />
<attribute name='adm_updateperiod' />
<attribute name='adm_updatefrequency' />
<attribute name='adm_points' />
<attribute name='adm_percentage' />
<order attribute='adm_name' descending='false' />
<filter type='and'>
<condition attribute='statecode' operator='eq' value='{fetchData_Decay.statecode/*0*/}'/>
<condition attribute='adm_name' operator='like' value='{fetchData_Decay.adm_name/*%Recall Decay%*/}'/>
<condition attribute='adm_updateperiodname' operator='eq' value='{fetchData_Decay.adm_updateperiodname/*Day*/}'/>
</filter>
</entity>
</fetch>"; ;
EntityCollection entityDecayRate = service.RetrieveMultiple(new FetchExpression(fetchXml_Decay));
foreach (var d in entityDecayRate.Entities)
{
if (d.Attributes.Contains("adm_points"))
{
dblRecallDecay = Convert.ToDouble(d.Attributes["adm_points"]);
boolRecallDecayPoints = true;
boolFound = true;
}
else if (d.Attributes.Contains("adm_percentage"))
{
dblRecallDecay = Convert.ToDouble(d.Attributes["adm_percentage"]);
boolRecallDecayPoints = false;
boolFound = true;
}
} //END: foreach (var d in entityDecayRate.Entities)
if (boolFound == true)
{
#region calculate and update today's interaction score
try
{
var fetchData_Interactions = new
{
participationtypemask = "1",
partyid = sContactId
};
var fetchXml_Interactions = $@"
<fetch>
<entity name='adm_interaction'>
<attribute name='adm_interactionscore' />
<attribute name='actualstart' />
<order attribute='actualstart' />
<link-entity name='activityparty' from='activityid' to='activityid'>
<filter>
<condition attribute='participationtypemask' operator='eq' value='{fetchData_Interactions.participationtypemask/*1*/}'/>
<condition attribute='partyid' operator='eq' value='{fetchData_Interactions.partyid/*7c9d913b-b99a-e111-a651-a4badb3593f3*/}'/>
</filter>
</link-entity>
</entity>
</fetch>";
EntityCollection entityInteractions = service.RetrieveMultiple(new FetchExpression(fetchXml_Interactions));
DateTime dtLastAction = new DateTime();
double dblIntScore = 0;
int intIntCount = 0;
foreach (var i in entityInteractions.Entities)
{
intIntCount = 0 + 1;
double dblDecay = 0;
//check if not first item
if (!dtLastAction.Equals(DateTime.MinValue))
{
//calculate Decay
DateTime dtCurAction = Convert.ToDateTime(((AliasedValue)entityContact["max_lastinteractiondate"]).Value);
TimeSpan t = dtCurAction - dtLastAction;
double dblDays = t.TotalDays;
if (boolRecallDecayPoints == true)
{
//multiply days by points
dblDecay = dblRecallDecay * dblDays;
}
else
{
//exponential reciprocal: recall decay by timespan
dblDecay = Convert.ToDouble(i.Attributes["adm_interactionscore"]) * (1 - Math.Pow(dblRecallDecay, dblDays));
}
} //END: if (!dtLastAction.Equals(DateTime.MaxValue))
//score may never be lower than zero
dblIntScore = Convert.ToDouble(Math.Max(0, dblIntScore + Convert.ToDouble(i.Attributes["adm_interactionscore"]) - dblDecay));
dtLastAction = Convert.ToDateTime(i["actualstart"]);
} //END: foreach (var i in entityInteractions.Entities)
mainContact.Attributes.Add("adm_interactionscore", dblIntScore);
mainContact.Attributes.Add("adm_totalinteractions", intIntCount);
}
catch (FaultException ex)
{
throw new InvalidPluginExecutionException("Plugin Error - " + sPlugin + " @ calculate and update today's interaction score: ", ex);
}
#endregion //END: calculate and update today's interaction score
} //END: if (dblRecallDecay > 0)
}
if (entityContact.Attributes.Contains("sum_interactionscore"))
{
double dblLifeScore = Convert.ToDouble(entityContact.GetAttributeValue<AliasedValue>("sum_interactionscore").Value);
mainContact.Attributes.Add("adm_lifetimeinteractionscore", dblLifeScore);
}
if (entityContact.Attributes.Contains("max_lastinteractiondate"))
{
DateTime dtLastInt = Convert.ToDateTime(((AliasedValue)entityContact["max_lastinteractiondate"]).Value);
mainContact.Attributes.Add("adm_lastinteractiondate", dtLastInt);
}
//Update account entity
service.Update(mainContact);
#endregion //update contact with aggregates
} // END: if (entityContact != null)
}
catch (Exception ex)
{
throw new InvalidPluginExecutionException("Plugin Error - " + sPlugin + " @ get contact interaction sum: ", ex);
}
#endregion //Get contact interaction sum
} //END: if (sContactId !="")
} //END: if (sActivityId != "")
} //END: public void Execute(IServiceProvider serviceProvider)
} //END: public class ContactInteractionScore : IPlugin
} //END: namespace Advocace.ContactInteractionScore
----------------------------------------
Here is the error:
Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Download the details and load with Plug-in Profiler.
|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|Detail:
<OrganizationServiceFault xmlns:i="www.w3.org/.../XMLSchema-instance" xmlns="schemas.microsoft.com/.../Contracts">
<ErrorCode>-2147220891</ErrorCode>
<ErrorDetails xmlns:d2p1="schemas.datacontract.org/.../System.Collections.Generic">
<KeyValuePairOfstringanyType>
<d2p1:key>OperationStatus</d2p1:key>
<d2p1:value xmlns:d4p1="www.w3.org/.../XMLSchema" i:type="d4p1:string">3</d2p1:value>
</KeyValuePairOfstringanyType>
<KeyValuePairOfstringanyType>
<d2p1:key>SubErrorCode</d2p1:key>
<d2p1:value xmlns:d4p1="www.w3.org/.../XMLSchema" i:type="d4p1:string">-2146233088</d2p1:value>
</KeyValuePairOfstringanyType>
</ErrorDetails>
<Message>Download the details and load with Plug-in Profiler.
|7R1rc6NG8vv9CkpXiZKqRTz01kpKef24c10cO5Z3L5UvWwMMWs4IFEC2tVf3328evB8SIAnJNpvUrhlm+jHd093TPYPHv7wsdOYJWrZmGpOG0OIbDDRkU9GM+aTx+eGKHTSYX6bje7g0LYdBnQ17pE0a3xxnOeK45+fn1nO7ZVpzTuR5gfvj5teZ/A0uAKsZtgMMGTam43PTULX5ygIOwsFoI0PTJw3HWsEGR17a6GfZMa0Lt8u1caPpumZD2TQUe8qPue2dwnAuX2S43IJr5gDLedAWcCryQp8VRFYcPAidUUcc8f2W0O13+8P+nxHMwRAMyIEvzvRH3fmYawJ/nDsfcefvI2CsH9ZLiEhz0D+Txp2+mmvG5QuUV5hkF3LDnenv/kzbZFrt1kKTLdM2Vaclmws86W1O4LkZtDSga9/J1HCNMnLySPy0sjUD2vZnQ3OuFdwqDDrtvsQPWFXsKayiCgI7EIYdFnQkoEjt7rCttvFILjkUN5+blgV1KjTSKEKBF0FbZUVJVdgOnv+BNBBYBSg9sSv1eCAPCbzESNx6gWT7jZBF+viP+OkaIdZQf2P+2YaWi00WoDzs86wqbKY+bTAFulw5d8ACC+ggMbtzC7ZI5sXC0hEErEGOBWTH9qQiJUYqwAGy282TUYfj+9xsbTtw0To3dR3KeBrs1j+ggWQt++ICo3/B9Regr+Ad0KxbFWkr4sDVMq+TNHqEa/zwAKw5dAi7fhvt8IRB+FoJRpeGoznrEJozB0GWVg60y6G2V9J/EBPbccsjCsibL3m7FhMyzySo2x+YS4VhGbyoBVHsjJgr02I+WSZQZGBj2bqvhCHz0+0SGj+79BASPIq4XJwVYx8oi6+AyDDP7N8S+zWDDoEfksIXj06Bd/+4BH+JMFAFQ4iZJ6QimrKdoe+j+UpTCBsDUVZVCfbYngqHLOzj5cirPRbJs9tVZFUWuu2qWFggK61qUMkjE3mEVinE5r+oXqY4mD+r5lBa51/z91CFFgy7BDAqaEq9AT7BgfFITF62+UR+OGQ9uQDgr+Zck4H+G7LIxLIQK7lCRttFHntPB+GnaEAQvLs3n79QD57eo1pllOA3oKubRZZGZC58XLolp6JHIY6TOUnIki6A40CFoLC5uHbkXtnVagc2vBoKqqyQ9c1QkXscbECFzIUW4fAUFAQxK68svDLXn5CGPGmmlcdspQxLWrC804zRXEAVrHSnPNtcLKLyAy3bDYON+a2q6iiUxG9UoNuQDkt9T0deGw8WMGxXxqgZy8cdlXhHh7gw7nSwloD8GMeV8pqOM2lEemMqBL/o9o8149YbFAuDOfSU7PMSuxDSPfaGdHYHUoceBoPiFLrnObcg1s9bI8OttASB74s9172kD4sApOvQiyTYlL8iUUZsHAFlIem6+w7aOhzIvW5PhqzKb3YSyaFxgMESfjJlIMPEsPD83a6cU4zTfRNx+2wgxb18caBB7Ehp8uJ2V4FdANU2mushlHazu0mWtxmETEuy01wlXbzyuKBLZmmZMvoJTSUCs9zm8Mm+wNWeFqYaUXMdOIOZbFqZ7SOGLljGVJmYE2F+urNMVdOh9bNLQcyRbHMXMWXw2u9M26Ge+HqBeD05Hb6z4GmTpy2AtXZJLBaUpIxNgNwUUqR2xG/u4V8oWnKulXRVmJEEVmKkYRrU3GW8J0O/AQtHY5YGJP30pFEiBRNNvCBbDg3HzYhtS5jV6as6fVWnr+r01atOX9Wb89e6OZ+tlksL+Y6L1VJHtDvwAlnbnOtFHkmmqUNgFDUZwXa1Tj/U6Yfjpx/4YZfv93p1+uF04qzDpx+GfQh7Q3XAil3YrdMPifTDLYkb8YLSmevFUocLtKkBIW9Xpw5Ogrw6dXA60th76iBt9hykh/ihTb2L/0xlEgaQGNJJG+Kf7cEt5OQQOSM09lMVGUeXhF5nzG3rFEDJPN3k98h7tillwPifwJ5B60mT0WpVliZS1d9MR1NxSEt2dOTVFKMcc/n6jq9tdyru4RJFM1MS5Yy5ePM4EsNMxXE0qJmOffeP53hK00BjLto6dvOyrgmdCi1hzMXaxhTh5RMScLbmZ+ovRezlf1v00W5Mx2DkNYYQ+JGwNApHDu7khDqGVtIGDFkqJKLYSxyOucweY2lEwl4bQ/FOi7m7Rdx0ZttwIenr31foBS5DY2sxvfGX/x/WojVTHlu/r6C1bl1BR/52+UJ2PAjXBybR8QPjTvdk0OLxfx+YcxS1ryw4MeAKzar+gblbSWivhAKBB/MRGpO2IKntQbcHlHavA9tdzE06WWPqNKd/YWLGrguljLkWL3VcfMG4WQdyii/GERVGaXNY6uAdmVryABbLj39/ufj4NybjD+mBhqiYasYxl5Om0CSNuYYHACDxDIyBZmfSjPmmQgADkMCL6jyofqKlyXB7Ahkl1MbVmr0BdxN9+yNWdpAS2tjE7hMmmVNsWmRkHEsDRhYGTWOxscFovNg04op8AqPyNolxNq1JE/7VZMhefdLME1c1S/LDlWHIG4z2249sdEW4vCyR8NZNRrXMRZRBx4w+ExDE4DdNNBtWk0H2B9gxSMXWapjEuCIQcJqCHwrrwGaomqwtiSPB3CDb93gAHGVsQkGq902xSYxD6XV3EDO563LesqAz5jV1bQtFF+6eli4XWrtl/CBXdGhANXbB/jjcEvhx/BQLLOjewIs88E+JYIwLQjX0k32Fs51e0Bw0oHd+6EvCn3uIJAaf4A16qy110jnaAw25hzYZnD/go3vHYLd2pFgvGbuVj/XiLB0j2PPKGJFnX2sSmbEC+5McRddctYH0OhkIZ/tBLNsv0TpZzmxext2VgtWqaAEgB2dlmKdeu+X6rO0TcYadvrugGwmhxtKFYahZfQIViRfQwhQSEKnd8JsvERKzznrTHEpfHipDoS2x0nAIWCggAYBeV0g5daCE5nUPCV0/PRNjQKZntAjOFN78s15eEZ10jOTStuVVv8QqSYdVrJQdTJ71pZjIjsLkCttcJ6xqrXj7nFycxG5T5OXFT2l1HoTBSOyOeP7PKk2BF/rl4TF6ECQvh+k18artXCLiO4DVS8dRnQ3MOKYSHFJJMQyVmonwoaOD6NoOh46qVckiYUghPYwBPhUHnDsCqsoB+3yaxDZtcsTpDvbwDphLnp3aenIqdm6qsnCb/r1bXEBce8s/Qrd9vqJIi5CVw7cTgylyYgdvk/qMICLnzNzdVEJcPs+MH69LONadKSvlVvHjDBqKf6uxKKFcTLcPYmDylIxTj2zsuWKc41xhirWKnSnc6+rPb/iie38uPTWwibNkff9GM86w8sEAOX7F0ogm4y0ZiAzOPVpGlkLwByfSYi9w2x2YI3U7N81HDfrcPJgO0GnHc3NlOCG0aa/ShvyqLTQHl7mhApUoFVu7huYjEAp+EU66BXkwKZR+o225sklcaq33uCVgviXwA7EuAb+TEnA4CU3LwGA+t+Ac4JQ9Zq90jWmPNeEw2E0FD7dIJuMl/dXBazwcBDXDrJE+JUokRavJLkn2KvVlQA/qsF9qwuVil4gFePmqk62YTwhOn0ToQH12omP34mdx3Dmqg75mkPQfbplb5moprV0lL8Py7vWyMIxj1MxyUpBdg8+T3y1H1k7lvAiAkiW9CIwyw+vSXl3aexelvQx3e2oJtswNz9YUmzTSIlF1vgLDMdK8ZapBxaSQlViqVh7l6led6kWSEXLtf21E8moVC2PfJbhKJeSHhHuWSV2Of3/leF+XvoYOVB5Gr3zI1enWzsXBowskeuryEIJJwVClgI4Xp7yBolnRODaYvYNWfwpFdSTMqaSWVzSywY9HqeuVswG7CHdzxSz3PfW6YlZXzOqK2clXzIatNj/s1AWzd1Qwi6d4oxneQiDy1cuw00crvlRtJIolR9UKISp1eygfspL3v/IBX5Fv0yzRGjMPxwFFolr4qwqGvD4YHnJEzj4ceGjJ+BMi8/2IAzkGaEUucPrCVqCNMJHfZNIkHmUvCGlhiKG3JIFRrnAYB5paA7PxFobe00utgvFlK285cAezGKDWtUfoI/8BOWWg68wF+mf9w4EpCa+vOFWhCbkA610I2bn2FwNTrvgXp6Wu4tVVvDdcxcsKBLZnyfZ2XU8UpG6nP1DZtgjBMa/ruTY3D+vlUqKh48MMy4Qt+IgRGLSYGWRCq2I1bNS3s7ylwiAIQ15sD9nusC2xCkQiHHalNk5uQF7uwrbSG1RaYXAjHY+1DUUGb8YLlRcqE48fbuZRynLlUaEqjmhgezhG2NKcvIEsdhGVIVKv5ubHdrFTybVCH3Peb941t3d5C3lX132/3fRrmMETyML6uSOye8ItzBLtrCcNoRHZd+hBdMHg6smkkSsUaDCqZhXozaUhTYvuXCL+Kwqf8OK4Qovj8oy9pIvjyl0cF+dX52hx/M+nIm/3BBkcnZvINioxjXUu+5i3PwaiWN/+eI/J7HjGY6ekdhzYni+DZKE5yBf+CiHc4St9m/Aks6sHQnSc+xtZ1OyWAEyHebyLFoUpOsbFiywid0zGpgDc4WJGJsx9gKtTvnXK972mfA/49ahq0kvH+HoU+r/ir0dVmpZXO6CrthWZ7cG9f0XvjSTcCp3PrCjjVupbK8Kg/JnMzem33Fr0FtJvrynvVrun+uOGr9k9HfIjr+/RPb3VT4HV37F6le7pdZ7KL1IPClaCW40Jm2+Rmm+W76G//QJMtAfZf3g9kqUf3yh7xZ6BeH519ekS6frV5XB7seeqc9a9al+cs73LTd3rYs8rK/YM+62B0K7i5gKd3WNVd2hOMH955wgMbCEoJcV1jMTWCe0NCtza31ugmfv2/Jv66Du+TdoZ9AT/T6cqHkt8UabUDejKzr2hFQ0dtJ2rUHiVsVbmGyenscE9tT2ej2Sv3+w40Y3Jlg+AnNqG5DDlPfob1TcU9eLB5J5jUC78m0ynYxSMoPgFKYKqzd24MA4Jrx9C4pn7O81b51SQofNpM2zastrHnA9i/G/TelR185lMXY7ffF70V6pyAYrcv119BxwzBy7jv2qZzrFpOdP/Aw==|</Message>
<Timestamp>2017-12-28T14:42:07.3303203Z</Timestamp>
<InnerFault i:nil="true" />
<TraceText>
[PluginProfiler.Plugins: PluginProfiler.Plugins.ProfilerPlugin]
[de5aef3d-d9eb-e711-80f6-00155dcfc153: A.ContactInteractionScore.ContactInteractionScore: Update of adm_interaction (Profiler)]
</TraceText>
</OrganizationServiceFault>