cub-e.net

just coding...

Microsoft Dynamics CRM JScript Export Tool

Geçenlerde Joris Kalz'ın (http://blogs.msdn.com/joris_kalz/) bloğunda çok faydalı bir araç gördüm hemen sizlerle paylaşmak istedim.
I saw a little tool in blog of Joris Kalz (http://blogs.msdn.com/joris_kalz/) and I want share with you.

VS 2008 projesini aşağıdaki linkten indirebilirsiniz :
You can download the VS 2008 project below link :
Microsoft Dynamics CRM Jscript Export Tool




Başlamadan önce app.config dosyası içerisinde CRM Kurulumunuza uygun ayarları yapmanız gerekmekte :
Before you start this tool, you have to change the app.config according to your CRM installation :



Programı çalıştırdıktan sonra yazdığınız JavaScript kodları belirttiğiniz klasöre çıkartılacak :
After running the tool, all client side JavaScript will be stored at the declared output folder :




Formlar üzerindeki bütün alanların içerisindeki kodlar çıkacaktır :
The result will be a list of all entities containing JavaScript separated by event type and further by form and field events :


 

CRM workflow date update includes saturdays/sundays

Boş zamanlarımda genellikle forumlarda soru cevaplamaya çalışıyorum. Geçenlerde Dynamics Community Forum'da bir sorunla karşılaştım ve çözüm tekniği olarak Mayank Pujara bir kod yazdı ve forumda yayınladı. Kodu ve sorunu sitemde yayınlıyorum.

" Merhaba, öncelik sırasına göre şikayet takip gününü güncelleyecek bir workflow oluşturmak istiyorum. Eğer öncelik yüksek ise şikayet gününden 24 saat sonra takip tarihi atansın. Eğer öncelik normal ise şikayet gününden 72 saat sonra takip tarihi atansın. Problem ise, CRM haftasonunu (Cumartesi,Pazar)'ı da sayarak hesaplama yapıyor. Benim istediğim ise işgünü olmayan günlerin sayılmasını engellemek."

Bu problem workflow ile çözülemeyince aşağıdaki JavaScipt kodu ile istenen işlenim gerçekleşmesi sağlandı.

---

When I have time, I'm answering the technical question in forums. A couple days ago I see a problem in the  Dynamics Community Forum. Mayank Pujara developed a code for this problem. I want share this problem and JavaScript code.

" Hi, I want to create CRM workflow which updates the case follow up date based on priority. If priority is high --> follow up date would be 24 hrs (1 day) after the case create date. If priority is normal --> follow up date would be 72 hrs (1 day) after the case create date. Now the problem is that CRM includes (or counts) the weekends (Saturday/Sundays) while calculating the days after 3 days. I want to exclude these non business days to be counted in workflow. Is there any ways we can avoid saturdays/sundays while dynamically setting date values in CRM 4.0 workflow? Any idea?? "

JavaScript code is solved problem when workflow didn't work.

The code:

 if(crmForm.FormType == 1)
{
   
crmForm.all.followupby.DataValue = new Date();
    //alert(crmForm.all.followupby.DataValue);

    //high
   
if(crmForm.all.prioritycode.DataValue ==1)
   
{
       
crmForm.all.followupby.DataValue = crmForm.all.followupby.DataValue.setDate(crmForm.all.followupby.DataValue.getDate() + 1);
   
}
   
else if (crmForm.all.prioritycode.DataValue ==2)
   
{
       
crmForm.all.followupby.DataValue = crmForm.all.followupby.DataValue.setDate(crmForm.all.followupby.DataValue.getDate() + 3);
   
}
   
else if (crmForm.all.prioritycode.DataValue ==3)
   
{
       
crmForm.all.followupby.DataValue = crmForm.all.followupby.DataValue.setDate(crmForm.all.followupby.DataValue.getDate() + 5);
   
}

    //alert(crmForm.all.followupby.DataValue);

    if(String (crmForm.all.followupby.DataValue).substr(0,3) == "Sat")
    {
       
crmForm.all.followupby.DataValue = crmForm.all.followupby.DataValue.setDate(crmForm.all.followupby.DataValue.getDate() + 2)
   
}
   
else if (String (crmForm.all.followupby.DataValue).substr(0,3) == "Sun")
   
{
       
crmForm.all.followupby.DataValue = crmForm.all.followupby.DataValue.setDate(crmForm.all.followupby.DataValue.getDate() + 1)
   
}
   
//alert(crmForm.all.followupby.DataValue);

}

 

Use JavaScript execute/call/launch Dynamics CRM 4.0 Workflow

CRM 3.0 içinde Mitch Milam JavaScript ile nasıl workflow çalıştırabileceğimizi bize göstermişti. Fakat ExecuteWFProcessRequest sınıfı CRM 4.0'dan kaldırılmış, bu yüzden bu kod CRM 4.0'da çalışmıyor. Ama bu bizim için bir sorun değil bunu kullanabileceğimiz bir sürü yöntem var işte bunlardan birisi:

----

In CRM 3.0, Mitch Milam has described how to Launching a Workflow Rule from JavaScript, it works great. However, in CRM 4.0, the class: ExecuteWFProcessRequest has been deprecated, so it won’t work in CRM 4.0. Although there are many ways to launch a workflow, if you want to run it through JavaScript, here’s the trick:

/* the function */
ExecuteWorkflow = function(entityId, workflowId)
{
    
var xml = "" + 
    
"<?xml version=\"1.0\" encoding=\"utf-8\"?>" + 
    
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" + 
    
GenerateAuthenticationHeader() +
    
"  <soap:Body>" + 
    
"    <Execute xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" + 
    
"      <Request xsi:type=\"ExecuteWorkflowRequest\">" + 
    
"        <EntityId>" + entityId + "</EntityId>" + 
    
"        <WorkflowId>" + workflowId + "</WorkflowId>" + 
    
"      </Request>" + 
    
"    </Execute>" + 
    
"  </soap:Body>" + 
    
"</soap:Envelope>" + 
    
"";  

     var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    
xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
    
xmlHttpRequest.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Execute");
    
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    
xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
    
xmlHttpRequest.send(xml);
    
var resultXml = xmlHttpRequest.responseXML;
    
return(resultXml.xml);
} 

/* call */ 

var theWorkflowId = "3FD2DD58-4708-43D7-A21B-F0F90A0AA9F2";
//change to your workflow Id 

ExecuteWorkflow(crmForm.ObjectId, theWorkflowId);

 

Ascentium CrmService JavaScript Library

Ascentim Dynamics CRM Service JavaScipt library'sini yayınladı. Gerçekten çok hoş ve yazılım geliştiricilere CRM platformu üzerinde JavaScript kullanırken çok zaman kazandıracak.
Aşağıdaki adresten inceleyebilirsiniz;

---

Ascentium released their CrmService JavaScript library.  It looks very interesting and should save us CRM developers tons of time extending the CRM platform using JavaScript.
You can look ate below address;

http://www.ascentium.com/blog/crm/Post129.aspx

OnSave() Events on Dynamics CRM - Part II

Bir önceki yazıya ek yapmak istiyorum.
I want continue my latest article with this article.

Eğer aynı sayfada OnSave() olayı icra edilirken istemediğiniz bir durum oluşursa (örnek olarak bir alana veri girilmemesi); 'event.returnValue' propertysine 'false' değerini vererek, OnSave() olayını icra edilmeden önce durdurup uyarı mesajı gösterebilirsiniz.
Aşağıadaki örnek kod bunu nasıl yapacağımızı bize anlatıyor.

----

On that page you will see that you can stop the onsave event by setting the 'event.returnValue = false'. Don't forget to follow that line with a 'return false'. This will cause the save procedure to stop right at that point. Otherwise statements after that will still be executed.
Below code tell to us how is execute this procedure.

 

// Example From SDK//

var CRM_FORM_SAVE_MODE_SAVE = 1;
var
CRM_FORM_SAVE_MODE_SAVEANDCLOSE = 2;

// Validate only if the user clicked "Save".

switch (event.Mode)
{
     
case CRM_FORM_SAVE_MODE_SAVE:

      // If the user provided a first and last name, they must provide
     
// a job title as well.

      if (crmForm.all.jobtitle.DataValue == "" &&
     
crmForm.all.firstname.DataValue != "" &&
     
crmForm.all.lastname.DataValue != "" &&)
     
{
           
// Tell the user what is wrong.
           
alert("Please provide a Job Title for this person.");

            // Give the control focus.
           
crmForm.all.jobtitle.SetFocus();

            // Cancel the save operation.
           
event.returnValue = false;
           
return false;
     
}
     
break;

      case CRM_FORM_SAVE_MODE_SAVEANDCLOSE:
     
// If the user forgot to provide a job title, set a default title.
     
if (crmForm.all.jobtitle.DataValue == "")
     
{
           
// Set a default Job Title.
           
crmForm.all.jobtitle.DataValue = "N/A";

            // Because this is a "Save and Close",
           
// just save the form.

            return true;
     
}

      break;
}

OnSave() Events on Dynamics CRM - Part I

Bu sefer güzel bir ipucum var :)

