Microsoft Dynamics CRM - Guida rapida
Customer Relationship Management (CRM) è un sistema per la gestione delle interazioni di un'azienda con i clienti attuali e futuri. Spesso implica l'utilizzo della tecnologia per organizzare, automatizzare e sincronizzare le vendite, il marketing, il servizio clienti e il supporto tecnico. Il CRM può aiutare a ridurre i costi e aumentare la redditività organizzando e automatizzando i processi aziendali che alimentano la soddisfazione e la fedeltà dei clienti.
Microsoft Dynamics CRM
Microsoft Dynamics CRM è un pacchetto software di gestione delle relazioni con i clienti sviluppato da Microsoft incentrato sul miglioramento delle relazioni con i clienti per qualsiasi organizzazione. Per impostazione predefinita, il prodotto si concentra principalmente sui settori delle vendite, del marketing e del servizio clienti, sebbene Microsoft abbia commercializzato Dynamics CRM come piattaforma XRM e abbia incoraggiato i partner a utilizzare il suo framework proprietario (basato su .NET) per personalizzarlo. Negli ultimi anni è cresciuta anche come piattaforma di Analytics guidata dal CRM.
La soluzione CRM può essere utilizzata per promuovere la produttività delle vendite e l'efficacia del marketing per un'organizzazione, gestire l'intera catena di assistenza clienti e fornire approfondimenti sociali, business intelligence e molte altre funzionalità e caratteristiche pronte all'uso. Come prodotto, Microsoft Dynamics CRM offre anche supporto mobile completo per l'utilizzo di app CRM su cellulari e tablet.
Al momento della stesura di questo tutorial, l'ultima versione di CRM è CRM 2016. Tuttavia, in questo tutorial utilizzeremo la versione online di CRM 2015 in quanto è l'ultima versione stabile e viene spesso utilizzata in molte organizzazioni. Tuttavia, anche se stai utilizzando altre versioni di CRM, tutti i concetti del tutorial rimarranno validi.
Offerte di prodotti
Microsoft Dynamics CRM è offerto in due categorie:
CRM online
CRM Online è un'offerta basata su cloud di Microsoft Dynamics CRM in cui tutti i processi di backend (come server applicazioni, configurazioni, distribuzioni, database, licenze, ecc.) Sono gestiti su server Microsoft. CRM Online è un'offerta basata su abbonamento preferita per le organizzazioni che potrebbero non voler gestire tutti gli aspetti tecnici coinvolti in un'implementazione CRM. Puoi iniziare a configurare il tuo sistema in pochi giorni (non settimane, mesi o anni) e accedervi sul web tramite il tuo browser.
CRM on-premise
Il CRM in sede è un'offerta più personalizzata e robusta di Microsoft Dynamics CRM, in cui l'applicazione CRM ei database verranno distribuiti sui tuoi server. Questa offerta ti consente di controllare tutti i tuoi database, personalizzazioni, implementazioni, backup, licenze e altre configurazioni di rete e hardware. In generale, le organizzazioni che desiderano optare per una soluzione CRM personalizzata preferiscono l'implementazione in sede poiché offre migliori funzionalità di integrazione e personalizzazione.
Dal punto di vista funzionale, entrambe le offerte offrono funzionalità simili; tuttavia, differiscono in modo significativo in termini di implementazione. Le differenze sono riassunte nella tabella seguente.
CRM online | CRM on-premise |
---|---|
Si tratta di una soluzione basata su cloud fornita da Microsoft in cui tutti i server e i database sono gestiti da Microsoft. | Si tratta di una soluzione on-premise fornita da Microsoft in cui i server e i database sono gestiti dal cliente. |
Puoi iniziare con un'offerta online in pochi giorni. Paghi per gli utenti e lo spazio utilizzato in movimento. | La configurazione di un'offerta in sede richiede competenze tecniche e tempo sufficiente per configurare l'istanza CRM e eseguirla. |
Supporta relativamente meno personalizzazioni ed estensioni. | Supporta una maggiore personalizzazione ed estensioni. |
CRM Online non offre la possibilità di eseguire il backup manuale dei dati e le opzioni di ripristino, poiché il database è ospitato su server Microsoft. Tuttavia, Microsoft esegue backup giornalieri del database. | Il CRM in sede offre la capacità completa di gestire il database. |
CRM Online ha vari piani in base ai limiti di archiviazione dei dati come 5 GB, 20 GB, ecc. | Il CRM on-premise non ha tali limiti sulle dimensioni di archiviazione, poiché i dati esistono sui tuoi server. |
CRM Online fornisce funzionalità integrate di funzionalità come approfondimenti, ascolto sociale, analisi, ecc. | Il CRM in sede ha costi aggiuntivi per queste funzionalità. |
CRM Online supporta gli aggiornamenti automatici alla versione futura. | Gli aggiornamenti CRM in sede devono essere installati dall'amministratore. |
Accesso al CRM
È possibile accedere a Microsoft Dynamics CRM tramite una delle seguenti opzioni:
- Browser
- Mobile e tablet
- Outlook
Concorrenti di prodotto
Microsoft Dynamics CRM è senza dubbio uno dei prodotti di punta nello spazio CRM. Tuttavia, di seguito sono riportati gli altri prodotti che competono con Microsoft Dynamics CRM.
- Salesforce.com
- Oracle
- SAP
- Sage CRM
- Sugar CRM
- NetSuite
Versioni del prodotto
Microsoft Dynamics CRM è cresciuto negli anni a partire dalla sua versione 1.0 nel 2003. L'ultima versione (al momento della stesura di questo articolo) è la 2015. Di seguito è riportato l'elenco cronologico delle versioni di rilascio:
- Microsoft CRM 1.0
- Microsoft CRM 1.2
- Microsoft Dynamics CRM 3.0
- Microsoft Dynamics CRM 4.0
- Microsoft Dynamics CRM 2011
- Microsoft Dynamics CRM 2013
- Microsoft Dynamics CRM 2015
- Microsoft Dynamics CRM 2016
Cominciamo configurando il nostro ambiente CRM. Useremo la versione online di CRM 2015, poiché la versione online fornisce un mese di accesso di prova gratuito. In questo modo, non sarà necessario acquistare alcuna licenza per apprendere il CRM.
Note- Poiché Microsoft Dynamics CRM è un prodotto in crescita, è possibile che nel momento in cui lo imparerai, avrai una versione più recente del prodotto. In tal caso, l'applicazione potrebbe non apparire esattamente come vedresti negli screenshot di questo tutorial. Tuttavia, i concetti fondamentali del prodotto rimangono gli stessi. L'aspetto e la navigazione del prodotto possono cambiare, tuttavia nella maggior parte dei casi sarai in grado di navigare facilmente e individuare le opzioni richieste.
Impostazione dell'account in linea di Microsoft Dynamics CRM
Step 1 - Vai al seguente URL -
https://www.microsoft.com/en-us/dynamics365/home
Nel caso in cui in futuro non vedessi le opzioni della versione di prova tramite questo link, prova a cercare "Microsoft Dynamics CRM Free Trial" su Google.
Step 2- Fare clic sul pulsante Provalo gratuitamente. Questo avvierà un processo di registrazione in 3 passaggi, come mostrato nella seguente schermata. Nel passaggio 1 della registrazione in 3 passaggi, inserisci i dettagli obbligatori come nome, e-mail e lingua.
Step 3- Fare clic sul pulsante Provalo gratuitamente. Questo avvierà un processo di registrazione in 3 passaggi, come mostrato nella seguente schermata. Nel passaggio 1 della registrazione in 3 passaggi, inserisci i dettagli obbligatori come nome, e-mail e lingua.
Step 4- Nel passaggio 3 della registrazione in 3 passaggi, Microsoft convaliderà il numero di cellulare specificato. Per questo, puoi fornire il tuo numero di cellulare e fare clic su Inviami un SMS. Invierà quindi una OTP al tuo cellulare utilizzando la quale potrai procedere ulteriormente con la configurazione.
Step 5- Verrà creato l'ID utente di Office 365. È possibile salvare queste informazioni sull'ID utente per un accesso successivo.
Dopo aver configurato l'account, ora aprirà la dashboard CRM che avrà un aspetto simile al seguente.
Giusto per sottolineare ancora una volta, gli screenshot qui sopra potrebbero cambiare con una versione futura, tuttavia la configurazione dell'ambiente sarà un processo piuttosto semplice.
Download di CRM SDK
Il Software Development Kit (SDK) di Microsoft Dynamics CRM contiene importanti esempi di codice tra cui codice lato server, codice lato client, estensioni, plug-in, servizi Web, flussi di lavoro, modello di sicurezza, ecc. Fondamentalmente, l'SDK contiene tutte le risorse di sviluppo necessarie per iniziare con CRM. Sia che tu stia pianificando di impostare un nuovo progetto di plug-in o di impostare un progetto di servizi Web per CRM, l'SDK fornisce l'architettura di base ed esempi che vanno dal livello semplice a quello avanzato per aiutarti a dare il via. Vedremo ora i passaggi per scaricare e installare l'SDK.
Step 1- Ogni versione di Microsoft Dynamics CRM viene fornita con la propria versione SDK. Il modo migliore per ottenere la versione corretta dell'SDK sarebbe cercare su Google la rispettiva versione di CRM. Ad esempio, se la tua versione di CRM è 2015, prova a cercare "Microsoft Dynamics CRM 2015 SDK".
Step 2- Una volta scaricato, esegui l'installazione exe. Fare clic su Continua.
Step 3- Ti chiederà di scegliere la posizione in cui estrarre l'SDK. Seleziona una posizione appropriata in cui desideri conservare l'SDK di riferimento.
Step 4- Apri la cartella dove avevi estratto. Puoi accedere a tutti i contenuti dell'SDK da qui.
Conclusione
In questo capitolo abbiamo impostato il nostro ambiente creando un account CRM Online. Abbiamo quindi scaricato il CRM SDK, che verrà utilizzato nei capitoli successivi di questo tutorial. Assicurati di annotare le credenziali con cui hai configurato l'account, poiché ti serviranno queste credenziali al prossimo accesso.
L'intero Microsoft Dynamics CRM è progettato attorno ai seguenti moduli funzionali.
- Sales
- Marketing
- Gestione del servizio
Questi moduli funzionali sono spesso chiamati come Work Areas.
Comprensione dei moduli funzionali CRM
L'intera applicazione CRM è suddivisa funzionalmente per diversi tipi di utenti e team. Quindi, se un'organizzazione utilizza CRM per gestire i suoi processi, gli utenti del team di vendita utilizzerebbero le funzionalità che rientrano nel modulo Vendite, mentre gli utenti del team di marketing utilizzerebbero funzionalità che rientrano nel modulo Marketing.
Tutti questi tre moduli funzionali si uniscono per guidare l'intero ciclo di vita dell'acquisizione di un nuovo cliente (Marketing), vendendo loro i servizi (Vendite) e mantenendo i clienti esistenti (Gestione dei servizi).
Per comprendere meglio questo flusso, si consideri una banca che vende carte di credito ai propri clienti. Il ciclo di vita tipico della vendita di una carta di credito a un cliente sarebbe il seguente. In ogni fase di questo ciclo di vita, vedrai come i moduli di vendita, marketing e servizio svolgono il loro ruolo.
Sales & Marketing- Il dirigente dell'ufficio del call center della banca riceve i dati dei potenziali clienti; spesso chiamato come Lead in CRM. Questi lead vengono acquisiti nel sistema CRM tramite campagne di marketing, iniziative di vendita, referral, ecc.
Sales- Il dirigente del call center comunica con questi lead tramite telefonate / e-mail / ecc. Se il cliente è interessato all'offerta della carta di credito, il record del lead verrà convertito in un record dell'opportunità (lead vinto).
Service- Una volta che un cliente diventa parte del sistema, l'azienda lo assiste con pagamenti, fatturazione, rimborsi, ecc. Ogni volta che il cliente ha domande o dubbi, chiamerà il call center e solleverà incidenti. L'esecutivo seguirà per risolvere il caso con l'obiettivo di fornire un servizio di qualità al cliente. Queste attività rientrano nella gestione del servizio CRM.
Navigazione nelle aree di lavoro CRM
Step 1 - Apri la home page di CRM.
Step 2 - Per impostazione predefinita, vedrai l'area di lavoro Vendite selezionata.
Step 3- Per modificare l'area di lavoro, fare clic sull'opzione Mostra aree di lavoro. Vedrai le opzioni per la selezione di Vendite, Assistenza e Marketing.
Step 4- Fare clic su Vendite. Questo ti mostrerà tutte le entità che rientrano in Vendite come Account, Contatti, Lead, Opportunità, Concorrenti, ecc. Ciascuna di queste entità è classificata in base al loro processo aziendale come Il mio lavoro, Clienti, Vendite, Collaterale, ecc.
Step 5 - Allo stesso modo, se fai clic sull'area di lavoro Marketing, vedrai tutte le entità relative alle funzionalità aziendali di Marketing.
Modulo di vendita
Il modulo Vendite di CRM è progettato per guidare l'intero ciclo di vita delle vendite di un nuovo cliente. Il modulo Vendite è costituito dai seguenti sottomoduli:
Leads- Rappresenta una persona o un'organizzazione che può essere un potenziale cliente dell'azienda in futuro. Questo è il primo passo per ottenere un potenziale cliente nel sistema.
Opportunities- Rappresenta una potenziale vendita al cliente. Una volta che un lead mostra interesse per l'offerta, viene convertito in un'opportunità. Un'opportunità verrà vinta o persa.
Accounts- Rappresenta un'azienda con cui l'organizzazione ha rapporti. Una volta che un'opportunità vince, viene convertita in un account o in contatti.
Contacts- Rappresenta una persona o qualsiasi individuo con cui l'organizzazione ha rapporti. Per lo più questi contatti sono i clienti delle organizzazioni (ad esempio tutti i clienti di carte di credito di una banca). Una volta che un'opportunità vince, viene convertita in un account o in contatti.
Competitors - Gestisce tutti i concorrenti di mercato dell'organizzazione.
Products - Gestisce tutti i prodotti offerti dall'organizzazione ai propri clienti (Esempio, tutti i piani di carte di credito).
Quotes - Un'offerta formale per prodotti o servizi proposti a prezzi specifici inviata a un potenziale cliente (Esempio, prezzo annuale di un determinato piano di carta di credito inviato al cliente).
Orders - Un preventivo che viene accettato dal cliente si trasforma in un Ordine (Esempio, tra tutti i piani che l'organizzazione ti offre, potresti optare per un abbonamento di 6 mesi).
Invoices - Un ordine fatturato genera una fattura.
Modulo di marketing
Il modulo Marketing di CRM è progettato per guidare l'intero processo di marketing di un'organizzazione per i suoi clienti esistenti e potenziali. Il modulo Marketing è costituito dai seguenti sottomoduli:
Marketing Lists- Fornisce un modo per raggruppare i tuoi contatti, account e lead e interagire con loro inviando e-mail promozionali, dettagli sugli eventi, newsletter e altri aggiornamenti rilevanti per i clienti target. Puoi definire i criteri per creare le tue liste di marketing (Esempio, contatti di età compresa tra 25 e 35 anni).
Campaigns - Le campagne sono progettate per misurare l'efficacia e ottenere un risultato specifico, come l'introduzione di un nuovo prodotto o l'aumento della quota di mercato e possono includere vari canali di comunicazione come e-mail, annunci sui giornali, annunci YouTube, ecc.
Quick Campaigns - Una campagna rapida è simile alla campagna, tuttavia può essere correlata a un solo tipo di attività.
Tutti i moduli Marketing di cui sopra lavorano in stretto coordinamento con il modulo Vendite.
Modulo di gestione dei servizi
Il modulo di gestione dei servizi di CRM è progettato per focalizzare, gestire e tenere traccia delle operazioni del servizio clienti di un'organizzazione come supportare i servizi basati sugli incidenti, supportare i clienti utilizzando la pianificazione dei servizi, ecc.
Il modulo Gestione servizi copre i seguenti sottomoduli:
Cases (Incidents)- Supporta eventuali richieste, problemi o reclami dei clienti da tracciare tramite incidenti / casi. Un caso segue varie fasi di un processo di risoluzione del problema, quindi viene finalmente risolto e chiuso.
Knowledge Base - Mantiene un repository principale per tutte le domande e risposte comuni che il cliente chiede frequentemente.
Contracts - I contratti funzionano con i casi indicando tutti i contratti attivi che il cliente ha.
Resources/Resource Groups- Rappresenta le persone, gli strumenti, le stanze o le apparecchiature utilizzate per fornire un servizio. Queste risorse possono essere utilizzate per risolvere un problema specifico del cliente.
Services - Rappresenta tutti i servizi che l'organizzazione offre ai clienti.
Service Calendar - Utilizzato per pianificare gli orari di lavoro e le pianificazioni degli utenti che lavorano nell'organizzazione.
Gestione delle attività
Tutti i moduli spiegati sopra utilizzano il modulo Gestione attività di CRM. Un'attività rappresenta qualsiasi tipo di interazione con il cliente come una telefonata, e-mail, lettera, ecc. Queste attività possono essere correlate a qualsiasi entità spiegata in precedenza come account, contatto, lead, caso, ecc. Per impostazione predefinita, CRM fornisce i seguenti tipi di attività out-of-the-box:
- Telefonata
- Task
- Appointment
- Appuntamento ricorrente
- Letter
- Fax
- Risposta alla campagna
- Attività della campagna
- Attività di servizio
- Attività personalizzate
Conclusione
In questo capitolo abbiamo appreso i tre moduli principali del CRM: vendite, marketing e gestione dei servizi. Abbiamo capito come sono organizzate le aree di lavoro in CRM e come funziona l'intero ciclo di vita di un'organizzazione CRM. Abbiamo anche esaminato il modulo di gestione delle attività del CRM che consente di creare telefono, e-mail, fax e altri tipi di attività di interazione con il cliente.
Ora che abbiamo una panoramica funzionale di tutti i moduli CRM, impariamo e comprendiamo le entità e i moduli in CRM.
Cos'è un'entità?
Un'entità viene utilizzata per modellare e gestire i dati aziendali in CRM. Contatti, casi, account, lead, opportunità, attività, ecc. Sono tutte entità che detengono record di dati. Concettualmente, un'entità CRM è equivalente a una tabella di database. Ad esempio, l'entità Contatti conterrebbe i record del contatto, l'entità Casi conterrebbe i record dei casi e così via.
Puoi avere entrambi: entità pronte all'uso (che viene fornito per impostazione predefinita con il CRM) e entità personalizzate (che puoi creare con la personalizzazione). Ad esempio, supponi di mantenere i dati dei libri letti dai tuoi clienti. Per questo, archiverai i dati del cliente utilizzando l'entità Contatti pronta per l'uso, ma dove archivieresti i dati dei libri? Non hai alcuna entità in grado di memorizzare i dati per i libri. In tali scenari, creerai una nuova entità personalizzata denominata Libri e la correlerai con l'entità Contatti esistente.
Per questo tutorial, prendiamo un esempio di archiviazione di datori di lavoro e dipendenti in CRM. Prendendo in considerazione questo esempio, il CRM fornisce immediatamenteContactentità in cui puoi idealmente archiviare tutti i tuoi dipendenti. Fornisce anche un fileAccountentità in cui puoi memorizzare tutti i tuoi datori di lavoro. Ma per il bene delle entità di apprendimento, creeremo una nuova entità personalizzata chiamataEmployer (e non utilizzare l'entità Account esistente).
Creazione di una nuova entità
Step 1 - Fare clic sul pulsante della barra multifunzione in alto seguito da Settingsopzione. ClicCustomizations opzione dalla sezione Personalizzazione (fare riferimento alla seguente schermata).
Step 2 - Ora fai clic su Personalizza l'opzione Sistema.
Questo aprirà la finestra Soluzione predefinita. Imparerai di più sulle soluzioni CRM nei prossimi capitoli, ma per ora utilizzerai la soluzione CRM predefinita.
Step 3 - Espandi l'opzione Entità dal pannello di sinistra.
Step 4 - Ora fai clic su Nuovo → Entità.
Step 5- Nel modulo dell'entità, immettere il nome visualizzato come datore di lavoro e PluralName come datori di lavoro. Nella sezione "Aree che visualizzano questa entità", seleziona Vendite, Assistenza e Marketing. Selezionando queste opzioni verrà visualizzata l'entità appena creata nelle schede Vendite, Assistenza e Marketing di CRM.
Step 6- Fare clic sull'icona Salva e chiudi. Questo creerà una nuova entità nel database CRM dietro le quinte.
Step 7 - Nella finestra principale della Soluzione predefinita, vedrai l'entità Datore di lavoro appena creata.
Step 8- Fare clic sull'opzione Pubblica tutte le personalizzazioni dalla barra multifunzione in alto. Questo pubblicherà (aka commit) tutte le modifiche che abbiamo fatto fino ad ora. È possibile chiudere questa finestra facendo clic su Salva e chiudi.
Creazione di record
Il CRM si occupa di gestire dati preziosi nel tuo sistema. In questa sezione impareremo come creare, aprire, leggere ed eliminare record in CRM. Continueremo con l'entità datore di lavoro che abbiamo creato nell'ultimo capitolo.
Step 1 - Passa alla griglia dei record dell'entità datore di lavoro tramite Mostra aree di lavoro → Vendite → Estensioni → Datori di lavoro.
Step 2 - Fare clic sull'icona Nuovo.
Questo aprirà il modulo predefinito del nuovo datore di lavoro. Puoi vedere che c'è un solo campo modificabile Nome in questo modulo predefinito. Immettere Datore di lavoro 1 nel campo Nome. Fare clic su Salva e chiudi.
Step 3 - Nel Active Employers visualizzazione, puoi vedere il record del datore di lavoro appena creato.
Accesso ai record
Per accedere ai record già creati in CRM, vai a quella pagina dell'entità. Nel nostro caso, vai a Mostra aree di lavoro → Vendite → Estensioni → Datori di lavoro. Vedrai l'elenco dei record presenti nella griglia. Fare clic su qualsiasi record del datore di lavoro per accedervi.
Aggiornamento dei record
Una volta aperto un record, puoi semplicemente modificare i dettagli sul modulo. Per impostazione predefinita, CRM 2015 viene fornito con l'opzione di salvataggio automatico che salva le modifiche apportate al modulo 30 secondi dopo la modifica. In alternativa, puoi fare clic su Ctrl + S.
Se desideri disabilitare la funzione di salvataggio automatico, vai su Impostazioni → Amministrazione → Impostazioni di sistema → Abilita salvataggio automatico per tutti i moduli e seleziona No.
Eliminazione dei record
Step 1 - Seleziona uno o più record che desideri eliminare e fai clic su Delete pulsante.
Step 2 - Confermare l'eliminazione dei record facendo clic su Delete.
Conclusione
Come si vede nell'esempio precedente, il modulo predefinito del datore di lavoro aveva un solo campo. Tuttavia, in scenari di vita reale, avrai molti campi personalizzati in un modulo. Ad esempio, se guardi un record di contatto di esempio (che è un'entità CRM pronta per l'uso), avrà molti campi per memorizzare le informazioni di contatto come nome completo, email, telefono, indirizzo, casi, ecc.
Nei prossimi capitoli imparerai come modificare questo modulo predefinito e aggiungere diversi tipi di campi su di esso.
Prima di imparare come aggiungere campi personalizzati ai moduli CRM, diamo un'occhiata al tipo di campi dati supportati dal CRM.
Tipi di campo
Di default, CRM fornisce 11 tipi di campi dati che possono essere inseriti nei moduli:
- Singola riga di testo
- Set di opzioni (elenco a discesa)
- Due opzioni (pulsante di opzione)
- Image
- Numero intero
- Numero in virgola mobile
- Numero decimale
- Currency
- Più righe di testo
- Data e ora
- Lookup
La tabella seguente elenca ciascuno con una breve descrizione.
Suor n | Tipo di campo e descrizione |
---|---|
1 | Single Line of Text Questo campo memorizza fino a 4000 caratteri di testo. È inoltre possibile specificare il formato come uno di questi: e-mail, testo, area di testo, URL, simbolo ticker e telefono. È possibile impostare la lunghezza massima e la modalità IME per ciascuno di questi. |
2 | Option Set (Dropdown) Questo campo memorizza una serie di opzioni ciascuna con un valore numerico e un'etichetta. In altre parole, è un campo a discesa in CRM. È inoltre possibile definire set di opzioni globali che possono essere utilizzati in più moduli. |
3 | Two Options (Radio Button) Questo campo fornisce due opzioni che l'utente può selezionare (0 o 1). In altre parole, è un campo pulsante di opzione. |
4 | Image Quando un'entità ha un campo immagine, può essere configurata per visualizzare l'immagine per il record nell'applicazione. |
5 | Whole Number Questo campo memorizza valori interi compresi tra -2.147.483.648 e 2.147.483.647. Supporta i formati specificati come Nessuno, Durata, Fuso orario e Lingua. Puoi anche impostare i valori minimo e massimo. |
6 | Floating Point Number Questo campo memorizza i numeri in virgola mobile fino a 5 punti decimali di precisione tra 0,00 e 1.000.000.000,00. Puoi anche impostare i valori minimo e massimo. |
7 | Decimal Number Questo campo memorizza fino a 10 punti decimali con valori compresi tra -100.000.000.000,00 e 100.000.000.000,00. |
8 | Currency Questo campo viene utilizzato per memorizzare qualsiasi valore di valuta compreso tra 922.337.203.685.477.0000 e 922.337.203.685.477.0000. È inoltre possibile specificare Precisione come Decimale prezzo, Precisione valuta o qualsiasi valore compreso tra 0 e 4. |
9 | Multiple Lines of Text Questa è una casella di testo scorrevole. È possibile impostare il numero massimo di caratteri per questo campo. |
10 | Date and Time Questo campo viene utilizzato per memorizzare i dati relativi alla data in CRM con due formati supportati: Solo data e Data e ora. È inoltre possibile specificare il comportamento come Locale utente, Solo data e Indipendente dal fuso orario. |
11 | Lookup È possibile creare un campo di ricerca utilizzando una relazione di entità che è già stata creata, ma non ancora utilizzata con un altro campo di ricerca. Se crei un campo di ricerca in un modulo entità, la relazione viene generata automaticamente. Un campo di ricerca viene creato come campo di relazione. |
Negli ultimi due capitoli hai studiato come creare nuove entità, creare nuovi record e tipi di campi disponibili in CRM. In questo capitolo imparerai ad aggiungere nuovi campi ai moduli CRM.
Degli 11 tipi di campi dati studiati nel capitolo precedente, utilizzerai tre tipi di campi sul tuo datore di lavoro: Set di opzioni (elenco a discesa), Più righe di testo e Data e ora. Il campo Option Set verrebbe utilizzato per memorizzare il tipo di datore di lavoro, più righe di testo verranno utilizzate per memorizzare una breve descrizione del datore di lavoro e il campo DateTime verrebbe utilizzato per memorizzare la data in cui è stata avviata la società.Note: Avevi già un campo Nome nel modulo che era un tipo di testo a riga singola.
Aggiunta di campi al modulo
Step 1 - Fare clic sul pulsante della barra multifunzione in alto seguito da Settingsopzione. ClicCustomizations opzione dalla sezione Personalizzazione (Fare riferimento alla schermata di seguito).
Step 2 - Ora fai clic sull'opzione Personalizza il sistema.
Questo aprirà la finestra DefaultSolution. Imparerai di più sulle soluzioni CRM nei prossimi capitoli, ma per ora utilizzerai la soluzione CRM predefinita.
Step 3 - Espandi l'opzione Entità dal pannello di sinistra.
Step 4- Dalle entità espanse, seleziona Datore di lavoro. Questo aprirà i dettagli dell'entità nella finestra di destra. Espandi l'opzione Datore di lavoro dal pannello di sinistra e sarai in grado di vedere Moduli, Visualizzazioni, Grafici, Campi e altre diverse opzioni.
Step 5- Fare clic su Campi. Si aprirà una griglia che mostra tutti i campi forniti per impostazione predefinita quando hai creato questa entità.
Step 6- Fare clic sul pulsante Nuovo. Nella nuova finestra che si apre, inserisci i seguenti dettagli:
Display Name - Tipo di datore di lavoro
Name- Questo campo verrà compilato automaticamente in base al nome visualizzato selezionato. Tuttavia, se desideri modificarlo, puoi farlo.
Data Type- Set di opzioni. Non appena si seleziona il tipo di dati come set di opzioni, verrà visualizzato il pannello Opzioni. Facendo clic sull'icona più (+) viene creato un nuovo elemento del set di opzioni con Etichetta predefinita come Articolo e Valore predefinito come 100.000.000. È possibile modificare l'etichetta di questo elemento per aggiungere quattro opzioni che rappresentano i tipi di datore di lavoro: privato, governativo, multinazionale e pubblico.
Step 7- Fare clic su Salva e chiudi nella barra multifunzione in alto. Hai creato con successo il campo Tipo di datore di lavoro.
Step 8 - Simile a quello che hai appena fatto per aggiungere il campo Tipo di datore di lavoro, aggiungi altri tre campi come descritto e mostrato nelle schermate seguenti -
Number of Employees - Questo sarà un campo Numero intero.
Founded On - Questo sarà un campo DateTime.
Employer Description - Questo sarà un campo di testo a più righe.
Step 9- Ora aggiungi questi nuovi campi nel modulo del datore di lavoro. Per questo, fai clic su Moduli dalla barra di navigazione a sinistra sotto Entità datore di lavoro. Questo ti mostrerà due moduli con informazioni sul nome. Per impostazione predefinita, CRM crea due moduli: principale e Mobile-Express. Fare clic sul modulo principale.
Step 10 - Puoi vedere i campi appena aggiunti nel pannello Explorer Campo a destra.
Step 11 - Trascina e rilascia questi campi nella scheda Generale.
Step 12 - Fare clic su Salva e quindi su Pubblica.
Step 13- È ora possibile creare record del datore di lavoro con i campi degli aggiornamenti. Passa a CRM Home → Vendite → Datori di lavoro → Nuovo. Il nuovo modulo che si aprirà questa volta conterrà tutti i nuovi campi che hai aggiunto in questo capitolo. Puoi inserire alcuni dettagli e fare clic su Salva e chiudi.
Conclusione
In questo capitolo abbiamo imparato a lavorare con i moduli CRM e come personalizzarli inserendovi vari tipi di campi. Abbiamo anche imparato ad aggiungere tutti i campi che vogliamo su qualsiasi modulo e disporli utilizzando varie schede e sezioni secondo i requisiti aziendali.
Microsoft Dynamics CRM è un prodotto vasto che si è evoluto in modo significativo nel corso degli anni. Il prodotto viene fornito con molte funzionalità out-of-the-box integrate nel sistema. Non è necessario scrivere alcun codice per utilizzare queste funzionalità. Una delle importanti funzionalità predefinite è la capacità di ricerca del CRM, in quanto supporta funzionalità avanzate di query e filtraggio.
Ricerca rapida
Per impostazione predefinita, la visualizzazione griglia di ogni entità in CRM supporta una funzionalità di ricerca rapida utilizzando una barra di ricerca in alto a destra. Di seguito è riportato uno screenshot della ricerca rapida sull'entità contatto.
Puoi provare a inserire una stringa di ricerca come "Robert" e restituirà tutti i record corrispondenti.
È possibile anteporre alla parola chiave di ricerca * (asterisco) per eseguire una ricerca con caratteri jolly.
Note - Quando si utilizza la versione client Web di Microsoft Dynamics CRM, Ricerca rapida cerca sempre tutti i record attivi indipendentemente dalla visualizzazione selezionata.
È possibile personalizzare la ricerca rapida (come personalizzare qualsiasi altra visualizzazione) per modificare i criteri di filtro, configurare l'ordinamento, aggiungere colonne di visualizzazione, aggiungere colonne di ricerca e modificare altre proprietà.
Ricerca Avanzata
La ricerca avanzata ti consente di cercare record di qualsiasi entità in CRM. È una delle funzionalità più potenti e utili che viene fornita immediatamente con CRM. L'icona Ricerca avanzata viene visualizzata sulla barra multifunzione superiore di Microsoft Dynamics CRM indipendentemente dalla schermata in cui ti trovi.
Fare clic sull'icona Ricerca avanzata per aprire la finestra Ricerca avanzata. Questa finestra ti consentirà di selezionare l'entità per la quale desideri cercare i record, applicare criteri di filtraggio e raggruppamento e salvare le tue viste di Ricerca avanzata come viste personali.
Facciamo un esempio. Supponiamo di voler cercare tutti i contatti con FirstName contenenti Robert e che sono divorziati. Per questo -
Step 1- Seleziona Contatti dal menu a discesa Cerca. Questo menu a discesa conterrà tutte le entità presenti nel tuo sistema.
Step 2- Immettere i criteri di ricerca come mostrato nella seguente schermata. Puoi aggiungere tutti i parametri della query di ricerca che desideri. È anche possibile raggruppare tali criteri utilizzando i parametri di gruppo. Ad esempio, se desideri cercare tutti i contatti il cui nome è Robert o Mark, puoi aggiungere due criteri di ricerca e raggrupparli utilizzando GroupOR.
Step 3- Fare clic sul pulsante Risultati. Mostrerà i record abbinati in una nuova scheda.
Step 4- Puoi anche modificare le colonne che desideri visualizzare nei risultati della ricerca facendo clic su Modifica colonne. Ad esempio, la nostra griglia attuale contiene solo due colonne: Nome completo e Telefono aziendale. Tuttavia, se desideri aggiungere una colonna aggiuntiva di ID e-mail a questa griglia, puoi farlo utilizzando questa opzione.
Salvataggio della visualizzazione personalizzata
In questa fase, se desideri salvare questi criteri di ricerca, insieme ai filtri e alle colonne modificate, puoi farlo facendo clic sul pulsante Salva. Una volta salvato, puoi utilizzare questa visualizzazione salvata quando ti trovi su quella pagina dell'entità.
Ad esempio, considera che come dirigente del cliente servi due tipi di clienti: Normale e Premium. Quindi, puoi creare un filtro avanzato con queste rispettive categorie e salvarle come contatti normali assegnati a me e contatti premium assegnati a me. È quindi possibile accedere rapidamente a queste visualizzazioni direttamente dalla pagina dell'entità contatto senza eseguire una ricerca rapida o una ricerca di ricerca avanzata ogni volta che si utilizza il sistema.
Le risorse Web in CRM sono i file Web virtuali archiviati nel database CRM e utilizzati per implementare le funzionalità della pagina Web in CRM. Questi file possono essere HTML, JScript, Silverlight o qualsiasi altro tipo supportato.
Essendo CRM un prodotto, viene fornito con un ampio set di caratteristiche e funzionalità. Tuttavia, la maggior parte delle volte, dovresti estendere queste funzionalità esistenti per soddisfare i tuoi requisiti personalizzati. L'estensione di queste funzionalità avviene generalmente in due modi:
Extending on Client Side - Utilizzo di risorse Web e script di moduli.
Extending on Server Side - Plugin, flussi di lavoro e servizi Web (impareremo questa parte nei prossimi capitoli).
Usi delle risorse web
Come accennato in precedenza, l'estensione del CRM sul lato client è il punto in cui le risorse Web entrano in scena. Per capirlo chiaramente, considera i seguenti casi d'uso:
Hai un modulo CRM contenente determinati campi. Il CRM fornisce funzionalità predefinite per le convalide di base come i campi obbligatori, le lunghezze dei campi, ecc. Tuttavia, cosa succede se si desidera avere una convalida più complessa come la convalida se il numero di telefono inserito è nel formato corretto, o convalidare se l'indirizzo inserito esiste effettivamente o se il SSN inserito è corretto?
Il CRM fornisce personalizzazioni dell'interfaccia utente predefinite come la creazione di sezioni e schede su un modulo, la riorganizzazione dei campi, ecc. Tuttavia, cosa succede se il cliente desidera creare una pagina personalizzata che mostra tutte le informazioni del cliente provenienti dall'altro Sistema ERP?
CRM viene fornito con una barra multifunzione standard, che contiene tutti i pulsanti e le opzioni. E se volessi aggiungere un tuo pulsante a nastro?
Considera che hai già un sistema ERP in atto. E se volessi aprire alcune schermate CRM da questo sistema ERP?
Puoi sempre chiamare qualsiasi servizio Web esterno nel codice del plug-in lato server. Tuttavia, cosa succede se si desidera chiamare qualsiasi servizio Web esterno mentre si è ancora sul lato client?
La risposta a tutti questi "E se" è Risorse Web. Ogni risorsa web è accessibile tramite il suo URL univoco. Puoi caricare un file di risorse Web o per risorse basate su codice (come HTML, Jscript, ecc.) Puoi persino modificarle direttamente all'interno di CRM. Poiché le risorse Web sono archiviate all'interno di CRM, possono essere facilmente migrate da un ambiente a un altro insieme, insieme a qualsiasi personalizzazione CRM.
Tipi di risorse web
Tipo di risorsa Web | Applicazione di esempio in CRM |
---|---|
Pagina Web (HTML) | Potresti voler creare qualsiasi pagina HTML personalizzata come mappe, pagina dell'applicazione personalizzata, ecc. E inserirla nel modulo CRM. |
Foglio di stile (CSS) | Qualsiasi file CSS che verrà utilizzato insieme ai file HTML. |
Script (JScript) | Qualsiasi logica lato client come convalide, manipolazione dei valori dei campi, ecc. |
Dati (XML) | Può essere utilizzato per memorizzare impostazioni statiche o dati di configurazione. |
Immagine (PNG, JPG, GIF, ICO) | Qualsiasi immagine utilizzata nell'applicazione su pulsanti della barra multifunzione, icone, moduli, ecc. |
Silverlight (XAP) | Qualsiasi applicazione Silverlight personalizzata incorporata in CRM. |
StyleSheet (XSL) | Utilizzato per trasformare i dati XML. |
Tra tutti questi tipi di risorse web, studieremo i tipi più importanti di risorse web - Risorse Web HTML e Risorse Web JScript, nei capitoli successivi.
Accesso alle risorse Web per qualsiasi entità
È possibile accedere in CRM a tutte le risorse Web archiviate nel database. Di seguito sono riportati i passaggi coinvolti:
Step 1 - Vai a Impostazioni → Personalizzazioni → Personalizza il sistema.
Step 2 - Nella barra di navigazione a sinistra, seleziona Web Resources. Al momento, non sarai in grado di vedere alcuna risorsa web poiché non abbiamo ancora creato nulla.
Vedremo come creare risorse web nei prossimi capitoli.
Le risorse Web JScript sono probabilmente il tipo più importante di risorse Web che utilizzerai con Microsoft Dynamics CRM.
Applicazioni di JavaScript in CRM
Modulo di programmazione eventi
La programmazione degli eventi del modulo viene utilizzata per gestire i comportamenti lato client come ciò che accade quando un utente apre un modulo, modifica alcuni dati, si sposta tra le schede, ecc. Per ottenere tali interazioni lato client, dovrai scrivere codice JavaScript e aggiungerlo come Risorsa Web JScript in CRM. Tuttavia, il codice JavaScript che scriverai deve utilizzare il modello Xrm.Page di Dynamic CRM e non il DOM JavaScript standard. L'utilizzo del modello Xrm.Page è il modo di codifica di Microsoft che garantisce che qualsiasi codice scritto utilizzando questo modello sarà compatibile con qualsiasi versione futura di CRM.
Risorse web
Oltre ad essere utilizzato nella programmazione di eventi di moduli, JavaScript viene utilizzato in altre applicazioni di CRM come:
Apri moduli, viste e finestre di dialogo con un URL univoco.
Utilizzo di endpoint OData e SOAP per interagire con i servizi Web.
Riferimento al codice JavaScript all'interno di altre risorse Web (come le risorse Web HTML).
In questi casi, scrivere il codice JavaScript (utilizzando il modello Xrm.Page) e aggiungerlo come risorsa Web JScript in CRM, a cui è possibile fare riferimento ovunque con un URI univoco.
Personalizzazioni del nastro
Infine, uno degli altri usi comuni di JavaScript è gestire le personalizzazioni della barra multifunzione come:
- Mostra / Nascondi pulsanti della barra multifunzione in base a una logica
- Abilita / disabilita i pulsanti della barra multifunzione in base a una logica
- Gestisci cosa succede quando fai clic su un determinato pulsante della barra multifunzione
Per gestire tali scenari, scrivere la logica JavaScript (utilizzando il modello Xrm.Page) e quindi aggiungerla come risorsa Web JScript. Questa risorsa Web può quindi essere referenziata nell'XML del pulsante della barra multifunzione e possiamo specificare quale metodo in quale file JScript chiamare per verificare se un pulsante della barra multifunzione deve essere visualizzato / nascosto o abilitato / disabilitato o gestire gli eventi di clic.
Xrm.Page Object Model
Di seguito è riportata la gerarchia dell'oggetto Xrm.Page che mostra gli spazi dei nomi, gli oggetti e le relative raccolte disponibili. Utilizzerai queste proprietà durante la scrittura del codice JScript.
Spazi dei nomi
Suor n | Oggetto e descrizione |
---|---|
1 | Context Fornisce metodi per recuperare informazioni specifiche del contesto come dettagli dell'organizzazione, dettagli dell'utente connesso o parametri che sono stati passati al modulo in una stringa di query. |
2 | Data Fornisce accesso ai dati e ai metodi dell'entità per gestire i dati nel modulo e nel controllo del flusso del processo aziendale. |
3 | UI Contiene metodi per recuperare informazioni sull'interfaccia utente, oltre alle raccolte per diversi sottocomponenti del modulo. |
Oggetti
Suor n | Oggetto e descrizione |
---|---|
1 | Entity Fornisce metodo per -
|
2 | Process Metodi per recuperare le proprietà del flusso dei processi aziendali. |
3 | Navigation Fornisce accesso agli elementi di navigazione utilizzando la raccolta di elementi. |
4 | FormSelector Utilizza la raccolta di elementi per accedere ai moduli disponibili per l'utente. Utilizza anche il metodo di navigazione per chiudere e aprire i moduli. |
5 | Stages Ogni processo ha una raccolta di fasi a cui è possibile accedere utilizzando il metodo di processo getStages. |
6 | Steps Ogni fase comprende vari passaggi a cui è possibile accedere utilizzando il metodo di fase getSteps. |
Collezioni
Suor n | Collezioni e descrizione |
---|---|
1 | Attributes Fornisce accesso agli attributi di entità disponibili nel modulo. |
2 | Controls ui.controls - Fornisce l'accesso a ogni controllo presente nel modulo. attribute.controls - Fornisce accesso a tutti i controlli all'interno di un attributo. section.controls - Fornisce accesso a tutti i controlli all'interno di una sezione. |
3 | Items Fornisce accesso a tutti gli elementi di navigazione in un modulo. |
4 | Tabs Fornisce accesso a tutte le schede in un modulo. |
5 | Sections Fornisce accesso a tutte le sezioni di un modulo. |
Eventi supportati nella programmazione di moduli
La programmazione del modulo che utilizza il modello Xrm.Page consente di gestire i seguenti eventi del modulo:
- onLoad
- onSave
- onChange
- TabStateChange
- OnReadyStateComplete
- PreSearch
- Eventi di controllo del flusso di processo aziendale
Esempio di programmazione di moduli
In questo esempio, inseriremo alcune convalide nel modulo di contatto in base al metodo preferito di comunicazione che l'utente seleziona. Quindi, se l'utente seleziona il proprio metodo preferito come Email, il campo Email dovrebbe diventare obbligatorio e analogamente per gli altri campi di Telefono e Fax.
Step 1 - Crea un file JavaScript denominato contacts.js e copia il codice seguente.
function validatePreferredMethodOfCommunication() {
//get the value of Preffered Method of Communication code
var prefferedContactMethodCode =
Xrm.Page.getAttribute('preferredcontactmetho dcode').getValue();
//if Preferred Method = Any, make all fields as non-mandatory
//else if Preferred Method = Phone, make Mobile Phone field mandatory
//and all other fields as non-mandatory
//else if Preferred Method = Fax, make Fax field mandatory
//and all other fields as non-mandatory
if(prefferedContactMethodCode == 1) {
clearAllMandatoryFields();
}
if(prefferedContactMethodCode == 2) {
clearAllMandatoryFields();
Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('required');
} else if(prefferedContactMethodCode == 3) {
clearAllMandatoryFields();
Xrm.Page.getAttribute('mobilephone').setRequiredLevel('required');
} else if(prefferedContactMethodCode == 4) {
clearAllMandatoryFields();
Xrm.Page.getAttribute('fax').setRequiredLevel('required');
}
}
function clearAllMandatoryFields() {
//clear all mandatory fields
Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('none');
Xrm.Page.getAttribute('mobilephone').setRequiredLevel('none');
Xrm.Page.getAttribute('fax').setRequiredLevel('none');
}
Step 2 - Apri il modulo Entità di contatto accedendo a Impostazioni → Personalizzazioni → Personalizza il sistema → Entità di contatto → Moduli → Modulo principale.
Step 3 - Fare clic su Proprietà modulo.
Step 4 - Nella finestra Proprietà modulo, fare clic su Aggiungi.
Step 5 - Nella successiva finestra Cerca record di risorse Web, fare clic su Nuovo poiché stiamo creando una nuova risorsa Web.
Step 6 - Nella finestra Nuova risorsa Web, inserisci i seguenti dettagli:
Name - new_contacts.js
Display Name - contacts.js
Type - JScript
Upload File - Carica il file JavaScript che hai creato dalla tua macchina locale.
Step 7- Fare clic su Salva seguito da Pubblica. Dopo questo chiudi la finestra e tornerai alla finestra Cerca record di risorse web.
Step 8- Qui ora puoi vedere la risorsa web new_contacts.js. Selezionalo e fai clic su Aggiungi. Ora hai aggiunto con successo una nuova risorsa web e l'hai registrata nel modulo.
Step 9- Ora aggiungeremo un gestore di eventi sulla modifica del campo Metodo di comunicazione preferito. Questo gestore di eventi chiamerà la funzione JavaScript che abbiamo appena scritto. Seleziona le seguenti opzioni dalla sezione Gestore eventi.
Control - Metodo di comunicazione preferito
Event - OnChange
Quindi fare clic su Add pulsante, come mostrato nello screenshot seguente.
Step 10 - Nella finestra successiva delle proprietà del gestore, specificheremo il metodo da chiamare quando si verifica l'evento di modifica.
Seleziona Library come new_contacts.js e Function come validatePreferredMethodOfCommunication. Fare clic su OK.
Step 11- Ora sarai in grado di vedere la libreria dei moduli (risorsa web) e gli eventi registrati su di essa. Fare clic su OK.
Step 12 - Fare clic su Salva seguito da Pubblica.
Step 13- Ora apri qualsiasi modulo di contatto e imposta il metodo di comunicazione preferito come telefono. Ciò renderà obbligatorio il campo Telefono cellulare. Se ora provi a salvare questo contatto senza inserire alcun numero di cellulare, verrà visualizzato un errore che dice "Devi fornire un valore per il telefono cellulare".
Conclusione
In questo capitolo, siamo partiti dalla comprensione delle tre importanti applicazioni di JavaScript in CRM. Successivamente, abbiamo esplorato il modello Xrm.Page e lo abbiamo utilizzato per apprendere la programmazione dei form insieme a un esempio.
In questo capitolo, apprenderemo le varie risorse Web in Microsoft Dynamics CRM.
Applicazioni di risorse Web HTML
Una risorsa Web HTML in CRM può contenere qualsiasi contenuto HTML che può essere visualizzato su un browser. Considera i seguenti scenari in cui desideri utilizzare le risorse Web HTML:
Hai una pagina HTML statica che vuoi mostrare nella schermata CRM.
Hai una pagina HTML personalizzata che prevede alcuni parametri di input e viene visualizzata in base a tali parametri di input. Ad esempio, si consideri che si stanno recuperando informazioni da un'API o un servizio Web esterno e si desidera visualizzarli in CRM.
Desideri visualizzare alcune informazioni con un aspetto e un aspetto diversi rispetto all'interfaccia utente CRM standard.
Hai una pagina ASPX personalizzata (all'esterno dell'applicazione CRM) che viene renderizzata in base ai parametri di input. Poiché CRM non consente di disporre di risorse Web ASPX, è possibile creare una risorsa Web HTML e chiamare la pagina ASPX esterna da questa pagina HTML.
Esempio di risorsa Web HTML
Creeremo una risorsa Web HTML molto semplice che visualizzerà un testo personalizzato "Benvenuto in TutorialsPoint". Notare che questo è un esempio molto semplice di una risorsa Web HTML. In pratica, le risorse Web HTML sarebbero più complesse di così.
Step 1 - Crea un file HTML denominato sampleHTMLWebResource.html e copia il codice seguente.
<!DOCTYPE html>
<htmllang = "en"xmlns = "http://www.w3.org/1999/xhtml">
<head>
<metacharset = "utf-8"/>
<title>Welcome to Tutorials Point</title>
</head>
<body>
<h1>Welcome to Tutorials Point. This is an example of HTML Web Resource.</h1>
</body>
</html>
Step 2- Per prima cosa, creeremo una nuova risorsa web e poi vi faremo riferimento nel modulo di contatto. Apri DefaultSolution e vai alla scheda WebResources dal pannello di sinistra. Fare clic su Nuovo.
Step 3- Si aprirà una finestra Nuova risorsa Web. Immettere i dettagli come mostrato nella seguente schermata e sfogliare il file HTML che abbiamo creato nel passaggio 1. Fare clic su Salva e pubblica. Chiudi la finestra.
Step 4 - Vedrai la nuova risorsa web aggiunta alla griglia delle risorse web.
Step 5- Ora apri il modulo di contatto tramite Impostazioni → Personalizzazioni → Personalizza il sistema → Contatto → Modulo principale. Seleziona la sezione Informazioni di contatto e passa alla scheda Inserisci dalla barra multifunzione in alto. Fare clic su risorsa Web.
Step 6- Si aprirà una finestra Aggiungi risorsa Web. Fare clic su Ricerca risorse Web da questa finestra, che aprirà la finestra Record di ricerca risorse Web. Cerca nella risorsa Web appena creata (new_sampleHTMLWebResource), selezionala dalla griglia e fai clic su Aggiungi.
Step 7- Tornando ad Aggiungi risorsa Web, inserisci il nome e l'etichetta come mostrato nella seguente schermata e fai clic su OK. Chiudi la finestra.
Vedrai la risorsa Web HTML aggiunta sotto il campo Indirizzo.
Step 8 - Per verificarlo, apri qualsiasi record di contatto e vedrai il contenuto della risorsa Web HTML visualizzato lì.
Limitazioni delle risorse Web HTML
Non esiste un modo supportato per utilizzare il codice lato server nelle risorse Web HTML.
Le risorse Web HTML possono accettare solo un numero limitato di parametri. Per passare più di un valore nel parametro dati, sarà necessario codificare i parametri includendo la logica di decodifica sull'altra estremità.
I flussi di lavoro in CRM consentono di automatizzare processi aziendali semplici e complessi all'interno di CRM. È possibile creare flussi di lavoro utilizzando le funzionalità predefinite di CRM o scrivere flussi di lavoro personalizzati con codice .NET per l'implementazione di flussi di lavoro complessi. I processi del flusso di lavoro vengono eseguiti in background o in tempo reale e possono facoltativamente richiedere un input dell'utente.
I flussi di lavoro possono essere attivati in base a condizioni specifiche o possono anche essere avviati manualmente dagli utenti. Internamente, i flussi di lavoro CRM vengono implementati utilizzando Windows Workflow Foundation. In questo capitolo impareremo come configurare i flussi di lavoro.
La configurazione di un flusso di lavoro ha le seguenti parti principali (in sequenza):
- Configura l'entità su cui verrà eseguito il flusso di lavoro
- Configura se il flusso di lavoro verrà eseguito in modo sincrono o asincrono
- Configurare il messaggio (evento) su cui verrà eseguito il flusso di lavoro
- Configurare l'ambito in cui verrà eseguito il flusso di lavoro
- Configurare le fasi e i passaggi (azioni) del flusso di lavoro
Flusso di lavoro sincrono / asincrono
Quando crei un flusso di lavoro, vedrai l'opzione Esegui questo flusso di lavoro in background (consigliato) che determina se il flusso di lavoro verrà eseguito in tempo reale (in modo sincrono) o in background (in modo asincrono).
In genere, l'approccio consigliato consiste nell'eseguire i flussi di lavoro in background poiché utilizzano le risorse di sistema come e quando disponibili. Tuttavia, puoi sempre tornare da un flusso di lavoro in tempo reale a un flusso di lavoro in background e viceversa.
Messaggi del flusso di lavoro
I flussi di lavoro possono essere registrati su eventi specifici come segue:
- Quando viene creato un record
- Quando lo stato di un record cambia
- Quando viene assegnato un record
- Quando il valore di un campo record cambia
- Quando un record viene eliminato
Ambito del flusso di lavoro
I flussi di lavoro consentono di impostare l'ambito in cui verrà eseguito il flusso di lavoro. Di seguito sono riportati gli ambiti del flusso di lavoro supportati:
User | Il flusso di lavoro verrà eseguito solo sui record di proprietà dello stesso utente dell'utente del flusso di lavoro. |
Business Unit | Il flusso di lavoro verrà eseguito sui record di proprietà degli utenti dell'unità di business come l'utente del flusso di lavoro. |
Parent Child Business Units | Il flusso di lavoro verrà eseguito sui record di proprietà degli utenti dell'unità di business come l'utente del flusso di lavoro, nonché sulle unità di business secondarie. |
Organization | Il flusso di lavoro verrà eseguito sui record di proprietà di qualsiasi utente in CRM. |
Passaggi del flusso di lavoro
I flussi di lavoro in CRM sono una combinazione di una serie di passaggi che il flusso di lavoro seguirà. Puoi anche dividere questi passaggi in fasi logiche. I passaggi seguenti sono supportati dai flussi di lavoro CRM:
Conditional Steps |
|
||||||||||||||
Wait Steps |
|
||||||||||||||
Action Steps |
|
Esempio di flusso di lavoro
In questo esempio, creeremo un semplice flusso di lavoro che viene eseguito in background per assegnare qualsiasi record di contatto appena creato a un utente specifico e quindi inviare un'e-mail di benvenuto al cliente.
Step 1 - Vai a Impostazioni → Processi.
Step 2 - Fare clic su Nuovo.
Step 3 - Nella finestra CreateProcess, inserisci i seguenti dettagli:
Process Name - Nuovo flusso di lavoro del cliente (questo può essere qualsiasi nome tu voglia)
Category - Flusso di lavoro
Entity - Contatto (Questa sarà l'entità su cui stai creando il flusso di lavoro. Nel nostro caso è Contatto)
Run this workflow in the background (recommended)- Seleziona questa opzione poiché stiamo creando un flusso di lavoro asincrono in background. Infine, fai clic su OK.
Step 4 - Nella finestra Nuovo processo immettere i seguenti dettagli:
Activate As - Processo
Scope - Utente
Start when - Il record viene creato
Clic Add Step → Assegna record.
Step 5- Vedrai un nuovo passaggio aggiunto al flusso di lavoro. In questo passaggio, specificheremo l'utente a cui assegnare tutti i contatti creati. Immettere il nome del passaggio comeAssign Record to Team. L'opzione Assegna sarà predefinita come entità su cui stiamo creando il flusso di lavoro (Contatto nel nostro caso). Fare clic sull'icona di ricerca.
Step 6- Nella finestra di ricerca, seleziona qualsiasi utente che desideri. Puoi anche selezionare un team specifico a cui desideri assegnare i record. Fare clic su Aggiungi.
Step 7- Aggiungere un altro passaggio facendo clic su Aggiungi passaggio → Invia e-mail. In questo passaggio, configureremo l'invio di e-mail al cliente.
Step 8- Verrà aggiunto un nuovo passaggio. Immettere il nome come Invia e-mail al cliente. Fare clic su Imposta proprietà.
Step 9 - Nella finestra successiva per configurare la posta elettronica, eseguire le seguenti operazioni:
From- Fare clic sul campo Da. Nel pannello di destra, seleziona OwningUser e User. Fare clic su Aggiungi → OK.
To- Fare clic sul campo A. Nel pannello di destra, seleziona Contatto e contatto. Fare clic su Aggiungi → OK.
Subject - Immettere un oggetto pertinente.
Body - Immettere un contenuto del corpo pertinente.
Step 10 - Fare clic su Salva e quindi su Attiva.
Step 11 - Nel popup di conferma attivazione processo che segue, fare clic su Attiva.
Step 12- Vai alla scheda Contatti e crea un nuovo contatto. Non appena crei un nuovo contatto salvando il record, vedrai il campo Proprietario impostato per l'utente, che avevi configurato nel flusso di lavoro. Inoltre, se fai clic sulla scheda Attività, vedrai un'attività di posta elettronica creata per questo contatto. Ciò conferma che il flusso di lavoro è stato eseguito correttamente.
Flusso di lavoro vs plugin
Sia i flussi di lavoro che i plug-in possono essere utilizzati per estendere e automatizzare le funzionalità CRM. In molti scenari, entrambi gli approcci possono essere utilizzati in modo intercambiabile al posto dell'altro. Ad esempio, se hai il semplice requisito di inviare un'e-mail ai tuoi clienti, puoi farlo tramite un plug-in o un flusso di lavoro.
Quindi, come scegli tra la creazione di un flusso di lavoro e un plug-in? Il seguente elenco cerca di spiegare lo stesso:
Sebbene plugin e flussi di lavoro possano essere utilizzati sia per eseguire logica sincrona che asincrona, i plug-in sono generalmente preferiti per la logica sincrona, mentre i flussi di lavoro per la logica asincrona.
In generale, per implementare una logica di business complessa, i plug-in sono preferiti ai flussi di lavoro. I flussi di lavoro sono preferiti quando si desidera ottenere funzionalità relativamente più semplici (come l'invio di e-mail, l'assegnazione di utenti, ecc.)
I plugin devono essere sviluppati con la codifica, mentre i flussi di lavoro possono essere configurati direttamente dagli utenti aziendali senza alcuna conoscenza dei flussi di lavoro.
I flussi di lavoro possono essere eseguiti su richiesta. Pertanto, se ci sono requisiti in cui l'utente desidera eseguire manualmente una certa logica, i flussi di lavoro sarebbero una scelta migliore.
Dall'impatto sulle prestazioni, i plug-in sincroni forniscono prestazioni (e velocità effettiva) migliori rispetto ai flussi di lavoro in tempo reale in scenari in cui la frequenza delle richieste è maggiore.
Conclusione
Questo capitolo ci ha introdotto a una delle funzionalità molto importanti del CRM: i flussi di lavoro. Per prima cosa abbiamo compreso i flussi di lavoro di sincronizzazione / asincronia, i messaggi, l'ambito, i passaggi e infine abbiamo esaminato un esempio dal vivo di creazione ed esecuzione di un flusso di lavoro. Infine, abbiamo visto le differenze tra un flusso di lavoro e un plug-in.
Un plug-in è una logica aziendale personalizzata che si integra con Microsoft Dynamics CRM per modificare o estendere il comportamento standard della piattaforma. I plug-in agiscono come gestori di eventi e vengono registrati per essere eseguiti su un particolare evento in CRM. I plug-in sono scritti in C # o VB e possono essere eseguiti in modalità sincrona o asincrona.
Alcuni scenari in cui scriveresti un plugin sono:
Si desidera eseguire una logica aziendale come l'aggiornamento di determinati campi di un record o l'aggiornamento dei record correlati, ecc. Quando si crea o si aggiorna un record CRM.
Si desidera chiamare un servizio Web esterno su determinati eventi come il salvataggio o l'aggiornamento di un record.
Si desidera calcolare dinamicamente i valori dei campi quando viene aperto un record.
Desideri automatizzare processi come l'invio di e-mail ai tuoi clienti su determinati eventi in CRM.
Framework degli eventi
Event Processing Framework in CRM elabora le richieste di plug-in sincrone e asincrone passandole alla pipeline di esecuzione degli eventi. Ogni volta che un evento attiva la logica di un plug-in, viene inviato un messaggio al servizio Web dell'organizzazione CRM dove può essere letto o modificato da altri plug-in o da qualsiasi operazione principale della piattaforma.
Fasi della pipeline del plugin
L'intera pipeline dei plug-in è suddivisa in più fasi in cui è possibile registrare la logica aziendale personalizzata. La fase della pipeline specificata indica in quale fase del ciclo di esecuzione del plug-in viene eseguito il codice del plug-in. Tra tutte le fasi della pipeline specificate nella tabella seguente, è possibile registrare i plug-in personalizzati solo su eventi pre e post. Non è possibile registrare plug-in su Platform Core Main Operations.
Evento | Nome d'arte | Descrizione |
---|---|---|
Pre-Evento | Pre-convalida | Fase nella pipeline per i plug-in che devono essere eseguiti prima dell'operazione di sistema principale. I plug-in registrati in questa fase possono essere eseguiti al di fuori della transazione del database. |
Pre-Evento | Preoperativo | Fase nella pipeline per i plug-in che devono essere eseguiti prima del funzionamento del sistema principale. I plugin registrati in questa fase vengono eseguiti all'interno della transazione del database. |
Operazione principale della piattaforma | MainOperation | Intransazione, l'operazione principale del sistema, come creare, aggiornare, eliminare e così via. Nessun plug-in personalizzato può essere registrato in questa fase. Solo per uso interno. |
Post-evento | Post-operazione | Fase nella pipeline per i plug-in che devono essere eseguiti dopo l'operazione principale. I plug-in registrati in questa fase vengono eseguiti all'interno della transazione del database. |
Ogni volta che l'applicazione CRM richiama un evento (come il salvataggio o l'aggiornamento di un record), viene eseguita la seguente sequenza di azioni:
L'evento attiva una chiamata al servizio Web e l'esecuzione viene passata attraverso le fasi della pipeline degli eventi (pre-evento, operazioni principali della piattaforma, post-evento).
Le informazioni vengono impacchettate internamente come messaggio OrganizationRequest e infine inviate ai metodi del servizio Web CRM interno e alle operazioni principali della piattaforma.
Il messaggio OrganizationRequest viene prima ricevuto dai plug-in pre-evento, che possono modificare le informazioni prima di passarle alle operazioni principali della piattaforma. Dopo le operazioni principali della piattaforma, il messaggio viene impacchettato come OrganizationResponse e passato ai plug-in post-operazione. I plug-in post-operatorio possono facoltativamente modificare queste informazioni prima di passarle al plug-in asincrono.
I plugin ricevono queste informazioni sotto forma di oggetto di contesto che viene passato al metodo Execute, dopodiché avviene l'ulteriore elaborazione.
Al termine dell'elaborazione del plug-in, l'esecuzione viene ritrasmessa all'applicazione che ha attivato l'evento.
Messaggi del plugin
I messaggi sono gli eventi su cui è registrato il plugin (o la logica aziendale). Ad esempio, puoi registrare un plug-in sull'entità Crea messaggio di contatto. Ciò attiverà la logica aziendale ogni volta che viene creato un nuovo record di contatto.
Per le entità personalizzate, di seguito sono riportati i messaggi supportati in base al fatto che l'entità sia di proprietà dell'utente o di proprietà dell'organizzazione.
Nome messaggio | Tipo di proprietà |
---|---|
Assegnare | Solo entità di proprietà dell'utente |
Creare | Entità di proprietà dell'utente e di proprietà dell'organizzazione |
Elimina | Entità di proprietà dell'utente e di proprietà dell'organizzazione |
Concedere l'accesso | Solo entità di proprietà dell'utente |
ModifyAccess | Solo entità di proprietà dell'utente |
Recuperare | Entità di proprietà dell'utente e di proprietà dell'organizzazione |
RetrieveMultiple | Entità di proprietà dell'utente e di proprietà dell'organizzazione |
RetrievePrincipalAccess | Solo entità di proprietà dell'utente |
RetrieveSharedPrincipalsAndAccess | Solo entità di proprietà dell'utente |
Revocare l'accesso | Solo entità di proprietà dell'utente |
SetState | Entità di proprietà dell'utente e di proprietà dell'organizzazione |
SetStateDynamicEntity | Entità di proprietà dell'utente e di proprietà dell'organizzazione |
Aggiornare | Entità di proprietà dell'utente e di proprietà dell'organizzazione |
Per le entità predefinite predefinite, ci sono più di 100 messaggi supportati. Alcuni di questi messaggi sono applicabili a tutte le entità mentre alcuni di essi sono specifici per determinate entità. Puoi trovare l'elenco completo dei messaggi supportati in un file excel all'interno dell'SDK:SDK\Message-entity support for plug-ins.xlsx
Plugin di scrittura
In questa sezione impareremo le basi per scrivere un plugin. Creeremo un plug-in di esempio che crea un'attività Task da seguire con il cliente ogni volta che un nuovo cliente viene aggiunto al sistema, cioè ogni volta che viene creato un nuovo Contactrecord in CRM.
Prima di tutto, dovresti includere i riferimenti a Microsoft.Xrm.Sdkspazio dei nomi. L'SDK CRM contiene tutti gli assembly SDK richiesti. Supponendo che tu abbia già scaricato e installato l'SDK nel Capitolo 2, apri Visual Studio. Crea un nuovo progetto di tipo Libreria di classi. È possibile denominare il progetto come SamplePlugins e fare clic su OK.
Aggiungi il riferimento di Microsoft.Xrm.Sdkassemblaggio al tuo progetto. L'assemblea è presente inSDK/Bin.
Ora crea una classe denominata PostCreateContact.cs ed estendi la classe da IPlugin. Fino ad ora, il tuo codice sarà simile al seguente.
Sarà inoltre necessario aggiungere un riferimento a System.Runtime.Serialization. Dopo aver aggiunto i riferimenti richiesti, copia il codice seguente all'interno del filePostCreateContact classe.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xrm.Sdk;
namespace SamplePlugins {
public class PostCreateContact:IPlugin {
/// A plug-in that creates a follow-up task activity when a new account is created.
/// Register this plug-in on the Create message, account entity,
/// and asynchronous mode.
public void Execute(IServiceProviderserviceProvider) {
// Obtain the execution context from the service provider.
IPluginExecutionContext context =(IPluginExecutionContext)
serviceProvider.GetService(typeof(IPluginExecutionContext));
// The InputParameters collection contains all the data
passed in the message request.
if(context.InputParameters.Contains("Target")&&
context.InputParameters["Target"]isEntity) {
// Obtain the target entity from the input parameters.
Entity entity = (Entity)context.InputParameters["Target"];
try {
// Create a task activity to follow up with the account customer in 7 days
Entity followup = new Entity("task");
followup["subject"] = "Send e-mail to the new customer.";
followup["description"] =
"Follow up with the customer. Check if there are any new issues
that need resolution.";
followup["scheduledstart"] = DateTime.Now;
followup["scheduledend"] = DateTime.Now.AddDays(2);
followup["category"] = context.PrimaryEntityName;
// Refer to the contact in the task activity.
if(context.OutputParameters.Contains("id")) {
Guid regardingobjectid = new Guid(context.OutputParameter
s["id"].ToString());
string regardingobjectidType = "contact";
followup["regardingobjectid"] =
new EntityReference(rega rdingobjectidType,regardingobjectid);
}
// Obtain the organization service reference.
IOrganizationServiceFactory serviceFactory =
(IOrganizationSer viceFactory)serviceProvider.GetService
(typeof(IOrganizationServiceFactory));
IOrganizationService service =
serviceFactory.CreateOrganizationService(context.UserId);
// Create the followup activity
service.Create(followup);
} catch(Exception ex) {
throw new InvalidPluginExecutionException(ex.Message);
}
}
}
}
}
Di seguito è riportata una spiegazione dettagliata di ciò che fa questo codice:
Step 1- Implementa il metodo Execute prendendo l'oggetto IServiceProvider come parametro. Il fornitore di servizi contiene riferimenti a molti oggetti utili che utilizzerai all'interno del plugin.
Step 2 - Ottiene l'oggetto IPluginExecutionContext utilizzando il metodo GetService di IServiceProvider.
Step 3- Ottiene l'oggetto dell'entità di destinazione dalla raccolta InputParameters dell'oggetto contesto. Questo oggetto della classe Entity fa riferimento al record dell'entità Contact su cui verrebbe registrato il nostro plugin.
Step 4- Quindi crea un oggetto di entità Task e imposta oggetto, descrizione, date, categoria e merito dell'oggetto appropriati. L'idoggetto relativo indica per quale record di contatto viene creato questo record di attività. Puoi vedere che il codice ottiene l'ID del record del contatto padre utilizzando context.OutputParameters e lo associa al record dell'entità Task che hai creato.
Step 5 - Crea l'oggetto di IOrganizationServiceFactory utilizzando l'oggetto IServiceProvider.
Step 6 - Crea l'oggetto di IOrganizationService utilizzando l'oggetto IOrganizationServiceFactory.
Step 7- Infine, utilizzando il metodo Create di questo oggetto di servizio. Crea l'attività di follow-up che viene salvata in CRM.
Firma dell'assembly del plugin
Questa sezione è applicabile solo se stai registrando l'assembly del tuo plugin per la prima volta. È necessario accedere all'assembly con una chiave per poter distribuire il plug-in. Fare clic con il pulsante destro del mouse sulla soluzione e fare clic su Proprietà.
Seleziona la scheda Firma dalle opzioni a sinistra e seleziona l'opzione "Firma l'assieme". Quindi, seleziona Nuovo dall'opzione Scegli un file chiave con nome sicuro.
Immettere il nome del file della chiave come sampleplugins (può essere qualsiasi altro nome desiderato). Deseleziona l'opzione Proteggi il mio file chiave con una password e fai clic su OK. Fare clic su Salva.
Infine, crea la soluzione. Fare clic con il pulsante destro del mouse → Crea. La creazione della soluzione genererà la DLL dell'assembly, che useremo nel prossimo capitolo per registrare questo plugin.
Gestione delle eccezioni nel plugin
Il più delle volte, la logica del tuo plug-in dovrà gestire le eccezioni in fase di esecuzione. Per i plugin sincroni, puoi restituire un fileInvalidPluginExecutionExceptioneccezione, che mostrerà una finestra di dialogo di errore all'utente. La finestra di dialogo di errore conterrà il messaggio di errore personalizzato passato all'oggetto Message dell'oggetto eccezione.
Se guardi il nostro codice, stiamo lanciando l'eccezione InvalidPluginExecutionException nel nostro blocco catch.
throw new InvalidPluginExecutionException(ex.Message);
Conclusione
I plugin sono decisamente cruciali per qualsiasi implementazione CRM personalizzata. In questo capitolo ci siamo concentrati sulla comprensione del modello del framework degli eventi, sulle fasi della pipeline, sui messaggi e sulla scrittura di un plug-in di esempio. Nel prossimo capitolo, registreremo questo plugin in CRM e lo vedremo funzionare da uno scenario end-to-end.
Nell'ultimo capitolo, abbiamo creato un plug-in di esempio per creare un'attività di follow-up quando viene creato un record di contatto. In questo capitolo, vedremo come registrare questo plugin in CRM utilizzando lo strumento di registrazione dei plugin. È possibile trovare lo strumento in questa posizione: SDK / Tools / PluginRegistration / PluginRegistration.exe.
Per comodità, il processo di registrazione del plug-in è diviso in tre sezioni:
- Connessione al server
- Registrazione dell'Assemblea
- Registrazione del plugin
Connessione al server
Step 1 - Esegui il file PluginRegistration.exedalla posizione specificata in precedenza. Fare clic sul pulsante Crea nuova connessione.
Step 2- Nella finestra di accesso, scegli Office 365 poiché stiamo utilizzando la versione online di CRM. Immettere le proprie credenziali e fare clic su Accedi.
Step 3 - Lo strumento si aprirà e avrà l'aspetto della seguente schermata.
Registrazione dell'Assemblea
Step 1 - Vai a Register → Register New Assembly.
Step 2- Questo aprirà la finestra Registra nuovo assieme. Fare clic sull'icona Naviga e individuare la DLL del plugin che hai creato nell'ultimo capitolo.
Step 3- Dopo aver esplorato la DLL, fare clic su Carica assieme. Questo popolerà l'assembly SamplePlugins e tutte le sue classi di plugin. Puoi vedere ilPostCreateContactclasse plugin evidenziata di seguito. Se l'assembly di plugin avesse 3 classi di plugin, avrebbe mostrato tre plugin elencati lì.
Step 4- Seleziona Modalità di isolamento come Sandbox, Posizione come database e fai clic su Registra plug-in selezionati. Ti mostrerà un messaggio di successo, se la registrazione è andata a buon fine.
Registrazione del plugin
Adesso registreremo i passaggi specifici su cui verranno chiamati i singoli plugin.
Step 1 - Seleziona il plugin PostCreateContact.
Step 2 - Fare clic su Registra → Registra nuovo passaggio.
Step 3 - Registreremo questo plugin alla creazione dell'entità Contatto, in fase di post-operatorio e in modalità sincrona.
Message - Crea
Primary Entity - Contatto
Event Pipeline Stage of Execution - Post-operazione
Execution Mode - Sincrono
Mantieni il resto delle opzioni per impostazione predefinita e fai clic su Registra nuovo passaggio.
Puoi vedere un nuovo passaggio aggiunto al plugin.
Ora andremo su CRM e testeremo se il nostro plugin funziona correttamente. Tieni presente che questi passaggi del test sono specifici del nostro plug-in di esempio.
Testare il plugin
Vai alla scheda Contatti e crea un nuovo record. Dopo aver salvato il record, puoi vedere una nuova attività creata e associata a questo record.
Puoi fare clic sull'attività per vedere i dettagli che avevamo impostato nel codice.
Ciò conferma che il nostro plug-in è stato eseguito correttamente. Allo stesso modo, puoi estendere i tuoi plugin per ottenere funzionalità altamente complesse.
Microsoft Dynamics CRM fornisce due importanti servizi Web che vengono utilizzati per accedere a CRM da un'applicazione esterna e richiamare metodi Web per eseguire operazioni sui dati aziendali comuni come creare, eliminare, aggiornare e trovare in CRM.
Considera i seguenti scenari:
Hai un'applicazione .NET esterna, che deve parlare con CRM. Ad esempio, potresti voler inserire un record di contatto in CRM quando un nuovo cliente viene registrato nella tua applicazione esterna.
O forse, vuoi cercare i record in CRM e visualizzare i risultati della ricerca nella tua applicazione esterna.
In tali scenari, è possibile utilizzare i servizi Web esposti da CRM per utilizzarli nella propria applicazione ed eseguire operazioni di creazione, eliminazione, aggiornamento e ricerca in CRM.
Servizio Web IDiscoveryService
Questo servizio Web restituisce un elenco di organizzazioni a cui appartiene l'utente specificato e l'endpoint URL per ciascuna organizzazione.
Servizio Web IOrganizationService
Questo servizio Web è il servizio Web principale utilizzato per accedere a dati e metadati in CRM. IOrganizationService utilizza due importanti assembly:Microsoft.Xrm.Sdk.dll e Microsoft.Crm.Sdk.Proxy.dll. Questi assembly possono essere trovati nel pacchetto CRM SDK all'interno diBin cartella.
Microsoft.Xrm.Sdk.dll
Questo assembly definisce i metodi e i tipi xRM di base, incluse le classi proxy per semplificare la connessione a Microsoft Dynamics CRM, i metodi di autenticazione ei contratti di servizio.
Microsoft.Crm.Sdk.Proxy.dll
Questo assembly definisce le richieste e le risposte per i messaggi non principali, nonché le enumerazioni necessarie per lavorare con i dati dell'organizzazione. Di seguito sono riportati gli spazi dei nomi supportati da questi due assembly.
Ciascuno di questi assembly supporta determinati messaggi, che verranno usati per lavorare con i dati archiviati in qualsiasi entità. Un elenco completo dei messaggi da loro supportati può essere trovato nei seguenti collegamenti:
Supported xRM Messages - https://msdn.microsoft.com/en-us/library/gg334698.aspx
Supported CRM Messages - https://msdn.microsoft.com/en-us/library/gg309482.aspx
Metodi del servizio Web IOrganizationService
Il IOrganizationService fornisce otto metodi che consentono di eseguire tutte le operazioni comuni sul sistema e sulle entità personalizzate, nonché sui metadati dell'organizzazione.
Suor n | Metodo e descrizione |
---|---|
1 | IOrganizationService.Create Crea un record. |
2 | IOrganizationService.Update Aggiorna un record esistente. |
3 | IOrganizationService. Retrieve Recupera un record. |
4 | IOrganizationService. RetrieveMultiple Recupera una raccolta di record. |
5 | IOrganizationService. Delete Elimina un record. |
6 | IOrganizationService. Associate Crea un collegamento tra i record. |
7 | IOrganizationService.Disassociate Elimina un collegamento tra i record. |
8 | IOrganizationService.Execute Utilizzato per l'elaborazione dei record comuni e per l'elaborazione specializzata come la risoluzione dei casi, il rilevamento dei duplicati, ecc. |
Esempio di servizio Web
Per capire come funzionano i servizi Web in CRM, esamineremo un esempio fornito da CRM SDK. In questo esempio, creeremo un nuovo record dell'account, lo aggiorneremo e infine lo elimineremo utilizzando il CRMIOrganizationService servizio web.
Step 1- Apri la cartella in cui hai estratto CRM SDK. Ora apri la soluzione QuickStartCS.sln passando alla seguente posizione: SDK \ SampleCode \ CS \ QuickStart
Step 2 - Esploreremo il QuickStart con Simplified Connectionprogetto. Apertoapp.configin questo progetto. Per impostazione predefinita, ilconnectionStrings la sezione in questo file sarà commentata.
Da questo, rimuovere il commento dalla prima chiave della stringa di connessione e modificare i seguenti tre dettagli:
Url- Specifica l'URL della tua istanza CRM. Nel nostro caso, poiché stiamo utilizzando la versione online del CRM, dovrai menzionare quell'URL.
Username - Il tuo nome utente CRM Online.
Password - La tua password CRM Online.
Step 3 - Apri il file SimplifiedConnection.cs file in questo progetto e Runmethod al suo interno.
public void Run(StringconnectionString, boolpromptforDelete) {
try {
// Establish a connection to the organization web service using CrmConnection.
Microsoft.Xrm.Client.CrmConnection connection =
CrmConnection.Parse(connectionString);
// Obtain an organization service proxy.
// The using statement assures that the service proxy will be properly disposed.
using(_orgService = new OrganizationService(connection)) {
//Create any entity records this sample requires.
CreateRequiredRecords();
// Obtain information about the logged on user from the web service.
Guid userid = ((WhoAmIResponse)_orgService.Execute(new WhoAmIRequest())).UserId;
SystemUser systemUser = (SystemUser)_orgService.Retrieve("systemuser",userid,
new ColumnSet(newstring[]{"firstname","lastname"}));
Console.WriteLine("Logged on user is {0} {1}.",
systemUser.FirstName,systemUser.LastName);
// Retrieve the version of Microsoft Dynamics CRM.
RetrieveVersionRequest versionRequest = new RetrieveVersionRequest();
RetrieveVersionResponse versionResponse =
(RetrieveVersionResponse)_orgService.Execute(versionRequest);
Console.WriteLine("Microsoft Dynamics CRM version {0}.",
versionResponse.Version);
// Instantiate an account object. Note the use of option set
enumerations defined in OptionSets.cs.
// Refer to the Entity Metadata topic in the SDK documentation to
determine which attributes must
// be set for each entity.
Account account = new Account{Name = "Fourth Coffee"};
account.AccountCategoryCode = new OptionSetValue(
(int)AccountAccountCateg oryCode.PreferredCustomer);
account.CustomerTypeCode = new OptionSetValue(
(int)AccountCustomerTypeCod e.Investor);
// Create an account record named Fourth Coffee.
_accountId = _orgService.Create(account);
Console.Write("{0} {1} created, ",account.LogicalName,account.Name);
// Retrieve the several attributes from the new account.
ColumnSet cols = new ColumnSet(
new String[]{"name","address1_postalcode","lastusedincampaign"});
Account retrievedAccount =
(Account)_orgService.Retrieve("account", _accountId, cols);
Console.Write("retrieved, ");
// Update the postal code attribute.
retrievedAccount.Address1_PostalCode = "98052";
// The address 2 postal code was set accidentally, so set it to null.
retrievedAccount.Address2_PostalCode = null;
// Shows use of a Money value.
retrievedAccount.Revenue = new Money(5000000);
// Shows use of a Boolean value.
retrievedAccount.CreditOnHold = false;
// Update the account record.
_orgService.Update(retrievedAccount);
Console.WriteLine("and updated.");
// Delete any entity records this sample created.
DeleteRequiredRecords(promptforDelete);
}
}
// Catch any service fault exceptions that Microsoft Dynamics CRM throws.
catch(FaultException<microsoft.xrm.sdk.organizationservicefault>) {
// You can handle an exception here or pass it back to the calling method.
throw;
}
}
Step 4- Questo metodo fondamentalmente dimostra tutte le operazioni CRUD utilizzando i servizi web CRM. Il codice crea prima un'istanza dell'organizzazione, quindi crea un record Account, aggiorna il record creato e infine lo elimina. Esaminiamo i componenti importanti di questo codice. Per vedere le modifiche in movimento in CRM quando viene eseguito questo codice, puoi eseguire il debug di questo codice passo dopo passo (come discusso di seguito) e visualizzare contemporaneamente le modifiche in CRM.
Step 4.1 - Stabilisce la connessione all'organizzazione utilizzando la stringa di connessione in cui abbiamo modificato Step 2.
Microsoft.Xrm.Client.CrmConnection connection = CrmConnection.Parse(connectionString);
Step 4.2 - Ottiene un'istanza proxy del servizio Web dell'organizzazione CRM.
_orgService = new OrganizationService(connection)
Step 4.3 - Crea un nuovo oggetto entità Account e ne imposta Name, AccountCategoryCode e CustomerTypeCode.
Account account = new Account{Name = "Fifth Coffee"};
account.AccountCategoryCode = new OptionSetValue(
(int)AccountAccountCategoryCode.P referredCustomer);
account.CustomerTypeCode = new OptionSetValue(
(int)AccountCustomerTypeCode.Investor);
Step 4.4 - Crea il nuovo record utilizzando il metodo Crea del servizio di organizzazione.
_accountId = _orgService.Create(account);
Se accedi a CRM, vedrai un record di account appena creato.
Step 4.5 - Una volta creato l'account, il servizio recupera il record da CRM utilizzando il metodo Recupera servizio web.
ColumnSet cols = new ColumnSet(new String[]{
"name","address1_postalcode","lastusedincampaign"});
Account retrievedAccount =
(Account)_orgService.Retrieve("account", _accountId, cols);
Step 4.6 - Dopo aver recuperato il record, è possibile impostare il valore aggiornato del record.
retrievedAccount.Address1_PostalCode = "98052";
retrievedAccount.Address2_PostalCode = null;
retrievedAccount.Revenue = new Money(5000000);
retrievedAccount.CreditOnHold = false;
Step 4.7 - Dopo aver impostato il valore aggiornato del record, aggiorna nuovamente il record nel database CRM utilizzando il metodo del servizio web Aggiorna.
_orgService.Update(retrievedAccount);
Se apri il record in CRM, vedrai questi valori aggiornati lì.
Step 4.8 - Infine, elimina il record utilizzando il metodo Elimina servizio web.
_orgService.Delete(Account.EntityLogicalName, _accountId);
Se ora aggiorni lo stesso record in CRM, vedrai che il record non è più disponibile poiché è già stato eliminato.
Conclusione
In questo capitolo, abbiamo trattato due importanti servizi web forniti da CRM e un esempio funzionante di come questi servizi web possono essere utilizzati da un'applicazione esterna per eseguire varie operazioni CRUD.
Le soluzioni forniscono una struttura per la creazione di pacchetti, l'installazione e la disinstallazione di componenti in base alle funzionalità aziendali. Le soluzioni consentono ai personalizzatori e agli sviluppatori di creare, creare pacchetti e mantenere unità di software che estendono il CRM. Qualsiasi personalizzazione, estensione o configurazione eseguita in CRM viene impacchettata, gestita e distribuita utilizzando soluzioni. Le soluzioni possono essere esportate come file zip dall'organizzazione di origine, che può quindi essere importata nell'organizzazione di destinazione.
Per comprenderlo, considera i seguenti scenari di esempio:
In qualità di sviluppatore o personalizzatore, hai un CRM esteso o personalizzato nell'ambiente di sviluppo. Ora vuoi impacchettare le tue modifiche e spostarle nell'ambiente successivo. Per questo, puoi creare soluzioni individuali e pubblicarle in ambienti superiori.
In qualità di provider CRM di terze parti, hai creato un modulo CRM, che consente di gestire i dati nelle entità di Microsoft Dynamics CRM utilizzando API di servizi Web esterne. Ora vuoi vendere questo modulo ad altri clienti. Utilizzando le soluzioni, è possibile creare un pacchetto di questo modulo e distribuirlo ad altri client che saranno in grado di installare questa soluzione e utilizzare le funzionalità fornite dal modulo.
Tipi di soluzioni
Soluzione di sistema predefinita
La soluzione di sistema contiene i componenti della soluzione out-of-the-box definiti in Microsoft Dynamics CRM senza alcuna personalizzazione. Molti dei componenti nella soluzione di sistema sono personalizzabili e possono essere utilizzati in soluzioni gestite o personalizzazioni non gestite.
Durante questo tutorial, non abbiamo creato alcuna soluzione e stavamo personalizzando la soluzione di sistema predefinita. Se ricordi, siamo andati a Impostazioni → Personalizzazioni → Personalizza il sistema. Questa opzione personalizza direttamente la soluzione predefinita.
Soluzione gestita
Una soluzione gestita è una soluzione completata e destinata a essere distribuita e installata. Le soluzioni gestite possono essere installate sopra la soluzione di sistema o altre soluzioni gestite.
Important Points -
Se esporti una soluzione gestita da un'organizzazione e la importi in un'altra, non puoi modificare la soluzione nella nuova organizzazione.
Una soluzione gestita non fa riferimento direttamente alla soluzione di sistema.
La disinstallazione di una soluzione gestita disinstalla tutte le personalizzazioni associate alla soluzione.
Per impostazione predefinita, una soluzione gestita non può essere personalizzata nell'organizzazione di destinazione. Tuttavia, utilizzando il concetto di proprietà gestite è possibile definire se un componente della soluzione sarà personalizzabile e, in caso affermativo, quali parti specifiche del componente saranno personalizzabili una volta che la soluzione viene esportata come soluzione gestita.
Soluzione non gestita
Una soluzione non gestita è una soluzione ancora in fase di sviluppo e non destinata alla distribuzione. Una soluzione non gestita contiene tutte le personalizzazioni non gestite dei componenti CRM, inclusi eventuali componenti aggiunti, modificati, rimossi o eliminati. Per impostazione predefinita, qualsiasi nuova soluzione è una soluzione non gestita. Tuttavia, è possibile esportare una soluzione non gestita come soluzione gestita o non gestita.
Important Points -
Se esporti una soluzione non gestita da un'organizzazione e la importi in un'altra, puoi modificare la soluzione nella nuova organizzazione.
Una soluzione non gestita fa riferimento direttamente alla soluzione di sistema. Pertanto, le modifiche apportate a una soluzione non gestita verranno applicate a tutte le soluzioni non gestite che fanno riferimento agli stessi componenti, inclusa la soluzione di sistema.
Se elimini un componente della soluzione da una soluzione non gestita, il componente viene eliminato definitivamente dal sistema e non sarà più disponibile. Nel caso in cui si desideri rimuovere il componente da una soluzione non gestita specifica, utilizzare rimuovi invece di eliminare.
La disinstallazione di una soluzione non gestita non rimuove le personalizzazioni associate. Elimina solo la soluzione dal sistema, ma le modifiche apportate saranno ancora presenti.
Componenti della soluzione
Una soluzione può essere utilizzata per impacchettare i seguenti componenti che possono essere personalizzati utilizzando soluzioni predefinite, non gestite o gestite.
Tipo di componente | Componente |
---|---|
Schema | Entità |
Attributi | |
Relazioni | |
Set di opzioni globali | |
Interfaccia utente | Nastro dell'applicazione |
Mappa del sito | |
Forme | |
Nastri delle entità | |
Risorse web | |
Analytics | Dashboard |
Rapporti | |
Visualizzazioni | |
Processo / Codice | Processi |
Dialoghi | |
Flussi di lavoro | |
Plugin | |
Assemblee | |
Fasi di elaborazione | |
Modelli | Stampa unione |
Contrarre | |
Articolo | |
Sicurezza | Ruoli di sicurezza |
Profili di sicurezza a livello di campo |
Creazione di una soluzione
Step 1- Accedi a Impostazioni → Soluzioni. Fare clic su Nuovo.
Step 2 - Nella finestra che segue, inserisci i seguenti dettagli e fai clic su Salva e chiudi.
Display Name - Soluzione di esempio (può essere qualsiasi nome desiderato).
Name- Verrà impostato automaticamente in base al nome visualizzato. Tuttavia, puoi modificarlo.
Publisher- Editore predefinito. L'autore della soluzione fornisce un prefisso di personalizzazione comune e un prefisso del valore dell'opzione. La definizione di un autore della soluzione controlla come le soluzioni gestite possono essere aggiornate una volta distribuite. Tuttavia, per questo esempio e per la maggior parte dei casi generali, è possibile impostarlo come Publisher predefinito.
Version- Specificare una versione con il seguente formato: major.minor.build.revision. Ad esempio: 1.0.0.0.
Per impostazione predefinita, ogni soluzione viene aggiunta come soluzione non gestita. Dopo aver aggiunto una soluzione, è possibile aggiungere componenti della soluzione creandoli nel contesto di questa soluzione o aggiungendo i componenti esistenti da altre soluzioni. Ad esempio, puoi creare nuove entità, moduli, ecc. Nel contesto di questa nuova soluzione.
Esportazione di una soluzione
Dopo aver implementato tutte le modifiche che si desidera includere nel pacchetto come soluzione gestita o non gestita, è possibile esportare la soluzione come segue.
Step 1- Apri l'organizzazione di origine e vai a Impostazioni → Soluzioni. Seleziona la soluzione che desideri esportare e fai clic sul pulsante Esporta.
Step 2 - Nella finestra Pubblica personalizzazioni, fai clic su Pubblica tutte le personalizzazioni, quindi su Avanti.
Step 3- Nella finestra che segue, è possibile selezionare facoltativamente qualsiasi impostazione di sistema come la numerazione automatica, le impostazioni del calendario, ecc. Da esportare con la soluzione. Per ora, puoi evitare di selezionare qualsiasi opzione e fare clic su Avanti.
Step 4- Nella finestra Tipo di pacchetto, è possibile selezionare se si desidera esportare il pacchetto come soluzione gestita o non gestita. Per questo esempio, esportiamolo come non gestito. Al termine, fai clic su Avanti.
Step 5- Nella finestra successiva, puoi vedere la versione di origine del CRM che stai utilizzando e puoi selezionare la versione di destinazione. Fare clic su Esporta.
Step 6- Dopo aver fatto clic su Esporta, la soluzione verrà esportata come file zip. Salva questo file zip nella posizione desiderata sul tuo sistema.
Importazione di una soluzione
Ora, importeremo il file zip della soluzione che abbiamo esportato nella sezione precedente in una nuova organizzazione di destinazione.
Step 1- Apri l'organizzazione di destinazione e vai a Impostazioni → Soluzioni. Fare clic su Importa.
Step 2 - Sfoglia il file zip che hai scaricato dalla fase di esportazione e fai clic su Next.
Step 3- Dalla finestra successiva è possibile visualizzare i dettagli del pacchetto della soluzione, se necessario. Facendo clic su Importa verrà avviato il processo di importazione della soluzione.
Step 4- Una volta completato il processo di importazione, verrà visualizzato lo stato di successo o fallimento. Se il processo ha esito positivo, fare clic su Pubblica tutte le personalizzazioni. Nel caso in cui l'importazione della soluzione fallisca, ti fornirà un registro dettagliato degli errori in quale fase del processo di importazione non è riuscita.
Step 5- Abbiamo finito. La soluzione verrà importata correttamente nell'organizzazione di destinazione. Fare clic su Chiudi.
Risoluzione del conflitto
Poiché puoi avere più sviluppatori che lavorano sulla personalizzazione e sull'estensione del CRM, avrai più soluzioni gestite e non gestite. L'esportazione e l'importazione di queste soluzioni a volte può provocare scenari di conflitto. Ad esempio, supponiamo che "Soluzione A" contenga un campo in un modulo mentre "Soluzione B" ha rimosso il campo e "Soluzione C" ha rinominato il campo. In questo scenario, quale sarebbe il cambiamento finale? In tali scenari conflittuali, CRM utilizza due approcci.
Merge- Questo approccio viene utilizzato per i componenti dell'interfaccia utente come la barra dei comandi, i nastri e le mappe del sito. Secondo questo approccio, i componenti della soluzione vengono ricalcolati dal basso e le personalizzazioni non gestite dell'organizzazione sono le ultime ad essere applicate.
Top Wins- Questo approccio viene utilizzato per tutti gli altri scenari di conflitto ad eccezione dei componenti dell'interfaccia utente. In base a questo approccio, l'ultima modifica (gestita o non gestita) ha la priorità e viene applicata.
Conclusione
In questo capitolo abbiamo introdotto il concetto di soluzioni e diversi tipi di soluzione e dei loro componenti. Abbiamo quindi imparato a creare, esportare e importare una soluzione. Infine, abbiamo studiato le due strategie di risoluzione dei conflitti, che si verificano quando abbiamo più soluzioni gestite e non gestite che interessano gli stessi componenti della soluzione.