Welcome to MSDN Blogs Sign in | Join | Help

On the 20th May, we released two hotfix packages focused on Content Deployment.  These packages delivered performance improvements and addressed a number of known customer pain points.  The hotfixes have been rolled in to the Infrastructure Update for Office Servers that was released today so if you've been experiencing issues with Content Deployment, download the pack, install it and you'll get federated search thrown in with the deal.

The updates can be downloaded from the links below:

Infrastructure Update for Microsoft Office Servers (KB951297) - x86
Infrastructure Update for Microsoft Office Servers (KB951297) - x64
Infrastructure Update for Windows SharePoint Services 3.0 (KB951695) - x86
Infrastructure Update for Windows SharePoint Services 3.0 (KB951695) - x64
Infrastructure Update for Microsoft Office Project 2007 (KB951547) - x86

Installation Instructions are available from the links below:

Deploy Software Updates for Windows SharePoint Services 3.0
Deploy Software Updates for Office SharePoint Server 2007 - This article also applies to Project Server 2007, SharePoint Server 2007, Search Server 2008 and Search Server 2008 Express.
Install the Infrastructure Update for Microsoft Office Servers (Office SharePoint Server 2007) (This article will go live later today)
Install the Infrastructure Update for Microsoft Office Servers (Search Server 2008) (This article will go live later today)

 While you are installing the Infrastructure Update, I'd recommend you have a read of the following blog posts on Content Deployment:

  1. SharePoint ECM Team Blog on "End to End Content Deployment Walkthrough"
  2. Stefan Goßner's "Deep Dive into the SharePoint Content Deployment and Migration API"
  3. Spencer Harbar's "Ensure your platform hygiene..."

Here is a summary of the Content Deployment issues addressed in the Infrastructure Update:

Incremental bug fixes:

  • Incremental import can fail if a feature with a custom content type has been reactivated on the destination.
  • Unpublished pages do not get unpublished on the destination.
  • Reinheriting permissions on the source does not propagate incrementally.
  • Deleting a permission level on the source causes a "Permission level cannot be found." exception during incremental import.
  • Incremental behavior with the Recycle Bin improved. Incremental import fails with a "FatalError: You cannot perform this action on a checked out document." exception.
  • "Violation of PRIMARY KEY constraint" error during export.
  • Document "Title" field does not get deployed by incremental deployment in some cases.
  • In some cases, making permissions changes on the source or destination will result in a "The specified name is already in use." error.
  • Deleting or renaming an item then creating one with the same name causes incremental deployment to fail.
  • Incremental deployment fails when pages have independent permission settings.
  • Deleting a file and folder can cause incremental deployment to fail in some cases.

Other bug fixes:

  • Removing a User from a group does not propagate to the destination during incremental deployment.
  • Some source web settings related to search are not propagated to the destination.
  • Content Deployment can time out incorrectly on large deployment jobs.
  • Miscellaneous SQL deadlocks.
  • Quick deployment jobs behave incorrectly when Variations is used.
  • Quick deployment fails when pages are Quick Deployed while the Quick Deploy job is running.
  • Running One-time jobs manually can fail.
  • In some cases, a content deployment job can get stuck in a "Preparing" state forever.
  • Deployment sometimes unghosts items that are ghosted on the source.
  • Custom master page settings on the source are not propagated to the destination during deployment.
  • Content deployment fails when compression is disabled.

If you want more details on the Content Deployment issues addressed in the Infrastructure Update, visit the Microsoft Help and Support site:

WSS: http://support.microsoft.com/kb/952698/
MOSS: http://support.microsoft.com/kb/952704/

Ryan Duguid
Technical Product Manager
Microsoft Corp

Hi, I'm Cern McAtee, a technical writer for Office SharePoint Server 2007. I'm pleased to announce that the Office SharePoint Server 2007 content team and the Global Readiness team have combined efforts to write and publish a new walkthrough guide for content deployment: End-to-End Content Deployment Walkthrough.

What's covered

This downloadable guide is aimed at IT pros planning to use content deployment with their enterprise sites using Microsoft Office SharePoint Server 2007. The guide takes you through the steps for setting up source and destination site collections, creating a deployment path and job, and then running the job to see how it populates the destination site collection with the content from the source site collection. One important thing to note when it comes to doing content deployment is that when you first set it up, the destination site collection must be empty. You can create the destination site collection using either the Blank site template, or by using the Stsadm createsite operation to create an empty site.

In addition to the walkthrough, we have also published a set of topics about Administering Web content management that cover publishing and content deployment operations. These topics are intended for IT pros who manage publishing and content deployment for their enterprise sites. More WCM topics that cover cache settings and profiles, document conversion, and variations will be published soon.

