Microsoft CRM Kundenbezogenheit? Programmierende
Geschlossene Email Tätigkeit
Microsoft CRM ist CRM Antwort von Microsoft und
vom Versuch, Marktanteil von Siebel, vom Orakel und von anderen zu
erhalten traditionelle Klient Verhältnis-Management-System
Verkäufer. Microsoft CRM verwendet das ganzes Spektrum
Microsoft der neuen Technologien: Net, MS Austausch, MS
Aussicht, MS SQL Bediener, Reproduktion, Index-Bewegung, aktives
Verzeichnis, Windows 2000/2003 Sicherheit vorbildlich, C #, VB.Net,
HTML, XML Netz-Service, XLTP, Javascript, zum einige zu nennen.
Heutiges Thema ist Tätigkeit der email Art Programmierung
- Sie normalerweise Abkommen mit diesen Kundenbezogenheiten, wenn Sie
Stecker des Microsoft Austausches CRM verbessern. Wie Sie
geschlossene Tätigkeit verursachen - dieses ist das Hauptdiskussion
Thema. Wir verwenden C#.Net Kodierung
Eine der Rollen unseres Austausch-Falls
Handler/Sink ist Kreation MS CRM geschlossene Tätigkeit, wenn es die
ankommenden und abgehenden email Anzeigen anfaßt. Die
Interaktion mit Microsoft CRM verwendet zwei genähert? MS CRM
SDK verwenden (die inbound und outbound XML Anzeigen anfassend) und
über direkten Zugriff MS CRM zur Datenbank. Lassen Sie uns
erster Blick am geschlossenen Tätigkeit Kreation Algorithmus:
1. Zuerst müssen wir das Wesen verstehen, das wir
Tätigkeit für verursachen müssen: Konto, Leitung oder
Kontakt. Die Vorwähler sollte spezifische Kriterien verwenden?
in unserem Fall ist dieses email address:
wenn ((crmAccount = crmConnector.GetAccount(mailboxFrom))!
= Null) {
}
sonst, wenn ((crmContact =
crmConnector.GetContact(mailboxFrom))! = Null) {
}
sonst, wenn ((crmLead =
crmConnector.GetLead(mailboxFrom))! = Null) {
}
2. Dann müssen wir GUID des Benutzers des
MS CRM, den erhalten dieses Wesen besitzt, C # Code so:
crmUser = crmConnector.GetUser(crmAccount.GetOwnerId());
3. Folgender Schritt ist geschlossene Tätigkeit
Kreation:
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. Die Methode, zum der geschlossenen Tätigkeit zu
verursachen:
allgemeines Guid CreateEmailActivity(Guid userId, internes
fromObjectType, Guid fromObjectId, internes toObjectType, Guid
toObjectId, Zeichenkette mailFrom, Zeichenkette mailTo,
Zeichenkettethema, Zeichenkettekörper) {
Versuch {
log.Debug("Prepare für die verursachende
Post-Tätigkeit");
//BizUser Vollmachtgegenstand
Microsoft.Crm.Platform.Proxy.BizUser bizUser =
neues Microsoft.Crm.Platform.Proxy.BizUser();
ICredentials Bescheinigungen = neues
NetworkCredential(sysUserId, sysPassword, sysDomain);
bizUser.Url = crmDir + "BizUser.srf";
bizUser.Credentials = Bescheinigungen;
Microsoft.Crm.Platform.Proxy.CUserAuth userAuth =
bizUser.WhoAmI();
//CRMEmail Vollmachtgegenstand
Microsoft.Crm.Platform.Proxy.CRMEmail email =
neues Microsoft.Crm.Platform.Proxy.CRMEmail();
email.Credentials = Bescheinigungen;
email.Url = crmDir + "CRMEmail.srf";
//stellen Sie die XML Zeichenkette für die Tätigkeit
auf
reihen Sie strActivityXml = "" auf;
strActivityXml + = "";
strActivityXml + = "") + "]]>";
strActivityXml + = "";
strActivityXml + = userId.ToString("B") + "";
strActivityXml + = "";
//stellen Sie die XML Zeichenkette für die Tätigkeit
Parteien auf
reihen Sie strPartiesXml = "" auf;
strPartiesXml + = "";
strPartiesXml + = "" + mailTo + "";
wenn (toObjectType ==
Microsoft.Crm.Platform.Types.ObjectType.otSystemUser) {
strPartiesXml + = "" +
Microsoft.Crm.Platform.Types.ObjectType.otSystemUser.ToString() + "";
}
sonst wenn (toObjectType ==
Microsoft.Crm.Platform.Types.ObjectType.otAccount) {
strPartiesXml + = "" +
Microsoft.Crm.Platform.Types.ObjectType.otAccount.ToString() + "";
}
sonst wenn (toObjectType ==
Microsoft.Crm.Platform.Types.ObjectType.otContact) {
strPartiesXml + = "" +
Microsoft.Crm.Platform.Types.ObjectType.otContact.ToString() + "";
}
sonst wenn (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 + "";
wenn (fromObjectType ==
Microsoft.Crm.Platform.Types.ObjectType.otSystemUser) {
strPartiesXml + = "" +
Microsoft.Crm.Platform.Types.ObjectType.otSystemUser.ToString() + "";
}
sonst wenn (fromObjectType ==
Microsoft.Crm.Platform.Types.ObjectType.otAccount) {
strPartiesXml + = "" +
Microsoft.Crm.Platform.Types.ObjectType.otAccount.ToString() + "";
}
sonst wenn (fromObjectType ==
Microsoft.Crm.Platform.Types.ObjectType.otContact) {
strPartiesXml + = "" +
Microsoft.Crm.Platform.Types.ObjectType.otContact.ToString() + "";
}
sonst wenn (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);
//verursachen Sie den E-mail Gegenstand
Guid emailId = neues Guid(email.Create(userAuth,
strActivityXml, strPartiesXml));
RückholemailId;
}
Verriegelung
(System.Web.Services.Protocols.SoapException e) {
log.Debug("ErrorMessage: "+ e.Message +" "+
e.Detail.OuterXml +" Quelle: "+ e.Source);
}
Verriegelung (Ausnahme e) {
log.Debug(e.Message + "" + e.StackTrace);
}
neues Rückholguid();
}
5. Das Tätigkeit gerechte zu bilden
verursacht Ihnen Notwendigkeit richtig gezeigt zu werden sie zu
gründen ist Markierungsfahnen entsprechend Standards des MS CRM:
Öffentlichkeit leeres UpdateActivityCodes(Guid emailId)
{
Versuch {
OleDbCommand Befehl = conn.CreateCommand();
command.CommandText = "UPDATE ActivityBase GESETZTES
DirectionCode = (?), StateCode = (?), PriorityCode = (?) WO ActivityId
= (?)";
command.Prepare();
command.Parameters.Add(new 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(new OleDbParameter("ActivityId",
emailId));
log.Debug("Prepare, zum des Tätigkeit Codes zu
aktualisieren" + emailId.ToString("B") + "in ActivityBase");
command.ExecuteNonQuery();
}
catch(Exception e) {
log.Debug(e.Message + "" + e.StackTrace);
}
}
Öffentlichkeit leeres
UpdateActivityQueueCodes(Guid emailId, Guid queueId) {
Versuch {
OleDbCommand Befehl = conn.CreateCommand();
command.CommandText = "UPDATE QueueItemBase GESETZTE
Priorität = (?), Zustand = (?), QueueId = (?) WO ObjectId = (?)";
command.Prepare();
command.Parameters.Add(new OleDbParameter("Priority",
Microsoft.Crm.Platform.Types.PRIORITY_CODE.PC_MEDIUM));
command.Parameters.Add(new OleDbParameter("State",
Microsoft.Crm.Platform.Types.ACTIVITY_STATE.ACTS_CLOSED));
command.Parameters.Add(new OleDbParameter("QueueId",
queueId));
command.Parameters.Add(new OleDbParameter("ObjectId",
emailId));
log.Debug("Prepare, zum des Tätigkeit Warteschlange Codes
zu aktualisieren" + emailId.ToString("B") + "in QueueItemBase");
command.ExecuteNonQuery();
}
catch(Exception e) {
log.Debug(e.Message + "" + e.StackTrace);
}
}
Glückliches Besonders anfertigen, Einführen und
Ändern! Wenn Sie uns die Arbeit erledigen wünschen - rufen Sie
uns 1-866-528-0577 an!
help@albaspectrum.comÜber Den Autor
Boris Makushkin ist Leitung Software-Entwickler
in den alba Spektrum-Technologien? USA allgemein Microsoft CRM,
Microsoft die Prairie-Kundenbezogenheit Firma, gegründet in Chicago,
Boston, San Francisco, San Diego, Los Angeles, Houston, Dallas,
Atlanta, Miami, Montreal, Toronto, Vancouver, Madrid, Moskau, Europa
und international (
www.albaspectrum.com), ist er Microsoft CRM SDK, C #, VB.Net, SQL, Orakel,
Unix Entwickler. Boris kann erreicht werden:
1-866-528-0577 oder
borism@albaspectrum.com.
borism@albaspectrum.com
Artikel Quelle: Messaggiamo.Com
Related:
» Seo Elite: New Seo Software!
» AntiSpywareBOT
» Reverse Mobile
» Error Nuker
Holen Sie sich den HTML-Code fü Webmaster
Fügen Sie diese Artikel Ihrer Website jetzt hinzu!
Webmaster veröffentlichen Sie Ihre Artikel
Keine Anmeldung erforderlich! Füllen Sie das Formular aus und Ihr Artikel wird im Messaggiamo.Com Artikel-Verzeichnis aufgenommen!