Knowledge found and lost while working with Microsoft Dynamics CRM
RSS icon Home icon
  • SendEmailRequest.TrackingToken Field Documentation Error

    Posted on December 4th, 2006 Mitch Milam Print Print No comments

    This weekend, while working on a white paper, I noticed an error in the SDK documentation for the SendEmailRequest.TrackingToken field.  It states:

    The tracking token is used to correlate an e-mail with a context. You can generate a tracking token with the GetTrackingTokenEmail message. If this field is unspecified it defaults to null. In this case, the SendEmail message generates a tracking token automatically.

    You must supply a value for this field.  The following are all all valid:

    SendEmailRequest.TrackingToken = "";
    SendEmailRequest.TrackingToken = string.Empty;
    SendEmailRequest.TrackingToken = "My Tracking Token";
    

    If SendEmailRequest.TrackingToken is null or undeclared, you will receive an exception.

    If SendEmailRequest.TrackingToken is blank, CRM will automatically insert the next available tracking token, such as: CRM:00010029.  If SendEmailRequest.TrackingToken contains a value, that value will be inserted as the tracking token.

    Customization, Dynamics CRM
    1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading ... Loading ...
    1,406 views
  • Finding CRM Accounts that have been shared

    Posted on December 4th, 2006 Mitch Milam Print Print 2 comments

    Morning Folks,

    A couple of months ago, we started a conversation on this blog regarding the identification of CRM Accounts that have been shared.  Satoshi Kawamura of Collins Computing came up with a SQL script that will solve the solution, and with his permission, I am posting it here.

    Note: this needs to be run via SQL Query Analyzer on the <Organization Name>_MSCRM database.

    select
    	ChangedOn 'Shared on',
    	name 'Account Name',
    	fullname 'Share Name',
    	owneridname 'Account Owner', 'User' 'Type'
    from
    	PrincipalObjectAccess,
    	FilteredAccount,
    	FilteredSystemUser
    where
    	PrincipalObjectAccess.ObjectTypeCode = 1
    	  and PrincipalObjectAccess.ObjectId = FilteredAccount.accountid
    	  and PrincipalObjectAccess.PrincipalId = FilteredSystemUser.systemuserid
    union
    select
    	ChangedOn 'Shared On',
    	FilteredAccount.name 'Share Name',
    	FilteredTeam.name,
    	owneridname 'Account Owner', 'Team' 'Type'
    from
    	PrincipalObjectAccess,
    	FilteredAccount,
    	FilteredTeam
    where
    	PrincipalObjectAccess.ObjectTypeCode = 1
    	  and PrincipalObjectAccess.ObjectId = FilteredAccount.accountid
    	  and PrincipalObjectAccess.PrincipalId = FilteredTeam.teamid
    order by name

     This will product a report similar to the following:

    I should also note that this will only produce a list of shared Accounts. Should you wish Contacts, you will need to replace each instance of "FilteredAccount" with "FilteredContact" and change "ObjectTypeCode = 1" to "ObjectTypeCode = 2".

    Great work Steve, and thanks for sharing.

    Customization, Dynamics CRM
    1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading ... Loading ...
    4,372 views