계정 엔터티의 모든 관련 연락처에서 전화 번호를 업데이트하려고합니다. 다음은 내가 사용했던 코드, 연결된 연락처의 전화 번호가 업데이트되지 않습니다. - CRM 2011 온라인
public class Plugin:IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
IPluginExecutionContext context = (IPluginExecutionContext)
serviceProvider.GetService(typeof(IPluginExecutionContext));
Entity entity;
if (context.InputParameters.Contains("Target") &&
context.InputParameters["Target"] is Entity)
{
entity = (Entity)context.InputParameters["Target"];
if (entity.LogicalName != "account") { return; }
}
else
{
return;
}
try
{
string telephoneNum = string.Empty;
IOrganizationServiceFactory serviceFactory =(IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service =serviceFactory.CreateOrganizationService(context.UserId);
var id = (Guid)context.OutputParameters["id"];
telephoneNum = entity.GetAttributeValue<string>("telephone1");
UpdateContact(service, id,telephoneNum);
}
catch (FaultException<OrganizationServiceFault> ex)
{
throw new InvalidPluginExecutionException(
"An error occurred in the plug-in.", ex);
}
}
private static void UpdateContact(IOrganizationService service, Guid id,string telephoneNUm)
{
using (var crm = new XrmServiceContext(service))
{
var res = from c in crm.CreateQuery("contact")
where c["parentcustomerid"].Equals(id)
select c;
foreach (var c in res)
{
Entity e = (Entity)c;
e["telephone1"] = telephoneNUm;
crm.UpdateObject(e);
}
crm.SaveChanges();
}
}
}
내가 업데이트에 대한 플러그인을 등록하고 주요 기업 "계정"입니다하지만 난 내가 참조 전화 필드에 번호 변경 후 계정 양식을 저장하려고 할 때마다 오류 팝업. 내가 놓친 게 있니? 다들 감사 해요!
어떤 오류가 나타나는지 지정할 수 있습니까? 일반적인 오류 인 경우 [trace] (http://exploringxrm.wordpress.com/2012/01/12/enabling-trace-in-microsoft-dynamics-crm-2011/) 또는이 [tool] (http : //crmdiagtool2011.codeplex.com/) 전체 오류 정보를 얻으십시오. –