Microsoft Dynamics CRM 3.0
Il blog sul mondo di Microsoft Dynamics CRM 3.0 orientato allo sviluppo.
Qualche giorno fa è stata rilasciata la nuova versione della guida per l'implementazione del CRM 3.0. Sono state aggiornate alcune informazioni come:
The 3.0.5 update to the Implementation Guide contains several changes including the following:
Microsoft CRM client for Microsoft Office Outlook memory requirements update.
Information about SQL named instances support.
Pre-existing Microsoft CRM 1.2 callout support.
More than 30 revisions, corrections, and additions.
La potete scaricare a questo indirizzo.
All'interno del CRM 3.0 è stata fornita la possibilità di creare delle campagne pubblicitarie dette "rapide" (quick campaign). Queste campagne rapide, a differenza di quelle generiche, sono chiamate così perché il loro scopo è quello di pubblicizzare rapidamente un evento, un nuovo prodotto, ecc. Solitamente, quindi, ad una campagna rapida sono associate delle attività di invio email a tutti i partecipanti (es. account, contatti) aggiunti alla campagna. In questo caso specifico, l'invio delle email, una volta che la campagna deve iniziare, va fatto manualmente! Sì, occorre aprire uno per uno i record all'interno della campagna ed inviare la email.
Quelli di...
Il CRM 3.0 mette a disposizione un SDK da utilizzare a livello client, quindi utilizzando Javascript. Sono presenti moltissime funzionalità per interagire con i controlli sulla form ma, come capita spesso, non è presente quella che ci serve! Nel mio caso dovevo cambiare l'obbligarietà di alcuni campi basandomi sul valore selezionato dall'utente. Il SDK fornisce la proprietà RequiredLevel che, purtroppo, è read-only. Che fare? Ricorrere al puro Javascript.
Sono due le cose da fare:
Cambiare il valore di class a "req": .className = "req"; In questo modo l'aspetto del campo sulla form assumerà quello di un campo obbligatorio.
Utilizzare la proprietà req...
Leggendo sui newsgroup Microsoft del CRM 3.0 mi sono imbattuto su un post che spiegava, con tanto di esempio, come deve essere realizzato un assembly in modo che possa essere richiamato da codice JavaScript utilizzato da IE. Ovviamente questo ha poco a che fare col CRM ma può risultare utile in molti casi, visto che molto del codice che gestisce l'interfaccia utente è scritto in JavaScript.
Allora, Michael, autore del post allega questo esempio:
JavaScript doesn't know anything about .NET, but it knows COM and new ActiveXObject is the way to create an instance of a COM class. For a simple test, you can...
Più sviluppo per e con il MS CRM 3.0 e più mi rendo conto di quanto sia dispersivo quando occorre sapere rapidamente alcune informazioni come il tipo di attributo, il nome esatto di un attributo in modo da poter essere utilizzato tramite Javascript, ecc. ecc. Sottovalutavo, invece, la "potenza" di una pagina ASP.NET fornita dal CRM, list.aspx, che elenca, inizialmente, tutte le entità che si trovano all'interno del CRM, dando, poi, la possibilità di navigare tra gli attributi di un'entità selezionata. Oltre i nomi degli attributi, il tipo, l'eventuale lunghezza di caratteri, è possibile verificare che l'attributo possa essere utilizzato per...
Il CRM di Microsoft utilizza dei controlli chiamati LookUp che non avevo mai trovato prima d'ora in nessun altro tipo di applicazioni, sia Windows che Web. Visivamente si presentano come campi di testo con al fianco un pulsante con l'immagine di una lente di ingrandimento. Il campo non è editabile e si può riempire solo selezionando una voce all'interno di una dialog box che si apre dopo la pressione del pulsante. Questa dialog box è diversa in base all'entità su cui si lavora e può includere funzionalità tipo la ricerca per filtrare i valori oppure una navigazione gerarchica delle voci.
Oggi ho...
Grazie ad una mia collega, Anna, ho potuto appurare un bug che affligge il CRM nella sezione dei prodotti. Durante la fase di personalizzazione di un prodotto è possibile impostare gli attributi defaultuomid (unità predefinita) e defaultuomscheduleid (unità di vendita) in modo che non siano obbligatori (nel gergo CRM business required). Quando, però, l'utente si accinge ad inserire un nuovo prodotto senza specificare quei due valori il CRM mostra un errore senza dare troppe spiegazioni su cosa sia successo.
Apprendo dal blog di mscrmfreak che esiste una versione Mobile del MS CRM 3.0 client e che è scaricabile da questo link. Ora la scarico e indago!
Durante l'inserimento di un'entità del CRM, come ad esempio un contatto, è possibile specificare gli stessi dati senza ricevere un errore di record duplicato. Questo perché la chiave, un GUID (Globally Unique IDentifier) dell'entità viene inserita automaticamente dal motore del CRM. Se questo, da una parte, può far storcere il naso, dall'altra permette rapidamente di creare record molto simili in pochissimi secondi. Basti pensare a dei prodotti che hanno le stesse caratteristiche ma differiscono, magari, solo in uno o due attributi (ad esempio, la pasta è dello stesso tipo, ma la confezione differisce per il peso: mezzo chilo, un chilo, ecc.)....
Il MSCRM 3.0 è dotato di un modello ad oggetti che può essere utilizzato per interfacciarsi con il prodotto e, anche, per estenderne le funzionalità. Come ogni buon prodotto Microsoft, anche il CRM 3.0 è dotato del suo bel SDK scaricabile da questo link.
Nel SDK è presente una directory di esempi (sdk samples) tra i quali ho trovato due buoni esempi per utilizzare la tecnica del "callout" (calloutsample e calloutsample2, che fantasia eh! :D). Tramite un classe che deriva da CrmCalloutBase è possibile intercettare degli eventi quali i "pre" e i "post" salvataggi, aggiornamenti, cancellazioni, ecc.
L'assembly che deriva dalla compilazione del...