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  21  3
2018 Dec  27  4
2018 Nov  59  3
2018 Oct  12  3
2018 Sep  85  11
2018 Aug  4  2
2018 Jun  11  1
2018 Jan  49  2
2017 Sep  504  5
2017 Aug  16  1
2017 Jul  15  2
2017 Jun  43  2
2017 May  17  1
2017 Apr  31  2
2017 Mar  110  4
2017 Feb  371  4
2016 Dec  174  3
2016 Nov  323  8
2016 Oct  224  10
2016 Sep  354  6
2016 Aug  38  1
2016 Jun  1706  6
2016 May  103  3
2016 Jan  70  2
2015 Dec  385  6
2015 Nov  3  1
2015 Oct  12  1
2015 Sep  1269  6
2015 Aug  12  1
2015 Jul  117  2
2015 Jun  8  1
2015 May  20  1
2015 Apr  21  2
2015 Mar  71  3
2015 Jan  5125  4
2014 Dec  15  1
2014 Nov  2189  4
2014 Oct  75  2
2014 Sep  98  2
2014 Aug  3583  1
2014 Jul  42  2
2014 Apr  2439  12
2014 Mar  273  19
2014 Feb  226  8
2014 Jan  1510  16
2013 Dec  21  2
2013 Nov  625  2
2013 Oct  246  3
2013 Sep  10  1
2013 Aug  30  3
2013 Jul  203  1
2013 Apr  46  6
2013 Mar  1754  10
2013 Feb  292  4
2013 Jan  258  2
2012 Nov  29  2
2012 Oct  420  10
Tag Cloud
Interested in our services? Still not sure about project details? get a quote