2014-12-19 1 views
0

Что такое «EntityMoniker» в Dynamics CRM и когда его использовать. Используется ли он вместо объекта «Цель»?Может кто-нибудь объяснить, пожалуйста, что такое «EntityMoniker» и когда использовать его в Dynamics CRM?

+0

https://social.microsoft.com/Forums/en-US/e2365bd7-ee0a-4450-bb18-ede4b5f9f148/when -to-use-entitymoniker-and-dyanmicsentityentiy-in-crm-2011? forum = crm note «поздняя связанная стратегия». То есть, это * имя *, представляющее Entity (ссылка [moniker] (http://www.merriam-webster.com/dictionary/moniker)), который будет (позже) разрешен Entity. Это позволяет избежать того, что объект Entity доступен сразу и в допустимом состоянии, например. – user2864740

+0

В приведенной ссылке кто-то говорит: вам не нужно использовать EntityMoniker, некоторые сообщения работают с этим типом. Прозвище содержит только руководство и имя объекта. Тип EntityMoniker был заменен на EntityReference. – Nick

+0

Если «EntityMoniker» был заменен на «EntityReference» Почему он используется при активации или деактивации записи и NOT EntityReference? – Nick

ответ

2

«EntityMoniker» является свойством класса SetStateRequest и имеет тип EntityReference. Хотя «Target» является свойством классов AssignRequest, CreateRequest, DeleteRequest, ExecuteWorkflowRequest, MergeRequest и UpdateRequest и имеет тип Entity.

+0

Обратите внимание, что не все запросы содержат свойство Target, которое имеет тип Entity, поэтому вам нужно посмотреть каждый запрос или ответ. Например, у DeleteRequest есть свойство Target, но его тип - EntityReference [Ref] (http://msdn.microsoft.com/en-us/library/gg309673.aspx) –

2

EntityMoniker используется в SetStateRequest. У меня есть следующий метод, который я использую, чтобы изменить Status любой записи в CRM 2011/2013

public static void SetStatus(string EntityName, Guid Id, int StateCode, int StatusCode) 
    { 
     try 
     { 
      if (Service == null) 
       throw GRID.CRM.ExceptionHandler.ExceptionUtil.GetException("Connection with CRM is Lost", typeof(Common), "SetStatus"); 
      SetStateRequest StateRequest = new SetStateRequest(); 
      StateRequest.EntityMoniker = new EntityReference(EntityName, Id); 
      StateRequest.State = new OptionSetValue(StateCode); 
      StateRequest.Status = new OptionSetValue(StatusCode); 
      SetStateResponse StateResponse = (SetStateResponse)Service.Execute(StateRequest); 
     } 
     catch (Exception ex) 
     { 
      throw GRID.CRM.ExceptionHandler.ExceptionUtil.GetException(ex, typeof(Common), "SetStatus"); 
     } 
    }