welcome to XRM blog

Keep in touch with latest CRM/ERP articles

To remain competitive your organisation must be efficient across the business process spectrum. To do so you need to take sound decisions based on a balance between the cost and risk. To do so you will be heavily dependent on your content management in itself needs...

image
Blog

How to convert Entity Image Byte Data to Base 64 Workflow MSCRM

By Anshuman Trivedi on 9/5/2018

Entity Image Byte Data to Base 64 Workflow C#

 

Recently in my current project there is a requirement of converting Entity Image Byte Data to Base 64 Data. After that they will use base 64 data in SSRS Reports.

 

Here is my generic workflow code which will take 2 inputs from user, first one is Entity image field schema name and second one is target field to store base 64 data.

 

 

using System;

using System.Activities;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using Microsoft.Xrm.Sdk;

using Microsoft.Xrm.Sdk.Query;

using Microsoft.Xrm.Sdk.Workflow;

 

namespace EntityImageByteDataToBase64Workflow

{

    public class ByteTobase64 : CodeActivity

    {

       

       

        public InArgument<string> ImageFieldSchemaName { get; set; }       

 

       

       

        public InArgument<string> Base64dataField { get; set; }

 

        public Guid RecordID { get; set; }       

 

        protected override void Execute(CodeActivityContext context)

        {

            ITracingService tracingService = context.GetExtension<ITracingService>();          

            IWorkflowContext workflowContext = context.GetExtension<IWorkflowContext>();

            IOrganizationServiceFactory serviceFactory = context.GetExtension<IOrganizationServiceFactory>();           

            IOrganizationService service = serviceFactory.CreateOrganizationService(workflowContext.UserId);

            Entity PreImage = workflowContext.PreEntityImages;

            RecordID = PreImage.Id;          

            tracingService.Trace("Near to find the entityimage field");

            tracingService.Trace("EntityId" + RecordID);

            tracingService.Trace("Fieldname  = " + ImageFieldSchemaName.Get<string>(context));

            tracingService.Trace("Condition  = " + PreImage.Contains(ImageFieldSchemaName.Get<string>(context)));

            byte[] etityImageFile = getEntityImageData(PreImage.Id, PreImage.LogicalName, ImageFieldSchemaName.Get<string>(context), service);             

            tracingService.Trace("Got the entityimage field");

            tracingService.Trace("entityImageData"+ etityImageFile);

            string base64 = covertByteArrayToBase64(etityImageFile);

            tracingService.Trace("base64Data" + base64);

            if (base64 != null)

            {

                Entity ent = new Entity(PreImage.LogicalName);

                ent.Id = PreImage.Id;

                ent = base64;

                tracingService.Trace("Going To Update");                                      

                service.Update(ent);

                tracingService.Trace("Updated");

            }                       

        }

        public string covertByteArrayToBase64(byte[] etityImageFile)

        {

            String B64String = Convert.ToBase64String(etityImageFile);

            return B64String;

        }

 

        public byte[] getEntityImageData(Guid EntityID, string LogicalName, string ImageFieldSchema ,IOrganizationService service)

        {         

            Entity entitydata = new Entity();

            entitydata = service.Retrieve(LogicalName, EntityID, new ColumnSet(ImageFieldSchema));          

            Byte[] imagedata = new byte[0];

            if (entitydata.Contains(ImageFieldSchema) && entitydata.Attributes[ImageFieldSchema] != null)

            {

                imagedata = (byte[])entitydata.Attributes[ImageFieldSchema];

            }

            return imagedata;

        }

    }

}

 

MS CRM 2013
Dynamics CRM
MS CRM 2016
C#
Workflow
Blog Calendar
Blog Calendar List
2019 Jan  16  3
2018 Dec  23  4
2018 Nov  57  3
2018 Oct  12  3
2018 Sep  48  11
2018 Aug  4  2
2018 Jun  11  1
2018 Jan  46  2
2017 Sep  451  5
2017 Aug  15  1
2017 Jul  15  2
2017 Jun  42  2
2017 May  17  1
2017 Apr  31  2
2017 Mar  107  4
2017 Feb  310  4
2016 Dec  174  3
2016 Nov  304  8
2016 Oct  214  10
2016 Sep  352  6
2016 Aug  38  1
2016 Jun  1655  6
2016 May  103  3
2016 Jan  68  2
2015 Dec  382  6
2015 Nov  3  1
2015 Oct  12  1
2015 Sep  1215  6
2015 Aug  12  1
2015 Jul  109  2
2015 Jun  8  1
2015 May  20  1
2015 Apr  21  2
2015 Mar  69  3
2015 Jan  5084  4
2014 Dec  15  1
2014 Nov  2178  4
2014 Oct  75  2
2014 Sep  97  2
2014 Aug  3170  1
2014 Jul  41  2
2014 Apr  2426  12
2014 Mar  270  19
2014 Feb  219  8
2014 Jan  1510  16
2013 Dec  21  2
2013 Nov  614  2
2013 Oct  246  3
2013 Sep  10  1
2013 Aug  29  3
2013 Jul  202  1
2013 Apr  45  6
2013 Mar  1704  10
2013 Feb  286  4
2013 Jan  255  2
2012 Nov  27  2
2012 Oct  408  10
Tag Cloud
Interested in our services? Still not sure about project details? get a quote