27 January 2009

Exchange 2003 and SharePoint--now play nice!

I just saw a posting about this in the Microsoft public newsgroups, and I thought it might be handy to put a remind about how to set this up. I'm doing this from memory, and I'll try to put up a complete, illustrated set of instructions later this week.

The real issue is mainly about how to get the incoming email to flow properly. Most people can configure the outgoing email settins the the SharePoint Central Administration without too much problem. It's the incoming that messes with their heads.

The basic mistake that usually gets made is that the admins configure the incoming email domain name to match the live domain name. The followon from this usually means that someone adds that namespace to the SMTP connector on the Exhange server. This is where the loop comes in. The name in the connector means that the Exchange server will likely try to send it to the connector's partner which will then do the MX record lookup, and find it's own ip address. It will take the mail and then look at all the connectors to see what route it should take, and it tries to send it back out. So it does an MX lookup. Do you see where the loop comes in here?

The easiest fix: Make the sure the incoming email domain namespace in sharepoint is different than the domain namespace of your Exchange environment, and then configure the smtp connector in exhange with THAT namespace, rather than creating the loop.

There, that's the real quick and dirty solution. Like I said, I'll try to get a more detailed explanation in here later

23 January 2009

Using the Multi-View Control

I had a student the other day who had need of this, and I had to dig it out of the far reaches of my memory (I don't do a lot of individual page/report design work). But It's pretty useful, so I thought I'd toss it out there for everyone else.

There are times when you want to have a lot of information easily accessible on a page within your SharePoint site, but there's too much to put on a single page for whatever reason (not enough screen real estate, visual layout is too cluttered etc.).

There are quite a few ways of coping with this, ranging from creating separate pages to using filters and audience targeting and all sorts of other options. I have found using the MultiView control to be useful, especially when building reports and dashboards.

The MultiView control allows you to create multiple views, putting whatever information and web parts in those views you like and then use navigation controls to switch between them. One gotcha--at a bare minimum you will need to use SharePoint Designer to edit the page that use the controls. Below is a very basic primer on how to create a MultiView section, create the views inside it and use links/buttons to provide some navigation. Keep in mind there are other ways to provide the navigation, but I'm not trying to be comprehensive. I'm going for quick and easy here.

1. Open/create the .aspx page you want to put the control into with SharePoint Designer.

2. Locate the space where you want to put the views.

3. From the "Standard" group in the ASP.NET Controls in the Toolbox, add the MultiView control into that space you identified in Step 2.

4. In the properties for the MultiView control, locate the "ActiveViewIndex" property and set it to 0 (zero). This will display the first view you create. The default value is "-1" which makes all the views hidden.

5. In the white space of the MultiView control, add the number of View controls you need (1 for each view. You will find the View control in the same group as the MultiView control in the Toolbox. The only thing that can be put into the MultiView control are View controls.

6. Each View has an "ID" property that should be set, and will need to be unique with in the set of views for the MultiView control. The default will probably read something like "View1". A more informative name is probably useful.

7. Each View on your page should have some space to insert controls and web parts. This is where you will put your tables/web part zones/web parts/whatever you want in that view.

8. As part of each view you may choose to put your navigation buttons/links. By putting them inside the views, you can make easy use of the builtin properties and methods for navigation that are available to you. There are ways to manage the navigation from outside the MultiView control and the Views, but they are more complex to implement and will require more coding.

9. In each view a Button or LinkButton control for each view. (i.e if you have 3 views inside the MultiView, add three buttons). You may choose to do this once and then copy/paste from one view into the others.

10. For each button, adjust the following properties:
Text: Name of the View the button is going to switch to
CommandName: SwitchViewByID
CommandArgument: ID (the property you set) of the View the button is going to switch to

11. Once complete, save your work and preview the page.

16 January 2009

A quick tip for lists and libraries

A lot of people have never realized this, but it is possible to set up alerts for other people.

If you have the Manage List permission on a list and library, you can set up alerts that go to others.

This is especially handy if you are setting up a list/library that is using content approval and you don't want to use a workflow.

The process is identical to setting up an alert for yourself, with the exception that you can select other people (you can include yourself, but you don't have to) to be the recipients of the email.

Nothing earthshattering here, but something I've found handy along the way.

04 January 2009

Happy New Year

I didn't have too many New Year's resolutions this year--

Really, only three:
1. Write the book I've been meaning to write.
2. Be disciplined about my exercise (I've been totally slack and I can feel it).
3. Keep my blogs up to date (defined as at least one post per week).

It's really only number three that's relevant here--so this is post 1.

I don't start work until the 12th, so I'm not even thinking about anything technical at the moment. See you next week!

I hope anyone who stumbles across this had a Happy New Year, and I wish you all the best in the upcoming year.

Cheers,
James