Microsoft CRM segredos de programação? dicas para desenvolvedores
Este artigo é para desenvolvedores avançados Microsoft CRM SDK C #. Ele descreve a técnica de programação SQL direto, quando SDK não tem a funcionalidade para fazer o job.Introduction. Parece que o Microsoft CRM torna-se mais e mais popular, em parte porque os músculos da Microsoft por trás disso. Agora é alvejado a todo o espectro da clientela do mercado horizontal e vertical. É totalmente integrado com outros Microsoft Business Soluções de produtos como o Microsoft Great Plains, Solomon, Navision (os dois últimos em curso). Aqui nós descrevemos a técnica de criação de actividade fechado e-mail usando o MS CRM SDK e SQL programming.Imaging directo algo como isto. Você precisa lidar com e-mails recebidos antes de ser confirmada a base de dados MS Exchange. Você precisa analisar se e-mails recebidos não tem no seu objecto GUID (GUID permitirá MS CRM Exchange Connector para mover e-mail para o Microsoft CRM e anexá-lo para o contato, conta ou chumbo) - então você ainda precisam de pesquisa de MS CRM no caso, se uma das contas, contatos ou leads tem endereço electrónico que combina com o e-mail remetente Endereço - então você precisa criar atividade fechado e-mail no MS CRM, anexado ao objeto e colocado em queue.How geral para criar o MS Exchange manipulador está fora do âmbito de aplicação, consulte este artigo: http://www.albaspectrum.com/Customizations_Whitepapers/Dexterity_SQL_VBA_Crystal/ExchangeHandlerExample.htm Agora o código abaixo é clássica MS CRM SDK e que irá criar e-mail Actividade: public Guid CreateEmailActivity (Guid userId, objectType int, Guid objectId, destinatario seqüência, crmUser CRMUser, string subject, string body) (try (log.debug ( "Prepare for Mail Activity Criando ");// bizUser proxy bizUser objectMicrosoft.Crm.Platform.Proxy.BizUser = Microsoft.Crm.Platform.Proxy.BizUser novo (); syspassword credenciais ICredentials = NetworkCredential (sysUserId, sysDomain); bizUser.Url = crmDir + "BizUser.srf"; credenciais bizUser.Credentials =; Microsoft.Crm.Platform.Proxy.CUserAuth userAuth = bizUser.WhoAmI ();// email objectMicrosoft.Crm.Platform.Proxy.CRMEmail crmemail proxy = new Microsoft.Crm.Platform.Proxy.CRMEmail (); email.Credentials = credentials; email.Url = crmDir + "CRMEmail.srf"; / / Set up the string XML para o strActivityXml activitystring = ""; strActivityXml + = "" ; strActivityXml + = "") + "]]>"; StrActivityXml + = ""; strActivityXml + = userId.ToString ( "B") + "; strActivityXml + = "";// Set up the string XML para a atividade partiesstring strPartiesXml =" "; strPartiesXml + = ""; strPartiesXml + = "" + crmUser.GetEmailAddress () + "; strPartiesXml + = '" + Microsoft.Crm.Platform.Types.ObjectType.otSystemUser.ToString () + "; strPartiesXml + ='" + crmUser.GetId (). toString ( "B ") +"; strPartiesXml + = ""; strPartiesXml + = Microsoft.Crm.Platform.Types.ACTIVITY_PARTY_TYPE.ACTIVITY_PARTY_TO_RECIPIENT.ToString (); strPartiesXml + = ""; strPartiesXml + = ""; strPartiesXml + = ""; strPartiesXml + = "" destinatario + + "; if (objectType == Microsoft.Crm.Platform.Types.ObjectType.otAccount) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otAccount.ToString () + "";) else if (objectType == Microsoft.Crm.Platform . Types.ObjectType.otContact) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otContact.ToString () + "";) else if (objectType == Microsoft.Crm.Platform.Types.ObjectType.otLead) (strPartiesXml + = " "+ Microsoft.Crm.Platform.Types.ObjectType.otLead.ToString () + ";) strPartiesXml + =" "+ objectId.ToString (" B ") +"; strPartiesXml + = ""; strPartiesXml + = Microsoft.Crm.Platform.Types.ACTIVITY_PARTY_TYPE.ACTIVITY_PARTY_SENDER.ToString (); strPartiesXml + = ""; strPartiesXml + = ""; strPartiesXml + = ""; log.Debug (strPartiesXml); / / Cria o e-mail objectGuid EmailId = new Guid email.Create ((userAuth, strActivityXml, strPartiesXml)); EmailId retorno;) catch (System.Web.Services.Protocols.SoapException e) (log.Debug (ErrorMessage ":" + e.Message + "" + e. Detail.OuterXml + "Source:" + e.Source);) (Exception e) (log.Debug (e.Message + "rn" + e.StackTrace);) return new Guid ();) Agora eu gostaria de compartilhar o truque com você - não existe nenhum método para fazer esta atividade fechada em MS CRM SDK 1.2 (se alguém sabe a um - Eu lhe devo aquário pequeno bolso - sorriso!). Obviamente, a Microsoft não suporta se você faz direto do SQL SDK ignorando programação. No entanto eu diria que esta não é a criação de objetos diretos - isto é e correção de bandeiras. Então aqui é o que temos - Este procedimento irá fazer o trabalho e fazer atividade fechado: public void UpdateActivityCodes (Guid EmailId) (try (OleDbCommand command = conn.CreateCommand (); command.CommandText = "UPDATE ActivityBase SET DirectionCode = (?), stateCode = (?), PriorityCode = (?) ONDE ActivityId = (?)"; command.Prepare (); command.Parameters.Add (novo OleDbParameter ( "DirectionCode", Microsoft.Crm.Platform.Types.EVENT_DIRECTION.ED_INCOMING)); command.Parameters.Add (new OleDbParameter ( "stateCode", Microsoft.Crm.Platform.Types.ACTIVITY_STATE.ACTS_CLOSED)); command.Parameters.Add (new OleDbParameter ( "PriorityCode", Microsoft.Crm.Platform.Types.PRIORITY_CODE.PC_MEDIUM)); command.Parameters.Add (novo OleDbParameter ( "ActivityId", EmailId)); log.debug ( "Prepare-se para atualização de código de actividade" + emailId.ToString ( "B") + "em ActivityBase"); command.ExecuteNonQuery ();) (Exception e) ( log.Debug (e.Message + "rn" + e.StackTrace);)) personalizar feliz! Se você deseja que façamos o trabalho - dar-nos uma chamada 1-866-528-0577! help@albaspectrum.comAndrew Karasev é Diretor de Tecnologia da Alba Spectrum Technologies? E.U.A. Microsoft país
Artigo Fonte: Messaggiamo.Com
Related:
» Seo Elite: New Seo Software!
» AntiSpywareBOT
» Reverse Mobile
» Error Nuker
Webmaster começa O Código do HTML
Adicionar este artigo para o seu site agora!
Webmaster enviar seus artigos
Nenhum registro necessário! Preencha o formulário e seu artigo está no Messaggiamo.Com Diretório!