Hi Folks,

The registration deadline for next week’s workshop: JavaScript Development in Dynamics CRM

ends on January 23rd at 12:00pm CST.

For more information and to register, visit:

http://www.infinite-x.net/2014/01/17/next-weeks-workshop-javascript-development-in-dynamics-crm

Way back when, like in version 3.0 and 4.0, Dynamics CRM had a hidden page that would display a list of entities and attributes in a concise list.

That went away in version 2011 but the good folks on the CRM SDK team (Jim specifically), created a managed solution that was included in the SDK.

The main purpose of the tool is to show you information about CRM entities that does not show up on the normal CRM user interface through the dialogs associated with solutions.  This information is available, but only available via programmatic access.

My utility SnapShot! for Dynamics CRM uses exactly the same techniques to produce reports showing information not normally seen through the CRM UI.

 

Installation

After you have downloaded and installed the SDK, you can find the Metadata Browser here:

sdk\Tools\MetadataBrowser

Install the Metadata Browser as you would any other managed solution. When finished, open the solution and go to the Configuration page, where you can launch the different Metadata Browser components.

 

Metadata Browser

The first tool is the main Metadata Browser itself, which you activate by clicking the Open Metadata Browser button:

image

The interface looks like this:

image

As you click on an entity on the left-hand side, it’s properties will be displayed on the right.

At this point you can either view or edit the entity and its details.

 

Entity Metadata Browser

The second function will display a dialog that will allow you to edit an entity. This is the same dialog that is shown when you click the Edit Entity button on the Metadata Browser.

Here is what that interface looks like:

image

As you can see, you can edit or view any of the properties of the entity.

 

In conclusion, this is a simple yet powerful tool and one that is often overlooked but one which is great to have in your toolbox, should you need it.

I was digging through a customer’s CRM database today to determine where all of the space had gone and thought I would share a couple of SQL scripts I created to help.

Note: You’ll need Administrator access to SQL to run these scripts.

This script will give you a summary of all Annotations, broken down by MimeType, which is the format of the file as it was explained to Dynamics CRM when added to the database.

 

SELECT
    MimeType,
    COUNT(Mimetype) AS Count,
    SUM(CAST(FileSize / (1024)AS DECIMAL(12,2))) AS 'Size (KB)',
    CAST(SUM(CAST(FileSize AS DECIMAL)) / (1024*1024) AS DECIMAL(12,2)) 
         AS 'Size (MB)'
FROM
    Annotation
WHERE
    MimeType IS NOT NULL
GROUP BY
    MimeType

Here are the results:

image

As you can see, most of the attachments are PDF files.

If you would like to see where all of your attachments reside, try this script:

select 
    distinct(Annotation.objecttypecode),
    MetadataSchema.Entity.Name,
    COUNT(Annotation.objecttypecode) as Count
from
    Annotation
    join MetadataSchema.Entity on 
        MetadataSchema.Entity.ObjectTypeCode = annotation.ObjectTypeCode 
group by
    Annotation.objecttypecode,
    MetadataSchema.Entity.Name
order by
    Annotation.objecttypecode

 

Here are the results:

image

As you can see, most of my attachments are associated with Fax activities. This is expected, in this particular case, because most of the customer’s inbound communications is still via fax.

To locate attachments that are e-mail related, use this script:

SELECT
    MimeType,
    COUNT(Mimetype) AS Count,
    SUM(CAST(FileSize / (1024)AS DECIMAL(12,2))) AS 'Size (KB)',
    CAST(SUM(CAST(FileSize AS DECIMAL)) / (1024*1024) AS DECIMAL(12,2)) AS 'Size (MB)'
FROM
    ActivityAttachment
WHERE
    MimeType IS NOT NULL
GROUP BY
    MimeType
    

Which produces the following results:

image

To see where these attachments reside, run this script:

select 
    distinct(ActivityAttachment.objecttypecode),
    MetadataSchema.Entity.Name,
    COUNT(ActivityAttachment.objecttypecode) as Count
from
    ActivityAttachment
    join MetadataSchema.Entity on 
        MetadataSchema.Entity.ObjectTypeCode = ActivityAttachment.ObjectTypeCode 
group by
    ActivityAttachment.objecttypecode,
    MetadataSchema.Entity.Name
order by
    ActivityAttachment.objecttypecode

 

Which produces these results:

image

I am very excited to announce that my workshop on Dynamics CRM JavaScript Development is now ready. The goal of the class is for me to give you a very thorough introduction to using JavaScript within Dynamics CRM.

After a good deal of consideration, I have decided to take the normal two days of instruction and split it into four days of four hours each.  This should allow students time to better absorb the material as well as get their normal work accomplished.

Here are the specifics:

