Activity Guide
 
HOME | CONTACT US | SITE MAP

Recent Searches:
Search: Activity
Search: Athletics
Search: Workout Gear

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
ActivityGuide.info
Tuesday, March 09, 2010


Microsoft CRM Customization secrets: second edition

Microsoft CRM Customization secrets – second edition by: Andrew Karasev

This article is for advanced Microsoft CRM SDK C# developers. It describes the technique of direct SQL programming, when SDK doesn't have the functionality to do the job.

Introduction. Looks like Microsoft CRM becomes more and more popular, partly because of Microsoft muscles behind it. Now it is targeted to the whole spectrum of horizontal and vertical market clientele. It is tightly integrated with other Microsoft Business Solutions products such as Microsoft Great Plains, Solomon, Navision (the last two in progress).


Here we describe the technique of creating closed activity-email using MS CRM SDK and direct SQL programming.

Imaging something like this. You need to handle incoming email before it is committed to MS Exchange database. You need to analyze if incoming email doesn't have GUID in its Subject (GUID will allow MS CRM Exchange Connector to move email to Microsoft CRM and attach it to the Contact, Account or Lead) - then you still need to lookup MS CRM in case if one of the accounts, contacts or leads has email address that matches with sender email address - then you need to create closed activity-email in MS CRM, attached to the object and placed into general queue.

How to create MS Exchange handler is outside of the scope, please see this article:

www. albaspectrum. com/Customizations_Whitepapers/Dexterity_SQL_VBA_Crystal/ExchangeHandlerExample. htm

Now the code below is classical MS CRM SDK and it will create activity email:

public Guid CreateEmailActivity(Guid userId, int objectType, Guid objectId, string mailFrom, CRMUser crmUser, string subject, string body) {

try {

log. Debug("Prepare for Mail Activity Creating");

// BizUser proxy object

Microsoft. 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 object

Microsoft. 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 activity

string strActivityXml = "";

strActivityXml += "";

strActivityXml += "") + "]]>";

strActivityXml += "";

strActivityXml += userId. ToString("B") + "";

strActivityXml += "";

// Set up the XML string for the activity parties

string 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);

// Create the e-mail object

Guid 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 + "\r\n" + e. StackTrace);

}

return new Guid();

}

Our credits to Anna Osborn (so obviously small pocket aquarium goes to her – smile!), she let us know how to close MS CRM Activity:

//creates the activity

strActivityId = oActivity. Create(userAuth, strXml, activityPartyXml);

//closes it as long as the relevant fields are complete oActivity. Close(userAuth, strActivityId, -1);

But in any case whatever you find below could help you to do whatever CRM SDK can’t.

Now I would like to share the trick with you - there is no method to make this activity closed in MS CRM SDK 1. 2 (if somebody knows the one - I owe you small pocket aquarium - smile!). Obviously Microsoft doesn't support if you do direct SQL programming bypassing SDK. However I would say this is not direct objects creation - this is rather flags correction. So here is what we have - this procedure will do the job and make activity closed:

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 + "\r\n" + e. StackTrace);

}

}

Happy customizing! if you want us to do the job - give us a call 1-866-528-0577! help(at)albaspectrum. com

Author:
Andrew Karasev

About the Author:
Andrew Karasev is Chief Technology Officer in Alba Spectrum Technologies – USA nationwide Microsoft CRM, Microsoft Great Plains customization company, based in Chicago, Arizona, California, Colorado, Texas, New York, Georgia, Florida, Canada, UK, Australia and having locations in multiple states and internationally , he is Dexterity, SQL, C#.Net, Crystal Reports and Microsoft CRM SDK developer akarasev(at)albaspectrum.com



