Wednesday, March 5, 2008

MS CRM Horizontal scroll bar

A client contacted me to complain that one of the users needed to see all the fields in a custom opportunity view (where they had asked for a lot of extra fields to be added). After a couple rounds of emails, the IT manager wrote back and said that he realized the user had a low resolution screen (1024 x 768) and the view did not have a horizontal scroll bar.

Here were some options we came up with (assuming IE 7):

1. Use the Internet Explorer Zoom feature – when you open the CRM opportunity list, hold down the control key and roll the mouse center wheel and it will zoom in/out so that you can see more data, albeit smaller.

2. Make the width of the columns narrower – this will make them all visible, but with the font at that size, the data will be mostly hidden.

3. Get him a bigger screen and use a slightly higher resolution (like 1280 x 1024) – this should make it easy to see and give you visibility of all the fields.

4. He could use an Excel add-in tool from Prosoft Systems, and he would have visibility to all the data in all 4 business areas

5. Change the default Text Size of the browser to be "Larger" so that when the view is rendered in its IFrame, it will be too large for the window width and force IE to render a horizontal scroll bar.

Hope this helps someone! If you have any other suggestions, please share them.

Wednesday, February 27, 2008

CRM 4.0 upgrade error

While I was upgrading a server from MS CRM 3 to 4, I got this error message on the System Requirements part of the installation:

The attachments missing parent object IDs in database.

Since this did not make much sense to me, I did some research and found that I could launch the setup with a command line parameter:

setupserver.exe /L c:\crmlog.txt

and after reading that log, it appeared that many activities were being scanned and it hit an error:

Check OrphanAnnotationValidator...

the key words here are 'orphan' and 'annotation' which suggested to me that there were records in the annotation table that did not connect properly to another table.

It turns out that one of my programmers had manually converted some activities into the system using SSIS and left the ObjectID field blank on some records in the AnnotationBase table, so I deleted those records using this SQL statement:

delete from dbo.AnnotationBase
where isnull(objectid ,'fd6fc64e-5165-dc11-baa3-001a6b7af693')
= 'fd6fc64e-5165-dc11-baa3-001a6b7af693'

this statement will scan the AnnotationBase table, and for each record that has a Null ObjectID field (my invalid records), it will treat that field as though it has the GIUD 'fd6fc64e-5165-dc11-baa3-001a6b7af693'
(a unique identifier) so that it can compare it with the same GUID, therefore only the records with a null ObjectID will be found and deleted.

and then I re-started the upgrade and it got me past the error so I could continue the upgrade.

SQL 2005 SP2 Error during install

I was updating my SQL Server 2005 with SP2 (SQLServer2005SP2-KB921896-x86-ENU.exe) running on Server 2003, and it kept getting an error on the installation of the Database Services. It gave me a log file to look at located at:

C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\SQL9_Hotfix_KB921896_sqlrun_sql.msp.log

and it was HUGE! it took forever, but I finally found this message burried in the log:
---------- clip -----------
MSI (s) (98!44) [22:27:08:640]: Product: Microsoft SQL Server 2005 -- Error 28062. SQL Server Setup cannot install files to the compressed or encrypted folder: D:\Program Files\Microsoft SQL Server\. To continue, make sure that your installation directories are not compressed or encrypted, or specify a different directory, and then run SQL Server Setup again.

Error 28062. SQL Server Setup cannot install files to the compressed or encrypted folder: D:\Program Files\Microsoft SQL Server\. To continue, make sure that your installation directories are not compressed or encrypted, or specify a different directory, and then run SQL Server Setup again.
---------- clip -----------

and sure enough, someone had compressed the entire SQL server folder. So I uncompressed it and re-ran the SP2 update and it worked fine.

Hope this helps!

Thursday, October 4, 2007

Installing a DRAC 5 card in a PowerEdge 2900

I purchased a Dell PowerEdge 2900 server and forgot to get the DRAC (Dell Remote Access Card) installed when I originally purchased it, so I ordered one. It arrived today and it looked a little different; like a regular expansion card but with no metal plate on the back edge around the ethernet jack. Then I noticed that there were 2 short ribbon cables that came with it. I looked for a manual or something that would explain where it installed, what software to use or something. Alas, nothing in the box. A quick search on the web found very little.

