Dynamic People > Introductie Microsoft Dynamics 365 for Sales (CRM) > Add-ons > Dynamic Scheduler | managementtool voor periodieke processen

Dynamic Scheduler | managementtool voor periodieke processen

De ´Dynamic Scheduler´ van Dynamic People is een handige tool waarbij je de functionaliteit in en rondom Microsoft Dynamics CRM nog beter kunt automatiseren. Daar waar standaard Microsoft Dynamics CRM het niet mogelijk maakt om een bepaalde (batch)processen in te plannen of periodiek uit te voeren, kan met de Dynamic Scheduler in CRM een proces worden gedefinieerd, waarbij een actie kan worden uitgevoerd op een bepaalde datum en tijd. Vervolgens kan dit proces elke minuut, uur, dag of maand worden uitgevoerd.
Als acties kunnen standaard Dynamics CRM workflows worden getriggerd, maar kunnen ook eigen plugins gemaakt worden. De Dynamic Scheduler is hierbij ontworpen om als host te kunnen dienen voor de plugins.

Aanleiding voor de Dynamic Scheduler

Binnen Microsoft Dynamics CRM kunnen allerlei processen en taken geautomatiseerd worden door workflows en dialogen. Allerlei zaken worden zo op de achtergrond automatisch uitgevoerd en klaargezet voor de volgende actie of persoon. Echter, deze workflows moeten altijd ofwel handmatig worden gestart, ofwel getriggerd worden op basis van een verandering in het systeem, zoals een veld dat veranderd van waarde of een activiteit die uitgevoerd is. In standaard Dynamics CRM is het niet mogelijk om periodiek een bepaalde actie te laten uitvoeren, of iets voor in de toekomst in te plannen om uitgevoerd te worden. De oplossing hiervoor is de Dynamic Scheduler van Dynamic People. Hiermee is het mogelijk om periodieke (batch)processen in te plannen en uit te laten voeren.

CRMTaskScheduler

Architectuur

Proces uitvoeren: een workflow of een custom built plugin

Bij het definiëren van de Schedule kun je kiezen uit twee actietypes van uit te voeren werkzaamheden: een workflow of een plugin.
Als het actietype workflow wordt gekozen, dan kun je een workflow selecteren uit de lijst van standaard CRM workflows die aanwezig zijn in het systeem. De lijst die getoond wordt zijn alle geactiveerde workflows, onafhankelijk van de entiteit waarop de workflow geactiveerd is. Met deze workflows kunnen alle gangbare standaard CRM acties getriggerd worden. Bovendien kunnen eventueel workflow plugins op deze manier gestart worden.
Het tweede actie-type is “plugin operation”. Het gaat hierbij niet om standaard Microsoft Dynamics CRM plugins, maar om eigen plugins die speciaal gemaakt zijn voor de Dynamic Scheduler. Deze plugins draaien dan geheel binnen de context van het achtergrond proces met automatische binding met Dynamics CRM.

Plugin architectuur

De Dynamic Scheduler is een host voor zelfgemaakte plugins. De tool is vanaf de basis opgebouwd volgens een plugin architectuur, zodat de basis van de Dynamic Scheduler dezelfde is, onafhankelijk op welk Dynamics CRM systeem deze draait. Maar met de plugins kan klant specifieke functionaliteit gebouwd en uitgevoerd worden waardoor het mogelijk is om Dynamics CRM te integreren met andere software systemen of databases.

Een plugin wordt gecodeerd in .Net. Bij de Dynamic Scheduler worden Visual Studio project templates en class templates meegeleverd waarbij de meest relevante eigenschappen en referenties al goed zijn gezet. Eén plugin assembly kan één of meerdere Plugin Operations bevatten.

Je maakt bijvoorbeeld één plugin assembly voor de integratie met je financiele systeem met daarin twee plugin operations: “send orders to ERP” en “send invoice status to CRM”.

In CRM hoef je alleen de plugin te definiëren, en de DLL te uploaden in de notitie van de plugin. Op de achtergrond worden in de DLL automatisch de twee plugin operations gedetecteerd, en in de tabel “plugin operations” gezet.

CRMTaskScheduler1

In deze samplecode wordt als voorbeeld een plugin operation genaamd “ConnectToDatabase” gedefinieerd:

CRMTaskScheduler2

Op het moment dat de plugins in CRM geladen en dus bekend zijn, kunnen ze worden geselecteerd in de schedule.

Ook kunnen aan de plugin operation parameters worden meegegeven. Je kunt hierbij denken aan een connectionstring om in je plugin verbinding te maken met een database, of user credentials waarmee je met een externe applicatie of webservice verbinding kunt maken.
Deze parameters kun je definieren in de .Net code als attributen. In bovenstaande code snippet zijn als voorbeeld drie parameters gedefinieerd: connectionstring, user en password. Bij het uploaden van de plugin in CRM worden deze parameters dan automatisch geladen in de tabel “plugin parameters”. Als ze eenmaal geladen zijn, kun je de parameters voorzien van een waarde.

CRMTaskScheduler3

Logging

Alle uitgevoerde acties worden gelogd in een log tabel, die makkelijk uit te lezen is in CRM. Eventuele fouten worden in het scherm getoond.

Installatie

De Dynamic Scheduler is met een installatie wizard te installeren, en werkt met zowel de “On Premise” versie van CRM, als met de “CRM online” versie. De service draait in de achtergrond en kan meerdere keren worden geïnstalleerd, bijvoorbeeld als gescheiden CRM omgevingen voor Test en Live geïnstalleerd zijn.

De Dynamic Scheduler is leverbaar voor Dynamics CRM 4.0, CRM 2011, Dynamics CRM 2013, CRM 2013 Online en CRM 2015. Prijs: op aanvraag.