Internet Activity
 
HOME | CONTACT US | SITE MAP

Recent Searches:
Search: Activity
Search: Active
Search: Athletic

Partner Sites:
Web Inceptions, Inc.
Domain Name Sales
Domain Registration Alerts


New Sites:
Supernatural Photography
Bargain Scrapbooks
Challenge Workshop
Virtual Pets
Reconcilable Differences
The Love Bible
Advanced Navigation
PUA
Hyper Seduction
Advanced Defense
Party Confidential
Spice Chefs
Adventure Climbers
Independent Cycling
Organic Parenting
Affordable Beach Living
Coach Promotion
Nightlife Photographer
Affordable Home Broker
Interior Updates
Real Estate Bailout
Serenity Photography
Advanced Exports
Enhanced Photography
Smart Custody
Adventure By Nature
The Wine You Love
Bridal Insight
Inspirational Instruction
Coral Adventures
iActivity.com
Tuesday, March 09, 2010


Microsoft CRM Customization? Programming Closed Email Activity

Microsoft CRM is CRM answer from Microsoft and attempt to get market share from Siebel, Oracle and others traditional Client Relationship Management System vendors. Microsoft CRM uses all the spectrum of Microsoft recent technologies: . Net, MS Exchange, MS Outlook, MS SQL Server, Replication, Indexing, Active Directory, Windows 2000/2003 security model, C#, VB. Net, HTML, XML Web Service, XLTP, Javascript to name a few. Today's topic is Activity of email type programming - you usually deal with these customizations when you improve Microsoft Exchange CRM connector. How do you create closed


activity - this is the main discussion topic. We?l use C#. Net codingOne of the roles of our Exchange Event Handler/Sink is creation MS CRM Closed Activity in handling incoming and outgoing email messages. The interaction with Microsoft CRM uses two approached? using MS CRM SDK (handling inbound and outbound XML messages) and via direct access to MS CRM Database. Let? first look at the Closed Activity creation algorithm:1. First we need to understand the entity we need to create activity for: Account, Lead or Contact. The selection should use specific criteria? in our case this is email address:if ((crmAccount = crmConnector. GetAccount(mailboxFrom)) != null) {}else if ((crmContact = crmConnector. GetContact(mailboxFrom)) != null) {}else if ((crmLead = crmConnector. GetLead(mailboxFrom)) != null) {}2. Then we have to get GUID of MS CRM user, who owns this entity, C# code like this:crmUser = crmConnector. GetUser(crmAccount. GetOwnerId());3. Next step is closed Activity creation: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. The method to create closed activity:public Guid CreateEmailActivity(Guid userId, int fromObjectType, Guid fromObjectId, int toObjectType, Guid toObjectId, string mailFrom, string mailTo, string subject, string body) {try {log. Debug("Prepare for Mail Activity Creating");// BizUser proxy objectMicrosoft. Crm. Platform. Proxy. BizUser bizUser = new Microsoft. Crm. Platform. Proxy. BizUser();ICredentials credentials = new NetworkCredential(sysUserId, sysPassword, sysDomain);bizUser. Url = crmDir + "BizUser. srf";bizUser. Credentials = credentials;Microsoft. Crm. Platform. Proxy. CUserAuth userAuth = bizUser. WhoAmI();// CRMEmail proxy objectMicrosoft. Crm. Platform. Proxy. CRMEmail email = new Microsoft. Crm. Platform. Proxy. CRMEmail();email. Credentials = credentials;email. Url = crmDir + "CRMEmail. srf";// Set up the XML string for the activitystring strActivityXml = "";strActivityXml += "";strActivityXml += "") + "]]>";strActivityXml += "";strActivityXml += userId. ToString("B") + "";strActivityXml += "";// Set up the XML string for the activity partiesstring strPartiesXml = "";strPartiesXml += "";strPartiesXml += "" + mailTo + "";if (toObjectType == Microsoft. Crm. Platform. Types. ObjectType. otSystemUser) {strPartiesXml += "" + Microsoft. Crm. Platform. Types. ObjectType. otSystemUser. ToString() + "";}else if (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 + "";if (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);// Create the e-mail objectGuid emailId = new Guid(email. Create(userAuth, strActivityXml, strPartiesXml));return emailId;}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();}5. To make the activity just created be shown correctly you need to setup it? flags according to MS CRM standards: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(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 to update activity code " + emailId. ToString("B") + " in ActivityBase");command. ExecuteNonQuery();}catch(Exception e) {log. Debug(e. Message + "

