<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8989699805909947811</id><updated>2011-07-08T17:30:41.620+02:00</updated><category term='Dynamics CRM 4.0'/><title type='text'>Everyday Microsoft Development</title><subtitle type='html'>Dynamics CRM, Sharepoint, SQL Server, ASP.NET, C#, jQuery, and everything else I get to deal with everyday.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rynoburger.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8989699805909947811/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rynoburger.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>RynoBurger</name><uri>http://www.blogger.com/profile/18009150472955155138</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8989699805909947811.post-6581818751443751680</id><published>2009-06-15T17:37:00.006+02:00</published><updated>2009-06-15T17:59:56.749+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dynamics CRM 4.0'/><title type='text'>Passing additional parameter in query string to a customized AdvFind.aspx form</title><content type='html'>&lt;span style=";font-family:verdana;font-size:85%;"  &gt;If you ever need to pass additional parameters to a customized AdvFind.aspx or AdvFind.aspx i&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;tself from a vanilla install of CRM 4.0 you will most likely get the "Invalid parameter" error.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;This can be resolved by creating the following DWORD registry entry under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM called DisableParameterFilter, value=1.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: verdana;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bEwskchHo7k/SjZu0c0aklI/AAAAAAAAAAM/mZ37QkRZU5M/s1600-h/1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 11px;" src="http://4.bp.blogspot.com/_bEwskchHo7k/SjZu0c0aklI/AAAAAAAAAAM/mZ37QkRZU5M/s320/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5347583454917333586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;After you've created the registry key you need to restart IIS. You will now be able to pass additional parameters in the querystring. In my requirements I had to pass a value on the crm form to my IFrame via the query string.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8989699805909947811-6581818751443751680?l=rynoburger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rynoburger.blogspot.com/feeds/6581818751443751680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rynoburger.blogspot.com/2009/06/passing-additional-parameter-in-query.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8989699805909947811/posts/default/6581818751443751680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8989699805909947811/posts/default/6581818751443751680'/><link rel='alternate' type='text/html' href='http://rynoburger.blogspot.com/2009/06/passing-additional-parameter-in-query.html' title='Passing additional parameter in query string to a customized AdvFind.aspx form'/><author><name>RynoBurger</name><uri>http://www.blogger.com/profile/18009150472955155138</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bEwskchHo7k/SjZu0c0aklI/AAAAAAAAAAM/mZ37QkRZU5M/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8989699805909947811.post-468255786614631267</id><published>2009-06-11T17:58:00.007+02:00</published><updated>2009-06-12T12:19:46.129+02:00</updated><title type='text'>Just a few reasons why jQuery is so useful with CRM 4.0</title><content type='html'>I will be updating the post as I find some useful scripts in &lt;a class="zem_slink" href="http://jquery.com/" title="JQuery" rel="homepage"&gt;jQuery&lt;/a&gt; while working with CRM 4.0.&lt;br /&gt;&lt;br /&gt;Okay, so here goes...&lt;br /&gt;&lt;br /&gt;&lt;b&gt; Loading jQuery from _customscripts: &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="js" name="code"&gt;&lt;br /&gt;function load_script(url) &lt;br /&gt;{&lt;br /&gt;    var x = new ActiveXObject("Msxml2.XMLHTTP");&lt;br /&gt;    x.open('GET', url, false); x.send('');&lt;br /&gt;    eval(x.responseText);&lt;br /&gt;    var s = x.responseText.split(/\n/);&lt;br /&gt;    var r = /^function\s*([a-z_]+)/i;&lt;br /&gt;    for (var i = 0; i &lt; s.length; i++) {&lt;br /&gt;        var m = r.exec(s[i]);&lt;br /&gt;        if (m != null)&lt;br /&gt;            window[m[1]] = eval(m[1]);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//usage: normally on the page's onLoad() event&lt;br /&gt;load_script("/_customscripts/jquery-1.3.2.min.js");&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Cross page scripting:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="js" name="code"&gt;//Old school jscripting:&lt;br /&gt;crmForm.all.IFRAME_TOBULKMATCH.contentWindow.document.all.testval.value = crmVal;&lt;br /&gt;&lt;br /&gt;//jQuery&lt;br /&gt;$('#IFRAME_TOBULKMATCH').contents().find('testval').val(crmVal);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Need to get hold of the oid attribute value commonly found when you add a lookup field on your form sitting inside the span element?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="js" name="code"&gt;&lt;br /&gt;//jQuery&lt;br /&gt;var entId =  $('.ms-crm-Lookup-Item').attr('oid');&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Looping through the result in the Advanced Find grid is so easy with jQuery:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="js" name="code"&gt;&lt;br /&gt;//jQuery&lt;br /&gt;$('#' +  iframe).contents().find('#gridBodyTable tr').each(function()&lt;br /&gt;        {&lt;br /&gt;            var v_oid = this.oid;&lt;br /&gt;            &lt;br /&gt;            if (this.selected == true)&lt;br /&gt;            {&lt;br /&gt;                counter++;&lt;br /&gt;                &lt;br /&gt;                //Do whatever you need to do here&lt;br /&gt;            }            &lt;br /&gt;        });  &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Get hold of a specific xml element returned by one of the value attributes normally found in the crmFormSubmitMappedDataRemainder element in CRM 4.0:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="js" name="code"&gt;&lt;br /&gt;//jQuery&lt;br /&gt;var myVal =  $($("#crmFormSubmitMappedDataRemainder")&lt;br /&gt;.val()).filter("xyz_myguidval").text()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;More to follow...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8989699805909947811-468255786614631267?l=rynoburger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rynoburger.blogspot.com/feeds/468255786614631267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rynoburger.blogspot.com/2009/06/just-few-reasons-why-jquery-is-so.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8989699805909947811/posts/default/468255786614631267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8989699805909947811/posts/default/468255786614631267'/><link rel='alternate' type='text/html' href='http://rynoburger.blogspot.com/2009/06/just-few-reasons-why-jquery-is-so.html' title='Just a few reasons why jQuery is so useful with CRM 4.0'/><author><name>RynoBurger</name><uri>http://www.blogger.com/profile/18009150472955155138</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8989699805909947811.post-2202993187861354424</id><published>2009-06-11T08:02:00.008+02:00</published><updated>2009-06-12T12:35:33.645+02:00</updated><title type='text'>Custom WF Activity to send mobile text message in CRM 4.0</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;Creating a custom workflow activity for CRM is pretty straight forward. The approach we took was to register with an Email-to-SMS service provider to send out bulk SMS messages from CRM. The service provider provided us with an email account allowing the SMTP server to relay our messages through their server from the given account.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Following this approach all you need to do is simply send an email using the standard .NET libraries (System.Net.Mail) with a specific string format with a combination of the recipient's mobile number and service provider account (this will most defenitly be specific to your service provider). Sharepoint&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Below I will give you some sample C# code to achieve this:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharp" name="code"&gt;&lt;br /&gt;&lt;br /&gt;[CrmWorkflowActivity("Send SMS", "My Custom WF Activities")]&lt;br /&gt;public partial class SendSMS: SequenceActivity&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;  //DEV NOTE: Ensure that the name of the property (public string mobileNumber{}) match that of the name passed to DependencyProperty.Register&lt;br /&gt;  public static DependencyProperty mobileNumberProperty = DependencyProperty.Register("mobileNumber", typeof(string), typeof(SendSMS));&lt;br /&gt;&lt;br /&gt;  public static DependencyProperty messageProperty = DependencyProperty.Register("message", typeof(string), typeof(SendSMS));&lt;br /&gt;&lt;br /&gt;  [CrmInput("mobilenumber")]&lt;br /&gt;  [CrmDefault("")]&lt;br /&gt;  public string mobileNumber&lt;br /&gt;  {&lt;br /&gt;      get { return (string)base.GetValue(mobileNumberProperty); }&lt;br /&gt;      set { base.SetValue(mobileNumberProperty, value); }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  [CrmInput("message")]&lt;br /&gt;  [CrmDefault("Type your sms message here")]&lt;br /&gt;  public string message&lt;br /&gt;  {&lt;br /&gt;      get { return (string)base.GetValue(messageProperty); }&lt;br /&gt;      set { base.SetValue(messageProperty, value); }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)&lt;br /&gt;  {&lt;br /&gt;      IContextService contextService = (IContextService)executionContext.GetService(typeof(IContextService));&lt;br /&gt;      IWorkflowContext wfContext = contextService.Context;&lt;br /&gt;&lt;br /&gt;      ICrmService crmService = wfContext.CreateCrmService(true);&lt;br /&gt;&lt;br /&gt;      SendNewSMS(mobileNumber, message);&lt;br /&gt;&lt;br /&gt;      return ActivityExecutionStatus.Closed;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharp" name="code"&gt;&lt;br /&gt;&lt;br /&gt;private void SendNewSMS(string mobileNr, string message)&lt;br /&gt;    {&lt;br /&gt;        string host = "localhost";&lt;br /&gt;&lt;br /&gt;        SmtpClient client = new SmtpClient(host);&lt;br /&gt;&lt;br /&gt;        MailAddress toAddress = new MailAddress(string.Format("{0}@myprovider.com", mobileNr));&lt;br /&gt;        MailAddress fromAddress = new MailAddress("account@myorg.com");&lt;br /&gt;&lt;br /&gt;        MailMessage msg = new MailMessage(fromAddress, toAddress);&lt;br /&gt;&lt;br /&gt;        msg.Subject = message;&lt;br /&gt;        msg.Body = string.Empty;&lt;br /&gt;&lt;br /&gt;        client.Send(msg);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8989699805909947811-2202993187861354424?l=rynoburger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rynoburger.blogspot.com/feeds/2202993187861354424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rynoburger.blogspot.com/2009/06/custom-wf-activity-to-send-mobile-sms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8989699805909947811/posts/default/2202993187861354424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8989699805909947811/posts/default/2202993187861354424'/><link rel='alternate' type='text/html' href='http://rynoburger.blogspot.com/2009/06/custom-wf-activity-to-send-mobile-sms.html' title='Custom WF Activity to send mobile text message in CRM 4.0'/><author><name>RynoBurger</name><uri>http://www.blogger.com/profile/18009150472955155138</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8989699805909947811.post-5429187391129828689</id><published>2009-06-10T22:18:00.002+02:00</published><updated>2009-06-10T22:34:34.345+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dynamics CRM 4.0'/><title type='text'>jQuery with CRM 4.0</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: verdana;"&gt;I'm currently working on a project where we apply extensive &lt;a href="http://jquery.com/"&gt;jQuery &lt;/a&gt;to CRM 4.0. Our client requires a lot of UI-specific validations and business logic, mostly required on the front-end. Being a web developer I always try to shy away from traditional JavaScript when it comes to client-side programming. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Using jQuery makes life a whole lot easier in general and more so in CRM 4.0 considering the fact that you constantly need to manipulate the DOM to perform client-side tasks. Most of the simple tasks can be achieved by one line of code saving a lot of development time and improving overall productivty of the development team.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;I strongly suggest that every development team working with CRM 4.0 invest in something like &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://jquery.com/"&gt;jQuery&lt;/a&gt;&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8989699805909947811-5429187391129828689?l=rynoburger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rynoburger.blogspot.com/feeds/5429187391129828689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rynoburger.blogspot.com/2009/06/jquery-with-crm-40.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8989699805909947811/posts/default/5429187391129828689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8989699805909947811/posts/default/5429187391129828689'/><link rel='alternate' type='text/html' href='http://rynoburger.blogspot.com/2009/06/jquery-with-crm-40.html' title='jQuery with CRM 4.0'/><author><name>RynoBurger</name><uri>http://www.blogger.com/profile/18009150472955155138</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
