Articles

retrieve more than 5 K record

    public static EntityCollection paginationQuery (OrganizationServiceProxy _service, QueryExpression query)         {             int queryCount = 2500;             int pageNumber = 1;             int recordCount = 0;             query.PageInfo = new PagingInfo();             query.PageInfo.Count = queryCount;             query.PageInfo.PageNumber = pageNumber;             query.PageInfo.PagingCookie = null;             EntityCollection fullResult = new EntityCollection();             while (true)             {                 // Retrieve the page.                 EntityCollection results = _service.RetrieveMultiple(query);                                  if (results.Entities != null)                 {                     // Retrieve all records from the result set.                     foreach (var rec in results.Entities)                     {                         fullResult.Entities.Add(rec);                                              }                 }                 // Ch

promise example

 the promise async function getrecord (recordtype,recordid) {     return new Promise(resolve => {{             resolve(Xrm.WebApi.retrieveRecord(recordtype, recordid ).then(                     function success(result)                     {                      // perform operations on record retrieval                         if (result)                         {                             return result;                         }                     },                     function (error)                     {                         Xrm.Navigation.openAlertDialog(error.message);                     }                 )   ); }}); the function that call the promise async function onChange_regarding(executionContext) {     var formContext = executionContext.getFormContext();     var regarding = formContext.getAttribute("regardingobjectid").getValue();          var mycurrentSubject = formContext.getAttribute("subject").getValue();     if (regarding != null)     {   

check if a service is running and if yes then run batch code

SC queryex easy | FIND "STATE" | FIND /v "RUNNING" > NUL && ( ECHO easy is NOT running ) || ( ECHO easy is running dos code here )

CRM 2016: Selected stage and highlighted stage is not same when stageid is set via plugin

this is just a copy past of the website https://meghshyam.wordpress.com/2017/09/27/crm-2016-selected-stage-and-highlighted-stage-is-not-same-when-stageid-is-set-via-plugin/ Faced the weird error in Business process flow in CRM 2016 version. Scenario is when we move the business process stage programmatically via plugin by setting thestageid field, you will find a weird behaviour where BPF is still showing the existing stage as highlighted however the active stage is set to correct stage i.e. next stage. After googling some blogs (link)proposed some javascript methods like Xrm.Page.data.process.addOnStageSelected(stageSelected) but that don’t really help as this is specific to client side scripting. Then the next hope was to dig into the entity fields and find out if there is any hidden field which is storing the selected stage value for that respective record and here I got the reference. In CRM 2016 (not sure about CRM 2015), there is field called “TraversedPath” which store

Decode/render HTML from a field in crm dynamics

In email entity the Hmtl is well decode. but if you want to decode it in other entity, it will not work you will just see the tag everywhere then I propose you to create a webressource and to apply this code. as you can see the field to to decode is hard coded but you can also give it as a webressource parameter. in a old post I explain how to pass value here is the html + javascript <html><head><meta></head> <body onload="onLoad()" onfocusout="parent.setEmailRange();" style="overflow-wrap: break-word;"> <script > function onLoad() { debugger; var para = document.createElement("decodedDescription"); var descriptionHtml = window.parent.Xrm.Page.getAttribute("description").getValue(); para.innerHTML = descriptionHtml; document.getElementById("decodedDescription").appendChild(para); }   </script > <div id="decodedDescription"> </div> </body></ht

make code wait for async 8.2

The async function to wait function getSetting (settingName) { var req = new XMLHttpRequest(); return new Promise(function (resolve, reject) {     // Setup our listener to process compeleted requests     req.onreadystatechange = function () {         // Only run if the request is complete         if (req.readyState !== 4) return;         // Process the response         if (req.status >= 200 && req.status < 300) {             // If successful             resolve             ( req      );         } else {             // If failed             reject(                 alert ("multiple setting with the name :" + settingName)             );         }     }; req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v8.2/query, false); req.setRequestHeader("OData-MaxVersion", "4.0"); req.setRequestHeader("OData-Version", "4.0"); req.setRequestHeader("Accept", "appli

Add clickable button in the form

I do it via webressource <html><head>     <style>       * {                     margin: 0;                     padding: 0;                 }                                 .button{                     background-color: #00B3D9;                     color: #FFFFFF;                     font-family: Segoe UI, Tahoma, Arial;                     font-size: 14px;                     padding: 5px 10px 5px 10px;                     margin: 0px 4px 3px 1px;                     width: 100px;                     text-overflow: ellipsis;                     display: inline-block;                     text-align: center;                     overflow: hidden;                     white-space: nowrap;                     border-radius: 16px;                     border :none;                     float : left;                     border-bottom : none;                 }     </style>     <meta><meta><meta></head>         <bod