![]() |
Enterprise Systems »
Microsoft BizTalk Server »
General
Intermediate
License: The Code Project Open License (CPOL)
BizTalk Server 2006 Adapter for MS CRM 3.0By tiwarivishnuThe articles describes how to use and leverage MS CRM adapter to integrate CRM system with BizTalk. |
All Topics, Dev
|
||||||||||
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
BizTalk communicates with the outer world using adapters, which helps to speed up the implementation process for IT infrastructure. Adapters perform whatever communication semantics or protocol required by the remote system. Adapters do not perform any conversion or translation and they just brings the bits into BizTalk system. Microsoft has developed Dynamics CRM system, which caters the need for effective CRM system. Major function of CRM system is to focus on customer and front office to provide value added services to them. It helps them maximize their ROI, lead to greater customer satisfaction, ensures higher revenue leading to healthy bottom line. As CRM becomes strategic, it must encompass lot more functional areas within enterprise. Inline to this high integration needs is generated which means CRM must integrate with an even larger number of systems. Microsoft BizTalk CRM adapter caters the same need. We will discuss integration solution provided with Dynamics CRM to integrate it with other business applications using Microsoft BizTalk Server CRM Adapter.We will run you through all aspects of Microsoft BizTalk Dynamics CRM adapter starting from why Integration is needed, Basics of CRM, Adaptor installation and configuration, CRM development SDK and few out of the box items as well.
Microsoft Dynamics e.g. Great Plains caters the need for managing receivables, inventory and finance and other functionalities. The Dynamics CRM used to manage relationship with customers, cross-sales and up-sales. Thus, integration between Dynamics CRM and ERP system as Dynamics Great Plains is required which should cater the need of Information availability in real time, data consistency and Business Process Collaboration between two separate business applications. Following integration solutions will be available with Dynamics CRM:
Dynamics CRM provides web services framework to get the data in and out from BizTalk. You can extend the same using the rich SDK provided by the Dynamics CRM allowing doing server and client side programming which helps developers to write integration modules to integrate Dynamics CRM with the web pages. Please refer below link for web services: -- http://msdn2.microsoft.com/en-us/library/aa682250.aspx
http://msdn2.microsoft.com/en-us/library/aa680673.aspx
Microsoft provides RTIF framework, so that Dynamics ERP systems and Dynamics CRM should talk to each other. This integrates Microsoft Dynamics CRM with other Microsoft Dynamics ERP’s (Dynamics GP, Dynamics Ax, and Dynamics Nav). For product details please refer:--
http://www.microsoft.com/dynamics/crm/product/gpintegration.mspx
Using BizTalk Server 2006 Adapter for Dynamics CRM, you will be able to integrate any kind of integration between business applications but we recommend it for ensuring business process collaboration between business applications. So using it you will be able to integrate your ERP like SAP with Dynamics CRM. It will be taking more dev cost to write own code for doing link management if you choose this solution for integration ensuring data consistency. You can use it if you want B2B or EAI integration between Dynamics CRM and your non-Microsoft ERP.
CRM system is divided into multiple sub-systems such Sales, Marketing, and Service etc. Each of these sub-systems maintains a range of information like “Service” sub-system maintains Cases (customer escalations), Accounts, Contacts, and Products etc. These sub systems have association/relationship among themselves. Each of these entities follows a schema, which contains their type information. Thus, while working with CRM we deal with these entities and attributes. Custom entities also are created if needed. We create, update or delete instances of these entities. In order to understand CRM entities, their schema, relationship with other entities etc, go to “Settings >> Customization >> Customize Entities”. You will see the list of entities available in CRM system. List shows name, schema name, type and description. You can create your own new custom entity or modify existing entity. Double clicking of an existing entry shows you details of attributes, forms/views to populate these entities in CRM system and relationships. When you check “Attributes” of entity, you will see attribute schema name, display name, type and description. Attribute schema name and type is very important information because BizTalk CRM adapter generates schema based on schema name and type information inside CRM system.
Following are key points of installation and usage guide
As earlier mentioned Dynamics CRM Adapter uses web services for integration. This adapter is Solicit-Response adapter. You can perform basic operations with BizTalk CRM adapter such as Query Data, Create Data, Update Data, Delete Data, Execute Operations, and Retrieve Data etc and complex operations like Pick List, Lookup and custom entities/attributes. These operations can be found under Microsoft Dynamics CRM actions node of the Add Adapter Wizard. Generally, you will find web service URL as –
http://<CRM-Server>/MSCRMServices/2006/CrmService.asmx.
The depicted diagram above shows a scenario where an entity is generated using CRM adapter for BizTalk and the response of CRM is saved in a XML file. For integration with CRM below, information like URL, Domain, User, Code and, if required proxy, should be ready.
Below is the discussion about the various operations performed on CRM System.
Query on CRM system is fetching XML and returning results. Please make sure that web service url has been put as http://<CRM-Server>/mscrmservices/2006 and not like http://<CRM-Server>/MSCRMServices/2006/CrmService.asmx as we need to supply URL for web service virtual directory. While generating schema using “Add Generated Items” from “Add Adapter Metadata” Option when prompted for user name and password, make sure that user name and password should have adequate access to fetch entity and their schema information from CRM system. Select entities which you need to deal with. For query you need to set action as “Execute Fetch”. Out of several schemas created you should only be interested in request and response. “ExecuteFetch_ExecuteFetchRequest.xsd” serves purpose of request schema. For response schema, you need to use Response.xsd located @ “C:\Program Files\BizTalkAdapter\Schemas\. While creating xml request set crm_action attribute value accordingly to “execute”. Create data with CRM Adapter allows you to create entity like account, contact, case, products etc in CRM system. Apart from performing the above steps you need to check e.g pick list and lookup type attributes, required fields and relationship among the entities. Now while creating xml request set “crm_action’’ attribute to “create”. Few words about setting “crm_action” attribute. When performing create operation, it is always safe and good to provide “create” as value in “crm_action” attribute. However, if “crm_action” value is not provided then it uses following logic to take decision
B using delete operation, you can delete instance of one of the entity. It is always recommended to check dependent activities and come with logic to handle them when performing delete operation. Rest of the things is similar to discussed in the querying section.
“Update” operation is almost similar to “Create” operation. When posting entities data using the generated schema, you need to know whether this entity already exists in CRM. You can create a .NET assembly, which, via the CRM web service, performs the same query. This has the advantage of being able to be called through a BizTalk Expression shape or through. Once already exists, you can get its GUID primary key and set it on the appropriate node of the message, which you will pass to the adapter. Now you just need to send values of those attributes only which you wish to update.
The last and not the least are the operations related to PickList and Look Up. In CRM, you will have two types of "lookups".
You need to create a standard .NET assembly which would call into the CRM web service and retrieve the data for me. Then call this assembly from inside a BizTalk map using a Scripting functiod and pass in various values in order to determine what pick list / lookup type to evaluate against. This has the benefit of allowing me to perform these "lookup" resolutions from within the map, allowing the full source message to be mapped to the CRM message in a single Transformation shape.Depending on whether you are resolving Pick Lists or Lookups will determine which web service you call and what result you get back. To query (and cache) Pick Lists, you need to call into the MetaDataService web service, while you call the CrmService web service to resolve Lookups.
The BizTalk MS CRM 3.0 adapter in BizTalk Server brings the flexibility of MS CRM communications to the different systems using BizTalk Server messaging. The CRM adapters make it possible to define send ports that have a wide-range of operations. The combine use of CRM adapter with CRM web services make it easy to integrate with the rest of your application. The CRM adapter provides a rich feature set, easily accessible and configurable dialog boxes. They provide numerous options around messages, MS Dynamics CRM entities, MS Dynamics CRM entities and security, error handling and Logging, which open new doors to new distributed integration scenarios that make it easy with BizTalk. The CRM adapter mark an important milestone for BizTalk Server, one of maturity in today’s service-oriented landscape. As the product continues to evolve in the years ahead, you are likely to see even deeper integration between MS CRM systems and the BizTalk Server product.
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 5 Feb 2009 Editor: Sean Ewington |
Copyright 2009 by tiwarivishnu Everything else Copyright © CodeProject, 1999-2009 Web20 | Advertise on the Code Project |