Monday, March 31, 2008

New Job Responsibilities

This week I begin taking on the installation responsibilities for MOSS and WSS. Look for more posts involving installation and configuration techniques and any quirks that I find along the way. I am excited to dive into this new area of SharePoint and look forward to the many challenges that are sure to await me.

Besides SharePoint installation I will also be working with InfoPath and Forms Services on upcoming projects, so there will be some posts on InfoPath upcoming.

Thursday, March 27, 2008

West Michigan SharePoint Users Group

Today I found a new users group for those developers interested in SharePoint development. The West Michigan SharePoint Users Group holds their meetings in Grand Rapids and has meetings once a month. The next meeting is April 1st at 6PM.

For more information check out their Web site.

Labels: ,

Wednesday, March 26, 2008

Vista SP1

Vista Service Pack 1 is now available on the TechNet site:

http://technet.microsoft.com/en-us/windowsvista/bb738089.aspx

The service pack includes all updates to Windows Vista excluding those released two months before SP1. It also promises more hardware compatibility. The service pack also includes things to improve performance and reliability in the networking and file system areas.

There is also a Windows Service Pack Blocker tool available for those organizations who do not want SP1 installed through Windows Update.

Labels: , ,

Tuesday, March 25, 2008

Error using XML Web Part and owssvr.dll

Today we wanted to get data from a SharePoint list and format it using some XSL. After some research I found people that said you could use OWSSVR.DLL and pass it certain parameters to filter the list and return only the data you want. The good thing about OWSSVR.DLL is that it is available at each site level and can pull data from any list and return the data in XML format.

Great! Now all we need to do is style it with XSL.

Not so fast!! The link to OWSSVR.dll is http://servername/sitename/_vti_bin/owssvr.dll. Try putting this into the XML web part and testing the link using the test link link. Good it returns the XML the way we want. Now try saving your XML web part settings and you will notice that you get an error about not being able to access the XML URL.

I did some more research and found that many people were having the same problem with OWSSVR.DLL and XML web parts. A couple of people suggested that it was a permission issue and that you could fix the problem. It appears to me as well to be a permission issue. When the web part tries to access the URL it uses the Web App Pool Id. One user suggested adding the Web App pool id to the IIS_WPG and WSS_WPG domain groups and that this would take care of the issue. I tried this and it did not seem to work. I still received the same error.

We ended up moving to the cSeg web part for rendering the list data. We would like to use OWSSVR.DLL in the future, so if anyone knows of a way to get past the error that the XML web part produces, any solution would be great.

Labels: , ,

Thursday, March 20, 2008

Moving SharePoint Databases

For a while now we have wanted to move all of our internal SharePoint databases off on one virtual server and onto another one to free up some space for new virtual machines. Not thinking that this would be all that hard, we began moving over the content databases. No problem. Then it came time to move the Central Admin content database. The problem was you set the configuration for the Central Admin content DB in central admin. So if you remove the content database, you will no longer have a central admin to do anything from. The trick around this is to use the stsadm -addcontentdb command to attach central admin to a new content DB. The entire directions can be found on this blog.

After we got the Central Admin content DB moved over we tried to move the Configuration databases next. This was a little more trouble than we thought. We searched around the net and everyone said that you can't move the Configuration database to another server. We knew there had to be a way. So we moved the database to the new server and pointed SharePoint to the new DB. We noticed that we started getting a ton of Error 3760 in the event log saying that the login falied because the config database could not be found. So we began poking into the database itself and found many areas that were still looking for the old config database. So we did more poking and found the GUID for the new DB and replaced the old DB GUIDs with the new ones. We knew that doing this could completely destroy SharePoint, so we backed up the databases. Well our errors disappeared, once we changed all of the references to the old DB to the new one. We started getting a couple of other errors that we are working on yet, but to those who say the configuration database could not be moved, it can, it is just a lot of work. Maybe in a future version of SharePoint it will be easier to move the config DB over.

For more information on moving SharePoint databases check out this blog.

Labels: ,

Wednesday, March 19, 2008

Office Live Workspace

Today I signed up for the Beta of the Office Live Workspace, which is part of the Office Online Suite. I just began playing with it but I believe it has definite potential for collaboration efforts. You can upload documents and then share these documents out to other people. There is a current limit of 30 MB per file and 500 MB total for your workspace. They have some built-in templates to aid in building your workspace and get you up and running faster. These templates include Class, Essay, Event, Household, Job Search, Meeting, Project, School, Sports Team, Study Group, and Travel workspaces. You can also create a blank workspace and customize it how you want. You can upload Word, Excel, and PowerPoint files. There is also an Office Add-in that you can install and integrate the workspace with your current Office applications. To try Office Live Workspace for yourself, go to http://workspace.officelive.com.

Tuesday, March 18, 2008

HRESULT 0x80040E14

Today I was trying to debug an annoying error that we were getting in one of our projects. We created a custom list with about 25 custom content types that all inherit from the built-in event type. These content types contain many columns on each one so there are probably a couple hundred columns on the list. When we tried running our application that worked with this list and a couple of other lists, there is a place where a user can enter a Task owner. When we would add an owner and then click the button to update the list item we would get the Unexpected error. HRESULT 0x80040E14. I did some research on the topic and found a couple of posts and blogs and even a KB article. It appears that this is a generic error for many issues. Below are the blogs or articles and I will explain which case will be fixed with each link.

