This project has moved. For the latest updates, please go here.

The caveats you have to consider

  • Do not store activitymimetypeattachements and annotations in the same container/folder. Though unlikely, it's possible that there might be id clashes
  • CRM still to this day has a bug with file size limits (anything over 5Mb fails, regardless of your email settings), see https://social.microsoft.com/Forums/en-US/6c414711-df7f-4e40-9966-8f9340689dba/the-plugin-execution-failed-because-no-sandbox-worker-processes-are-currently-available?forum=crmdevelopment and it's unlikely MS will fix it
    • If you run it outside the sandbox, it seems possible to overcome this problem
  • If you have existing email attachments/note attachments in your CRM, the plugin will respect that and only store NEW blobs using the configured storage provider. Existing blobs will be served from the database.
  • For v2 :
    • Searching on Notes (by filename or filesize) might behave oddly. Filenames are prefixed to know whether they're external or not, and filesizes for all external files will be 3).
  • It goes without saying, but DON'T change the provider once you're up and running, for obvious reasons

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.
    • V2 : Attach the relevant AnnotationPostRetrieve or AttachmentPostRetrieve plugin.
    • For v3.0 and above : Attach the "Retrieve" plugin to the "Retrieve" message on parent object, setting it to "Post-operation, Synchronous".

Use at own risk. Test before using

Last edited Jun 15, 2016 at 4:01 AM by dawidpotgieter, version 19