Gli strumenti di sviluppo e
personalizzazione di
Microsoft CRM 3.0
Marcello Fisicaro
CRM Partner Technology Specialist
Microsoft Italia
Avvertenze
•
•
•
•
Questa rappresenta solo una previsione delle aree di
investimento della nuova versione del CRM
Le informazioni sono aggiornate a Dicembre 2005
Date e funzionalità possono essere soggette a cambiamenti
Le immagini sono da considerarsi prototipi
Disclaimer
This presentation contains preliminary information that may be changed substantially prior to final commercial release of the software described herein.
The information contained in this presentation represents the current view of Microsoft Corporation on the issues discussed as of the date of the presentation. Because Microsoft must respond to changing
market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of the presentation.
This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this presentation. Except as expressly provided in any written license
agreement from Microsoft, the furnishing of this information does not give you any license to these patents, trademarks, copyrights, or other intellectual property.
© 2005 Microsoft Corporation. All rights reserved.
Agenda
Introduzione
Personalizzazione “Data & Experience”
Personalizzazione dei processi
Developer Experience
Reporting & Business Intelligence
Q & A
Introduzione
Architettura piattaforma
Customization Points
Personalizzazione
“Data & Experience”
Personalizzazioni strutture dati
Nuovi scenari
Personalizzazione schema estensiva
• Creare/Rinominare entità, attributi,
relazioni
• Personalizzazione attività
• Supporto per client Web e Offline
Gestione schema efficente
• Strumento all’nterno del web client
• Permessi più granulari
• Pubblicazione personalizzazioni senza reset
Maggiore Schema Portability
• Import/Export supportato anche per le
nuove funzionalità
• Basic validation
• Attribute namespace
Customer Benefit
• Foundation per le
soluzioni verticali
• Riduce la necessità di
coinvolgere l’IT
• Distribuzione dei
cambiamenti più
semplice
Personalizzazione strutture dati
Business design
flessibile
Design business
forms e entità senza
scrivere codice.
Utilizzo dei termini
del vostro business
in forms, viste e
report
Sincronizza offline
anche entità custom
Personalizzazione esperienza
Maggiore flessibilità e supporto a soluzioni
Form Scripting
• Field Events: OnLoad, OnSave, OnChange
• Metodi per accedere a client /attributi / state
• Proprietà per ObjectID, Object Type Code
Form Customization
• Supporto IFrame
• layout migliorato
• Supporto upgrade per estensioni ISV registrate
in ISV.config
Navigation
• Navigatione custom via SiteMap
• Integrazione con entità custom
• Consistenza fra web e Outlook
• Estensioni al menu Outlook
Customer Benefit
• Foundation per
soluzioni verticali
• Minori costi per
personalizzazione e
upgrade
• Esperienza
personalizzata
consistente
CRM Form Designer
•
•
•
•
•
•
Look della form
Formato colonne
Add/remove/move
Fields/Tabs/Sections
Eventi legati ai campi
Add/configure IFrames
Etichette
CRM Form Object Model
• Proprietà per accedere alle
info della form aperta
• Metodi che permettono
l’invocazione di azioni sulla
form
• Sintassi:
•
crmForm.propertyname
• Accesso ai campi della form
•
crmForm.all.{field_schema_name}
Sitemap
• Possibilità di personalizzare
completamente la navigazione
• Export, Edit, Import
• Impostazioni viste anche da Outlook
• Integrazione con le entità custom
<SiteMap>
<Area Id="Workplace" Title="Area di lavoro"
ResourceId="Area_Workplace" ShowGroups="true"
Icon="/_imgs/workplace_24x24.gif“
DescriptionResourceId="Workplace_Description">
<Group Id="MyWork" Title="Personale"
ResourceId="Group_MyWork"
DescriptionResourceId="My_Work_Description">
<SubArea Id="nav_activities"
Strumenti di personalizzazione
Attributi, Entità, Relazioni
Navigazione personalizzabile
Form e Viste
Script in Form / campi
Personalizzazione dei
processi
Workflows
Investimenti area Workflow
• Nuove automazioni per soluzioni verticali
• Workflow sulle attività
• Workflow sulle Entità Custom
• Maggiore flessibilità nella realizzazione dei flussi
di processo
• Confronti con campi di testo dinamici
• Espressioni date/time
• Migliore estensibilità e integrazione
• .NET Assembly support
• Pre- e Post- Callouts
Strumenti di workflow per i processi di
Business
•
•
Workflow Editor
• Creazione, modifica,
impostazioni regole di
workflow.
Workflow Monitor
• Status dei processi di
workflow in corso
Estensibilità
Codice custom nei Workflow
Estensione del workflow con codice custom
•
•
•
•
•
Benefit
.NET based
Facile subscription e deployment
Workflow manager support
Integrazione con VS.NET & CRM Web Services
Messaggi Rich context
• Modellazione di
processi ricca e
flessibile
Input
Parameters
Work flow Rule
Managed
Assembly
Return
Paramters
Work flow Rule
Estensione regole di Workflow
Creazione di estensioni con assembly .NET
Modifica file workflow.config
• Es: creazione di sito sharepoint collegato alla
creazione di una opportunità
<method name=“CreateSite"
assembly=“Sharepoint.dll"
typename=“Sharepoint.SiteCreator"
methodname=“CreateSite“
group=“Sharepoint Functions”>
<parameter name=“ID" datatype=“lookup“
entityname=“opportunity”/>
<parameter name=“Name" datatype=“string"/>
</method>
Extensibilità - Callout
Estensioni attraverso logica custom
•
•
•
•
•
•
Benefit
.NET e basati su eventi
Facile subscription e deployment
Eventi POST e PRE
Ricche informazioni contestuali
Integrazione con Web Services CRM
Sincroni e transazionali
CRM Application
• Costruzione di soluzioni
fortemente integrate
CRM Platform Method
Pre-Callout
CRM Tools
CRM SDK
Platform Core
Operation
Post-Callout
Estensibilità - Callout
•
•
Es: assembly.NET per tracciare cambiamenti di sconto e
mandare messaggi di modifica
.NET assembly per il calcolo dello sconto
<callout.config version="3.0">
<callout entity="quote" event="PostUpdate">
<subscription assembly="MessagingPlugin.dll"
class="MessagingPlugin.Messages">
<prevalue>discountpercentage</prevalue>
<postvalue>discountpercentage</postvalue>
<prevalue>totallineitemamount</prevalue>
<postvalue>totallineitemamount</postvalue>
</subscription>
</callout>
</callout.config>
Callout
Esempio di codice
public class CalloutSample : CrmCalloutBase
{
// This function is called before an account is created.
public override PreCalloutReturnValue
PreCreate(CalloutUserContext userContext,
CalloutEntityContext entityContext,
ref string entityXml,
ref string errorMessage)
{
.....
return PreCalloutReturnValue.Continue;
}
}
Personalizzazione dei processi
Workflow manager
Workflow monitor
Developer Experience
High Developer Experience
Integrazione deep con Visual Studio .NET
• Supporto estensivo a IntelliSense
• Classi e messaggi “Strongly typed”
• Managed code development model
Supporto a ISV per estensioni orizzontali
& Verticali
• Generic mode - Horizontal
• Strongly typed mode - Vertical
• Conversioni “Metadata driven”
Benefits
• Sviluppo veloce e a
basso costo.
• Scrivi meno codice.
• Broad industry
support
Ricche funzionalità e Object model
• Rich browse-able class hierarchy
• Process Centric API design
• Rich functionality including metadata
• Soluzioni ricche e
dinamiche con
meno sviluppo
Extensibilità & integrazione con Web
Services
SOA & Interoperabilità
• WSDL e modello “platform independent”
• Compliancy a Standard (WS-I BP V1.1)
• Gestione dei web service semplice per tutte le
entità
Benefits
• Facile integrazione con
altre applicazioni
Message Oriented
• “Process and message centric”
• Supporto al Versioning
• Estensioni “Message based”
• Bassi costi di manutenzione e
sviluppo
• Alta longevità
Pieno supporto alle personalizzazioni
• Generazione dinamica dei type (WSDL)
• Seamless programming model
• Supporto al Polimorfismo
• Meno codice e più
generico
Ricca piattaforma alla base
Costuito interamente su piattaforma .NET
• New .NET based platform
• Query model ricco e basato su classi
• Modello di sicurezza ricco
Benefits
• Sviluppo su piattaforma
solida
Gestione degli errori e performance
• Ricca gestione degli errori
• Supporto a tracing e debugging
• Performance migliorate
• Soluzioni “Fault tolerant” e
veloci
Metadata driven
• Customization senza ricompilazione
• Metadati generati dinamicamente
• Web service per runtime discovery
• Build generic solutions
without recompiling
Microsoft CRM Web Services
•
•
•
•
WSI, BP v1.1, WSDL, Single Endpoint
Strongly typed
.NET based
CRM Web Service (CrmService.asmx)
• Accesso ai dati di tutte le Entità (incluse
entità custome e proprietà)
• Esecuzione delle business op (business
logic e op specializzate)
• Metadata Web Service
(MetadataService.asmx)
• Accesso ai metadati del CRM
Utilizzo di CRM Service
Esempio di codice per il controllo della duplicazione di un account
CrmService service = new CrmService();
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
QueryByAttribute attributeQuery = new QueryByAttribute();
attributeQuery.Attributes = new string [] {"name"};
attributeQuery.Values = new string [] {newAccountName};
attributeQuery.EntityName = EntityName.account.ToString();
RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest();
retrieve.Query = attributeQuery;
RetrieveMultipleResponse retrieved = (RetrieveMultipleResponse)service.Execute(retrieve);
// Render the response to the caller
if (retrieved.BusinessEntityCollection.BusinessEntities.Length > 0)
{
//duplicated found
}
else
{
//duplicated NOT found
}
Building powerful applications
DupDetection
es Sito B2B
Es con VISIO
Reporting & Business Intelligence
Investimenti area Reporting
• Miglioramenti in termini di performance e stabilità
• Integrazione con Excel e “ODBC compliance”
• Più basso TCO e integrazione SQL Server
Reporting Services
• Extensibilità
Reportistica integrata
Reportistica integrata
•
Non più solo in area “Report”
•
•
•
•
Strumenti disponibili
•
•
•
•
Report contestuali
Disponibili anche in Outlook
Integrabili con SharePoint...
Viste – “My expiring cases”, “My accounts”, …
Integrazione con Excel – PivotTable dinamiche
SRS Reports – “Account Overview”, …
Funzionalità integrate
•
•
•
•
“Saved views” nella dropdown di scelta delle viste
Report nelle form, “List Views”, o “Area di Reporting”
Prefiltering dei report attraverso “Advanced Find”
Configurazione dei filtri di Default
Filtered Views
•
Viste SQL che rispettano la sicurezza del CRM
•
Disponibili per tutte le entità
•
Built off application views
•
Accesso agli atributi CRM
•
•
•
•
Lookups (id, name)
Picklists (id, name)
Dates (user’s time, UTC time)
Accessibili a membri del “SQL Reporting Group”
Great reports
Excel dynamic Reports
Building Reporting Services report
Report da Sharepoint
Riassumendo
• Microsoft CRM V3.0:
• Fornisce un insieme di funzionalità di
estensione e integrazione che
permette la creazione di potenti
applicazioni di business
• Facilmente integrabile con
applicazioni esterne attraverso Web
services e XML
• Ricca development experience
Microsoft CRM V3.0
Q&A
© 2004 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.