More great sites:
Home Business Place | Home Landscapers | Home Office Services | Home Plumber | Home Sales Listings | Homes by Sellers | Home Trouble Shooter | Hot Portfolio | Housemate | Humor Clicks | Identity Maker | I Fix Hair | I Got Slim | Internet Intelligence | Internet Invoices | I Know Tax | I Know Wine | Image Keeper | Image Oasis | Images of Light | Image Store | Imagination Labs | Import Channel | Income Index | Income Investment | Income Shelters | Income Tax Advice | Incorporation Attorney | Incorporation Lawyer | I Networked | Infinite Truth | Insect Kill | Inside Opinions | Inside Sources | Inspired Arts | Instant Referral | Instant Wager | Interactive Tradeshow | Investor Showcase | I Petsitter | Photo Stock | I Restore | I Shear | Information Technology Job List | Its Your Body | Job Exchange | Just Rumors | Keep Thin | Kill Mice | Law Cafe | Law For Hire | Law Insider | Lawyer Questions and Answers | Lawyers Lounge | Leather Import | Legal Bible | Legal Forecast | Legal Trademarks | Legal Victory | Legal Wisdom | Life Alternatives | Litigation Experts | Living Diary | Living My Dreams | Loan Wizards | Luxury Homeseller | Luxury Renting | Marketing Photos | Market Prospector | Market Your Domains | Maui Activity Guide | Maui Broker | Maui Photos | Maui Spirit | Mea Culpa | Mind Body Store | Mind Renewal | Money Metrics | Moonlighter | Moonlighter |

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


ActivityGuide.info: Microsoft CRM Customization secrets: second edition

More Activity information:

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

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: Exercise For Any Size Exercise For Any Size

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

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

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

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

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

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

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

Article: Home Spa and Bodys Adaptation. The More the Better? Home Spa and Bodys Adaptation. The More the Better?

Article: Microsoft CRM Customization: programming email activity attachment Microsoft CRM Customization: programming email activity attachment

Article: Wheres the Water? Wheres the Water?

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

Article: Dieting? Mental Activity is as Important as Physical Dieting? Mental Activity is as Important as Physical

Article: Incorporating Physical Activity into Your Daily Routine Incorporating Physical Activity into Your Daily Routine

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

Article: Develop Your Childs Genius - Right Brain/Left Brain Coordination Develop Your Childs Genius - Right Brain/Left Brain Coordination

Article: Microsoft CRM Customization secrets: second edition Microsoft CRM Customization secrets: second edition

Article: Beware of the Newest Activity Online Phishing Beware of the Newest Activity Online Phishing

Article: Great Activities and Adventures in Kauai Great Activities and Adventures in Kauai

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

Article: Why they are mistaken about Aerobic Activities Why they are mistaken about Aerobic Activities


Activity
Athletics Workout Gear

Related Items:
Travel
Sports
Activity Ride
Activity
Technology
Fitness
Camping
Crafts
Hiking
Adventure Travel
Self Tanning
Walkthroughs
Psychonauts
Activity Options
Stanford Sports
Stanford Athletics
Animal Activities
Dartmouth Sports
Health Word
Ole Miss Athletics
Marquette University Athletics
Harwood Auto
Wisconsinopoly
Cub Scout Outdoor Activity Award
Operation
California Missions
North Carolina Football
Dartmouth Football
Buddy Teevens
Viking Athletics
Halloween School
Have Fun With Math
Michiganopoly
Purdueopoly
Metal Gear Solid 2 Strategy Guide
Stanford Football
Stanford Basketball
Music Activity
Penn State Basketball
Lacrosse Photos
Mississippi Football
Social Studies Activity
Dukeopoly
Texasopoly
Step
Aurora University
Enter The Matrix Xbox
Enter The Matrix Game
Spanish Activity
Brazil Volleyball
Penn Stateopoly
Teaching Reading In Social Studies
References
Doom 3
Strategy Guide
Auburnopoly
Pocket Guide
Math Resources
Womens Lacrosse
Math Products
Wow Game Guide
Worship
Comprehension Activities
Mechassault
Science Lesson Plans
Help
Education
Jobs
School
Job
Training
Careers
Schools
Teaching
Leadership
Yoga
Travel Guides
Find A Job
Workout
Tanning
Pilates
Aerobics
Emergency Preparedness
Meditations
Pc Game
Toning
Whiplash
Kickboxing
Safety Training
Trailblazer
Weight Training
Strategy Game
Financial Help
Timekeeping
Search People
Activity Books
Fishfinder
Security Product
Search For People
Time Recording
Meditation Techniques
Math Activities
Job Career
Vin Search
Indoor Cycling
Fish Finders
Sun Tanning
Ait 2
Reading Activities
Education Careers
Workout Wear
Ait 3
Workout Gear
Total Body Workout
Fitness Gear
Math Tools
Gym Shorts
Fitness Clothing
Athletic Clothing
Web Host Reviews
Data Security Software
Campaign Buttons
Teaching Geography
Mortgage Faq
Exercise Clothing
Exercise Clothes
30 Minute Workout
Gym Gear
Volleyball Tour
Basketball Dvd
Deb

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