Настройка Microsoft CRM? Программирование закрыты активности пользователей электронной почты
Microsoft CRM является CRM ответа от Microsoft и пытаются получить долю на рынке с Siebel, Oracle и другие традиционные управления взаимоотношениями с клиентами Системы поставщиков. Microsoft CRM использует весь спектр Microsoft последних технологий:. NET, MS Exchange, MS Outlook, MS SQL Server, репликация, индексирование, Active Directory, Windows 2000/2003 модель безопасности, C #, VB.Net, HTML, XML Web Service, XLTP, JavaScript, чтобы назвать несколько. Сегодня темой является деятельность Email программирования типа - вы обычно имеют дело с этими настройками, когда вы улучшить Microsoft Exchange CRM Connector. Как вы создаете закрытые деятельности - это основная тема обсуждения. Мы будем использование C #. NET codingOne роли нашей Exchange Event Handler / поглотителей является создание MS CRM Закрытое деятельности в обработке входящих и исходящих сообщений электронной почты. Взаимодействие с Microsoft CRM использует два подходил? использование MS CRM SDK (обработка входящих и исходящих XML сообщений), а через прямой доступ к базе данных MS CRM. Давайте сначала посмотрим на создание закрытого алгоритма деятельности: 1. Сначала мы должны понимать сущность нам нужно создать активности: Счет, свинца или контакт. Выбор должен использовать конкретные критерии? В нашем случае это адрес электронной почты: IF ((crmAccount = crmConnector.GetAccount (mailboxFrom))> = NULL) () Else If ((= crmContact crmConnector.GetContact (mailboxFrom))> = NULL) () Else If ((crmLead = crmConnector.GetLead (mailboxFrom))> = NULL) () 2. Тогда мы должны получить Гильдия MS CRM пользователя, который владеет этой организации, C # код: crmUser = crmConnector.GetUser (crmAccount.GetOwnerId ()); 3. Следующим шагом является создание закрытого активности: emailId = crmConnector.CreateEmailActivity (crmUser.GetId (), Microsoft.Crm.Platform.Types.ObjectType.otAccount, crmAccount.GetId (), Microsoft.Crm.Platform.Types.ObjectType.otSystemUser, crmUser.GetId (), crmAccount.GetEmailAddress (), crmUser.GetEmailAddress (), sSubject, sBody); 4. Способ создания закрытых деятельности: общественное Guid CreateEmailActivity (Guid UserID, Int fromObjectType, Guid fromObjectId, Int toObjectType, Guid toObjectId, MAILFROM строка, строка MailTo, строка темы, строка тела) ((попытаться log.Debug ( "Подготовка к предмет деятельности Создание ");// BizUser прокси bizUser objectMicrosoft.Crm.Platform.Proxy.BizUser = новый Microsoft.Crm.Platform.Proxy.BizUser (); ICredentials полномочия = новый NetworkCredential (sysUserId, sysPassword, sysDomain); bizUser.Url crmDir = + "BizUser.srf"; bizUser.Credentials = полномочий; Microsoft.Crm.Platform.Proxy.CUserAuth userAuth = bizUser.WhoAmI ();// CRMEmail прокси objectMicrosoft.Crm.Platform.Proxy. CRMEmail Email = новые Microsoft.Crm.Platform.Proxy.CRMEmail (); email.Credentials = полномочий; email.Url = crmDir + "CRMEmail.srf"; / / Создание XML строку для activitystring strActivityXml = ""; strActivityXml + = " "; strActivityXml + = "") + "]]>"; StrActivityXml + = ""; strActivityXml + = userId.ToString ( "B") + ""; strActivityXml + = "";// Настройка строки XML на деятельность partiesstring strPartiesXml = ""; strPartiesXml + = ""; strPartiesXml + = "" + MailTo + "", если (toObjectType == Microsoft.Crm.Platform.Types.ObjectType.otSystemUser) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otSystemUser.ToString () + "";) другое если (toObjectType == Microsoft.Crm.Platform.Types.ObjectType.otAccount) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otAccount.ToString () + "";) Else If (toObjectType == Microsoft.Crm.Platform . Types.ObjectType.otContact) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otContact.ToString () + "";) Else If (toObjectType == Microsoft.Crm.Platform.Types.ObjectType.otLead) (strPartiesXml + = " "+ Microsoft.Crm.Platform.Types.ObjectType.otLead.ToString () + "";) strPartiesXml + = ' "+ toObjectId.ToString (" B ") +" "; strPartiesXml + =" "; strPartiesXml + = Microsoft.Crm.Platform.Types.ACTIVITY_PARTY_TYPE.ACTIVITY_PARTY_TO_RECIPIENT.ToString (); strPartiesXml + = ""; strPartiesXml + = ""; strPartiesXml + = ""; strPartiesXml + = "" MAILFROM + + "", если (fromObjectType == Microsoft.Crm.Platform.Types.ObjectType.otSystemUser) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otSystemUser.ToString () + "";) Else If (fromObjectType == Microsoft.Crm.Platform.Types.ObjectType.otAccount) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otAccount.ToString () + "";) Else If (fromObjectType == Microsoft.Crm.Platform . Types.ObjectType.otContact) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otContact.ToString () + "";) Else If (fromObjectType == Microsoft.Crm.Platform.Types.ObjectType.otLead) (strPartiesXml + = " "+ Microsoft.Crm.Platform.Types.ObjectType.otLead.ToString () + "";) strPartiesXml + = ' "+ fromObjectId.ToString (" B ") +" "; strPartiesXml + =" "; strPartiesXml + = Microsoft.Crm.Platform.Types.ACTIVITY_PARTY_TYPE.ACTIVITY_PARTY_SENDER.ToString (); strPartiesXml + = ""; strPartiesXml + = ""; strPartiesXml + = ""; log.Debug (strPartiesXml); / / Создать электронную почту objectGuid emailId = Новая Guid (email.Create (userAuth, strActivityXml, strPartiesXml)); возвращение emailId;) поймать (System.Web.Services.Protocols.SoapException е) (log.Debug ( "ErrorMessage:" e.Message + + "" + E. Detail.OuterXml + "Source:" + e.Source);) поймать (Exception E) (log.Debug (e.Message + "" + e.StackTrace);) возвращение новой Guid ();) 5. Для того, чтобы деятельность только что созданной будет показана правильно, вам нужно настроить его в соответствии с флагами MS CRM стандарты: общественность Пустота UpdateActivityCodes (Guid emailId) ((попытаться OleDbCommand Command = conn.CreateCommand (); command.CommandText = "UPDATE ActivityBase SET DirectionCode = (?), StateCode = (?), PriorityCode = (?) ГДЕ ActivityId = (?)"; command.Prepare (); command.Parameters.Add (новая OleDbParameter ( "DirectionCode", Microsoft.Crm.Platform.Types.EVENT_DIRECTION.ED_INCOMING)); command.Parameters.Add (новая OleDbParameter ( "StateCode" , Microsoft.Crm.Platform.Types.ACTIVITY_STATE.ACTS_CLOSED)); command.Parameters.Add (новая OleDbParameter ( "PriorityCode", Microsoft.Crm.Platform.Types.PRIORITY_CODE.PC_MEDIUM)); command.Parameters.Add (новое OleDbParameter ( "ActivityId", emailId)); log.Debug ( "подготовка для обновления кода вида деятельности" + emailId.ToString ( "B") + "в ActivityBase"); command.ExecuteNonQuery ();) поймать (Exception E) ( log.Debug (e.Message + "" + e.StackTrace);)) общественности UpdateActivityQueueCodes Void (Guid emailId, Guid queueId) ((попытаться OleDbCommand Command = conn.CreateCommand (); command.CommandText = "UPDATE QueueItemBase Установить приоритет = (?), Государственная = (?), QueueId = (?) WHERE ObjectId = (?)"; command.Prepare (); command.Parameters.Add (новая OleDbParameter ( "Приоритет", Microsoft.Crm.Platform.Types.PRIORITY_CODE.PC_MEDIUM)); command.Parameters.Add ( новые OleDbParameter ( "государство", Microsoft.Crm.Platform.Types.ACTIVITY_STATE.ACTS_CLOSED)); command.Parameters.Add (новая OleDbParameter ( "QueueId", queueId)); command.Parameters.Add (новая OleDbParameter ( "ObjectId", emailId)); журнала. Debug ( "Подготовить для обновления деятельность очереди кодом "+ emailId.ToString (" B ") +" в QueueItemBase "); command.ExecuteNonQuery ();) поймать (Exception E) (log.Debug (e.Message +" "+ e.StackTrace);) ) Happy настройки, внедрения и модификации! Если вы хотите нам, чтобы сделать работу - позвоните нам 1-866-528-0577! help@albaspectrum.comAbout AuthorBoris Макушкин является ведущим разработчиком программного обеспечения в Alba Spectrum Technologies? США общенациональной Microsoft CRM, Microsoft Great Plains
Статья Источник: Messaggiamo.Com
Related:
» Seo Elite: New Seo Software!
» AntiSpywareBOT
» Reverse Mobile
» Error Nuker
Вебмастер получить html-код
Добавить эту статью на Вашем сайте прямо сейчас!
Вебмастер представить свои статьи
Не требуется регистрация! Заполните форму и ваша статья в Messaggiamo.Com каталог!