Send your feedback

We're very excited about publishing this walkthrough guide and the new WCM content, and we're especially interested in your feedback on this new content. There are three ways you can provide feedback on this content: First, in each topic you will find a "Click to Rate and Give Feedback" control with a text box for supplying feedback. Second, you can send us mail at o12ITdx at Microsoft.com. Third, you can use the "Leave a Comment" interface in this blog to provide comments, either about this blog entry or about the newly published content.

We look forward to hearing from you and to continuing to improve this content in partnership with you!

Thanks,

Cern McAtee
SharePoint Enterprise Solutions content team

Hi, my name is Claudia Lake. I am a technical writer on the SharePoint Enterprise Solutions content team. In response to feedback from users, we have created Administering Records Management, which is a new set of IT Pro documentation on TechNet about records management in Office SharePoint Server 2007.

What’s covered?

In addition to providing information about how to create a Records Center site, the new records management administration documentation covers the following areas:

·         Configuring an active document site for records management

·         Configuring an Exchange Server 2007 e-mail server to send records to a Records Center site

·         Managing holds

·         Monitoring the Records Center site

Our intention is to provide you with all of the information you need to successfully set up, configure, and administer a Records Center site in Office SharePoint Server 2007.

Feedback welcome!

Have you ever wished you could have a say in the way documentation is written here at Microsoft? Well, now’s your chance. We welcome your feedback on the new Administering Records Management documentation and will do our best to make the improvements you suggest. What would we like to know? We’d like to know things like:  Is this content useful? Is it detailed enough? Did we leave something out that you feel would be helpful? Did we include something that you feel has no value? We’re also interested in hearing what you like about this content so we can keep doing it. Anything you feel we should know about the Administering Records Management content is very important to us. Let us know what you think!

There are three ways that you can provide feedback about the Administering Records Management documentation:

1.       The upper-right corner of each page has a Click to Rate and Give Feedback section. Click a star to rate the page and optionally provide feedback.

2.       You can e-mail us at o12itdx at Microsoft.com.

3.       You can use the “Leave a Comment” feature in this blog to provide comments, either about this blog post or about the Administering Records Management content.

We look forward to hearing from you and to working with you to make our content the best it can be.

Sincerely,

Claudia Lake

SharePoint Enterprise Solutions content team

[Part 1]  [Part 2]  [Part 3]  [Part 4]

Greetings and welcome to the fifth and final post in this series describing the news management and delivery service we built on Microsoft Office SharePoint Server 2007 for our internal employee communication portal, Microsoft Web (MSW). I wanted to wrap up this overview by talking generally about our approach, how things are going, some challenges we had, and what's next.

How it's Going

Generally, we (and the MSW business team!) have been very happy with how the overall solution worked-out. We were able to address a number of challenges and short-comings with how publishing was done previously and streamline or eliminate many of the daily manual activities. Since the solution was built on pre-RTM bits a lot of our design decisions were made based on what we knew about the product at the time. There was definitely a lot of trial-and-error and leaning on members of the product team in the absence of documentation.

As I stated in my first post, it was our goal to use and showcase as many of the new features as possible. To take advantage of these features really requires understanding your content and how MOSS handles it. Depending on how your content is created, where it is stored, and how it needs to be made available may require content organization or business process changes. Centralizing content under consistent content type definitions makes subsequent organization, tagging, and data roll-up easier. Library support for multiple content types - and CQWP querying on content type - permits reducing the number of libraries required to store a lot of content. Content moderation, coupled with workflow and expiration policies makes it easier to create, update, and remove content in a more controlled and automated fashion. We have been able to take advantage of all of these features and gain many benefits, but it has required business to change their processes, too. Sometimes these changes are difficult, but where it can help standardize (and streamline) the publishing steps it has been worth it.

I would also add that our solution approaches content management in a specific way, but this is really a broad problem space that can be tackled many ways. That said, since developing the solution we have worked with several other teams and despite their different needs, they all boil down to understanding the content up-front and understanding MOSS2007 publishing features to inform content design and inevitable business process changes.

A Few Challenges

While we made lots of improvements to our publishing process with the new features, there remain aspects that still aren't as easy as they could be - and in some cases, required us to develop custom components. Data import to a SharePoint list is challenging and not easy to automate, which is why we had to develop the custom feed import application. Our service is flexible enough to support a variety of consumers (currently this tool can consume from XML or databases), but not without configuration work and coordination with operations when changes are required. Ideally, this would be an easier step in the cycle.