So being the geek that I am, I opened up the 2900 and poked around inside. it was immediately obvious that there were 2 ribbon cable connectors on the middle of the motherboard that were labeled RAC1 and RAC2. The problem is that the nearest compatible expansion slots were 6 inches away and there was a lot of other hardware between those connectors and the bus slot. I pulled out the internal fan housing (two easy blue tabs), looked around and noticed that there were some blue mounting poles hanging under part of the internal framework, and the DRAC had several holes in a similar pattern. There was also a black hole cover in the back of the machine that would offer just the right space for the ethernet connector when the DRAC is mounted on the poles. It was clear at that point that the DRAC was not going to be inserted in a regular expansion bus slot.

I removed the black hole cover and installed the DRAC on the blue poles. Then started looking at the ribbon cables. I discovered that they are very close in size, but one is slightly larger. I was careful to attach the cable with the red ribbon connecting to pin 1 on both the DRAC and the motherboard connectors. I installed cable 2 first, then cable 1 because it was just going to be easier that way.

I replaced the fan housing (a simple slide in system) and had to be careful to not damage the new RAC cable which ir right up against it. After closing up the machine and powering it back on, the POST reported the existence of the new RAC and assigned it an IP address.

Now I need to figure out how to use it! I susect that the instructions and software are somewhere on the original disks that came with the PE 2900.

Let me know if you have some experience with setting up a RAC.

Thursday, July 5, 2007

CFIMPORT's gives customers customization control

I have read mixed reviews over CFIMPORT and I feel that I have to weigh in on the subject. I think there is another very useful application of CFImport that people are missing, and that is the ability to give customers a way to safely incorporate their web design into an existing system with a lower security risk.


First of all though, you have to understand that I am a very lazy programmer. I _hate_ coding TABLE tags for layout, not just because they are drudgery, but for all the good practices of separating User Interface (UI) from business logic (BL). So instead of a block of code like this:







<form method="post">

<table>

<tr><td>First name</td><td><input type="text" name="firstname"></td></tr>

</table>

<input type="submit">

</form>


I would prefer to write this:





<cfimport prefix="dsp" taglib="forms">


...


<dsp:beginform layout="singlecolumn" action="index.cfm" >


<dsp:input type="text" label="First Name" name="Firstname" required="Yes" size="25"/>


</dsp:beginform>




And then I have a framework of modules that handle the UI, BL, and DAL (data access layer) aspects.


In my case, (unline many of you folks that have tight control over access to your code) I have some clients that I host a Farcry CMS system for them, and they like to change things around without calling me all the time.


Aside from the obvious fact that fewer lines of code = better maintainability, I can put the code containing the <dsp:...> tags in a location the customer can access them to change the <dsp:...> tags as much as they want - as long as I prevent them from writing any CF or other script code, they can now create pages to their hearts content and I dont have to worry about them crashing or hacking my system, and they can do some fancy forms and such.


Ironicaly, I ended up witing this article in Dreamweaver and hand coding TABLE tags around my code snippets because I didnt see an easy way to highlight my code in this blogging tool.

Thursday, May 3, 2007

SSRS Report Design Tips and Tricks

I found a neat document from MS that details some very usefull tips. The contents are:

Best Practices - which includes sections on performance, rendering, page size, logs, parameter passing, and how to switch from a 2005 version back to a SSRS 2000 version.

Report Samples - sections on using custom code for aggregations, passing images into the report, data from multiple sources, changing the report at runtime, resetting page numbers (usefull for muti-page invoices and such), using matrix controls to make data run across the page instead of down, and creating 'Green bar' reports.

You can download the document here:
http://download.microsoft.com/download/2/7/c/27cd7357-2649-4035-84af-e9c47df4329c/ReportDesignTips.doc

Friday, April 27, 2007

Save the Bees!

I have been listening to testimony on Cap Hill about colony collapse disorder (CCD) - Very scary stuff. I have been following this story intently for several months because of the time I spent with a friend in his apiary business. He has lost 1/3 of his bees lately and this is going to severely affect our food supply. Someone should figure out a way to preserve their genetic material in case we find a way to use it later.

One of several things will happen:
1. All the bees will all die off, 75% of the world's population will starve, war will break out over the food that is left, the few people that survive will barely be subsisting and not be contributing to the global warming any more, and a new species of insect will take the place of the bees.
2. The bees that do survive CCD will have superior genetic material, their honey will be prized and, thanks to short sighted entrepreneurs, all their honey will be sold to the Chinese for $100/oz which will leave nothing for them to live thru the winter on, and they will die - see scenario #1
3. Similar to #2 except that the bees with superior genetic makeup will create "super" bees with "hive intelligence." They will start their own government, sell the royal jelly to the Chinese as an aphrodisiac for $15000 per oz, buy up all the world's assets under an assumed name and force all mankind to live in the outback of Australia to act out the "Road Warrior" (a Mel Gibson movie) for their entertainment.