How to set up v3.1 plugin (v3 is identical, but not discussed here)

  • Download v3.1 package and install the solution into CRM. Make sure you allow the plugin steps to be activated as well.
  • Open the plugin registration tool to see the following steps :
v3.1 Steps.png
  • Open each step, and make sure you have both the "Unsecure" and "Secure" configurations set. The "Unsecure" xml will already be there, you just need to change the values. You do need to create the "Secure" xml, fill in your storage account details and add it to each step (there's example xml in the solution) :
v3.1 Settings.png

A quick description of what the settings in Xml do:
  1. ConfigurationProviderType - The "type" that will provide the configuration settings
    1. PluginStepConfigurationProvider - The settings are stored on each step in the "Unsecure" and "Secure" fields
    2. CrmEntityConfigurationProvider (Deprecated) - The settings are stored in a crm entity with entityname "bso_binarystorageoptionsconfigurationsettin".
  2. Provider Type - This tells the system which provider to use to store binaries externally
    1. CrmDefault - This is the same as disabling the step, basically a pass through
    2. AzureBlob - Use azure blob storage
    3. AzureFile - Use azure file storage
  3. annotationContainer|activitymimeattachmentContainer - Only needed and used when Blob storage is used. This is the blob container name.
  4. annotationShare|activitymimeattachmentShare - Only needed and used when File storage is used. This is the file share name.
  5. annotationFolder|activitymimeattachmentFolder - Only needed and used when File storage is used. The folder to store these in. Make sure it's all lowercase and with no leading or trailing /

It might be a good idea to set up these values as is, this is what the configuration in Azure looks like :

If using Blob Storage


If using File Storage

  • Once everything is setup, test by adding both a note attachment somewhere and an email attachment
    • You should be able to create, read (download/view) and delete these. Check that the changes are reflected in your azure storage account of choice.

Using IOrganizationService.LoadProperty api

  • The plugin works as is in the CRM user interface. However, if you are using the LoadProperty method from the API in code somewhere to load annotations/and or attachments, you need to do some extra work :
    • You need to attach the "Retrieve" message to the PARENT object you're calling "LoadProperty" from. Attach the "Retrieve" plugin to the "Retrieve" message on parent object, setting it to "Post-operation, Synchronous".

Last edited Jun 9, 2016 at 8:34 PM by dawidpotgieter, version 6