CRM Blog

Valcore ApS Logo (c) Valcore ApS 2012

Valcore Blog

Velkommen til vores blog, her blogger vi om Dynamics CRM.

Button(Ribbon) to Call plugin (pass parameters and receive results)

At some point on the roadmap of every Dynamics 365 (CRM) developer's life, one must have wished to press a button to call a Plugin. 
A combination of Custom Actions introduced in CRM 2013 and webapi introduced in CRM 2016 made this wish very easy. Developers have used different techniques to achieve the same goal e.g. creating records of dummy enttities or updating dummy fields of an entity to call plugins.
There is a smarter way to do so using Custom Actions and here is how we can do it:
Our solution consists of 4 main parts:

1. A CRM custom action with input/output parameters (it can be bound(on an entity) or unbound(global) depending on your requirements)
2. A plugin registered on the custom action (this will perform the task and will set the outpur parameter with results)
3. Script under the button: this will use webapi to call custom action sending input parameters if necessary and will receive the results as output paramters
4. Ribbon button to call the javascript function

Process:
User presses a button on a form which fires a javascript function. JS function uses webapi to call the Custom Action and passes input parameters e.g. record's guid. Plugin registered on this custom action gets fired as soon the custom action runs. Plugin gets input parameters and perform actions and finally set the output parameters to be returned. JS function gets the results from the output parameters set by plugin after the plugin finishes processing.

Here is a Sample Javascript function which calls custom action "val_CASCA" passing input parameter "InParameter1" and gets results in output parameter "OutParameter1" set by plugin after processing.

function CallCASCE() {
   var Id = Xrm.Page.data.entity.getId().replace('{', '').replace('}', '');
   var serverURL = Xrm.Page.context.getClientUrl();    
   var data = {
       "InParameter1": Id
   };
   var req = new XMLHttpRequest();
   // specify name of the entity, record id and name of the action in the Wen API Url
   req.open("POST", serverURL + "/api/data/v8.2/val_scas(" + Id + ")/Microsoft.Dynamics.CRM.val_CASCA", false);
   req.setRequestHeader("Accept", "application/json");
   req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
   req.setRequestHeader("OData-MaxVersion", "4.0");
   req.setRequestHeader("OData-Version", "4.0");
   req.onreadystatechange = function () {
       if (this.readyState == 4 /* complete */) {
           req.onreadystatechange = null;
           if (this.status == 200) {
               var result = JSON.parse(this.response);
               alert(result.OutParameter1);
           } else {
               var error = JSON.parse(this.response).error;
               alert(error.message);
           }
       }
   };
   // send the request with the data for the input parameter
   req.send(window.JSON.stringify(data));
}


Here is the sample Custom Action "val_CASCA" which is bound to custom entity "SCA" have one imput parameter and one output parameter of types string.
cab1


Finally the plugin registerd on this custom action.

