1.23.2009

Better get off my butt

Someday, I plan to study hard and accomplish the completion of the following exams and certifications:

Exam 70-541
TS: Microsoft Windows SharePoint Services 3.0 – Application Development

Exam 70-542
TS: Microsoft Office SharePoint Server 2007 – Application Development

Exam 70-631
TS: Windows SharePoint Services 3.0, Configuring

Exam 70-630
TS: Microsoft Office SharePoint Server 2007, Configuring

I've got a couple of books, I should probably crack them open and fly around the VM with them.

Inside Microsoft Windows SharePoint Services 3.0 (Pro Developer) by Ted Pattison; Daniel Larson (Paperback - April 4, 2007)

Inside Microsoft Office SharePoint Server 2007 by P. Tisseghem (Paperback - May 16, 2007)

Microsoft® Office SharePoint® Server 2007 Administrator's Companion by Bill English and The Microsoft SharePoint Community Experts (Hardcover - Jan 10, 2007)

Inside the Index and Search Engines: Microsoft Office SharePoint Server 2007 (PRO-Developer) by Patrick Tisseghem and Lars Fastrup (Paperback - April 19, 2008)

Boy, I gotta learn c# too.

1.19.2009

Content Type Axioms

  • All Content Types inherit from Item. No Exceptions.
  • All Content Types have a Title field. No Exceptions.
  • The Event Contrtol Block (ECB) Menu is hooked into the Title field of the Item Content Type.
  • Permissions cannot be assigned to a Content Type.
  • SharePoint Designer workflows cannot be attached to Content Types.

Hopefully, this will save you weeks of googling "Content Types".

Here are some quotes from the experts about renaming or deleting the Title field in the Item Content Type:

Dr. Peter Venkman: This site collection is headed for a disaster of biblical proportions.
Farm Admin: What do you mean, "biblical"?
Dr Ray Stantz: What he means is Old Testament, Mr. Admin, real wrath of God type stuff.
Dr. Peter Venkman: Exactly.
Dr Ray Stantz: Fire and brimstone coming down from the skies! Rivers and seas boiling!
Dr. Egon Spengler: Forty years of darkness! Earthquakes, volcanoes...
Winston Zeddemore: The dead rising from the grave!
Dr. Peter Venkman: Human sacrifice, dogs and cats living together... mass hysteria!

Naming Conventions

DO NOT PUT SPACES WHEN CREATING CONTENT CATEGORIES, COLUMN CATEGORIES, CONTENT TYPE NAMES, LIST NAMES, DOCUMENT LIBRARY NAMES or FIELD NAMES

You can edit them later to be human-readable, but when just created, we want them to be accessible code-wise, and so we don't want any spaces.

I know, I know, some of the core content types violate this rule, I am sure Microsoft will get right on it...

1.15.2009

Access Denied

Access Denied messages can sometimes be caused by bandwidth or cross-domain issues.

I can't quite put my finger on it, but I think there are elements on the page which timeout before they load, and throw Access Denied messages to the page as it loads, so the page then throws an "Access Denied" message to the user.

If you have a corporate network that has elements exposed to the internet, there may be several different ways to get into your SharePoint Sites based on whether your users are accessing it from the Corporate Network (or VPN), or from home (or in the field). Don't use the 'At Home' Method to access the site from inside the Corporate Network, as you are looping through the internet instead of just stying inside your Corporate network.

You can reproduce this and test it by finding users who have intermittent access and Access Denied messages. In other words, sometimes they can get in and sometimes they can't.

I need to wordsmith this.

Calculated Fields: Examples of Common Formulas

http://office.microsoft.com/en-us/sharepointtechnology/HA011609471033.aspx


Tip: If your column name has a space character in it, you have to put it in brackets when creating a calculated column. For example: the "Assigned To" field, when you want to use it in a formula is written as "=[Assigned To]". If there are no spaces in the name of the field, simply put the name of the field into the formula, as such: "=TEXT([Created],"dddd mmm-dd-yyyy")".


In addition, here are some more helpful calculations:


Nice Date for Humans:


[Calculated field based on a field called "Class Start", a date/time field.]


=TEXT([Class Start],"dddd mmm-dd-yyyy hh:mm")


Gives us: "Thursday, Jan-15-2009 09:31"


Leading Zeros in Month Number:


=YEAR(Created)&" "&IF(MONTH(Created)<10,"0"&month(created),month(created))

Gives us: "2009 01"

This is VERY useful for sorting items by date. Add the day and you are set to go:

=YEAR(Created)&"-"&IF(MONTH(Created)<10,"0"&month(created),month(created))


Last Day of Last Month:


=DATE(YEAR(DATE(YEAR(Created),MONTH(Created)-1,DAY(Created))),MONTH(DATE(YEAR(Created),MONTH(Created)-1,DAY(Created)))+1,0)