Dynamics CRM içerisinde javascript kodu ile kaydetme işlemlerini crmForm.Save() veya crmForm.SaveAndClose() komutlarından biriyle yapabilirsiniz.Eğer "event.Mode"'a bakarsaniz en son hangi olay fonksiyon çağrılmış bunu bulabilirsiniz. Eğer kod 1 geri dönüyorsa crmForm.Save() eğer 2 dönüyorsa crmForm.SaveAndClose() çalışmış demektir.Tabii ki geri dönen sadece bunlar değil aşağıdaki listede hangi fonksiyon çalışınca hangi kodun geri döneceğine bakabilirsiniz.

-----

I have a good tip :)

To call the save event from your javascript code you can use the javascript functions crmForm.Save(); and crmForm.SaveAndClose(). By looking at the 'event.Mode' you can determine which event was executed before. If the code is 1, then it is a crmForm.Save(); or it is 2 for a crmForm.SaveAndClose(). There's only one small issue. There can be other save events as well. Below is a list of save events with the corresponding javascript functions to call.

Save
Code: 1
Function: crmForm.Save();

SaveAndClose
Code: 2
Function: crmForm.SaveAndClose();

Send
Code: 7
Function: send();

SaveAsCompleted
Code: 58
Function: SaveAsCompleted();

