La personnalisation de Microsoft CRM secrets? deuxième édition
Cet article est avancé pour Microsoft CRM SDK développeurs C #. Il décrit la technique de programmation SQL direct, lorsque le SDK ne dispose d'aucune fonctionnalité pour faire le job.Introduction. On dirait que Microsoft CRM devient de plus en plus populaire, en partie parce que Microsoft muscles derrière elle. Maintenant, il est destiné à l'ensemble du spectre de marché horizontale et verticale clientèle. Elle est étroitement intégrée avec les autres Microsoft Business Solutions de produits tels que Microsoft Great Plains, Solomon, Navision (les deux derniers en cours). Nous décrivons ici la technique de la création de l'activité privée par courriel en utilisant le SDK MS CRM et SQL direct programming.Imaging quelque chose comme ça. Vous avez besoin de gérer le courrier avant qu'il ne soit commis à la base de données MS Exchange. Vous avez besoin d'analyser si le courrier n'a pas dans son GUID Sujet (GUID permettra MS CRM Exchange Connector pour déplacer un e-mail à Microsoft CRM et de l'attacher à la contacter, ou en plomb) - puis vous avez encore besoin pour la recherche de MS CRM dans le cas si l'un des comptes, des contacts ou des prospects est l'adresse e-mail qui correspond à l'envoi par courriel adresse -, vous devez créer fermé l'activité e-mail dans MS CRM, attaché à l'objet et placé en général à créer queue.How gestionnaire MS Exchange est en dehors du champ d'application, s'il vous plaît voir ce article: http://www.albaspectrum.com/Customizations_Whitepapers/Dexterity_SQL_VBA_Crystal/ExchangeHandlerExample.htmNow le code ci-dessous est classique MS CRM SDK et il permettra de créer l'activité e-mail: public Guid CreateEmailActivity (Guid userId, int ObjectType, Guid ObjectID, string mailFrom, CRMUser crmUser, string sujet, string body) (try (log.Debug ( "Préparez-vous pour Mail Activité Création ");// BizUser proxy objectMicrosoft.Crm.Platform.Proxy.BizUser bizUser = new Microsoft.Crm.Platform.Proxy.BizUser (); ICredentials pouvoirs = new NetworkCredential (sysUserId, sysPassword, sysDomain); bizUser.Url = crmDir + "BizUser.srf"; bizUser.Credentials = pouvoirs; Microsoft.Crm.Platform.Proxy.CUserAuth userAuth = bizUser.WhoAmI ();// CRMEmail proxy = new objectMicrosoft.Crm.Platform.Proxy.CRMEmail email Microsoft.Crm.Platform.Proxy.CRMEmail (); = email.Credentials pouvoirs; email.Url = crmDir + "CRMEmail.srf"; / / Définit la chaîne XML pour la activitystring strActivityXml = ""; strActivityXml + = "" ; strActivityXml + = "") "]]>"; StrActivityXml + + = ""; strActivityXml + = userId.ToString ( "B") + ""; strActivityXml + = "";// Mettre en place la chaîne XML pour l'activité 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 + = "" + mailFrom + ""; 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); / / Création de la e-mail objectGuid emailId = new Guid (email.Create (userAuth, strActivityXml, strPartiesXml)); emailId retour;) catch (System.Web.Services.Protocols.SoapException e) (log.Debug ( "errorMessage:" + e.Message + "" + e. Detail.OuterXml + "Source:" + e.Source);) catch (Exception e) (log.Debug (e.Message + "" + e.StackTrace);) return new Guid ();) Nos crédits d'Anna Osborn (donc de toute évidence pochette aquarium va à son ? sourire!), elle nous faire savoir comment fermer MS CRM Activité: / / crée le activitystrActivityId = oActivity.Create (userAuth, strXml, activityPartyXml) / / ferme aussi longtemps que les champs sont complets oActivity.Close (userAuth, strActivityId, -1), mais en tout cas ce que vous trouverez ci-dessous peuvent vous aider à faire ce que CRM SDK ne le peuvent pas. Maintenant, je voudrais partager avec vous le tour - il n'y a pas de méthode pour faire de cette activité privée dans MS CRM 1.2 SDK (si quelqu'un sait l'un - je dois vous pochette aquarium - sourire!). De toute évidence, Microsoft ne prend pas en charge si vous ne vous directement sans passer par le SDK de programmation SQL. Toutefois, je dirais que ce n'est pas directement la création d'objets - ce sont plutôt des drapeaux correction. Ainsi voici ce que nous avons - de cette procédure fera l'affaire et de rendre l'activité de fermeture: public void UpdateActivityCodes (Guid emailId) (try (OleDbCommand command = conn.CreateCommand (); command.CommandText = "UPDATE ActivityBase SET DirectionCode = (?), StateCode = (?), PriorityCode = (?) WHERE ActivityId = (?)"; command.Prepare (); command.Parameters.Add (nouveau OleDbParameter ( "DirectionCode", Microsoft.Crm.Platform.Types.EVENT_DIRECTION.ED_INCOMING)); command.Parameters.Add (nouveau OleDbParameter ( "StateCode", Microsoft.Crm.Platform.Types.ACTIVITY_STATE.ACTS_CLOSED)); command.Parameters.Add (nouveau OleDbParameter ( "PriorityCode", Microsoft.Crm.Platform.Types.PRIORITY_CODE.PC_MEDIUM)); command.Parameters.Add (nouveau OleDbParameter ( "ActivityId", emailId)); log.Debug ( "Préparez-vous à mettre à jour le code d'activité" + emailId.ToString ( "B") + "en ActivityBase"); command.ExecuteNonQuery ();) catch (Exception e) (log.Debug (e.Message + "" + e.StackTrace);)) Happy personnalisation! si vous voulez que nous fassions le travail - appelez-nous 1-866-528-0577! Le help@albaspectrum.comAbout AuthorAndrew Karasev est Chief Technology Officer à Alba Spectrum Technologies? Etats-Unis le pays de Microsoft CRM, Microsoft Great Plains personnalisation société, basée à Chicago, dans l'Arizona,
Source D'Article: Messaggiamo.Com
Related:
» Seo Elite: New Seo Software!
» AntiSpywareBOT
» Reverse Mobile
» Error Nuker
Webmaster obtenir le code html
Ajouter cet article sur votre site Web dès maintenant!
Webmaster envoyer vos articles
Aucune inscription requise! Remplissez le formulaire et votre article est dans le Messaggiamo.Com répertoire!