Skip to main content.

Saturday, August 26, 2006

Integration ini merupakan integration tingkat lanjut yang memungkinkan integrasi antara aplikasi kita dengan Microsoft CRM secara langsung tanpa pop up windows maupun postback. Walaupun data yang kita inginkan di-trigger user dari sisi client.
Dengan kata lain, bagaimana kita mengambil data/value dari aplikasi lain via server tanpa adanya postback atau refresh halaman web.

Integrasi ini merupakan integrasi yang tidak mudah, karena integrasi seperti ini dibutuhkan orang yang selain mempunyai kemampuan menguasai arsitektur MSCRM dan juga aplikasi yang sudah ada, konsep dari aplikasi web beserta scriptnya, web service dengan XML-nya dan juga mengerti untuk melakukan mapping data.

Berikut adalah yang perlu kita siapkan:
1. Tentukan sub modul yang akan dilakukan integrasi
2. Tentukan database dari aplikasi yang sudah ada
3. Buat mid-ware
4. Buat script-nya 1. Tentukan sub modul yang akan dilakukan integrasi
Untuk kali ini saya akan mencoba sub modul Lead sebagai sub modul yang akan dilakukan integrasi. Dimana field Street 1 pada tab Detail akan saya gunakan, saat field street 1 ini saya isi dengan kode alamat, maka saat kursor dipindahkan ke field yang lain, field alamat tersebut akan langsung terisi dengan alamat yang didapat dari database diluar Microsoft CRM.
 
Street 1 hanya diisi dengan kode alamat pada aplikasi lama


 

Sricpt diharapkan mengembalikan data alamat


2. Tentukan database dari aplikasi yang sudah ada
Database ini merupakan data dari aplikasi lama yang akan kita ambil. Dalam artikel kali ini saya mencoba untuk menggunakan data contoh dari Microsoft SQL Server 2005 yakni AdventureWorks. Untuk table yang saya akan gunakan adalah Person.Address. Pada table ini key yang akan saya gunakan adalah AddressID, sedangkan value yang akan dikembalikan adalah AddressLine1.

3. Buat mid-ware
Mid-ware di sini kita bisa membuat sebuah halaman yang prosesnya benar-benar di server. Nilai yang dihasilkan diharapkan bukanlah HTML Tag, tetapi full XML dimana nilai XML ini nanti akan di-konsumsi oleh script yang akan kita buat pada Microsoft CRM.

Berikut adalah sedikit kode yang yang saya buat dengan VB.NET


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim sAddressID As String = Request.QueryString("AddrID")
Dim sAddressName As String
Dim sQry As String = "SELECT AddressLine1 FROM Person.Address " & _
"WHERE AddressID = '" & sAddressID & "'"

Dim oConn As New SqlClient.SqlConnection
Dim oComm As Data.SqlClient.SqlCommand
Dim oReader As Data.SqlClient.SqlDataReader

oConn.ConnectionString = "integrated security=SSPI;data source=(*);" & _
"persist security info=False;initial catalog=AdventureWorks;" & _
"Integrated Security=True;"

oComm = New Data.SqlClient.SqlCommand(sQry, oConn)
oConn.Open()
oReader = oComm.ExecuteReader()

oReader.Read()
sAddressName = oReader.GetString(0)

oConn.Close()

Response.Write("<addressline1>" & sAddressName)
Response.Write("</addressline1>")
End Sub
GetAddress.aspx.vb

Keterangan:
(*) - Isi dengan nama database server yang menyimpan aplikasi yang akan kita ambil datanya.

Pastikan bahwa pada file GetAddress.aspx dibuang HTML tagnya, tinggalkan baris pertama saja seperti berikut


<%@ Page Language="vb" AutoEventWireup="false" Codebehind="GetAddress.aspx.vb" Inherits="DemoXML.PersonAddress"%>
GetAddress.aspx


4. Buat script-nya
Berikut adalah script yang bisa kita masukkan pada field Street 1 (addressline1) pada sub modul Lead pada Microsoft CRM. Kita masukkan dalam script tadi dalam event OnChange.


var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
var sAddrID = crmForm.all.address1_line1.value;

oXmlDoc.async = false;
oXmlDoc.load("http://localhost/demoxml/getaddress.aspx?AddrID=" + sAddrID);
crmForm.all.address1_line1.value = oXmlDoc.selectSingleNode("addressline1").text;


Setelah masukkan script di atas, jangan lupa untuk memberikan checked pada Enable Script.
Selamat mencoba.

Level: 400 of 500 (Intermediate - Advanced)

Comments

No comments yet

Add Comment

This item is closed, it's not possible to add new comments to it or to vote on it