Skip to main content

XrmToolBox Bulk Attachment Manager - Version 2018.2.3.2 Released!

I am pleased to announce that this week, I published an update to my XrmToolBox Bulk Attachment Manager plugin.  For those that are not aware my plugin allows a user to download note attachments, email attachments, or both from Dynamics CRM.

This update includes bug fixes and a major enhancement that was requested by a user.  The enhancement is the ability to create a report of attachments in the system.  To do this, follow these steps:

  1. In Step One, choose if you want a report on notes, emails or both.
  2. In Step Two, choose "Report Only".
  3. Step Three, click on "Run".
You will see the table populate with information.  Once it is done, click on export and you will be provided with a pipe delimited ("|") .csv file with the data in the table.  You can take this to quickly find attachments you are interested in.  With the note GUIDs from the export you can provide them as a filtered down list, so you only export those attachments using the "Specific attachment" option for export.

Part of this update as well including adding file size as a column of data that is provided in the table.  The file size provided is in bytes.

This is an open source project that I have hosted on GitHub.  If you have any recommendations for the tool, run into any issues with the tool or just want to support the plugin, please head over to my GitHub page.

Comments

  1. Hi James, this is great! Thanks for making it available via XrmToolbox. A couple of questions...

    I am trying to extract the attachments from Dynamics and then place them in a directory structure within Sharepoint. Is it possible to extract the attachments and place them in a directory named after the regarding record instead of the email guid? Ideally with the option to call it the name suffix guid? As I think that's what Sharepoint is set up to do OOB.

    Many thanks once again!

    Phil

    ReplyDelete
    Replies
    1. The use case that I designed this around was for helping with backup of the data and maintain the relation (hence the GUID as file names) or to migrate the attachments. Reading your comment (please correct me if I am wrong) but it almost sounds like you want some type of integration with SharePoint. Why not use the SharePoint integration that is built into CRM?

      Delete

Post a Comment

Popular posts from this blog

Validating User Input In CRM Portals With JavaScript

When we are setting up CRM Portals to allow customers to update their information, open cases, fill out an applications, etc. We want to make sure that we are validating their input before it is committed to CRM.  This way we ensure that our data is clean and meaningful to us and the customer. CRM Portals already has a lot validation checks built into it. But, on occasion we need to add our own.  To do this we will use JavaScript to run the validation and also to output a message to the user to tell them there is an issue they need to fix. Before we can do any JavaScript, we need to check and see if we are using JavaScript on an Entity Form or Web Page.  This is because the JavaScript, while similar, will be different.  First, we will go over the JavaScript for Entity Forms.  Then, we will go over the JavaScript for Web Pages.  Finally, we will look at the notification JavaScript. Entity Form: if (window.jQuery) { (function ($) { if ...

Reusable Method To Get Record By Id

I have a handful of reusable code that I use when creating plugins or external process (i.e. Azure Functions) for working with DataVerse. The first one I am providing is Getting a Record By Id: 1: private static Entity GetFullRecord(string entityName, string primaryKey, Guid recordId, IOrganizationService service) 2: { 3: using (OrganizationServiceContext context = new OrganizationServiceContext(service)) 4: { 5: return (from e in context.CreateQuery(entityName) 6: where (Guid)e[primaryKey] == recordId 7: select e).Single(); 8: } 9: } entityName = The logical name of the entity primaryKey = The primary key field for the entity. If using late binding you can create this dynamically by doing: $"{target.LogicalName}id" recordId = Guid of the record to get service = Service to interact with DataVerse

Understanding Managed and Unmanaged Solutions in Dynamics 365

Dynamics 365, Microsoft's robust suite of business applications, boasts a myriad of features that can be customized to cater to the specific needs of any business. A vital concept to grasp when working with Dynamics 365 is the difference between managed and unmanaged solutions. This blog post aims to clarify these two types of solutions, providing a comprehensive analysis of the advantages and disadvantages of each. Unmanaged Solutions Unmanaged solutions act as a dynamic development environment, enabling direct alterations and additions to system components. They are often employed during the development and testing phase of a customization project but are equally effective when implemented in production instances, particularly for internal organizational operations. Pros of Unmanaged Solutions: Flexibility : Unmanaged solutions provide a high degree of adaptability, permitting developers to modify system components, introduce new elements, or discard those that are no longer nece...