Metablast - get your Microsoft CRM entity schema data NOW

Posted by on May 31, 2011  |  commentsComments (15)

As we’re working with our clients on their CRM implementations, we frequently need to generate schema documentation about the various entities and data fields in their system. Of course it’s just good project management to provide this type of documentation, but it also helps in other client scenarios such as prepping for a data migration or planning for a third-party system integration.

Back in the Microsoft CRM 4.0 days, you could use tools such as the Microsoft CRM 4.0 Form Reporter or the CRM 4 Document Generator to generate this type of entity schema information. Unfortunately neither of these tools work with Microsoft Dynamics CRM 2011.

We recently spent a little time to create our own Microsoft CRM schema documentation generator that we call Metablast (and yes it works with Microsoft Dynamics CRM 2011!). The concept is pretty simple really, you specify a few parameters including:

  • Microsoft CRM website URL
  • Organization name
  • Entities that you want to generate documentation for
  • Output file name

Metablast then runs through the CRM API to automatically generate a CSV file with all of the data fields for the entities that you specified. For option set data fields, it also outputs all of the picklist values for the field as well. Very handy!


The user interface isn’t sexy (it’s a command line tool as shown below), but we promise it will save you HOURS of time.


If you want to check out Metablast, you can download it (for free) from our website. Please keep in mind that we can only provide Metablast support to our customers, but we think you’ll like it just the same!


  1. Good stuff - very useful tool for MSCRM projects.

    Posted by: Frank Lee  |  Jun 1, 2011 12:09:03 AM

  2. Excellent add on. A great tools for CRM projects. Extra documentation never hurt any project

    Posted by: Hosk  |  Jun 1, 2011 2:34:32 PM

  3. I wonder if I can use this tool the other way round: to import entities into CRM, to update e.g. translation texts. The above example shows that it can already export display names.

    Wouldn't it be great to get a better translation tool this way? Currently I don't know of any other translation tool as the one Microsoft implemented into CRM 4 or 2011. You all know that this is a very basic one and you really cannot talk about a tool rather than an export/import function.
    Nevertheless it's a PITA if you need to translate more than one language and having many many custom entities and attributes.


    Posted by: Michael  |  Jun 3, 2011 3:32:19 AM

  4. This looks fantastic. Will download the tool myself for sure. Thanks for developing the tools we'll all use.

    Posted by: Ron De Giusti  |  Jun 9, 2011 8:30:59 AM

  5. Download link errors ???

    Posted by: Neel  |  Jun 10, 2011 5:23:43 AM

  6. Sorry about that @Neel, please try again!

    Posted by: Mike Snyder  |  Jun 10, 2011 10:39:33 PM

  7. Good day!
    When you unload a schema file does not display correctly display names that are defined not in English. Can this do anything?

    Posted by: Sergey  |  Jun 24, 2011 3:09:20 AM

  8. Hi.
    It dont prompt me for credential, how authentication work?

    It generate this exception:

    Unhandled Exception: System.ServiceModel.Security.SecurityNegotiationException:
    The caller was not authenticated by the service. ---> System.ServiceModel.FaultE
    xception: The request for security token could not be satisfied because authenti
    cation failed.
    at System.ServiceModel.Security.SecurityUtils.ThrowIfNegotiationFault(Message
    message, EndpointAddress target)
    at System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingM
    essageBody(Message incomingMessage, SspiNegotiationTokenProviderState sspiState)

    --- End of inner exception stack trace ---

    Server stack trace:
    at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(Tim
    eSpan timeout)
    at System.ServiceModel.Security.SspiNegotiationTokenProvider.OnOpen(TimeSpan
    at System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(Tim
    eSpan timeout)
    at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
    at System.ServiceModel.Security.CommunicationObjectSecurityTokenProvider.Open
    (TimeSpan timeout)
    at System.ServiceModel.Security.SymmetricSecurityProtocol.OnOpen(TimeSpan tim
    at System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(Tim
    eSpan timeout)
    at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
    at System.ServiceModel.Channels.SecurityChannelFactory`1.ClientSecurityChanne
    l`1.OnOpen(TimeSpan timeout)
    at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
    at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
    at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
    at System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceMod
    el.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel channel, TimeSpan timeo
    at System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeS
    pan timeout, CallOnceManager cascade)
    at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean on
    eway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan tim
    at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCall
    Message methodCall, ProxyOperationRuntime operation)
    at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

    Exception rethrown at [0]:
    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage req
    Msg, IMessage retMsg)
    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgDa
    ta, Int32 type)
    at Microsoft.Xrm.Sdk.IOrganizationService.Execute(OrganizationRequest request
    at Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.ExecuteCore(Organization
    Request request)
    at Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.Execute(OrganizationRequ
    est request)
    at SonomaPartners.Xrm.Metablast.Program.Main()


    Posted by: Christophe  |  Jul 1, 2011 1:59:23 PM

  9. Running the tools in crm's server, it works correctly :-)


    Posted by: Christophe  |  Jul 1, 2011 2:12:02 PM

  10. Hi,

    Will this tool be enhanced any time soon to work with IFD configured environments?


    Posted by: Rob Boyers  |  Jul 25, 2011 3:34:31 AM

  11. This tool works great, but it didn't include the attribute descriptions. From a documentation point of view it would be very nice to have that included in the output and maybe the requirement level as well.

    Posted by: Sharon Donaldson  |  Sep 27, 2011 3:02:12 PM

  12. how about a way to document workflows? you know of any tools that do that?

    Posted by: erez  |  Feb 23, 2012 8:32:42 AM

  13. Is there a way to export the data for all entities without having to name them?

    Posted by: Amanda  |  Mar 5, 2012 10:52:19 AM

  14. I am having the same issue as Christophe above with errors about "The caller was not authenticated by the service. ---> System.ServiceModel.FaultE
    xception: The request for security token could not be satisfied because authenti
    cation failed."

    I have the same stacktrace as him. How is authentication working with this? I am running it on the CRM server logged in as the Administrator. Just want to know how I need to configure things so it works.

    Posted by: Mark  |  Apr 6, 2012 9:14:47 AM

  15. Does the MetaBlast software work with sites that are hosted on a port different than 80 ?

    When I include the port number, I get an error indicating it cannot find the entity.

    When I do not include it, I get an error indicaing that Metadata contains a reference that cannot be resolved.

    Posted by: Mike  |  Dec 5, 2012 11:01:15 AM

Post a Comment

  • *Required

Contact Us for a Quote, or Personalized Demonstrationof Microsoft Dynamics CRM for Your Business.

Contact Us