Search services have been greatly improved in MOSS 2007, but to support our editor's content discovery needs we really needed a richer query interface. We launched with the out-of-box advanced search, but the UI has limited sorting options, doesn't support nested queries, and the UI can't display the property's values. Our custom search solution builds on the OM and addresses these requirements. We have since made other improvements to this extended search solution and plan to make the binaries available to the community in the future.

 As I previously described, moving data between the raw source list and the tagged candidate list uses a custom action, but we'd prefer to have a configurable workflow here instead. Also, because SharePoint lists are flat this candidate list requires several duplicate tagging fields for each newsletter - and with fourteen newsletters currently being published, the list is a bit unwieldy.

We are huge fans of the Content Query Web Part as a delivery mechanism and use it extensively in this solution and in variety of other content scenarios. However, the web part is pretty limited in the results it can show without additional configuration of its advanced web part properties (see the MSDN topic on Content Query custom properties). Consequently, we have extended the web part to expose some of these more common properties and even enable it to filter content dynamically based on query string parameters. This source code is available on CodePlex for your use: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=sptoolbox&ReleaseId=11150

The delivery of content stored in SharePoint really favors RSS - and while this is a great improvement, one which we take advantage of for most of our content delivery - there remains strong business need to email a HTML-formatted newsletter to a list of subscribers. As I explained in my last post, we ended up building custom solutions to address this requirement and outside of some on-going formatting challenges between IE and Outlook they have both worked pretty well.  

What's Next

Since our initial release we have learned a lot more about the product and, working with other teams, gathered additional requirements. We have continued to make improvements to many of the specific custom components mentioned above, primarily around making them more extensible or easier to configure, but we also want to look at the design as a whole and see how we can streamline it even more.

One aspect that our solution doesn't take enough advantage of is workflow. We'd like to extend our use of this feature to make content moves, updates and even editorial notifications more seamless. We'd also like to extend this use into a richer information management policy. Currently, we just have basic item expiration on the news lists, but we'd like to enrich this step with user input and a better item archiving story. A few other areas we're kicking around for future enhancements include more flexible newsletter templates (perhaps ones that support offline or client authoring), better content auditing and reporting, and ways to retain history of dynamic pages.

Well, that's it for now. I hope you found this information useful and it aids you in your own efforts. We'll keep the community apprised of components we roll-out to CodePlex and continue to share news on our projects. Until next time!

[Part 1]  [Part 2]  [Part 3]

Hello again! Sean Squires here. This is part 4 of my series about the news management and delivery service we built on Microsoft Office SharePoint Server 2007 for our internal employee communication portal, Microsoft Web (MSW). I wrapped up the last post talking briefly about how we enable email delivery of edited news items, using a custom web part we built to package and format a select sub-set of list records. I want to continue describing the delivery process, explaining how we also use the Content Query Web Part to deliver this same content to portal pages and mention some changes we've made to the email delivery solution since the initial deployment in 2006.

Step 5: Content Delivery - Portal (using the CQWP)

We were big fans of the Content Query Web Part early on, realizing that it would provide a lot of relief for many of our content roll-up scenarios. By centralizing our news content and providing appropriate targeting fields, we could configure the web part queries to display different news items based on the values for these fields. Then, instead of editing sets of items each day or touching and re-publishing a lot of pages, editors could focus on just that day's news and the rolling off of content would take care of itself. This was an important consideration as most news stories published to the portal have a life of several days, first as a top or current story, and then as an archived story for two weeks.

Here is a screenshot of how the Content Query Web Part is used just on the MSW home page:

 

Each of these web parts have a query configured to only display one or a few items based on specific values in the target filter fields. For example, the lead story at the top of the page uses two filters, the DispCBQ value of "Home Page" to specify that it is the active top story, and the Home Page value of "Top Story" to indicate that it is a top story (as opposed to a related story, which surfaces in the Content Query Web Part right below). The web part is also set to sort by the Modified field in descending order and is limited to display only one item.

 

While we initially planned to just have the editors check out the target page and preview their new items from the page, we wanted to provide a similar experience to the email preview described last time, so we created preview pages of the two main targets - Home page and News landing page - and ensured that the target logic of the PublishedNews list schema supported three states: Preview, Published, and Archived. So the preview pages each had CBQs configured to display items that had been tagged as candidates, but not yet "published":

 

These pages mimic the production ones:

 

Once the editor is happy with the display, we provide a custom update action web part on these preview pages, designed to clear the Targets field and update the DispCBQ and PublishedIn fields for those tagged items in the list. Our future plans are to replace this rigid custom component with a more flexible action associated with a workflow.

 Content Archiving

