Some of this content has been previously posted on the sharepoint_tech list, but much of it hasn’t.
Everything within Sharepoint is either a list or an item in a list. In some cases, you’ll see a different name, e.g. document library or posts or alerts, but you’ll notice that all of these are simply lists with a special name.
Because everything in Sharepoint is a list, knowing the common set of list functionality is important. And that’s what this post is all about. Knowing this information will provide some basic understanding which you can build upon. Take note that all of this functionality is available in both WSS (the version of sharepoint which comes free with the server OS) and MOSS.
Every list has:
- “Permitted” content types
- Columns (or site columns)
- Workflow (optional)
- Versioning (optional)
Content types in particular are interesting, providing the basis for a managed experience. So for example, with a custom content type, you might:
- Associate a word template with a document libary so anyone else can re-use your template to create new documents of that type
- Associate workflows with a custom content type
- Associate information management policy with a custom content type, e.g. define a retention policy for items of that type
- Have managed metadata from within sharepoint. With managed metadata you might enable better search relevance, have a better ability to manage items within the list, plug metadata values into content regions within a template-like content type, and so on
- Re-use defined content types across sharepoint sites
Think of content types as the schema of your lists. They define what types of data items are possible in any given list. There are many default content types which are generally useful (about 20 by default). For example, all Office documents are the document Sharepoint content type. You can build new content types from existing content types. When you’ve enabled a content type on a list, the result shows up for users in the New menu as a new type of item they can create.
Each item in a list can have many pieces of data associated with it. These pieces of data are called columns, and you can add additional columns to any list. Those additional columns can represent whatever data you’d like to capture.
For any column in a sharepoint list, you can “normalize” the values for a column–meaning require the values to follow a set of known/controlled/approved values–where normalize means the values must be from a list of values. This requires that the approved values are either in another Sharepoint list within that sharepoint site or are in a connected external data source. To do this, when you add a column you use the lookup type to link the values to the other sharepoint list. This results in a dropdown menu for the new column for each item in the list. This kind of functionality makes categorizing things in lists easy w/o any need for coding.
Each list has some default views defined, e.g. the ‘All items’ view which displays all items in the list. Alternatively, you can define custom views which target any of the properties of items, including content types and columns.
Each list has permissions. If someone has no ability to read a list, they won’t see the list at all from parent sites. Sharepoint 2007 also supports per-item permissions, so for example, you can permit something at the list level, but not permit it for a specific item.
With workflow you can create actions which happen when items are created, deleted, changed, etc. Out of the box workflows include: Approval, Collect Feedback, Collect Signatures, Three State. The out-of-the-box workflows are pretty useful, but you can also create custom workflows (with Sharepoint Designer) without a lot of hassle.
Versioning provides content management. Changes to items are incremented as minor versions. List content owners control major versions, and only major versions are “published” for general viewing. This feature is much more extensive, so we’ll leave the description limited for now, and perhaps come back to it in another post.
Other List Features
Every list within sharepoint can be “exposed” via a webpart from another page. This respects the original list’s security, but allows you to manage the user experience for that list. By exposing a list via a webpart you can remove portions of functionality (say the ability to edit items), use a view to change what is exposed, target audiences (meaning that the webpart only is displayed for certain viewers), etc. Dashboards, personal sites, the ‘all site content’ page are examples of this ‘exposure via a webpart’ functionality.
This webpart exposure makes it very easy to design a portal like experience with Sharepoint. End users often comment that they didn’t realize that working with web parts would be so easy. It’s not much more complicated than click and drag.
The Action Menu
Every sharepoint list has an action menu which exposes list functionality. The following are standard list actions:
- Export to Spreadsheet. Put the list into an Excel Spreadsheet, opening Excel on the client computer.
- Open in Access. Put the list in an Access database.
- View RSS feed. See the raw RSS feed. Every list is RSS-enabled by default, allowing you to change the flow of web-oriented data from a pull-based model to a push-based model. This is a very significant change, especially for collaborative lists with critical information.
- Alert Me. This allows you request an email when things change. There are some configuration options here. Again, this enables you to turn the information flow into a push-based model.
Special List-Specific Actions
Some lists have special actions available to them. For example, a Document Library has the ‘Connect to Outlook’ option, which allows you to take documents offline for viewing and editing.
Another interesting specific action for a Document Library is the ‘send to’ action. On any item you can right-click and choose to ‘send to other location’, specifying another Sharepoint site (doesn’t have to be on same server). This creates a “live link” in that other sharepoint site. This option can/should be used to give read-only access on another site. “Live link” means that the source can optionally notify the other sites of updates to the source doc which enables intelligent document re-use.
There are other basic list features and functionality not covered here. Send in your favorite candidate and I’ll add it here.