SaveAndNew
Code: 59
Function: crmForm.SubmitCrmForm(59, true, true, false);

Microsoft Dynamics CRM 4.0 Implementation Guide update 4.2.0 is now available - Implementation Guide update 4.2.0 yayında

Microsoft Dynamics CRM 4.0 için Implementation Guide 4.2.0 versiyonunu yayınladığını duyurdu.

yenilikler ise;

  • 30'un üzerinde düzenleme yer almakta.
  • 3 yeni başlık bulunmakta.
    • Microsoft Dynamics CRM Server'ı birden fazla servera kurma (NLB kullanarak)
    • Microsoft Dynamics CRM for Outlook'ı Systems Management Server 2003 üzerinde düzenlemek
    • SQL Server 2005 Database üzerinde Organization Database Yansısı oluşurmayı düzenlemek.
  • İçerik özeti yapılan değişiklilere göre yeniden düzenlenmiş.

www.microsoft.com/downloads/details.aspx?FamilyID=1ceb5e01-de9f-48c0-8ce2-51633ebf4714&DisplayLang=en adresinden ulaşabilirsiniz.

----

Microsoft announce that the second update to the Microsoft Dynamics CRM 4.0 Implementation Guide is now available!

contains the following:

  • Over 30 corrections and revisions.
  • 3 new topics.
    • Install Microsoft Dynamics CRM Server on multiple computers (using NLB)
    • Deploy Microsoft Dynamics CRM for Outlook with Systems Management Server 2003
    • Configure an Organization Database for SQL Server 2005 Database Mirroring
  • A change summary sheet that describes each correction and addition as well as its relative location in each guide.
Get the latest version  www.microsoft.com/downloads/details.aspx?FamilyID=1ceb5e01-de9f-48c0-8ce2-51633ebf4714&DisplayLang=en

 

Windows Mobile Client for Microsoft Dynamics CRM

Hollandalı CWR Mobility firması Microsoft Dynamics CRM 4.0 için Windows Mobile üzerinde çalışan bir Mobile CRM uygulaması geliştirmiş. Piyasadki diğer örneklerine nazaran şu an için CRM 4.0 için geliştirilmiş en iyi uygulama olarak gözükmekte.

---

Mobile options for Microsoft Dynamics CRM 4.0 are proliferating, but the one that stands out above the rest continues to be the mobile client from Netherlands firm, CWR Mobility.




The CWR mobile application for offline use fully supports custom entities with fast background synchronization and a variety of Windows Mobile and PocketPC devices. Check out CWR at http://www.cwrmobility.com.

Is Microsoft Winning The CRM Race - Microsoft CRM Yarışını Kazanabilecek Mi?



Destination CRM Magazine dergisi Microsoft CEO'su Steve Ballmer ile CRM konusunda Microsoft'un stratejilerini paylaştığı bir söyleşiyi ve Dynamics CRM'in teknik incelemesinin yer aldığı bir yazıyı yayınladı.
Dergiyi çevrimiçi okumak için aşağıdaki linke tıklayabilirsiniz.

---

Did you got chance to read July edition of Destination CRM Magazine? It featured CRM 4.0 and a conversation with Steve Ballmer and Technical Research of Dynamics CRM.
Here is the link to read it online;


http://www.nxtbook.com/nxtbooks/crmmedia/crm0708/#/22

User’s Guide now available in PDF and Word for CRM 4.0 - CRM 4.0 için kullanıcı kitapçığı Word ve PDF biçiminde hazır

CRM 4.0 için kullanıcı kitapçığı son kullanıcı için basit anlatımlı yardımlar ve kısayolladan oluşmakta. Döküman satış,pazarlama ve şikayet yönetimi modülleri için anlatımlar ve adım adım tanımlardan oluşmakta.

----

The Microsoft Dynamics CRM 4.0 User’s Guide includes all of the basic end-user information available in Help, including documentation on sales, marketing, and customer service features, as well as step-by-step instructions on working with Advanced Find and workflow. And it’s in an easily printable format.

 

http://www.microsoft.com/downloads/details.aspx?FamilyId=0DB4D487-1BAA-4619-9BC5-074D73C3997D&displaylang=en