MSCRM 4.0: Obtener el GUID del registro en un plugin

13 05 2011

Como sabréis, para obtener el GUID del registro en un plugin debemos tener en que mensaje estamos y si estamos en pre o en post. Cada vez que tenemos que recuperar el GUID debemos recordar estos factores y tenerlos en cuenta, eso si no usamos una misma clase para responder a dos mensajes distintos (Create y Update por ejemplo). Pues bien, recopilando las distintas situaciones en que podemos querer recuperar el GUID del registro he creado la siguiente función que os permitirá obtener ese valor independientemente del mensaje:


public static Guid GetKey(IPluginExecutionContext context) {
string id = "";
switch (context.MessageName) {
 case "Create":
  if (context.OutputParameters.Properties.Contains("id")) {
   id = context.OutputParameters.Properties["id"].ToString();
  }
  break;
 case "Update":
  if (context.InputParameters.Properties.Contains(ParameterName.Target) && context.InputParameters.Properties[ParameterName.Target] is DynamicEntity) {
   DynamicEntity entity = (DynamicEntity)context.InputParameters.Properties[ParameterName.Target];
   id = ((Key)entity.Properties[entity.Name + "id"]).Value.ToString();
  }
  break;
 case "Delete":
  if (context.InputParameters.Properties.Contains("Target")) {
   Moniker monikerentity = null;
   monikerentity = (Moniker)context.InputParameters.Properties[ParameterName.Target];
   id = monikerentity.Id.ToString();
  }
  break;
}
if (id == "")
 return Guid.Empty;
else
 return new Guid(id);
}
Anuncios

Acciones

Information

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: