Developing Business Solutions with Microsoft Dynamics CRM V3.0 Arash Ghanaie-Sichanie Program...
-
date post
18-Dec-2015 -
Category
Documents
-
view
225 -
download
5
Transcript of Developing Business Solutions with Microsoft Dynamics CRM V3.0 Arash Ghanaie-Sichanie Program...
Developing Business Solutions Developing Business Solutions with Microsoft Dynamics CRM with Microsoft Dynamics CRM V3.0V3.0
Arash Ghanaie-SichanieArash Ghanaie-SichanieProgram ManagerProgram Manager
OFF325 OFF325 Microsoft CorporationMicrosoft Corporation
2
AgendaAgendaMicrosoft CRM V3.0 overview Microsoft CRM V3.0 overview
Architecture and Extensibility overviewArchitecture and Extensibility overview
Price proposal management business Price proposal management business scenariosscenarios
Solution architecture walkthrough Solution architecture walkthrough Customization and schema generationCustomization and schema generation
Form event programming and object modelForm event programming and object model
Web Services and Object ModelWeb Services and Object Model
.NET assembly code extensions (Callouts & .NET assembly code extensions (Callouts & Workflow)Workflow)
Office integration Office integration
Solution Demo Solution Demo
3
Microsoft CRM | Microsoft CRM | Strategy in a Strategy in a NutshellNutshell
Focus on Focus on Office/OutlookOffice/Outlook as the design center for as the design center for
CRMCRM
Focus on Focus on reducing time and costreducing time and cost in CRM in CRM
deploymentsdeployments
Focus on a Focus on a partner-based modelpartner-based model for premise & for premise &
hostedhosted
Scale from Scale from small businesses to enterprise small businesses to enterprise
departmentsdepartments
“Microsoft Office for Sales People”
“Microsoft Office for Marketers”
“Microsoft Office for Customer Service”
4
ISV & Partner ISV & Partner OpportunitiesOpportunities
MSCRM
ConfigureConfigure
MSCRM
IntegrateIntegrate
MSCRM
ExtendExtend
MSCRM
CustomizeCustomize EmbedEmbed
MSCRM
PersonalizePersonalize
1 3
2 4
App Shell
Personalize
Visual Studio
App Explorer
BizTalk?
Mapper
App Shell
Configure
On
End User Business ManagerVAR
VARISV
Large DevTeams
ITVAR
VARISV
Visual Studio
App Explorer
MSCRM
User Changes layout of
Sales Order Screen
User Changes layout of
Sales Order Screen
VAR disables pick-list process
VAR disables pick-list process
VAR adds
“Export TAX”
field to Sales Order
VAR adds
“Export TAX”
field to Sales Order
ISV adds demand planning module
ISV adds demand planning module
OEM builds
Autoparts product
and reuses Sales Order
OEM builds
Autoparts product
and reuses Sales Order
VAR integrates Sales Order with
legacy EDI
system
VAR integrates Sales Order with
legacy EDI
system
Examples
App Shell
Biz MgrSales Group
Condition……<action>
5Microsoft CRM
Extensibility Model
Data Access ComponentsQueryPlans
O/RQuery
Builder / QP
CRM Business Logic
Users
ReportingSRS
Data Access Platform (ADO.NET)
Data
Web Services (WSDL, WS-I, BP v1.1)
Server Machine
Metadata
Business Entity Components
Pre-Callout.NET assembly
Post-Callout.NET assembly
Customization Tools
CRM Forms
ISV Script
Filtered Views
Se
curity
ISV Business Logic
UI Customization
ISV Customization
Customization Tools
Web Service Client
ISV Code
Plug
-in code
.NE
T A
ssembly
Workflo
w S
ervices
Remote Servers
Exte
nsib
ility
Exte
nsib
ility
Mod
el
Mod
el
6
Proposal ManagementProposal ManagementBusiness scenarioBusiness scenario
Update the Update the Proposal DataProposal Data
Proposal Proposal RequestRequest
Assign to Assign to Sales RepSales Rep
Generate a Generate a CRM QuoteCRM Quote
View/Edit View/Edit ProposalsProposals
Send To Send To CustomerCustomer
Notify VendorNotify Vendor
CustomerCustomer
KevinKevinSales ManagerSales Manager
Nancy Nancy Sales RepSales Rep
Nancy Nancy Sales RepSales Rep
VendorVendor
CustomerCustomer
7
Solution ArchitectureSolution Architecture
Microsoft Microsoft CRMCRM
SharePoint SharePoint SiteSite
1. Proposal1. ProposalRequestRequest
2. Request2. Request
7. Notification7. Notification
5. Word 5. Word DocumentDocument
6. Customer & 6. Customer & Quote dataQuote data
4. Assignment 4. Assignment NotificationNotification
Credit Credit reportreport
Web Service Web Service 3. Credit Report 3. Credit Report
RequestRequest
CustomerCustomer
VendorVendor
Sales RepSales RepSales ManagerSales Manager
8. Email 8. Email NotificationNotification
9. Price 9. Price ProposalProposal
8
Business RulesBusiness Rules
Manager review and auditingManager review and auditing: : If a given Quote discount has changed If a given Quote discount has changed
more than $1000, notify the staff more than $1000, notify the staff manager with the details of the Quotemanager with the details of the Quote
Notify Vendors:Notify Vendors: Email Vendors who their products are Email Vendors who their products are
listed in submitted price proposalslisted in submitted price proposals
Regular Credit checkRegular Credit check: : Accounts that are regularly viewed Accounts that are regularly viewed
should have up-to-date credit scores.should have up-to-date credit scores.
9
Business Personas Business Personas RequirementsRequirements
Application preferenceApplication preference: : Sales reps use Office Word to work Sales reps use Office Word to work
with.with.
User ProductivityUser Productivity: : Avoid context switching to Avoid context switching to
increase productivity.increase productivity.
Decision SupportDecision Support: : Provide context (customer details, Provide context (customer details,
past activities, opportunities and past activities, opportunities and cases) in order to support decision cases) in order to support decision makingmaking
10
Tools & TechnologiesTools & TechnologiesMicrosoft CRM V3.0Microsoft CRM V3.0
Web services (SDK)Web services (SDK)Managed Custom code plug in (Pre & Post Managed Custom code plug in (Pre & Post Callouts)Callouts)Managed Workflow code plug inManaged Workflow code plug inData Schema customization Data Schema customization UI customization UI customization Form client side scriptingForm client side scripting
.NET V2.0.NET V2.0Visual Studio 2005 – Beta 2Visual Studio 2005 – Beta 2Visual Studio Tools for the Office Visual Studio Tools for the Office System - Beta 2System - Beta 2SharePoint web partsSharePoint web parts
11
Add new business entities and Add new business entities and attributes attributes
New New MessageMessage Business Entity Business Entity
New New VendorVendor Business Entity Business Entity
New attributes on Account Business New attributes on Account Business Entity for Credit informationEntity for Credit information
Form scripts for web Service calls to Form scripts for web Service calls to Credit report company Credit report company
Customize FormsCustomize Forms
1) Customize Schema and 1) Customize Schema and FormsForms CRM Customization toolsCRM Customization tools
12
CRM Application quick tourCRM Application quick tourCRM Customization Tools CRM Customization Tools Form ScriptingForm Scripting
Arash Ghanaie-SichanieArash Ghanaie-SichanieProgram ManagerProgram ManagerMicrosoft Business Solutions CRMMicrosoft Business Solutions CRM
13
2) Setup Development 2) Setup Development EnvironmentEnvironment CRM Web Services WSDLCRM Web Services WSDL
Generate WSDL from Generate WSDL from customizationcustomization
Reference CRM Web services in Reference CRM Web services in Visual Studio .NET Visual Studio .NET
Setup Web service proxiesSetup Web service proxies
14
Microsoft CRM Web Microsoft CRM Web ServicesServicesWSI, BP v1.1, WSDL, Single WSI, BP v1.1, WSDL, Single
Endpoint Endpoint
Strongly typed Business Strongly typed Business EntitiesEntities
CRM Web ServiceCRM Web ServiceAccess to all the Business Access to all the Business Entities data (including custom Entities data (including custom entities and properties)entities and properties)
Execute Business Operations Execute Business Operations (business logic and specialized (business logic and specialized operations)operations)
Metadata Web ServiceMetadata Web ServiceAccess to CRM MetadataAccess to CRM Metadata
CrmService
SoapHttpClientProtocolClass
Properties
CallerIdValue
Url
UseDefaultCredentials
Methods
Create
Delete
ExecuteFetch
Retrieve
RetrieveMultiple
Update
MetadataService
SoapHttpClientProtocolClass
Properties
UrlUseDefaultCredentials
Methods
GetTimestampRetrieveAttributeMetadataRetrieveEntityMetadataRetrieveMetadata
15
3) Integrate with Office 3) Integrate with Office WordWord Data Binding with CRM schemaData Binding with CRM schema
Extract CRM type schemas from Extract CRM type schemas from WSDL and add them to the projectWSDL and add them to the project
Add XMLNodes to the documentAdd XMLNodes to the document
Bind CRM data to Word XML nodesBind CRM data to Word XML nodes
Bind XML Nodes to CRM dataBind XML Nodes to CRM data
16
Business Entity and data Business Entity and data ModelModel
17
Build CRM Task Build CRM Task panepaneBringing CRM data Bringing CRM data
and business logic and business logic into Wordinto Word
Develop an Office Develop an Office Action Pane to Action Pane to manage CRM datamanage CRM data
Bind CRM data to Bind CRM data to Action Pane elementsAction Pane elementsRetrieve Customer Retrieve Customer Context Context (credit score, (credit score, contact details, previous contact details, previous history)history)
18
Querying data from CRMQuerying data from CRM
Use CRM Web services to Query dataUse CRM Web services to Query data
Build complex QueriesBuild complex Queries
Get CRM data into a Sharepoint siteGet CRM data into a Sharepoint site
Add requests to CRM from SharepointAdd requests to CRM from Sharepoint
Get Quotes owned by a user Get Quotes owned by a user
Get Quote productsGet Quote products
Get related data (customer, current Get related data (customer, current and past cases, etc).and past cases, etc).
19
Ways to query CRM Ways to query CRM datadataQueryExpressionQueryExpression
Return values are strongly typedReturn values are strongly typedWrite your query using the QueryExpression object modelWrite your query using the QueryExpression object modelBusiness Entity centric: can only return values from one Business Entity centric: can only return values from one business entitybusiness entitySupports joinsSupports joinsSerialize/DeSerialize into/from FetchXMLSerialize/DeSerialize into/from FetchXML
FetchXMLFetchXMLReturn values are not strongly typedReturn values are not strongly typedWrite your Query in XML formatWrite your Query in XML formatBusiness Entity Agnostic: i.e. can return data from multiple Business Entity Agnostic: i.e. can return data from multiple business entitiesbusiness entitiesSave in the CRM databaseSave in the CRM databaseSupports joinsSupports joinsUse Advanced Find UI to build themUse Advanced Find UI to build themSerialize/DeSerialize into/from QueryExpressionSerialize/DeSerialize into/from QueryExpression
Secured/Filtered viewsSecured/Filtered viewsReturn values are not strongly typedReturn values are not strongly typedUse SQL to write queries against filtered views Use SQL to write queries against filtered views
20
Strong type Strong type Queries Queries QueryExpressionQueryExpressionClass based Class based
QueriesQueries
Strong type Strong type return valuesreturn values
Serialize into Serialize into and and Deserialize Deserialize from from FetchXMLFetchXML
Helper Helper classesclasses
21
CRM Web ServicesCRM Web ServicesCRM Data BindingCRM Data BindingBuild CRM Task PaneBuild CRM Task PaneExecute Data QueriesExecute Data Queries
Arash Ghanaie-SichanieArash Ghanaie-SichanieProgram ManagerProgram ManagerMicrosoft Business Solutions CRMMicrosoft Business Solutions CRM
22
Executing Business Logic in Executing Business Logic in CRMCRMExecute business logic operation (specialized Execute business logic operation (specialized
operations)operations)
Message Class Hierarchy Message Class Hierarchy
Operation/Process centric Operation/Process centric
Step 1Step 1: : instantiate ainstantiate a Request Request Message (classes Message (classes Postfixed with “Request” keyword)Postfixed with “Request” keyword)Step 2Step 2: Execute: Execute -- -- Response Execute (Request request)Response Execute (Request request)
Step 3Step 3: : Consume returnedConsume returned Response Response Message Message (classes are Postfixed with “Response” keyword)(classes are Postfixed with “Response” keyword)
SDK client
CRM Server
CRM Web Service
Execute Request
Request Message
Execute Response
Response Message
23
Publish updates to CRMPublish updates to CRM
Use CRM Web services to update the Use CRM Web services to update the serverserver
Add CRM events to Word XMLNodesAdd CRM events to Word XMLNodes
Implement CRM business logic in Implement CRM business logic in WordWord
Create notes and attachments in CRMCreate notes and attachments in CRM
Change CRM objects statesChange CRM objects states
24
Executing business logic in Executing business logic in CRMCRM
Arash Ghanaie-SichanieArash Ghanaie-SichanieProgram ManagerProgram ManagerMicrosoft Business Solutions CRMMicrosoft Business Solutions CRM
25
Pre & Post CalloutsPre & Post Callouts
CRM Application
CRM Tools
CRM SDK
CRM Platform Method
Pre-Callout
Platform Core Operation
Post-Callout
Allows deep integration of custom business logic Allows deep integration of custom business logic into CRM business operations into CRM business operations
Are invoked during Web service callsAre invoked during Web service calls
.NET based with extensions being compiled in .NET based with extensions being compiled in forms of managed assembliesforms of managed assemblies
Events based model allows ISVs to subscribe to Events based model allows ISVs to subscribe to eventsevents
Subscription based on XML configuration fileSubscription based on XML configuration file
26
Pre-CalloutPre-CalloutSynchronousSynchronous
Sends Entity and User Sends Entity and User Context as well as the Context as well as the affected Attribute Set to affected Attribute Set to the callout codethe callout code
Allow Continue, Stop, Allow Continue, Stop, AbortAbort
Pre-CalloutComponent
PlatformMethod
Call
EntityContext
UserContext
AttributeSet
ModifiedAttribute
Set
ReturnCode
Custom Error
Message
Events
PreCreate
PreUpdate
PreDelete
PreAssign
PreSetState
PreMerge
27
Post-CalloutPost-CalloutSynchronousSynchronous
Can be used with Can be used with Workflow message Workflow message queue as queue as AsynchronousAsynchronous
Event based modelEvent based model
Event Name
PostCreate
PostUpdate
PostDelete
PostAssign
PostSetState
PostMerge
Post-CalloutComponent
PlatformMethod
Call
EntityContext
UserContext
AttributeSet
(Pre-Image)
ReturnCode
AttributeSet
(Post-Image)
28
5) Build .NET callout 5) Build .NET callout extension extension Managed .NET assembly to track price Managed .NET assembly to track price
proposals discount changes and send proposals discount changes and send notification messagesnotification messages
Use custom business entity for sending Use custom business entity for sending messages (fabrikam_message)messages (fabrikam_message)
.NET assembly to calculate discount.NET assembly to calculate discount<callout.config version="3.0"><callout.config version="3.0">
<callout entity="<callout entity="quotequote" event="" event="PostUpdatePostUpdate">"><subscription assembly="<subscription assembly="MessagingPlugin.dllMessagingPlugin.dll" "
class="MessagingPlugin.Messages">class="MessagingPlugin.Messages"><prevalue><prevalue>discountpercentagediscountpercentage</prevalue></prevalue><postvalue><postvalue>discountpercentagediscountpercentage</postvalue></postvalue><prevalue><prevalue>totallineitemamounttotallineitemamount</prevalue></prevalue><postvalue><postvalue>totallineitemamounttotallineitemamount</postvalue></postvalue></subscription></subscription>
</callout></callout></callout.config></callout.config>
29
Building .NET Assembly Building .NET Assembly ExtensionsExtensions
Arash Ghanaie-SichanieArash Ghanaie-SichanieProgram ManagerProgram ManagerMicrosoft Business Solutions CRMMicrosoft Business Solutions CRM
30
6) Build Workflow .NET 6) Build Workflow .NET extensionextension
Send email to Vendors if their product is in Send email to Vendors if their product is in the activated price proposalthe activated price proposal
Asynchronous (Queued)Asynchronous (Queued)
Events: Create, State change, AssignEvents: Create, State change, Assign
use custom business entity use custom business entity (fabrikam_vendor) related to CRM products(fabrikam_vendor) related to CRM products
Managed Assembly
Work flow Rule
ReturnParamters
InputParameters
Work flow Rule
31
Extend Workflow rulesExtend Workflow rulesDeploy by copying .NET Assembly into Deploy by copying .NET Assembly into server folderserver folder
Can pass in and return parameters to Can pass in and return parameters to WorkFlow RuleWorkFlow Rule
Can select the managed plug in from Can select the managed plug in from the Workflow managerthe Workflow manager
<method name=“NotifyVendor" <method name=“NotifyVendor" assembly=“WorkFlowAssembly.dll" assembly=“WorkFlowAssembly.dll" typename=“WorkFlowAssembly.NotifyVendor" typename=“WorkFlowAssembly.NotifyVendor" methodname=“DoNotifyVendor">methodname=“DoNotifyVendor">
<parameter name=“quoteid" datatype=“lookup“ <parameter name=“quoteid" datatype=“lookup“ entityname=“quote”/>entityname=“quote”/><parameter name="Caller" datatype="caller"/><parameter name="Caller" datatype="caller"/>
</method></method>
32
Building Workflow .NET Building Workflow .NET ExtensionsExtensions
Arash Ghanaie-SichanieArash Ghanaie-SichanieProgram ManagerProgram ManagerMicrosoft Business Solutions CRMMicrosoft Business Solutions CRM
33
Putting it altogether Putting it altogether
Customized CRM Schema – Done!Customized CRM Schema – Done!
Added form script for credit check – Added form script for credit check – Done!Done!
Added CRM schema to Word – Done!Added CRM schema to Word – Done!
Built Word integration assembly – Built Word integration assembly – Done! Done!
Built .NET assembly for PostUpdate – Built .NET assembly for PostUpdate – Done!Done!
Built Workflow .NET assembly Built Workflow .NET assembly extension – Doneextension – Done
Lets run the demo!Lets run the demo!
34
Putting it altogether!Putting it altogether!
Arash Ghanaie-SichanieArash Ghanaie-SichanieProgram ManagerProgram ManagerMicrosoft Business Solutions CRMMicrosoft Business Solutions CRM
35
Key TakeawaysKey TakeawaysMicrosoft CRM V3.0:Microsoft CRM V3.0:
Great opportunity for ISVs/VARsGreat opportunity for ISVs/VARs
Provides a set of Provides a set of rich extensibility rich extensibility and integration featuresand integration features that that enables ISVs to build enables ISVs to build powerful powerful business applicationsbusiness applications
Integrates wellIntegrates well with other with other applications, applications, particularly Office particularly Office SystemSystem, through Web services and , through Web services and XMLXML
Provides a Provides a productive development productive development experienceexperience
Deep integration with with Deep integration with with developer toolsdeveloper tools such as Visual such as Visual Studio .NETStudio .NET
36
ReferencesReferences
To find out more:To find out more:
http://www.microsoft.com/businesssolhttp://www.microsoft.com/businesssolutions/crm/default.mspxutions/crm/default.mspx
Q & AQ & A
More Q&A in the Office Track Lounge More Q&A in the Office Track Lounge after this sessionafter this session
Please fill out the evaluations.Please fill out the evaluations.
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.