" + e. StackTrace);}}public void UpdateActivityQueueCodes(Guid emailId, Guid queueId) {try {OleDbCommand command = conn. CreateCommand();command. CommandText = "UPDATE QueueItemBase SET Priority = (?), State = (?), QueueId = (?) WHERE 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 to update activity queue code " + emailId. ToString("B") + " in QueueItemBase");command. ExecuteNonQuery();}catch(Exception e) {log. Debug(e. Message + "

" + e. StackTrace);}}Happy customizing, implementing and modifying! If you want us to do the job - give us a call 1-866-528-0577! help@albaspectrum. comAbout The AuthorBoris Makushkin is Lead Software Developer in Alba Spectrum Technologies? USA nationwide Microsoft CRM, Microsoft Great Plains customization company, based in Chicago, Boston, San Francisco, San Diego, Los Angeles, Houston, Dallas, Atlanta, Miami, Montreal, Toronto, Vancouver, Madrid, Moscow, Europe and internationally (www. albaspectrum. com), he is Microsoft CRM SDK, C#, VB. Net, SQL, Oracle, Unix developer. Boris can be reached: 1-866-528-0577 or borism@albaspectrum. com. borism@albaspectrum. com

Author:
Boris Makushkin




More great sites:
Intelligent Sports | Legal Abuse | Network Active | Preowned Treasures | Inexpensive Law | Electric Pipeline | Commercial Biotechnology | Discount Inn | Excellent Traffic | Reused | The Neighborhood Team | Accident Claim | AGI | ARY | BEK | BUX | BVM | BWN | Caddy | Coil | Contours | Cray | CTN | CVT | CWK | CYS | Dachshunds | Date Latina | DBV | Design Trademark | DHD | DHG | Domicile | DSE | DTK | DVH | Event Passport | EWG | Extension | Fsbo Real Estate | FTJ | GHZ | GSW | GUC | Hairline | HDW | HHF | HHM | HHT | HJH | Home Protection | House Builder | HWM | Internet Florist | IUK | JAA | Jingle | JKP | JMK | KCB | KJC | KMB | Lein | LLA | MBW | MRZ | MYB | Naturalist | NKT | NPM | Obligation | PCV | Pixx | Plateaus | PNV | Prick | Requirement | RFT | RMG | SDW |

Do you have a web site? Please link to us!


iActivity.com: Microsoft CRM Customization? Programming Closed Email Activity

More Activity information:

Article: Exercise For Any Size Exercise For Any Size

Article: Law School Torts II Course Outline Law School Torts II Course Outline

Article: Choosing The Right Womens Athletic Shoes Part 1 Choosing The Right Womens Athletic Shoes Part 1

Article: Pointless Targets Pointless Targets

Article: Mental vs Physical Activity in Marketing Mental vs Physical Activity in Marketing

Article: Microsoft CRM Customization: programming Closed Email Activity Microsoft CRM Customization: programming Closed Email Activity

Article: Burn Fat  24 Hours a Day - Increase Your Metabolic Rate Burn Fat 24 Hours a Day - Increase Your Metabolic Rate

Article: Choosing The Right Womens Athletic Shoes - (Part 1) Choosing The Right Womens Athletic Shoes - (Part 1)

Article: Vitamin Tips To Fuel Physical Activity Vitamin Tips To Fuel Physical Activity

