Makale Özeti

Bu makalede Microsoft CRM formlarının üzerlerine nasıl düğme(button) koyabileceğimizden bahsedeceğiz. Bu şekilde form üzerinde istediğimiz javascript kodlarını çalıştırabilir veya sunucu taraflı kodları çalıştırabilirsiniz.

Makale

Microsoft CRM’in bence geliştiricler için en güçlü yanı esnemeye çok açık olması ve bu esnetmelerin bir çoğunun da destekleniyor olması. Belki başka bir çok araçta yapması vakit alabilecek ve hatta ürünü garanti kapsamından çıkarabilecek özelleştirmeler, MS CRM’de kolaylıkla uyarlanabilirdir. Bütün bu esnekliğin önemli yanı ise ürün olarak MS CRM’i seçmiş müşterilerin “Teknik olarak yapılamaz” lafını biz geliştiricilerden pek duymamalarıdır. Bir çok makalede bu esneklikten bahsediyor ve açıklıyorum. Bu makalede ise ekranlar üzerine nasıl kendi programlayabileceğimiz bir düğme yerleştirebileceğimizden bahsedeceğiz.

Aşağıdaki ekran görüntüsünde görebileceğiniz üzere Lead entitysi üzerinde "Form’un id’sini Al" gibi bir düğme koyulmuştur.

Burada koyulacak düğmenin yazısı, ikonu, ve tabiki tıklandığında ne iş yapacağı bizim kontolümüzdedir.

Bir basit örnek ile bu düğmeleri nasıl ekleyebileceğimizi anlatmak istiyorum. Daha Sonra bu düğmeler ile neler yapabileceğinden bahsedeceğiz.

CRM’de düğmeler gibi özelleştirmelerin yapılabilmesi için gereken dosya ISV Config isimli CRM içinde bir yapıdır.

Settings --> Customizations --> Export Customizations yolunu kullanarak bu dosyayı dışarı aktarmamız gereklidir. Burada ISV Config isimli özelleştirmeyi seçin ve Export Selected Customizations düğmesini tıklayarak kendi bilgisayarınızda istediğiniz bir yere kaydedin.

Not: bütün özelleştirmeler arasında ISV Config’i bulmak zor oluyorsa View alanında Client Extensions seçeneğini seçerek listenin süzülmesini sağlayabilirsiniz.

Kaydetmiş olduğunuz zip dosyasını export ettiğinizde customizations.xml ismindeki dosya çıkacaktır. Bunu notepad ile de düzenleyebilirsiniz. Ama bir XML editor yada Visual Studio gibi bir yazılımla çok daha kolay olacaktır. Bu XML içinde <Entity name="lead" />  ifadesini bulun ve aşağıdaki gibi değiştirin.

        <Entity name="lead" >

          <ToolBar ValidForUpdate="1">

            <Button Icon="/_imgs/ico_16_2.gif" JavaScript="alert(crmForm.ObjectId);">

              <Titles>

                <Title LCID="1033" Text="Form'un id'sini Al" />

              </Titles>

              <ToolTips>

                <ToolTip LCID="1033" Text="Form'un id'sini Al" />

              </ToolTips>

            </Button>

          </ToolBar>

        </Entity>

Toolbar, kısmında düğmenin Ne zaman görüneceğini belirleyebilirsiniz. Mesela ValidForUpdate="1" seçeneğini seçerseniz, düğme güncelleme zamanında görüntülenecektir.

En önemli kısım ise Button özelliğidir ki burada düğmenin ne yapmasını istediğimizi yazmaktayız. Örneğimizde bir alert kutusu içinde formun id’si ekrana verilmektedir. Kodlar javascript şeklinde olmalıdır.

Daha Sonra Settings --> Customiztions --> Import Customizations yolundan bu XML’i seçin ve Upload düğmesine tıklayarak sisteme geri yükleyin. Export ettiğinizde zip şeklinde almanıza rağmen geri import ederken tekrar zip formatına getirmeniz gerekmez.

Özelleştimenin geçerli olabilmesi için Import Selected Customizations düğmesine tıklamanız gereklidir. İçeri alma işlemi bittikten sonra aşağıdaki gibi bir pencere görüntülenecektir.

Artık Lead ekranını açtığınızda tepede yeni düğmeyi görebilirsiniz.

Düğmeye tıkladığınızda ise Formun id’sini bir alert penceresi içinde gösterecektir.

Bu düğmeyi bir çok amaç için kullanabilirsiniz. Burada çok basit bir örnek ile bir mesaj kutusu gösterdik ama javascript ile yapabilecekleriniz tabiki bunlardan fazladır. Mesela javascript ile web servis çağırarak sunucu tarafında yapılacak işlemleri bile bu düğmeler ile yapabilirsiniz. Başka bir makalede javascript ile nasıl web servis çağırabileceğimizden bahsetmeyi umuyorum. Bunun yanında form üstünde bir takım hesaplamalar yaptırabilir veya javascipt’in izin verdiği ölçüde geliştirme yapabilirsiniz.