When a new item is "published" we don't just replace the story with a new one and rely on the sorting to act as our filter, we also clear the current story's DispCBQ value. We are then able to provide Content Query Web Parts on the archive pages which are configured to only display those stories where the DispCBQ value is false or where the PublishedIn value has a specific newsletter value:

 

In all of our newsletter archive pages, like the one above, we use the QueryOverride property of the Content Query Web Part to pass in something like:

<![CDATA[<OrderBy><FieldRef Name="ArticlePublishDate" Ascending="FALSE" /></OrderBy><Where><And><And><Geq><FieldRef ID="{b34d0f98-7f33-4e63-98ff-b69b5006f3eb}" Nullable="True" Type="DateTime"/><Value Type="DateTime"><Today OffsetDays="-14"/></Value></Geq><Eq><FieldRef ID="{f76a0dfa-4847-4e51-a334-10cbd9af7a86}" Nullable="True" Type="MultiChoice"/><Value Type="Text">Daily Newswire</Value></Eq></And><Eq><FieldRef Name="ContentType" Type="Text" /><Value Type="Text">Published News Item</Value></Eq></And></Where>]]>

We took this approach because we wanted to create a query whose results were updated based on when it was viewed. The CBQ property pane supports passing in the current day as a filter, but it doesn't support any offsets. Essentially, what this query is saying is get those news items in reverse chronological order by ArticlePublishDate for the last fourteen days where the PublishedIn value is equal to "Daily Newswire".