http://support.microsoft.com/kb/841216

This Knowledge Base article describes the error message as being an issue with installing Service Pack 1 and then uninstalling it. The article recommends running the stsadm -o upgrade command. This did not apply to our issue but it could be a possibility if you receive this error message.

http://www.sharepointblogs.com/ajp/archive/2007/11/21/hresult-0x80040e14-when-added-items-to-sharepoint.aspx

This link indicates that there may be an issue when the SQL server data drive is full or the mdf and ldf database files may have reached their full allocation size. This did not apply to our issue but it is another option.

http://www.themssforum.com/WindowsServices/HRESULT-WHEN/


This post appeared to be the answer for our issue. When I turned versioning off on the list I did not receive the HRESULT error. The minute that I added the versioning back to the list, the error appeared again. It only happened when we modified an item in the list using the ItemAdded event receiver. Although this appears to be an answer, it does not help if you want to turn versioning on the list that is having the problem. I will be keeping my eyes out for any word from Microsoft about fixes for this issue.

UPDATE:

Today I had another client that was receiving the HRESULT error when they tried to add an item to a calendar. I began poking around in the the SharePoint install and tried adding items to other existing lists and got the error. So then I tried creating a new list and still got the error. The next logical thing for me to do was to poke into the SharePoint logs and there is where I found my answer. The logs had a database entry that had the following error message. "The log file for database 'SharePoint_Config' is full. Back up the transaction log for the database to free up some log space."

Apparently the HRESULT error is a generic one for Database errors that could include many different things. If you find that you can't add any items to a list or even create a new list, then check the SharePoint logs to see if there is a meaningful error that could lead you in the right direction.

Labels: , ,

Wednesday, March 12, 2008

IE 8 Beta Available

The IE 8 beta is available for web designers and developers. On the Microsoft site, they promise that IE 8 will provide better interoperability and compatibility. So far I am not impressed. One of my colleagues downloaded it and tried it out on various sites and SharePoint and IE 8 broke every site tested. Granted it is a beta, but if this if for developers to modify their site to work with 8 shouldn't 8 work with existing sites?

One of the neat things in IE 8 is WebSlices. This is where a user can add slices of your site's content right to their toolbar and hover over the toolbar to check out the slice. Users also receive updates when your site content changes.

For more information on IE 8 or to download the beta.

Labels: ,

Monday, March 10, 2008

Adding Video to a SharePoint Site

Adding video to your SharePoint site will probably come up sooner or later. There is a very easy way to do this. First upload your video to a document library. Then create a Javascript file and place it in the document library. Your Javascript file should build the embed and object code to insert the video.

function DisplayMovie() {

document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" height="211" width="210">');

document.write('<param name="movie" value="/Movie.swf">');

document.write('<param name="quality" value="high">');

document.write('<param name="wmode" value="transparent">');

document.write('<embed src="/Movie.swf" wmode="opaque" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" height="211" width="210"></embed>');

document.write('</object>');

}


The reason for the separate Javascript file is to work around the fact that you have to click on embedded media to activate it.


Once you have the Javascript file you can add a Content Editor Web Part to whatever page you want the video to appear in. If you add the following lines to the Editor Web Part it will call your Javascript file and display the video.

<script type="text/javascript" language="javascript" src="/en-US/FlashMovie.js"></script>

<script type="text/javascript" language="javascript">DisplayMovie();</script>

Labels: , ,

Wednesday, March 5, 2008

Planning a Multi-lingual Site Structure

When building a multi-lingual site there are many things to take into consideration such as location of files and documents, number of servers in the server farm, and amount of resources allocated to SharePoint and SQL Server just to name a few.

When you build out the variations you will get sub-sites that represent each language, i.e. fr-ca, en-us, fr-fr. You will also still have the top level site. In this top level site is a Publishing Images folder and a Site Collection Images folder. Either of these photo libraries works well for placing images that will need to be used throughout the site and do not contain any text on them that would need to be translated.

Each language sub-site also contains a Publishing Images folder. These folders work well for images that contain text on them that need to be translated into each language.

Inside each language sub-site we created document libraries to hold Brochures, other word documents, and PDF files.

In the language sites may be other sub-sites, and in each one of these is a Documents folder and an Images folder. If you want to break your content down to that level you can place images in these folders. We used the Documents folder to place XML files that we used for XML web parts in the sub-sites.

In the language sites we also placed Javascript files and Flash movies that were language specific.

For much of your site you can also use ASP.Net Global Resources for text that will automatically use the right translated version in each language site.

With the variation landing page in place, you can allow the user to be directed to the correct language site based on their default browser language settings. If you want you can also put another way to direct users to the different language sites, such as a drop down menu or little flags that are links to the different languages.

Once you plan out the location of your files in a multi-lingual site, it will make it that much easier to maintain the site, especially when you add more languages.

Labels: ,