Recently, I received an interesting problem from a customer. My customer told me that whenever he creates a new custom view for an entity and uses the AND/OR group clause, he receives a stack overflow error. For a few horrified minutes, I thought this might have to do with the SQL server but after some mooching around, I managed to find an appropriate Microsoft Knowledgebase Article describing the problem. Further testing confirmed that the error (shown below) was also present in the Advanced Find which is not terribly suprising since considering that the Advanced Find is utilised by the View engine.
Error :
Microsoft Dynamics CRM Error Report Contents<CrmScriptErrorReport>
<ReportVersion>1.0</ReportVersion>
<ScriptErrorDetails>
<Message>Out of stack space</Message>
<Line>165</Line>
<URL>/RuleFinancial/AdvancedFind/AdvFind.aspx</URL>
<PageURL>/RuleFinancial/AdvancedFind/AdvFind.aspx</PageURL>
<Function>)</Function>
<CallStack>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
<Function>)</Function>
</CallStack>
</ScriptErrorDetails>
<ClientInformation>
<BrowserUserAgent>Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)</BrowserUserAgent>
<BrowserLanguage>en-us</BrowserLanguage>
<SystemLanguage>en-gb</SystemLanguage>
<UserLanguage>en-gb</UserLanguage>
<ScreenResolution>1280x800</ScreenResolution>
<ClientName>Web</ClientName>
</ClientInformation>
<ServerInformation>
<OrgLanguage>1033</OrgLanguage>
<OrgCulture>2057</OrgCulture>
<UserLanguage>1033</UserLanguage>
<UserCulture>2057</UserCulture>
<OrgID>{A0476863-44E0-440B-98C5-9041A4B40DE8}</OrgID>
<UserID>{B742828E-60F7-DD11-BA51-001E0BDBDAD8}</UserID>
<CRMVersion>4.0.7333.3</CRMVersion>
</ServerInformation>
</CrmScriptErrorReport>
I downloaded the HotFix from the KB Article (You receive an error message or you cannot select the lookup value in the Advanced Find page in Microsoft Dynamics CRM 4.0 ) and applied it to the server.
You can also request the Hotfix from HERE if it has been removed from the KB article in favour of Rollup 4
Warning : This file is 256mb!
Result : No Stack Overflow problems any longer. This fix is also included in Update Rollup 4 for those who are interested, but I have never advised applying a whole Rollup when a single Hotfix will do.
An oldie but a goodie. How to open a centered window from an ISV button. Just add the following to the JavaScript element in ISV.config.
var width = 400;
var height = 200;
var left = (screen.width - width)/2;
var top = (screen.height - height)/2;
var params = 'width='+width+', height='+height;
params += ', top='+top+', left='+left;params += ', directories=no';params += ', location=no';params += ', menubar=no';params += ', resizable=no';params += ', scrollbars=no';params += ', status=no';params += ', toolbar=no';window.open('../../ISV/ContractLineStatusChange.aspx?id=' + crmForm.ObjectId + '&Status=' + crmForm.all.foc_paymentstatus.DataValue ,"ChangeContract", params);
A couple of weeks ago, I unwittingly stumbled across a serious contender for coolest Google product feature: GoogleLookup. GoogleLookup is a Google Spreadsheets function that attempts to return the value of any attribute for any entity that you specify. Here’s the syntax: =GoogleLookup(”entity”; “attribute”).
For those of you not familiar with functions in Google Spreadsheets (the function-savvy may skip to paragraph 3), here’s a really simple example of a more conventional function: sum. In any spreadsheet cell, if I enter =SUM(3+5) and hit the “return” button, the content of the cell will display 8. Functions can also refer to values already in your spreadsheet, which is what makes them particularly useful. For instance, the function =SUM(A2:A20) will instantly sum all of the values in column A, rows 2 through 20. If you want to try this yourself, go to http://docs.google.com/ and open a new spreadsheet. You can also learn more about functions in the Google Docs Help Center.
So what makes GoogleLookup really cool is that it references data not just from your spreadsheet (as with functions like =SUM(A2:A20)), but searches that incredibly expansive body of published information: the world wide web. By performing a targeted websearch, GoogleLookup attempts to return some fact about the entity you specify. City populations are a nice example. Entering =GoogleLookup(”Philadelphia”; “population”) in any spreadsheet cell…
screenshot: GoogleLookup function
screenshot: GoogleLookUp loading
returns the value 1,449,634, which is in fact accurate. This may sound like magic, but go ahead and try it in a spreadsheet of your own. Now try swapping out “Philadelphia” for other city names: New York, Boston, San Francisco, Bangkok, London…
Radical, no? Perhaps you are saying to yourself, “this seemingly magical feature is indeed rad, but what real world scenario would actually warrant use of this function? How can GoogleLookup help me?” Let’s look at one example.
My good friend Caroline recently asked me and Dan to recommend some awesome dance songs for her upcoming wedding. Needless to say, Dan and I had lots of suggestions. Rather than rattle them off while she took notes on a scrap of paper, I told Caroline that I would send her a spreadsheet. When I got home, I opened a new spreadsheet and typed out 26 dancable song titles. But I wanted to give Caroline a little more information — I wanted to include the artist of each song. I didn’t know the artists for some of the songs on the list (especially for some of the more questionable tracks, all suggested by Dan) but I could have looked each one up and then typed out the artists name. This might have taken 20 minutes. Instead, I used GoogleLookup to automate that process.
Take a look at the spreadsheet. In cell B2 (under “artist”) I typed =GoogleLookup($A2, “artist”). (ignore the $ symbol; it just means that I want the function to use column A even if I copy the formula into another column). I then copied this function into all of the cells in column B (just drag the lower right-hand corner and drop). Within moments, all of those cells were populated with likely values for the attribute “artist” given the entity in column A, the song title.
Now, as you will observe, the values are not perfect. Gloria Trevi is NOT the artist I had in mind when I suggested the classic rock tune, “Gloria.” And while UB40 did do a version of “Can’t Help Falling in Love With You,” I would urge Caroline to stick with the Elvis original. But there were also a lot of accurate values. And one cool subfeature of GoogleLookup is that clicking into the cell will trigger a pop-up citing the source (url) of the value and offering a “more options…” link.
screenshot: click into cell for more info
Clicking “More options…” will give you up to three alternative values (and the sources from which these values come).
screenshot: more options for GoogleLookup
You can easily change the displayed value by selecting one of these alternatives.
As you can see on my Good Dance Songs spreadsheet, I used GoogleLookup to populate two more columns: album and year, both of which will be helpful to Caroline and her DJ (the functions, respectively: =GoogleLookup($A2, “album”), =GoogleLookup($A2, “year”)).
So next time your boss hands you a list of US states and asks you to fill in the capital of each state by EOD; or a list of years for which she would like the Academy Award winner for “Best Film”; or a 200 row list of NBA players, each of which needs a “height”… don’t fret, use GoogleLookup to quickly get the data you need.
First posted by Beah HERE
If you're a Windows user, it pretty much goes without saying that you've encountered a frozen program before. Often these jammed apps get labeled with the dreaded "Not Responding" message and simply refuse to do anything, even close. Usually, the only solution is to open the task manager, find the appropriate process, and choose to close it. Fortunately, a quicker and easier way exists.
As the good people at Lifehacker have pointed out (with the aid of HaxAttack), you can create a desktop shortcut that will automatically close any "Not Responding" applications whenever you double-click the shortcut. Here's how to set it up -- it's really easy:
That's it. From here, you can change the icon to make it prettier, or even set a shortcut key if double-clicking is too much work for you. When you launch the shortcut, your computer will automatically identify and terminate any programs that the computer deems "Not Responding." This useful little trick works on Windows XP Pro (but not XP Home), all versions of Vista, and Windows 7,
A systems developer with two children.
Recent Comments