For more detail on using this and other key CBQ properties check out the MSDN article: How to Customize the Content Query Web Part by using Custom Properties (http://msdn2.microsoft.com/en-us/library/aa981241.aspx).

Here is a summary of the field logic we use to define the different "publishing states" of a selected news item:

 

Targets

DispCBQ

PublishedIn

Preview/Selected

TRUE

 

 

Published/Delivered

 

TRUE

TRUE

Archived

 

 

TRUE

 

Step 5: Content Delivery - External

I mentioned briefly in my last post how we created a custom web part to package and deliver via email news items tagged for specific newsletters. While this solution has certainly worked out fine for us, it doesn't provide much design or content flexibility for our editors; it uses a template stored in the control templates directory of the file system and it supports only one template reference. So, all email newsletters sent out look the same and display the same data elements.

In order to better support a variable design model - and frankly, make better use of the page publishing features of SharePoint - we created a replacement solution in the summer of 2007. This new approach uses some of the same ideas behind the original mailer web part, but extends the concept by mail-enabling any page for email delivery. We did this by creating custom marker web parts that can be dropped on the page or baked into a layout to designate the start and end points for email content. A third web part is used to scrape and format the HTML within these markers and send the contents to the users/lists designated in the web part properties:

 

This approach effectively allow us to build a newsletter page composed of dynamic data displayed via a Content Query Web Part as well as content stored directly in HTML field controls and make it available for email delivery. Now instead of all the site newsletters being pushed through a single web part and having the same look and feel, they can be managed as pages and configured with different layouts and data elements. We recycled a lot of the old mailer web part design, but added preview functionality and the ability to track send jobs for troubleshooting purposes:

 

 

The biggest hurdle we ran into with this redesign - and continue to run into as we extend the new solution to other publishing projects - is the HTML rendering differences between Outlook and IE. Specifically, Outlook 2007 uses the Word 2007 engine for parsing and rendering HTML so you may have some nifty CSS styles on your portal that IE renders just fine, but not so nicely in the email client. Our approach here has been to generate the newsletter from a mirrored page so we can inject header and footer content we may not want to display on the portal page and override the site styles with ones that are more appropriate for Outlook. For more information on this subject check out the following articles: Word 2007 HTML and CSS Rendering Capabilities in Outlook 2007 (Part 1 of 2): http://msdn2.microsoft.com/en-us/library/aa338201.aspx and Word 2007 HTML and CSS Rendering Capabilities in Outlook 2007 (Part 2 of 2): http://msdn2.microsoft.com/en-us/library/aa338200.aspx

What about RSS?

Our discussion of content delivery channels wouldn't be complete without acknowledging Really Simple Syndication (RSS). We also make this option available by taking advantage of the Content Query Web Part's native ability to emit a RSS feed of the query results. However, because our editors wanted more flexibility on the display and placement of the RSS subscription button, for most of our newsletters we configure a CBQ on a hidden page, select the enable feed box to display the RSS feed icon, and then reference this URL on other pages, such as in a HTML field control. Here is a snippet of our newsletter subscription page:

 

Next Time

Well, that wraps up this post and my overview of the key components comprising our news management and delivery solution. I'll conclude this series in a final post talking about some of the lessons learned and future plans we have for our solution. See you then.

[Updated March 11, 2008: Based on your feedback, we have created a downloadable version of this guide.  It's the same content, but now available in a convenient .doc format.]

 

Hello, ECM Team Blog readers. My name is Rob Silver. I'm a technical writer working on the IT Pro content team for Office SharePoint Server 2007. I'm excited to announce that the Office SharePoint Server 2007 content teams for the IT pro, developer, and site designer audiences have combined efforts to write and publish a new online guide: Design and build sites for Office SharePoint Server 2007. This guide is aimed at developers, solution designers, architects, and business unit IT pros who plan to develop one or more custom enterprise sites by using Microsoft Office SharePoint Server 2007 - such as company-wide portal sites or Internet presence sites.

Roadmaps to customization content

Office SharePoint Server 2007 includes highly customizable features and capabilities across multiple product areas, such as business intelligence, forms, workflows, and document management. The levels of expertise required to customize these various features ranges from software developer to site designer to information worker. Content supporting these customization tasks is spread across multiple Microsoft Web sites, including the Microsoft Developer Network (MSDN), TechNet, and Office Online, depending on the targeted audience for the content. Rather than duplicate all that content in Design and build sites for Office SharePoint Server 2007, the guide includes Feature roadmap pages for most customizable product areas. Each roadmap page for an area provides links to customization resources for that area, across all of the above-listed Web sites. In this guide, we include feature roadmap pages for:

Guidance for configuring development, integration, pilot, and production environments

Coordinating the development and deployment of an enterprise-level custom site based on Office SharePoint Server 2007 is quite a complex activity. Custom sites often combine coded elements, such as workflows, document converters, and Web Parts, along with content, such as master pages, layout pages, graphics files, and Web pages. We've rolled up best practices for developing these sites including instructions for setting up multiple environments for developing, integrating, piloting, and deploying the coded elements and content from one environment to another.

Our Design and build sites for Office SharePoint Server 2007 content describes how to set up the multiple environments used in the development process and describes the range of your choices for deploying the content and code from one environment to another.

Feedback wanted

We're very excited about publishing Design and build sites for Office SharePoint Server 2007, but particularly we're interested in your feedback on this new content. Do you find it useful? Is it the right level of detail? Is there additional content you'd like to see added? Do you agree or disagree with particular recommendations? We want to make this guide more and more useful in response to your feedback.

There are three ways you can provide feedback on Design and build sites for Office SharePoint Server 2007. First, in each topic you will find a "Was this information helpful?" control with a text box for supplying feedback. Second, you can send us mail at o12ITdx at Microsoft.com. Third, you can use the "Leave a Comment" interface in this blog to provide comments, either on this blog entry or on the Design and build sites for Office SharePoint Server 2007 content.

We're looking forward to hearing from you and to evolving this content in partnership with you!

Thanks,

Rob Silver

Office SharePoint Server IT Pro content team

 

[Part 1]  [Part 2]

Welcome to part 3 in my series about the creation of a news management and delivery service on Microsoft Office SharePoint Server 2007. I left off last time talking about how we provide editors with a custom form to tag imported news stories as candidates for select newsletters. Let me continue by explaining how editors can use native SharePoint list features to edit selected items.

Step 3: Content Selection/Editing

As a part of this tagging action the list item is copied to another list where additional editing can be performed to prepare it for distribution and display. This secondary list - called PublishedNews - is comprised of another custom content type - appropriately named PublishedNewsItem - that essentially provides a bunch of category, date, and sort columns that we can use for querying and content display:

For each newsletter we create a Datasheet view that displays only those columns specific to that newsletter. When an editor is done querying and selecting candidates for her newsletter she can select a link on the workbench landing page to load the desired list view where she can assign values to these additional fields, such as a category header, an alternate "short" description, and a specific display order for the items.

The list of newsletters (listed under the Alerts banner) and portal pages (listed under the Content Query Targets banner) is an editable list of links displayed on the page using a Summary Links web part. This new feature is available as both a web part and field control - and provides an easy way to display a consistent (and editable!) list of links to internal and external pages. All of the links listed here load a corresponding list or page preview view for that alert or portal page.

Here is the default view loaded for the Daily Newswire newsletter listed above:

If an editor is working on more than one newsletter it easy to switch views via the view picker and perform all final editing tasks in one pass. Note that this approach also allows items to be manually added at this stage, which is convenient when a breaking news item that may not have been imported or indexed yet is required.

Step 4: Content Preview

Once an editor is done with this additional record editing she can preview her newsletter using a custom action provided in the list toolbar. This action is activated as part of a WSS Feature that we developed and deployed, and the available action corresponds to the current list view (so for the following screenshot we are looking at the "Test Alert" view so this is the alert preview that will be available for this action):

This news alert action grabs the filtered list of items displayed in the view and pops up a new page containing a custom viewer-mailer web part. This web part inserts the news items into a pre-defined template, grouping them by the designated categories, and sorting them in ascending order based on their sort field values. This web part also provides the ability to configure mail settings so this content can be pushed out to a distribution list once it is reviewed by selecting the "Send Mail" button:

For content being tagged for distribution to a portal page the process is slightly different, using Content Query Web Parts to provide the preview and published displays. I will describe this distribution channel in more detail next time.

Next Time

In my next post I'll continue describing the news delivery process, especially since we've made some changes since our initial launch to make it a little less custom-code dependent and more flexible.

[Part 1

Welcome back! Last time I introduced the overall solution we developed to enable a news management and delivery service on MSW. In the next few posts I will dig into the details, providing more information on the design configuration and custom components we built.

Step 1: Content Consumption

The first step is to consume the news and insert this content into a SharePoint list. Microsoft has licensing arrangements with select information services to create topical RSS feeds of news from multiple sources. We then have a custom application that runs as a local Windows service on our web front ends, scheduled to run every 15 minutes and update a list with new items from each feed. This application uses configuration files to specify the data source and how we want the data inserted into the list.

The configuration file contains the following information:

    • The address of the feed
    • Producer and consumer assemblies
    • Where the data should be inserted
    • Arguments to add to the request
    • Mappings of how to insert the data into a list

Here is a sample configuration file we created for our application to read a licensed RSS feed from Moreover and import select metadata values into designated list fields:

<?xml version="1.0"?>
<FeedConfiguration>
  <Configuration>
    <ConnectionString>
       http://ps.moreover.com/cgi-local/page
    </ConnectionString>
    <ProducerAssembly>ImportToList.MSLibrary</ProducerAssembly>
    <ProducerClassName>
      ImportToList.MSLibrary.MoreoverProducer
    </ProducerClassName>
    <ConsumerAssembly>ImportToList.MSLibrary</ConsumerAssembly>
    <ConsumerClassName>
      ImportToList.MSLibrary.MswNewsConsumer
    </ConsumerClassName>
    <Server>http://localhost/Repository</Server>
    <List>NewsRepository</List>
    <Folder></Folder>
    <LastRecordProcessed>_908019085</LastRecordProcessed>
    <ItemPath>article</ItemPath>
    <FolderCount>500</FolderCount>
    <ArgumentList>
      <Parameters>
        <item name="feed">900174669</item>
        <item name="client_id">msft_cib_by49</item>
        <item name="o">xml001</item>
        <item name="last_id"></item>
        <item name="n">100</item>
      </Parameters>
    </ArgumentList>
    <Map>
      <Map>
        <Map>
          <Fields>
            <field name="Bucket" value="Daily News" />
            <field name="Vendor" value="Moreover" />
            <field name="Title" xpath="headline_text" />
            <field name="LongDescription" xpath="extract" />
            <field name="ShortDesrciption" xpath="extract" />
            <field name="VendorAssignedID" xpath="@id" 
              itemKey="true" />
            <field name="ExternalUrl" xpath="url" />
          </Fields>
        </Map>
      </Map>
    </Map>
    <NamespaceList>
      <Namespaces/>
    </NamespaceList>
  </Configuration>
</FeedConfiguration>
 

The key distinction for these configuration files is the Bucket field value which can be used as a property filter for the search interface (more on this in a moment).

The list that receives these news records from the feed manager is based on a custom content type that inherits from the out-of-box type Item. Essentially we are just adding the custom fields declared in the configuration file to specify where the feed data values get written to. For illustration, the schema is provided below.

And here is a sample imported record:

Notice that we aren't capturing much data; we primarily capture metadata that includes the publish date, a brief description, the news source, and a link to the full story.

This is a standard list configured to support multiple content types and locked down to permit access to only specific SharePoint groups. This list is also configured with an out-of-box expiration policy set to delete items 15 days after the Import Date value.

Step 2: Content Discovery

Even with an expiration policy in place, the list tends to hover around 30 thousand items. To assist editors with finding items in this list to tag as news candidates, we initially configured an out-of-box advanced search interface with a scope set to only index items in this list of the custom content type. Currently this crawl is scheduled to run three times per day to ensure that when editors need to use the workbench, they can query for recent news items.

We have since updated the search experience with a custom metadata interface that can more easily expose to users the available property values for managed properties. This improved interface provides greater query flexibility and a UI that can be easily updated through a web part configuration file. Our custom solution still takes advantage of the SharePoint OM and leverages full text indexes for performance.

Here is the current interface. Notice that it exposes the values of the Bucket field as a multi-choice display, allowing editors to easily scope their searches to select feed items:

Returned results can then be tagged as candidates for subsequent editing and distribution. To do this we edited the XSLT file of the search results web part to provide a link for each search result to a custom list form:

Selecting the Tag item for publishing link pops up a custom form that allows an editor to target a story candidate for one or more pre-defined newsletters. This list of available newsletters is generated from a configuration list created at the time of solution deployment and stored in the root of the site collection. This list can be modified to support the creation or removal of targets.

Once the selections are made, this form kicks off a custom action to save the selections back to the list and copy that selected item from this source list (called NewsRepository) to another list (called PublishedNews). Although we could have managed the selected news in the same list, we elected to use two lists for the following reasons:

  1. List items are automatically crawled by the indexer and become part of the site search.  We didn't want to expose all news to end users through search because a lot of what we pull in is irrelevant; as much as we try to filter, we still get news about the Spice Girls' latest concert plans, etc.  The way we get around this is to lock down permission on the Repository so that even though the list gets indexed, search results don't contain any items from the NewsRepository for average users.
  2. The PublishedNews list is smaller, so we get better performance when we query against it. And as you see later, we point a lot of Content Query Web Parts at this news list!

Next Time

In the next segment of this series I'll talk about how the editors use the PublishedNews list to prepare items for distribution and display.

As we've often written in this blog, the Content Query Web Part is a great tool for aggregating portions of your site's content based on certain rules (filters, sorts, groupings).  However, out of the box the web part is pretty static in what piece of content it shows.  For example, if I configure the web part to show the latest 5 documents of type "Press Release", the part will always show the latest 5 press releases.  What if I want to do something more dynamic, based on the context of the current page?

Andrew Connell has published a post on how to add dynamic filtering to the Content Query Web Part.  Andrew describes a case of making the web part filter dynamically based on query string parameters, and provides a sample, too.  Thanks Andrew!

--George Perantatos, ECM Program Manager

[Ed. note: This is the first of a five-post series about a solution that our Microsoft Web enterprise portal team built that deals with collecting, organizing, and publishing news content.  We thought it would be interesting for people to read about the solution and understand how it was built.  As always, use comments to ask questions!  Thanks --George Perantatos]

Hi there. My name is Sean Squires and I'm a Program Manager for the Microsoft IT Information Services group. We are responsible for driving technical design and solution creation for many internal portal properties running Microsoft Office SharePoint Server (MOSS). We also work closely with the product group evaluating new features and showcasing innovative ways to extend the product. George Perantatos, a recent contributor on this blog, invited me to share with you over a series of posts how we leveraged the many new publishing features of the latest release to create a news workbench solution for our primary employee communication portal, Microsoft Web (MSW). If you've caught any of our conference talks over the past year, we've briefly described some of the various components of the solution, but never provided a full overview. Enjoy!

Business Problem

The news workbench solution was originally conceived during the redesign of the MSW portal from SharePoint Portal Server 2003 to MOSS 2007 - to address the problem of effectively managing the discovery, selection, and distribution of news content published to the site or emailed to subscribers. The previous model was a very manual process; it was difficult to manage and was prone to user error. In rethinking the news publishing process it was important to figure out how to streamline it, automate steps where possible and, of course, leverage as many of the new content management features in MOSS as we could.

Solution Approach

Our approach was to build a workbench platform that would allow editors to easily perform in a single place all of the various tasks associated with their daily publishing cycle: to find, tag, edit, and distribute select news items to multiple targets. While we needed to build a few custom components, most of the design takes advantage of new features, search, content types, information management policy, and data roll-up via the Content Query web part (CQWP).

The workbench itself is a hidden publishing sub-site in the MSW site collection composed of two lists and a few search and preview pages in the Pages library. News items are first imported from external vendor feeds on a scheduled basis into a source list, and then crawled to provide a searchable index for editors. Permissions to this list are locked down to editors only to prevent portal visitors from getting non-related news through searches.

Editors have a custom advanced search page allowing them to tailor searches against this seed list. Items returned from a query can be selected for one or more distribution channels; these candidates are then copied to another list which allows for additional editing and specifying attributes such as category and sort order (we'll talk about this in more detail in the next post).

Once items are edited they can be previewed and published to a SharePoint page using the Content Query web part. We use the same page model to surface stories on archive pages for a prescribed amount of time after their initial run. They can also be packaged up and sent out via email to a specific subscriber base using custom mailer web parts. News items published to the portal or to newsletters are eventually flushed from the list using the out-of-box policy management feature.

Here is an overview diagram of the design and various components in the process:

Next Time

In my next post I'll talk more about the custom feed management process and how we provide updated news content to the editors for use on the site.

[Cross-posted from the SharePoint Team Blog.]

Back in May of last year, we announced that MOSS 2007 had passed the U.S. government's DoD 5015.2 certification. Now, all of the work that was done to achieve that important milestone has been packaged and released as a resource kit.

The DoD 5015.2 Resource Kit is intended only for customers, who are required to run their records management system in a DoD 5015.2 Chapter 2 certified state. In case you're wondering, we currently have no plans to provide support for DoD 5015.2 Chapter 4 (classified records).

However, the Resource Kit is not intended for customers, who would like to enhance the records management functionality of MOSS 2007 with particular 5015.2 oriented features but are not required to run their system in a certified configuration. Alternatively, sample code and documentation will be available shortly via the MSDN Dev Center for MOSS 2007 for the most frequently requested features such as:

  • Generating a Unique ID
  • Display search results in Grid View
  • Referencing and Linking - Using a secondary table to maintain the relationship
  • Referencing and Linking - Using the asset picker
  • Referencing and Linking - Using a custom field to display the relationship
  • Create Document Library from a list item
  • Put multiple items on Hold using SPQuery
  • Custom expiration formula based on metadata (2 parts)
  • Custom expiration formula based on metadata (cont.)
  • Creating a custom router & extracting date received (2 parts)
  • Creating a custom router & extracting date received (cont)
  • Prevent record modification but allow metadata modification in event handler
  • Prevent record modification but allow metadata modification by overriding upload page
  • Programmatically defaulting/inheriting a field value
  • Using ProcessBatchData to batch update list items
  • Using Metadata tags to route documents into document libraries
  • Create a record category programmatically (2 parts)
  • Create a record category programmatically (cont)
  • Routing content to a record category based on a metadata value

Officially, the DoD 5015.2 Resource Kit for SharePoint Server 2007 is now available to customers through our partner and Microsoft Consulting Service (MCS) channels. The reason for requiring partner/MCS involvement is that DoD implementations are not as simple as a "double-click installation." They require deep understanding of records management practices as well as business process and policy requirements. In order to successfully implement a DoD 5015.2 certified solution based on MOSS 2007, customers should work with their respective Microsoft account managers to engage a partner that has been trained on the DoD 5015.2 Resource Kit. Partners may download the Resource Kit's source code for free via MS Connect's DoD 5015.2 Resource Kit Source Code download site.

Also on the download site is a DoD 5015.2 Resource Kit Installer that partners as well as customers can download only for evaluation purposes and not for production use. This additional download provides a way for evaluators to learn about the DoD 5015.2 oriented records management capabilities provided by the Resource Kit while deciding which features, if not all, will be suitable for addressing their organization's requirements. [Caution: This is an unsigned debug build of the Installer for early preview purposes. The official Microsoft signed version of the Installer will be available on Microsoft.com's Download Center within a couple of weeks.]

For the latest answers to frequently asked questions about the DoD 5015.2 Resource Kit for SharePoint Server 2007, go to http://www.microsoft.com/sharepoint/capabilities/ecm/dod5015.mspx.

<Lawrence />

Just a quick note that two more visual how-tos have been published, that may be of interest to readers of this blog:

Happy reading!

--George Perantatos, ECM Program Manager

Happy new year!  I just wanted to make the first post of 2008 advertise a set of relatively new web sites that are running MOSS 2007:

Thanks to Ian Morrish for keeping track of these and other MOSS sites going live on his web site!

--George Perantatos, ECM Program Manager

You've probably seen the announcements by now, but I wanted to let you know that we made Microsoft Office SharePoint Server 2007 SP1 available for download today.  You can download the service pack, and you can read through the fixes that are included in the pack.

Updated: A lot more information on the service packs, what's included, and how to download/install is provided on the SharePoint blog.  Thanks for the comment Will!

George Perantatos, ECM Program Manager

Another visual how-to for the Content Query Web Part was just posted.  While the previous one we blogged about discussed the use of the CommonViewFields property, this one also goes into how to use the QueryOverride and the DataColumnRenames property.  With all three, you can do quite a lot with this web part, in terms of what data you fetch, what columns come along with the data, and then what ultimately gets displayed.

I'm happy to hear about ways people have customized this part for their specific scenarios, as well as general questions on what you can/can't do with the Content Query Web Part by customizing its backing properties.

George Perantatos, ECM Program Manager

More Posts Next page »
 
Page view tracker