Article: Nutrition for Physical Activity Nutrition for Physical Activity

Article: How Many Calories Are Too Many How Many Calories Are Too Many

Article: Physical Activity and Less? Physical Activity and Less?

Article: Ready?Set?Go! Transition Strategies for Caregivers Ready?Set?Go! Transition Strategies for Caregivers

Article: Online Shoe Stores Carry A Wide Variety Of Womens Athletic Shoes To Choose From Online Shoe Stores Carry A Wide Variety Of Womens Athletic Shoes To Choose From

Article: Active Adult Community in Massachusetts Active Adult Community in Massachusetts

Article: The Power of Stories and Testimonies The Power of Stories and Testimonies

Article: Influences On Whitetail Deer Activity Influences On Whitetail Deer Activity

Article: A Blowing Bubble Activity that will Blow the Kids Away A Blowing Bubble Activity that will Blow the Kids Away

Article: How To Help Your Overweight Child How To Help Your Overweight Child

Article: Identity Theft: Additional Protection for Soldiers on Active Duty Identity Theft: Additional Protection for Soldiers on Active Duty

Article: The Importance of Physical Activity The Importance of Physical Activity

Article: Microsoft CRM Customization? Programming Closed Email Activity Microsoft CRM Customization? Programming Closed Email Activity

Article: Playing Games Does Not Help Your Weight Loss Efforts Playing Games Does Not Help Your Weight Loss Efforts

Article: Fuel For Active Lifestyles Fuel For Active Lifestyles

Article: Peak Performance? What You See Is What You Get! Peak Performance? What You See Is What You Get!


Activity
Active Athletic

Related Items:
Travel
Sports
Activity
Technology
Party
Fitness
Camping
Craft
Hiking
Adventure Travel
Sunless Tanning
Self Tanning
Addominali
Activity Options
Boyds Mills
Animal Activities
Health Word
Cub Scout Outdoor Activity Award
Operation
Athletic Injuries
Active Shield
California Missions
Active Up
Active Tree
Halloween School
Education Explorations
Poetry Activity
Active Moisturizer
Active Upload
Have Fun With Math
Active Treeview
First Active
Music Activity
Social Studies Activity
Western Athletic
Active H
Active Tag
Active Delivery
Athletic Girls
Spanish Activity
Active Balun
Active Moisturiser
Active Directory Guide
Teaching Reading In Social Studies
Majestic Athletic
1200 Calorie
Teaching Elementary Social Studies
Math Resources
Active Tours
Math Products
Worship
Art Activity
Athletic Works
Comprehension Activities
Everlast
Science Lesson Plans
Usb Active
Jobs
Job
Teaching
Leadership
Economic Development
Find A Job
Activex
Financial Assistance
Tanning
Card Games
Emergency Preparedness
About Health
Leadership Skills
Role Playing Games
Timepieces
Safety Training
Activewear
Central Heating
Financial Help
Phone Search
Holiday House
Timekeeping
Search People
Activity Books
Saltwater Fishing
Science Book
Search For People
Active Adult
Time Recording
Meditation Techniques
Athletic Equipment
Math Activities
Job Career
Vin Search
Active Trader
Sun Tanning
Reading Activities
Active Trading
Athletic Gear
Education Careers
Active Holidays
Self Tan
Active Vacations
Career Research
Active Subwoofer
Math Tools
Active Traders
Active Rfid
Athletic Pants
Making A Website
Teaching Geography
Active Ankle
Career Assessments
Athletic Supporter
Laos Travel
Training Shorts
Travel Active
Athletic Tank
Womens Athletic Clothing
Russel Athletic
Athletic Shirt
Athletic Clothes
Active Subwoofers
Athletic Tops
Spanish Curriculum
Active Studio Monitor
Saltwater Fishing Tackle
Baby

 
Copyright © 2000-2006 iActivity.com. All Rights Reserved.
Home | Contact Us | About Us | Site Map | Add URL