When:
Session 1
: Monday, January 27th through Thursday, January 30th. 7:00am-11:00am each day.

Register for Session 1

 

Session 2: Monday, January 27th through Thursday, January 30th. 1:00pm-5:00pm each day.

Register for Session 2

 

Where:
Online using GoTo Meeting.

What:
This is a hands-on workshop with each student provided their own virtual development environment for the duration of the class.

Cost:
$895 per person (multi-student discounts available)

 

Note: Due to the interactive nature of this workshop, it will be limited to 10 students.

Student Prerequisite Knowledge:

  • Each student must have working knowledge of Dynamics CRM 2011.
  • Knowledge of JavaScript is also required.

Note: For those students that have not worked with JavaScript previously, a short introduction webinar will be conducted on Friday, January 24th. Students attending this webinar will be expected to have completed the accompanying self-study materials before Monday's class begins. Everyone must be ready to run on Monday for the main class.

 

Agenda:
Each classroom day will be four hours in length, with the virtual environments available for student use all day, until midnight of January 30th.

And thanks to our virtual development environments, the majority of our time will be spent actually developing JavaScript solutions for Dynamics CRM.

Think labs. Lots and lots of labs. And homework. There will be homework.

We'll cover the following topics:

  • Creating a development environment
    • Setup
    • Source control
    • Working in teams
    • Working with Visual Studio
  • Working with Web Resources
  • Working with Solutions
  • Working with Forms
    • JavaScript libraries
    • Form events
    • Form Event Handler Execution Context Reference
  • Working with the Xrm.Page Object Model
    • Working with Collections
    • Data operations
    • Tabs and Sections
    • Working with Controls
    • Working with iFrames
    • Working with Navigation Items
  • Ribbon button and JavaScript connection
  • Opening Dynamics CRM Forms and Web Resources via JavaScript
  • Using the XrmSrcToolkit to CRM-related data operations

We will be using about 75 of the methods found in the Xrm.Page object model so you should leave class with a fairly good understanding of where things are and how to access them.

If we have time, we will also cover some of the freely available JavaScript components that can be used to aid in your development efforts and to increase your user's productivity.

Students will also receive a draft copy of my upcoming book on Dynamics CRM JavaScript development along with sample code and utility web resources that should help you kick start your CRM JavaScript development efforts.

 

Please email me if you have any questions: mitch at crmaccelerators dot net

As Microsoft Dynamics CRM continues pushing towards the enterprise space, it becomes increasingly important to support the requirements of the enterprise—not only through the product but also in terms of functionality, scale, resilience, and security.

From an implementation perspective, enterprises expect to be able to have structured, repeatable processes that are predictable and well documented to manage their application lifecycle.

To date, a number of approaches have been articulated through various channels and from a variety of sources, but a definitive and full lifecycle approach has not been concisely communicated by Microsoft.

Many customers, partners, and consultants within MCS are reaching out for best practice advice and guidance, and it is Microsoft’s responsibility to deliver on this expectation. This document focuses on providing a coherent end-to-end approach to enterprise development for Dynamics CRM.

http://www.microsoft.com/en-us/download/details.aspx?id=39044

Microsoft Dynamics CRM SDK Version 5.0.15 is now live on MSDN downloads and in the MSDN library.

New and updated topics

SDK\Bin
Updated the assemblies for Microsoft Dynamics CRM 2011 Update Rollup 13. These assemblies are also compatible with Microsoft Dynamics CRM Online.
 
Microsoft_Dynamics_CRM_2011_SDK_Readme.htm
Updated the readme for this version of the SDK package.
 
Browse the Metadata for Your Organization
SDK\Tools\MetadataBrowser\MetadataBrowser_2_0_0_1_managed.zip

Updated the metadata browser so that the HasChanged and RelationshipType properties added in Microsoft Dynamics CRM 2011 Update Rollup 12 and the Microsoft Dynamics CRM December 2012 Service Update can be viewed.
 
Design Considerations for Different Form Presentations
Added the Auto Save Control for Updated Forms section to provide more details about the auto save control behavior.
 
LookupAttributeMetadata
Added to the remarks for the Targets property to indicate that the attribute is not supported if the Targets property is null.
 
<Scrolling> (FormXml)
Updated the topic to provide examples of valid values for this element.
 
StringFormat
Added the description “For internal use only.” for the phone value added in Microsoft Dynamics CRM 2011 Update Rollup 12 and the Microsoft Dynamics CRM December 2012 Service Update.
 
Tutorials for Learning About Development for Microsoft Dynamics CRM
Updated the list of walkthroughs. Added links to the sample code and walkthrough categorized views on the Developer Center on MSDN. Added a section for links to other developer resources and social media.
 
