我已經爲PreImage更新創建了一個插件。當實體發生變化時,插件將會啓動。無法在CRM 2011中的更新插件中保存更改
在插件中,我調用了webservice,並且我想將webservice響應保存在字段中。但該插件不會提交我的更改。當我使用Service.Update
時,插件會爲工作流程循環增加錯誤。
if (context.InputParameters.Contains("Target") && (context.InputParameters["Target"] is Entity))
{
Entity entity2 = (Entity)context.InputParameters["Target"];
Entity PreImageEntity = (Entity)context.PreEntityImages["PreImage"];
if (entity2.LogicalName == "ppp_sentsms")
{
QueryExpression expression3 = new QueryExpression("ppp_sentsms");
ColumnSet set2 = new ColumnSet();
set2.AllColumns = true;
expression3.ColumnSet = set2;
ConditionExpression item = new ConditionExpression();
item.AttributeName = "ppp_sentsmsid";
this.CurrentSmsGuid = (Guid)entity2.Attributes["ppp_sentsmsid"];
item.Values.Add(this.CurrentSmsGuid);
FilterExpression expression5 = new FilterExpression();
expression5.Conditions.Add(item);
expression3.Criteria = expression5;
EntityCollection entitys2 = service.RetrieveMultiple(expression3);
string strResponceValue = "";
string strResponceValuePreImage = "";
foreach (Entity smsentity in entitys2.Entities)
{
if (smsentity.Attributes.Contains("ppp_status") && smsentity.Attributes.Contains("ppp_webserviceid"))
{
strResponceValuePreImage = PreImageEntity["ppp_status"].ToString();
strResponceValue = CheckSMSStatus(this.username, this.password, smsentity["ppp_webserviceid"].ToString());
if (strResponceValue.Trim() != strResponceValuePreImage.Trim())
{
entity2["ppp_status"] = strResponceValue;
// service.Update(smsentity);
}
}
}
}
我該如何解決這個問題?
不要盲目使用深度:http://stackoverflow.com/a/18110030/227436 – Daryl
絕對 - 一如既往;買家當心:) – glosrob