Microsoft CRM integration: Oracle database access from MS CRM
by: Boris Makushkin
Today’s article topic is customization possibility demonstration for user web interface of Microsoft CRM. As an example we’ll use MS CRM integration with ASP.Net application, accessing customer data access, when customers are stored in Oracle 10g database. Let’s begin:
1. First, let’s create the table to store customer information in Oracle database. We’ll use web application iSQL for table metadata manipulation:
2. Table is now created and contains four fields: CUSTOMER_ID, FIRST_NAME, LAST_NAME и ADDRESS. Fill it with text data:
3. Now we’ll work with data access to Oracle database from ASP.Net application. We should download from Oracle site
http://www.oracle.com Windows Instant Client. We don’t have to install it – just unpack all the files in the directory of your choice, for example c:\oracle and set environmental variable TNS_ADMIN, pointing to this directorty.
4. In c:\oracle directory (or where TNS_ADMIN point out) create file tnsnames.ora as following (change host and service names):
ORCL1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oraclehost.youtdomain.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL1)
)
)
5. Make correction to windows registry to have MS SQL Linked Server work properly withOracle OLE DB Provider. In the hive KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI make these changes:
OracleXaLib = "oracleclient8.dll"
OracleSqlLib = "orasql8.dll"
OracleOciLib = "oci.dll"
6. Now let’s create Linked Server in MS SQL Server 2000:
Note: in the Security tab we need to use security context with the credentials, having valid access to Oracle Database.
7. Linked Server is ready – let’s test it functioning – open table list. We should see customer table there:
8. Now we’ll create stored procedure for Oracle data access:
SET ANSI_NULLS ON
SET ANSI_WARNINGS ON
GO
CREATE PROCEDURE MyCustomersList AS
SELECT * FROM OPENQUERY(ORACLE, 'SELECT * FROM Customer')
RETURN
9. Next step is customizing Microsoft CRM using interface. We’ll add customer list button into Quote screen toolbar. Edit isv.config:
Change Url to your host name.
10. To create ASPX page we’ll use RAD for ASP.Net - WebMatrix:
11. Create new page for data access:
12. Change it’s code to access our data:
Sub Page_Load(Sender As Object, E As EventArgs)
Dim ConnectionString As String = "server=(local);database=Albaspectrum;trusted_connection=true"
Dim CommandText As String = "EXEC MyCustomersList"
Dim myConnection As New SqlConnection(ConnectionString)
Dim myCommand As New SqlCommand(CommandText, myConnection)
myConnection.Open()
DataGrid1.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
DataGrid1.DataBind()
End Sub
13. Now we’ll test our web application by calling it from MS CRM:
Happy programming, implementation, customization and modification! If you want us to do the job – call use 1-630-961-5918, 1-866-528-0577, Europe: +49 231 4387600!
[email protected]About The Author
Boris Makushkin is Lead Software Developer in Alba Spectrum Technologies – USA nationwide Oracle, Navision, Microsoft CRM, Microsoft Great Plains customization company, serving Chicago, California, Arizona, Colorado, Texas, Georgia, Florida, New York, Canada, Australia, UK, Russia, Europe and internationally (
http://www.albaspectrum.com ), he is Oracle, Unix, Microsoft CRM SDK, Navision, C#, VB.Net, SQL developer.
[email protected]