Use Form and Field Events
Added more information to the OnChange Event section about when this event occurs.
 
Xrm.Page.data.entity Attribute Methods
Added a new sample to Controls Collection showing how to use the attribute controls collection to show or hide all the controls for an attribute.

I don't think enough Dynamics CRM developers understand the amount of time and effort that the SDK team has put into creating documentation and samples so that we may better understand and use the product.

So, I thought I'd throw out some numbers and compare the CRM 4.0 SDK with the 2011 SDK:

 

Dynamics CRM 4.0 SDK

image

The SDK help file is 12MB in size.

 

Dynamics CRM 2011 SDK

image

The SDK help file is 20MB in size.

 

That is a lot of work for such a small team

Thanks guys and gals.

JavaScript allows an administrator to enhance the functionality of Dynamics CRM 2011 in order to better fit your business processes.

This session delivers an introduction to JavaScript development and will cover the following topics:

  • Setting up your development environment
  • Introduction to the form editor
  • Using web resources
  • CRM form events
  • JavaScript basics
  • CRM 2011 JavaScript object model
  • Common CRM JavaScript methods

Class Duration:

1 hour, 30 minutes

 

Cost Per Attendee:

$99

Eventbrite - JavaScripting in Dynamics CRM 2011 JavaScripting in Dynamics CRM 2011

 

What to Expect:

At the end of this session, you should at least understand basics of how to write JavaScript and how to utilize the Dynamics CRM 2011 object model to perform the most operations commonly performed by a developer.

Additionally, since this is not a full class, you'll receive homework to be completed on your own, at your own pace.

 

When:

Friday, March 15th, 1:00pm Central time (U.S.)

 

About Your Instructor:

Mitch Milam is a seven-time Most Valuable Professional (MVP) for Dynamics CRM, a Microsoft Certified Trainer (MCT), and an independent consultant based in Dallas, Texas.

Very often, while working with Dynamics CRM I often run across JavaScript that changes the color of a form element using the style property, like this:

crmForm.all.customertypecode.style.backgroundColor = "#EAF3FF";

This is, of course, an unsupported practice and I am curious how many people have used techniques like this to modify CRM forms.

I've added new poll to my blog to help collect this data.

If you have time, I'd like to hear from you so:

  • Vote in the poll
  • Reply with a comment
  • Send me an email – mitch @ crmaccelerators do net
  • send me a tweet: @mitchmilam

 

Thanks for your time.

Mitch

Dynamics CRM 2011 Management and Troubleshooting (Hosted)

 

This webinar is for administrators of Dynamics CRM 2011 Online or who have their organization hosted by a third-party. We will cover the following topics:

    • Reviewing CRM 2011 System Maintenance Jobs to locate errors and other issues
    • Managing historical system job information
    • Troubleshooting workflow and plugin issues
    • User management tricks and tips
Class Duration:

1 hour and 15 minutes

 

Cost Per Attendee:

$99USD

Eventbrite - Dynamics CRM 2011 Management and Troubleshooting (Hosted)  For  Dynamics CRM 2011 Management and Troubleshooting (Hosted)

 

NOTE:

Due to the interactive nature of this webinar, this session is limited to 25 attendees.

 
 
What to Expect:

At the end of this webinar you should have the tools and understanding to:

  • Manage system jobs
  • Locate issues with workflows and custom plugins
 
When:

Thursday, March 14st, 1:00pm Central time (U.S.)

 



JavaScripting in Dynamics CRM 2011

 

JavaScript allows an administrator to enhance the functionality of Dynamics CRM 2011 in order to better fit your business processes.

This session delivers an introduction to JavaScript development and will cover the following topics:

  • Setting up your development environment
  • Introduction to the form editor
  • Using web resources
  • CRM form events
  • JavaScript basics
  • CRM 2011 JavaScript object model
  • Common CRM JavaScript methods

Class Duration:

1 hour, 30 minutes

 

Cost Per Attendee:

$99

Eventbrite - JavaScripting in Dynamics CRM 2011 JavaScripting in Dynamics CRM 2011

 

What to Expect:

At the end of this session, you should at least understand basics of how to write JavaScript and how to utilize the Dynamics CRM 2011 object model to perform the most operations commonly performed by a developer.

Additionally, since this is not a full class, you'll receive homework to be completed on your own, at your own pace.

 

When:

Friday, March 15th, 1:00pm Central time (U.S.)

 

About Your Instructor:

Mitch Milam is a seven-time Most Valuable Professional (MVP) for Dynamics CRM, a Microsoft Certified Trainer (MCT), and an independent consultant based in Dallas, Texas.

Sign up for our new KnowledgeBits service and get news, tips and tricks and more, delivered straight to your inbox.