public void Execute(IServiceProvider serviceProvider)
{

InitializeService(serviceProvider);

string results = string.Empty;
if ((context.InputParameters["Target"] is EntityReference)) { results += "InputParamters[Target] is entityreference"; }
try {

...
Continue reading
29 Hits
0 Comments

Using CRM Actions to overcome workflow limitation of access to main or related entities

Limitation:
One of the workflow limitations is; it does not support access to its next related entity. One can only access the main entity or the related entities but not next related entity.

Example:
we have 3 entities Account, Contact and CustomEntityA.
Account is related to Contact and Contact is related to CustomEntityA. Account is not directly related to CustomEntityA.

AccountContactCustom

If we want to update a field e.g. description on CustomEntityA on update of the description of Account, or if we want to update Account’s description from CustomEntityA’s description, we cannot do it with OOB workflow. We can either write plugin/customWorkflowActivity or there is another option without coding anything which is combination of Action and Workflow.

Bellow is an example of how to access next related entity using custom action and workflow.

  1. Create a crm process of type Action with two input parameters of entityreference type for those entities that are not directly related e.g. Account and CustomEntityA. Include necessary steps as required by business logic. Her is an example of such Action process:

    In the example below our CustomEntityA is AccContactDesc and we will be updating its description from the description of account as soon the account description changes. 
    Here is the screenshot of worflow of type Action

    cawf

    Properties of update step:
    cawf2


    ...
Continue reading
34 Hits
0 Comments

Dynamics 365 klienten til Microsoft Outlook kan ikke vise CRM sider

I oktober 2017 er der frigivet en sikkerhedsopdatering til Microsoft Outlook, som blevet rullet ud på alle maskiner via Windows update. Sikkerhedsopdateringen har en sideeffekt, som gør at den blokerer for at CRM klienten kan få kontakt til CRM systemet. Microsoft anbefaler ikke at man fjerner opdateringen for at løse udfordringen med Dynamcis 365, men har i stedet frigivet et fix, som virker på Microsoft Outlook 2010, 2013 og 2016. I praksis det som skal gøres er, at der skal tilføjes en registreringsnøgle til registreringsdatabasen i Windows. Dette kan gøres manuelt , eller via Group Policies.

Windows updates der giver problemer:
Security Update for Microsoft Outlook 2010 (KB4011089) 32-Bit Edition
Security Update for Microsoft Outlook 2010 (KB4011089) 64-Bit Edition
Security Update for Microsoft Outlook 2010 (KB4011196) 32-Bit Edition
Security Update for Microsoft Outlook 2010 (KB4011196) 64-Bit Edition
Security Update for Microsoft Outlook 2013 (KB4011178) 32-Bit Edition
Security Update for Microsoft Outlook 2013 (KB4011178) 64-Bit Edition
Security Update for Microsoft Outlook 2016 (KB4011162) 32-Bit Edition
Security Update for Microsoft Outlook 2016 (KB4011162) 64-Bit Edition

Link til knowledgebase artikel hos Microsoft:
https://support.microsoft.com/en-us/help/4049314/microsoft-dynamics-365-for-outlook-is-unable-to-render-webpages-after

Hvis du har behov for at få hjælp til at gøre dette, kan du kontakte os på Denne e-mail adresse bliver beskyttet mod spambots. Du skal have JavaScript aktiveret for at vise den. eller ringe 70 22 14 64.

804 Hits
0 Comments

Sikkerhedsopdatering fra Microsoft

Vi har oplevet brugere af Microsoft Dynamics CRM hosted eller on-premises, hvor systemet har været uhensigtsmæssigt påvirket af sikkerhedsopdateringer fra Microsoft.
Uhensigtmæssighederne viser sig ved at Dashboard, visninger og andre elementer i Microsoft Dynamics CRM ikke virker og visuelt ser ud til at være "gået i stykker"

Vi har indtil videre oplevet problemer med 2 opdateringer:

  • Windows 10. Kb4013429. Kan påvirke Microsoft CRM 2011 + 2015, on-premises og hosted
  • Windows 8.1 - kb4012216. Kan påvirke Microsoft CRM 2011, on-premises og hosted

Microsoft har arbejdet på at skabe en løsning, som nu er tilgængelig. Derfor kan i trygt og sikkert køre nedenstående opdatering:

  • Windows 10 – KB4016635. Se opdateringen her
  • Windows 7 + 8.1 – KB4016446. Se opdateringen her

 

Skulle I opleve, at det ikke løser udfordringerne er i meget velkomne til at henvende jer til os.

...
Continue reading
1201 Hits
0 Comments

Opdatering til Microsoft Dynamics 365

Microsoft har en opdatering klar til online løsning version 8.1 – Microsoft Dynamics CRM Online 2016. Opdateringen ændrer versionen til Microsoft Dynamics 365, 8.2. I kan læse mere om den nye version her. Opdateringen kan påvirke jeres nuværende tilpasninger.

I Microsoft Dynamics 365 (tidligere Microsoft Dynamics CRM) findes der et standardregelsæt for udvikling af tilpasset kode (fx. javascripts og plugins). Disse standardregler ændres med denne opdatering, således at det som tidligere har været standard, udskiftes med en ny standard og de "gamle" standardregler deaktiveres. Opdateringen kan med risiko forårsage, at tilpasninger der tidligere er lavet i jeres CRM system ikke fungerer optimalt, eller helt ophører med at fungere. Det er dog ikke alle tilpasninger, som bliver påvirket af opdateringen.

Hos Valcore vil vi gerne give vores kunder mulighed for at imødekomme opdateringen og forberede deres system, så problemer og nedetid helt undgås.

Vi tilbyder at udføre et servicecheck på jeres CRM system, hvor vi gennemgår jeres system og sikrer at det forberedes til den nye opdatering, således at I navigerer uden om de evt. problemer der kunne opstå efter opdateringen.

Såfremt jeres system allerede er blevet opdateret og I oplever udfordringer, er I også velkomne til at kontakte vores kundeservice, som kan hjælpe jer videre.

Hvis du ønsker at høre mere pakkeløsningen, er I tvivl om hvornår dit system bliver opdateret eller har andre spørgsmål er du velkommen til at kontakte vores kundeservice os på 70 22 14 64 eller Denne e-mail adresse bliver beskyttet mod spambots. Du skal have JavaScript aktiveret for at vise den..

1224 Hits
0 Comments
Vores adresse:
Industrivej 48
4000 Roskilde, Danmark
Telefon: +45 70 22 14 64
E-mail: Denne e-mail adresse bliver beskyttet mod spambots. Du skal have JavaScript aktiveret for at vise den.
CVR nr.: 34472726
Åbningstider:
Mandag til Torsdag kl. 09.00 - 16.00
Fredag kl. 09.00 - 15.30
Weekend lukket

Kig forbi!

Hos Valcore er du altid velkommen til at kigge forbi til en kop kaffe og en gennemgang af Microsoft Dynamics CRM. Vi brænder for CRM og vi er gode til at skabe en god forståelse for hvordan CRM kan bruges i en virksomhed, hvad enten der er fokus på salg, marketing, service eller noget helt andet!