21 Nisan 2010 Çarşamba

MSCRM 4.0 Documentation Generator (Excel Add-in)

Merhaba arkdaşlar bugün sizlere ms crm için yazılmış güzel bir tool dan bahsedeceğim. Microsoft'un açık kaynak sitesi olan Codeplex sitesinde bulabileceğiniz MSCRM 4,0 için hazırlanmış MSCRM 4.0 Documentation Generator (Excel Add-in) bir Excel 2007 eklentisidir. Tool’un amacı otomatik olarak Ms crm 4.0 daki bütün varlıkları ve varlıklara ait olan alan adlarını, picklist değerlerini ve yazılmış olan bütün javascript code’larını excel belgelerini almaktır. Böylece çok uzun sürüp sıkıcı olan dökümantasyon işini kısa sürede tamamlamamızı sağlayacaktır. Öncellikle Documentation Generator (Excel Add-in) indirip kuralım.( http://crm4documentation.codeplex.com/) ve daha sonra dökümantasyon işine başlayalım.

Kurulumu tamamladıktan sonra crm den Ayarlar -> özelleştirme-> Özelleştirmeleri ver girelim ve özelleştirmeleri ver özelliğine tıklayalım.


Tüm varlıkları seçtikden sonra seçili özelleştirmeleri ver ‘e tıklayalım ve son olarak customizations.xml belgesini istediniz bir yere alalım.


Daha sonra Excel’i başlatalım ve add-ins ‘e tıklayalım. Gördüğünüz gibi add-ins içinde CRM Documentation tool oluşmuştur.

Burada da Load Xml’e tıklayarak customizations.xml dosyasını yükleyelim.


Son olarak Forms seçeneğine tıklayarak tüm varlıkları ve alan adlarını ekleyelim. Varlıkları load ettikten sonra diğer seçenekleri de tıklayarak sırasıyla script ve picklist’ler için belgeleri oluşturalım.




Gelecek yazımda görüşmek dileğiyle......

10 Nisan 2010 Cumartesi

Ms Crm için yapılmış bir GoogleMap uygulaması


Merhaba arkadaşlar bugün sizlere  google api lerini kullanarak küçük bir  google map uygulaması yapacağım.  Ayrıca yaptığımız uygulamayı crm de firma varlığına entegre ederek database den enlem ve boylamı  çekerek marker  aracılığıyla haritada firmanın adresini ayrıntılarıyla göstereceğim.  Şimdi uygulamayı  yazmayı başlayalım. Öncelikle visual stadio açarak yeni bir web proje açalım  ve ismine GoogMapWebSite diyelim.
  
Daha sonra cs dosyasını açarak kodları yazmaya başlayalım. Comment out yaptığım yerlerde bazı açıklamalar yaptım.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string id = Request.QueryString["oid"].ToString();//burada firmanın guid’ini alıyoruz
        SqlConnection conn = new SqlConnection("Data source=MSCRMDYNAMICS; initial catalog=ERCAN_MSCRM; Integrated Security=SSPI;");
        string sql = "SELECT  new_longitude,new_latitude FROM account WITH(NOLOCK) where accountId='" + id + "' and deletionstatecode<>2 ";
       //sql query’mi yazıp enlem ve boylamı çekiyorum.
        SqlDataAdapter da = new SqlDataAdapter(sql, conn);
        DataSet ds = new DataSet();
        da.Fill(ds);

        try
        {
            Double a = Convert.ToDouble(ds.Tables[0].Rows[0]["new_latitude"]);
            Double b = Convert.ToDouble(ds.Tables[0].Rows[0]["new_longitude"]);

/*Enlem ve boylam boş değil ise aspx sayfasını source’una yazdığım initialize adlı bir fonksiyona yoluyorum, boş ise hata mesajı veriyorum.*/

            if ((ds.Tables[0].Rows[0]["new_latitude"] != DBNull.Value) && (ds.Tables[0].Rows[0]["new_longitude"] != DBNull.Value))
            {
                string javascript = "";
                RegisterStartupScript("Close", javascript);
            }
           
          
              
        }
        catch
        {
            string javascript = "";
            RegisterStartupScript("Close", javascript);
           
        }
       
    }
}
Şimdi sıra geldi aspx sayfımıza source’una  yazacağımız  kodlara

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Ercan’s Maptitle>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">script>
<script type="text/javascript">
    var geocoder;
    var map;
  
    function initialize(a,b) {
       
        geocoder = new google.maps.Geocoder();
        var latlng = new google.maps.LatLng(a,b);
        var myOptions = {
            zoom: 15,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP//burada yap
        }
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
      
          var marker = new google.maps.Marker({
      position: latlng,
      map: map,
      title:"The Account Address !"
  });
  }
script>
head>
<body style="margin:0px; padding:0px;"  >
    <form id="form1" runat="server">
<div id="map_canvas" style="width:100%; height:100%">
     <asp:ScriptManager ID="ScriptManager1" runat="server">
    asp:ScriptManager>
    div>
    form>
body>
html>

Son olarak yaptığımız uygulamayı bir button aracılığıyla crm’e ekleyeceğim. İlk olarak  ISV.Config dosyasını  export ediyoruz.

 ve dosyayı visual stadio ile açıp aşağıdaki kodu ekliyoruz.
<Button JavaScript="var id= crmForm.ObjectId; window.open('/ISV/GoogMapWebSite/Default.aspx?oid='+id,'mywindow', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no,width=473,height=322');" PassParams="1" WinParams="" WinMode="0">
                         

                           <Titles>
                               <Title LCID="1033" Text="Google Map" />
                          Titles>
                          <ToolTips>
                               <ToolTip LCID="1033" Text="Google Map" />
                          ToolTips>
                    Button>
Son olarak  kodu ekleyip save edip dosyayı import  ediyorum. 

Şimdi test edelim bu arada ekranda button görünmüyorsa ayarlardan (settings) sistem ayarlarına giriyoruz daha sonra özeleştirmeyi tıklıyoruz. Ve aşağıda gösterdiğim değerleri seçip tamam a tıklıyoruz.  


Bu işlemi bitirdikden sonra altaki gibi bir görüntü ortaya çıkacaktır.



Umarım işinize yarar başka bir yazımda görüşmek dileğiyle........