Useful for reporting - if you have a document library where you upload a bunch of reports from last quarter or last month, this will give you a jumping off point to sort and group by the report's 'end date'.


 


I will add more calculations as I come across them.

1.14.2009

Enormous is >5MB

People - if you are sending anything larger than 1MB in an email message to huge numbers of other people, you need to just post it to your site and then send out an email alerting them of the URL and new content. Better yet, set them up for an alert on the list or library where you post it so that it can all be automatic.

The exchange servers will thank you.

Remember kids, 5MB turns into 10MB when emailed. Those binary files have to be converted to text - which sometimes more than doubles the file size! Sending a 5MB file to 200 people is just stupid. And clogs up the internets.

Corporate Intranet: Best Practice

Keep the top-level site blank, use publishing features, make the welcome page point to a lower-level site (not the top level site).

Remember, if your site managers and content owners have permission to modify content types on the top level site, especially core content types, then maybe WSS and MOSS isn't your thing after all.

Once that core content type is changed (like renaming the 'title' field in the 'item' content type), then you are screwed. Nuke from orbit and start all over, and yes, start ALL over is the only way out of this one, folks...

Managing Permissions: Best Practice

If you are using Active Directory, manage all SharePoint permissions using Active Directory (AD) groups whenever possible.

Create groups in AD and mark them as SharePoint-based group, (such as SP-CorpOffice-ALL, SP-CorpOffice-SiteManagers, SP-CorpOffice-ContentManagers, etc).

Add users and user groups to those groups in AD. (This step is where users can be managed - untrained users cannot get into the Site Manager groups, especially if the Site Managers have permissions to modify content types on the top level site!)

You now have groups that represent the people you want to manage.

Create permissions levels based on what we want to allow those groups of people to be able to do in the site or site collection. In our sites, we basically have Site Managers (can create lists and libraries), Content Managers (can add/edit/delete content only, cannot create lists or pages), and we have general users (we have a lot more permissions than that, but those are the basic three).

We then add the AD group the appropriate permissions level in the SharePoint site (or list or whatever).

Now, with 25k users, you don't have to manage each site, user, permission, which can get exponentially tedious after just a few hours.

End User Training

We get endless requests about how to perform Site Manager Level user type activities (creating lists, libraries, managing content, etc).

We've got several copies of this book that we lend out to the more interested Site Manager Level Users.

I cannot recommend it enough:

Microsoft® Windows® SharePoint® Services 3.0 Step by Step (Step By Step (Microsoft)) (Paperback)

This is the perfect reference for those end-user types.

What Happened to my View Dropdown


Windows SharePoint Services WSS; List or Library has lost the "view:" dropdown list




I don't really have an explaination for this - however, I have browser-based solution!




  1. Navigate to your list or library.

  2. Select List Settings (or Document Library Settings) from Settings.

  3. Click Create View (at the very bottom of the page).

  4. Click Standard View. (Note: here is where some Content Manager - type people will want to save time and click something under the Start from an existing view section - DO NOT DO THAT, the new view you create will have the same problem again.)

  5. Go ahead and re-create the view you want and save it, make sure it is the default view if you are 'fixing' the default view. You will need to create a name and URL that is different from all of the other views, of course.

  6. Navigate back to your list or library's default view page (probably AllItems.aspx).

  7. Select Edit Page from Site Actions.

  8. Select Delete from the Edit menu on the broken web-part.

  9. Click Add a Web Part.

  10. Select the list or library you are currently trying to fix.

  11. Select Modify Shared Web Part from the Edit menu on the web-part you just put on the page.

  12. Select your newly-created view from Selected View (click OK when the warning message appears).

  13. Select Full Toolbar from Toolbar Type.

  14. Click OK.

  15. Delete the other 'broken' view.

  16. You can now rename your new view to the same information as the old broken view, even if the new view is now called All Items and the URL you want is AllItems.aspx.

This has happened multiple times on various lists and libraries on my sites. I have yet to find a reason for it.


1.13.2009

Welcome!

Welcome, one and all to the WSS Pit. I am currently working at FedEx Office (FedEx Kinko's is now FedEx Office). I am the Senior Engineer for The FedEx One Portal - our intranet solution which is using Microsoft Office SharePoint Server (MOSS) 2007, which is a subset of Windows SharePoint Services (WSS) 3.0.

My main focus is developing business applications using WSS 3.0 using the Browser interface, SharePoint Designer, InfoPath and Visual Studio 2008. We try to keep most applications using the Out-Of-The-Box (OOB) features of MOSS 2007, which really cuts down on support costs later on down the road. We teach our Business Partners how to use MOSS to their advantage as much as possible - Teach them how to Fish and they will not come to your for more fish...

This blog is something that I will be updating (hopefully regularly) so that I can spread my knowledge far and wide (and remember it later too). There are a million little things to remember about MOSS 2007, and if I haven't gotten them written down somewhere, I end up solving the same problem multiple times. Well, here's where I will write them down, and you can share them with me!