.::Eralp Erat's Solutions Diary::..

{#Every way that I Can share!}-MS Dynamics CRM

MS Dynamics Crm Tips And Tricks - 34 (Microsoft CRM 4 , "This form has been changed and must be saved before printing" probleminin aşılması. )

clock Temmuz 19, 2010 12:19 by author NetZero2

Selamlar ;

Belli bir süredir yoğunluk hat safhadaydı.Aslında birşey değişmiş değil.Bugün çözümünü bulduğumuz bu problem için neler yapmanız gerektiğini anlatacağım.

Bildiğiniz gibi CRM formlarında editlenen herhangi controlün değişime uğradığı forma ait IsDirty property'sinde sakli tutuluyor.onchange'in tetiklenmesi bu property'inin true olması için yeterli.Bizim senaryomuzda formun onload'inda doldurulan bazı

kontroller söz konusuydu..Dinamik olarak gerçekleşen client side Fetch sorguları ekranda yer alan temp alanların içini dolduruyordu.Form açılısında herşey sorunsuz.Lakin form yüklendikten sonra print butonuna basmanız yukarıda adı geçen uyarının

(aslında hata değil..) ortaya çıkmasına neden oluyor.. Çözüm içn yapmamız gereken illegal bir yöntem de olsa sunucuda ki ":\inetpub\wwwroot\_static\_forms\controls" dizinine gidip ordaki "form.crm.htc" dosyasını açıp editlemek.Formun saltokunur olan

IsDiry property'sinin kontrol edildiği if blogu comment altına alınırsa problem giderilecektir.

Kod bloğu aşağıdaki gibidir.

 

   34         function Print() {

   35             if (isDirty()) { /*bu blok kapatılmalı..*/

   36                 alert(LOCID_FORM_PRINT_DIRTY_MESSAGE);

   37             }

   38             else {

   39                 var sId = _oSubmitForm.crmFormSubmitId.value;

   40                 openStdWin(prependOrgName("/_forms/print/print.aspx?objectType=" + _oSubmitForm.crmFormSubmitObjectType.value + "&id=" + sId + "&title=" + CrmEncodeDecode.CrmUrlEncode(parent.document.title)), "print" + buildWinName(sId));

   41             }

   42         }

 

Sevgiler.

E2

  

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


MS Dynamics Crm Tips And Tricks - 30 (Microsoft CRM ,IsDirty sorunsalı)

clock Haziran 16, 2010 03:27 by author NetZero2

Selamlar ;

Crm formlarında çoğu zaman page load eventinde yada function inject ettiğimiz diğer tüm noktalarda ekrandaki kontrolleri kullanıcının haberi olmadan set etmek durumunda kalabiliriz.Sorun şu ki set edilen bu kontroller eğer temp attribute olarak eklendiyse ilgili entity için formun IsDirty property'si biz farkına varmadan true hale gelir ve gerek formu kapatırken gerekse yazdırma esnasında aşağıdaki ve benzeri uyarıları verecektir.



Bunu engellemenin bir yolunu ararken (benim açımdan print kontrolü önemliydi , yukarıdaki uyarı print butonuna ait ) ilgili dom da yer alan print butonunun js debugging esnasında if (crmForm.IsDirty) ise yukarıdaki kullanıcıyı uyarıya yönlendirdiğini farkettim.ya print butonunun click eventini yada action kısmını manuel editlemem gerekiyordu bunun için ki bunu da denedim ama işe yaramadı.Search ederken şu şekilde bir kullanım yaparsanız IsDirty geçer diyor ben henüz test edemedim ama çalışacağını düşünüyorum.Mümkünse tüm kontroller için çalıştırılmalı.

crmForm.all.<fieldname>.defaultValue = crmForm.all.<fieldname>.DataValue;

Sevgiler.

E2

 

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


MS Dynamics Crm Tips And Tricks - 29 (Microsoft CRM ,"This page is accessing information that is not under its control")

clock Haziran 14, 2010 02:57 by author NetZero2

Selamlar ;

"This page is accessing information that is not under its control" bu hatayı Async çağrılarda alıyorsanız ki bu pekala çok mümkün.Sorunun sebebi var olan CRM'iniz farklı URL'lerden açılmaya çalışıldığında sorgu yapılacak olan servisin url'inin Cross Side Scripting noktasında problem çıkartıyor olması.Aşağıdaki metodda bunun nasıl kotarılabileceğini gösterdim.Yani adam crm.firma.com.tr den geliyorsa web servisinede bu domain üzerinden bu URL ile erişmeli.Js de yer alan document.location property'si ile şahsın nerden geldiğini görebilirsiniz..

 

   13 function createSOAPMessage(fetchXml)

   14 {

   15     var soapHeaderXml = "<soap:Envelope " +

   16         "xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' "+

   17         "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' "+"xmlns:xsd='http://www.w3.org/2001/XMLSchema'>"+

   18          GenerateAuthenticationHeader() + "<soap:Body>";

   19      var soapFooterXml = "</soap:Body></soap:Envelope>";

   20      fetchXml = fetchXml.replace(/&/g, '&amp;');

   21      fetchXml = fetchXml.replace(/</g, '&lt;');fetchXml = fetchXml.replace(/>/g, '&gt;');

   22      fetchXml = fetchXml.replace(/'/g, '&apos;');

   23      fetchXml = fetchXml.replace(/"/g, '&quot;');

   24      fetchXml = "<Fetch xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>" + "<fetchXml>" + fetchXml + "</fetchXml>" + "</Fetch>";

   25      var soapXml = soapHeaderXml + fetchXml + soapFooterXml;

   26      var crmServiceUrl = SERVER_URL.replace(ORG_UNIQUE_NAME,"");

   27 

   28      var getUrlX = document.location.href.toString();

   29      crmServiceUrl = (getUrlX.indexOf('123.124.125.111')!=-1?'http://123.124.125.111/':'http://crmserver/');  // DİKKAT!!

   30 

   31      crmServiceUrl =  GetServerUrl(true,false,"");

   32 

   33      crmServiceUrl += "mscrmservices/2007/crmservice.asmx"

   34      var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

   35      xmlhttp.open("POST", crmServiceUrl , false);

   36      xmlhttp.setRequestHeader( "Content-Type", "text/xml; charset=utf-8");

   37      xmlhttp.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Fetch");

   38      xmlhttp.send(soapXml);

   39      var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");

   40      xmlDoc.async=false;

   41      xmlDoc.loadXML(xmlhttp.responseXML.text);

   42      return xmlDoc;

   43 } 

 Sevgiler.

 E2

2 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Yazar Hakkında

Eralp

Uludağ Üniversitesi bilgisayar programcılığı sonrasında işletme fakültesini bitiren Erat ; 1999 yılından bu yana yazılım sektörünün içerisinde yer almış ve ilgili olduğu projelerin çözüm üretilmesin de aktif olarak rol oynamıştır.Yaklaşık 6 yılını Türkiye’nin dört bir tarafında yer alan devlet hastanelerin bilgi yönetim sistemlerini tasarlamak ve geliştirmekle geçirmiş ; LIS , IVR ve Linux sistemlerinin entegrasyonu konusunda uzmanlaşmıştır.Bu konuda halen danışmanlık hizmeti vermektedir..Uzun yıllar “Object Pascal” ile uygulama geliştirmiştir.MCP , MCAD.NET ve MCSD.NET,MCTS (MS CRM 4 Customization) unvanlarına sahiptir..Aynı zamanda Mobile Cihazlar konusunda 2007 yılında Microsoft tarafından MVP unvanına layık görülmüştür.
Çeşitli kurumsal projelerin mimari tasarım ve yazılımlarını gerçekleştirmiştir.Son zamanlarda ağırlıklı olarak Microsoft Dynamics CRM ,Sharepoint ve entegrasyon bazlı olarak Axapta(Microsoft ERP) & Project Server projelerinde yer almaktadır.CRM ve Sharepoint konusunda başta finans sektörü olmak üzere Türkiye'nin alanında en büyük firmalarına kurumsal eğitimler vermektedir.Yazılım konusunda en büyük hayali, Türkiye’mizin bir yazılım üssü haline gelebilmesinde ön ayak olmaktır. Yazılımın belli bir forma sıkıştırılmasından hiç haz etmeyen ve fanatikliği değil sadece kaliteyi ön plana çıkarabilmek adına deneyimlerini ve yeni teknolojiler hakkında oluşan bilgi ve birikimlerini üniversitelerde genç dimağlarla paylaşmaktan büyük mutluluk duymaktadır. Halen orta ve büyük ölçekli kurumsal çözümler üreten bir yazılım evinde geliştirici takım lideri olarak çalışmalarını sürdürmekte ve aynı zamanda Macintosh/Objective C programlama konusunda kendini geliştirmektedir:).2007 yılında Boğaziçi Üniversitesi Makine Mühendisliği bölümünde C# eğitimleri vermiştir.Sakarya Üniversitesi e-Bilişim dalında MBA yapmaktadır.

Yazılım geliştirme konusunda birebir özel ders verilmektedir.Konuyla ilgili lütfen eralp.erat@gmail.com adresine iletişim bilgilerini mail atınız.

 

Calendar

<<  Ağustos 2010  >>
PaSaÇaPeCuCuPa
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

View posts in large calendar

Sign in