 |
| Manage Subscriptions | /_layouts/images/ReportServer/Manage_Subscription.gif | /community/blogs/rick/_layouts/ReportServer/ManageSubscriptions.aspx?list={ListId}&ID={ItemId} | 0x80 | 0x0 | FileType | rdl | 350 | | Manage Data Sources | | /community/blogs/rick/_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x20 | FileType | rdl | 351 | | Manage Parameters | | /community/blogs/rick/_layouts/ReportServer/ParameterList.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rdl | 352 | | Manage Processing Options | | /community/blogs/rick/_layouts/ReportServer/ReportExecution.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rdl | 353 | | View Report History | | /community/blogs/rick/_layouts/ReportServer/ReportHistory.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x40 | FileType | rdl | 354 | | View Dependent Items | | /community/blogs/rick/_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rsds | 350 | | Edit Data Source Definition | | /community/blogs/rick/_layouts/ReportServer/SharedDataSource.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rsds | 351 | | View Dependent Items | | /community/blogs/rick/_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | smdl | 350 | | Manage Clickthrough Reports | | /community/blogs/rick/_layouts/ReportServer/ModelClickThrough.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | smdl | 352 | | Manage Model Item Security | | /community/blogs/rick/_layouts/ReportServer/ModelItemSecurity.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x2000000 | FileType | smdl | 353 | | Regenerate Model | | /community/blogs/rick/_layouts/ReportServer/GenerateModel.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | smdl | 354 | | Manage Data Sources | | /community/blogs/rick/_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x20 | FileType | smdl | 351 | | Load in Report Builder | | /community/blogs/rick/_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderModelContext&list={ListId}&ID={ItemId} | 0x0 | 0x2 | FileType | smdl | 250 | | Edit in Report Builder | /_layouts/images/ReportServer/EditReport.gif | /community/blogs/rick/_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderReportContext&list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rdl | 250 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
| Manage Subscriptions | /_layouts/images/ReportServer/Manage_Subscription.gif | /community/blogs/rick/_layouts/ReportServer/ManageSubscriptions.aspx?list={ListId}&ID={ItemId} | 0x80 | 0x0 | FileType | rdl | 350 | | Manage Data Sources | | /community/blogs/rick/_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x20 | FileType | rdl | 351 | | Manage Parameters | | /community/blogs/rick/_layouts/ReportServer/ParameterList.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rdl | 352 | | Manage Processing Options | | /community/blogs/rick/_layouts/ReportServer/ReportExecution.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rdl | 353 | | View Report History | | /community/blogs/rick/_layouts/ReportServer/ReportHistory.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x40 | FileType | rdl | 354 | | View Dependent Items | | /community/blogs/rick/_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rsds | 350 | | Edit Data Source Definition | | /community/blogs/rick/_layouts/ReportServer/SharedDataSource.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rsds | 351 | | View Dependent Items | | /community/blogs/rick/_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | smdl | 350 | | Manage Clickthrough Reports | | /community/blogs/rick/_layouts/ReportServer/ModelClickThrough.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | smdl | 352 | | Manage Model Item Security | | /community/blogs/rick/_layouts/ReportServer/ModelItemSecurity.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x2000000 | FileType | smdl | 353 | | Regenerate Model | | /community/blogs/rick/_layouts/ReportServer/GenerateModel.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | smdl | 354 | | Manage Data Sources | | /community/blogs/rick/_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x20 | FileType | smdl | 351 | | Load in Report Builder | | /community/blogs/rick/_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderModelContext&list={ListId}&ID={ItemId} | 0x0 | 0x2 | FileType | smdl | 250 | | Edit in Report Builder | /_layouts/images/ReportServer/EditReport.gif | /community/blogs/rick/_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderReportContext&list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rdl | 250 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
| Manage Subscriptions | /_layouts/images/ReportServer/Manage_Subscription.gif | /community/blogs/rick/_layouts/ReportServer/ManageSubscriptions.aspx?list={ListId}&ID={ItemId} | 0x80 | 0x0 | FileType | rdl | 350 | | Manage Data Sources | | /community/blogs/rick/_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x20 | FileType | rdl | 351 | | Manage Parameters | | /community/blogs/rick/_layouts/ReportServer/ParameterList.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rdl | 352 | | Manage Processing Options | | /community/blogs/rick/_layouts/ReportServer/ReportExecution.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rdl | 353 | | View Report History | | /community/blogs/rick/_layouts/ReportServer/ReportHistory.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x40 | FileType | rdl | 354 | | View Dependent Items | | /community/blogs/rick/_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rsds | 350 | | Edit Data Source Definition | | /community/blogs/rick/_layouts/ReportServer/SharedDataSource.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rsds | 351 | | View Dependent Items | | /community/blogs/rick/_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | smdl | 350 | | Manage Clickthrough Reports | | /community/blogs/rick/_layouts/ReportServer/ModelClickThrough.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | smdl | 352 | | Manage Model Item Security | | /community/blogs/rick/_layouts/ReportServer/ModelItemSecurity.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x2000000 | FileType | smdl | 353 | | Regenerate Model | | /community/blogs/rick/_layouts/ReportServer/GenerateModel.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | smdl | 354 | | Manage Data Sources | | /community/blogs/rick/_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x20 | FileType | smdl | 351 | | Load in Report Builder | | /community/blogs/rick/_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderModelContext&list={ListId}&ID={ItemId} | 0x0 | 0x2 | FileType | smdl | 250 | | Edit in Report Builder | /_layouts/images/ReportServer/EditReport.gif | /community/blogs/rick/_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderReportContext&list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rdl | 250 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
 |
|
|
|
|
|
Home > Community > Connected Systems Blogs > Rick Rosato's Blog
|
|
30/10/2008Last time I gave a brief overview of why we set out to re-develop the Publishing features in MOSS 2007 for WSS. Our customer had a particular scenario which meant MOSS would be cost probitive and they needed to publish content from a single source out to their internal "Extranet" (this is not a spelling mistake - their business is federated and therefore their extranet is running on an internal network). This post will start to address the how, albeit at a fairly high-level to start with. To re-cap quickly (skip this paragraph if you read the last post). - Customer needed to publishing content from MOSS 2007 (Intranet) to a WSS 3.0 (Extranet)
- The publishing experience needed to be as close as possible to the current MOSS publishing feature.
- Build a publishing feature to be compatible across MOSS 2007 and WSS 3.0 – this would allow pages to flow between the 2 environments.
Our approach - “lowest common denominator” When we consider that the destination Extranet server will be running a sub-set of SharePoint functionality currently available in the Intranet MOSS environment, it’s imperative to reduce/remove the dependencies on MOSS components without losing the MOSS functionality. An example of this is the Content Publishing features of MOSS. These features are key to how content is managed on the Intranet, however, we can simulate these on the Extranet without imposing a MOSS licensing cost. This was important to the customer as it was cost prohibitive to buy MOSS for their subsidiary business users. It is also possible to deliver similar Content Publishing components without imposing a licensing overhead (like Content Query web part). We achieve this through development and customisation; specifically replacing Microsoft built-in components with “freeware” components built within the SharePoint community. Bringing the MOSS Intranet back to a “lowest common denominator” (and not using the Publishing feature) facilitates a simpler content migration path. In effect, we simulate and replace as many MOSS features as possible without using MOSS features. In fact, we have a situation now where MOSS would be in question as needed for their Intranet except for the fact that Forms Services and People Search are required. The following components are required to be replaced or augmented in Intranet for a possible synchronisation of content with the WSS v3.0 Extranet site.
- Turn off the Content Publishing features in MOSS. The list below represents Publishing features affected:
- Libraries (Site Collection Documents, Site Collection Images, Style Library – these are global libraries that can be re-created.)
- Lists (Content and Structure Reports, Reusable Content, Workflow tasks, - these lists can be re-created.)
- Administrative links (These are links to the Site Settings page, including the ability to manage Master Pages, Navigation, Searchable columns, Content and Structure, Content and Structure Logs, Variations and Translatable columns. These will need to be re-created or replicated.)
- Additional Master Pages and default Page Layouts are stored in the Master Page Gallery (This needs customisation to support the current master page and layouts)
- Content Types and Site Columns (These are global components that are either not used or are easily re-created)
- Web Parts (Content Query Web Part (CQWP), Summary Links, Table of Content. These will be replaced (if needed) by functionally similar Web Parts.)
- SharePoint Groups (The following SharePoint Groups are created and can be re-created if needed: Approvers, Designers, Hierarchy Managers, Quick Deploy Users, Restricted Readers and Style Resource Readers, and although I do not find some of these groups useful in non-publishing site, there are some that will need to be recreated, such as the Approvers SharePoint Group.)
- Personalised Views (The personalise option is installed as part of Publishing feature, only Shared View is supported without the Publishing feature). This will not affect the viewing of Extranet content by anonymous users. For Intranet users, adding personal views and web parts will not be possible as this is a Publishing feature and we have not scoped including this.
- Workflows for content approval; simulate/replace content publishing workflows and port these to Visual Studio workflows.
- Base the custom site templates on a collaboration portal templates rather than publishing templates
- Replace the Breadcrumb navigation with custom control to cater for different location of page content.
- Build our own navigation provider for the top-level navigation.
- Setting of the Master Pages and Welcome pages in WSS.
- Custom layouts and the Pages library (although our solution supports publishing pages to any library, not just the Pages library.
- Editing toolbar – this was a major component in making the editing process seamless.
- Implement the “free” Telerik RADEditor control/web part to assist with the Content Editing process.
Compare “features” set – align as much as possible We needed to align features across the MOSS Intranet and WSS Extranet as much as possible. Most content migration issues relate to there being a mismatch in “features” between the source site template and the destination site template. When the base or underlying site templates are different or have different features installed, it is likely that the migration will fail. All features installed and activated are to be the same across the MOSS Intranet site and the Extranet site, these include: - Web parts
- Custom content types
- Custom features
- Custom workflows – like the moderation approval and cross-site content publishing.
Custom layouts and master pages –getting these into WSSv3.0 The Content Publishing features of the MOSS Intranet supports the ability for pages to be created and moderated. When pages are created, users have the option of selecting a custom layout (which defines content placeholder areas). It is imperative to simulate the multiple layout support and custom master page support for the Extranet. This will ensure pages are supported and can load without error. The synchronisation of the custom layouts and custom master pages is a customisation as WSSv3 doesn’t support Content Publishing out-of-the-box.
Replicating the Editing toolbar –its works for MOSS & WSSv3.0 Our aim with the Content Publishing feature was to minimise the usabilty impact of implementing a replacement publishing feature. Our Editing toolbar is exactly the same as the editing toolbar in MOSS and apart from some styling attributes most seasoned MOSS users would find it difficult to pick the difference. Don’t under estimate the necessity of the editing toolbar, given it drives the editing process, it, along with the selection of layouts and master pages, they are the “killer” features of content publishing.
Content Synchronisation Options As with most things, there is always more than one way to achieve the same result. MOSS and WSS has a very rich content deployment and migration application programming interface (API). There are many built-in options using this API to make content migration and deployment easy for MOSS administrators.
Content Deployment – not a viable option MOSS has various content migration features built-in as part of the Content Publishing and Management features. However, when looking to synchronised content with a separate WSS v3.0 farm, most of the built-in options either do not work or impose a licensing overhead. The built-in content migration services as part of MOSS attracts a license overhead. However, this is not the reason it is discounted as an option – the reason for discounting this as an option is because it does not work across farms, only within the same farm – intra-farm not inter-farm. The other issue with this is that the destination or Extranet WSS v3.0 needs to accept the “right to receive” content from a source MOSS server and this is not supported in WSS v3.0 . Finally, using this method, the entire site collection is replicated – this does not allow for an opt-in, only replicate tagged content model.
Other content synchronisation options There are three other methods of getting content from one farm to another, these include: - Export/import of sites, libraries and lists. The STSADM utility is used to complete this task and it can be batched or scheduled to update entire sub-sites; or individual lists. It replaces the entire site/list and there’s no ability to opt content in or out.
- Backup and restore site collection. The STSADM utility is used to complete this task it can be batched or scheduled. It backs up and replaces the entire site collection and therefore, as with import/export option, there’s no way to opt content in or out of the synchronisation process.
- Custom Workflow – this is the preferred option and is discussed in detail below.
Custom workflow – the preferred content synchronisation option The Custom Approval workflow is the preferred content synchronisation option. These workflows are customisation to SharePoint that action any business rule built into the workflow (via source code). Content can be opted in or out using metadata and migrated optionally on approval or without approval if needed. It leverages the SharePoint Content Deployment and Migration API which is an extremely rich and functional API.
Search General Search General Search for the Extranet allows users to search across group-wide published content active/published on the Extranet. Search crawls all sub-site content and indexes the site content. We implemented Microsoft’s Search Server Express 2008 as there was no licensing overhead. This integrated with the Extranet WSS v3.0 Central Admin site very nicely, once you sort out the correct install process.
People Search People Search or a personnel directory search in the Extranet needed to be created from the ground up – its not supported in Search Server Express 2008 or WSS v3.0. With regards to MOSS people search, we couldn't use it because: - It had a licensing cost associated with it
- The subsidiary business users where only “contacts” in the corporate AD (and not accounts), the OU structure for these contact made the LDAP query unusable and therefore were not able to import into the user profile database.
Regardless, it wasn’t relevant to put these contact in the User Profile database as the subsidiary contact would never require secure access to the corporate Intranet - this woiuld have poluted the user profile database with +200K users – they were Anonymous users using the WSS v3.0 Extranet.
With another hurdle to jump over, we had to “stand-up” a separate/stand-alone people search for the group (including subsidiary business contacts); these contacts were synchronised with various sources to obtain a complete list of the corporations business employees. A separate SQL database was used to host the contact People search; three main components accompanied this: - A timer job to run daily (configurable) that imported contacts using LDAP queries to the various OUs to build the SQL people search database tables.
- A SQL web service – this returned the results set based on a query passed in - directly from SQL server
- A search web part and a results web part. The results part was able to use the same XLST as the MOSS people search.
Next post I’ll cover the things to watch out for, this goes into a little more depth as to the discrete problems you may encounter tackling a project like this.
9/10/2008 We just finished writing a publishing feature that installs in WSS 3.0 and works like the MOSS 2007 Publishing feature.
You might ask, "Are you crazy? Why?"
This was a very bold undertaking; to re-write the publishing features in MOSS 2007 and implement them on WSS 3.0; after all, MOSS has a working and “good enough” publishing feature.
One of our customers needed to move content from a MOSS farm to a WSS farm whilst retaining the goodness of MOSS publishing (like welcome page, master pages, custom layouts, editing toolbar, and approval workflow). So we set about writing a MOSS-like Publishing feature that worked in WSS 3.0, once we had this we knew it would also work in MOSS.
Customer scenario Our customer’s business is structured as a federated set of businesses; the “Corporate Office” sits above a set of subsidiary businesses, each run autonomously.

The “Corporate Office” has a MOSS intranet to service their employees (“Intranet”). They also have a requirement to host a central web site for the subsidiaries businesses (“Extranet”) to reference information from the parent company’s corporate functions (e.g. group treasury, group risk etc). Content is authored by corporate office users in the Intranet with the option to publish the content to the Extranet via a custom workflow.
The problem Using MOSS as their Extranet (accessible by their subsidiary businesses) was cost prohibitive. Under the current Microsoft Product Use Rights (PUR) (for a product like MOSS), any subsidiary business employee accessing a MOSS web site requires a SharePoint CAL (albeit anonymously). Please note: Anonymous access is NO way of getting around the PUR conditions in this scenario.
In costing this out, the “Corporate Office” determined that a MOSS Extranet was cost prohibitive as it would have to purchase for ALL subsidiary business employees - combined number is over 250,000 employees. The Internet Connector license is not applicable in this situation as the “Extranet” is on the internal network and servicing subsidiary businesses, not on the Internet.
The answer We needed a way to allow the small corporate office to utilise MOSS internally (Intranet), whilst having the ability to easily publish to a separate anonymous Extranet (WSS). The customer needed to seamlessly synchronise and publish content from the Intranet (MOSS) server to the Extranet server (WSS v3.0) via workflow and tagging content as “Extranet Applicable”.
Turning the MOSS Publishing feature on and publishing these pages to WSS would not work.
The challenge was to have an environment where Intranet users could publish information in MOSS (just like the out-of-box Publishing features), tag it as “extranet ready” and for this content to be available on the Extranet portal in an automated way. We wanted the newly created Publishing feature to map as closely as possible to the MOSS OOB features, as this would minimise the training impact for users already using MOSS Publishing.
In addition to mirroring the MOSS Publishing features, the requirements for the Extranet were as follows:
- Support an Extranet platform using WSS v3.0 with anonymous access to all published content. This would resolve the SharePoint CAL issue for all subsidary business users.
- Ensure Intranet content was able to be tagged as “extranet ready”, and once approved;
- Support synchronisation or push of “extranet ready” approved content from the Intranet to the WSS v3.0 Extranet portal, under the same site taxonomy.
In coming posts, I’ll cover our design, approach and the component we built to deliver publishing on WSS. 15/05/2008
Ever get the situation where you go to deploy a solution and the solution never deploys?
1. The status of the deployed solution is deploying and now amount of STSADM commands fixes the problem.
2. The way I fixed this is by checking the Timezone setting for the web site currently deploying into and the Central Admin site. From Central Administration | Application Management | SharePoint Web Application Management, select the Web application general settings.

3. If after selecting the web site the solution is deployed to, you notice that there is NO timezone set, (as indicated below)

4. Set the timezone and go back to Central Administration | Operations | Global Configuration | Solution Management and all going well the status of the solution in question should be “Deployed”. If this doesn’t work, check that the Central Admin site (using step 2) has the timezone set. 1/11/2007
When attempting to add content to a List you get the following error "Exception from HRESULT: 0x80040E14".

Possible Resolution
Check the SharePoint log files for the following error.
{date|time} OWSTIMER.EXE (0x05B8) 0x0934 Windows SharePoint Services Database 6f8g Unexpected Unexpected query execution failure, error code 9002. Additional error information from SQL Server is included below. "The transaction log for database 'SharePoint_Config_xxx' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases" Query text (if available): "{?=call proc_StartTimerRunningJob(?,?,?,?,?,?)}"
As the error states, the Transaction Log database is full or there is insufficient disk space. Trimming this DB or allocating more disk will should resolve the “Exception from HRESULT: 0x80040E14” error. You should not need to restart – it should just come good.
Cheers,
Rick Rosato 23/05/2007
Ever had the situation where search drop down was missing or empty even though the search settings for the site collection were configured to use the scopes from the Search Center site?
This happened to me at a customer site, and to remedy the problem I did the following:
-
From "Site Action>Site Settings>Modify Site Settings>Search scopes". You must be positioned at the root site or site collection root.
-
As you can see by the screen, the display group for "Search Dropdown" is missing.
-
Select "New Display Group" and set the Title to "Search Dropdown". This seems to be an internal display name used by the search control. Select the scopes you'd like to associate with the display group.
-
You should end up with something similar to this.
-
Return back to the root site or site collection root and the search scope drop down should be populated with the scopes allocated above.
| Manage Subscriptions | /_layouts/images/ReportServer/Manage_Subscription.gif | /community/blogs/rick/_layouts/ReportServer/ManageSubscriptions.aspx?list={ListId}&ID={ItemId} | 0x80 | 0x0 | FileType | rdl | 350 | | Manage Data Sources | | /community/blogs/rick/_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x20 | FileType | rdl | 351 | | Manage Parameters | | /community/blogs/rick/_layouts/ReportServer/ParameterList.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rdl | 352 | | Manage Processing Options | | /community/blogs/rick/_layouts/ReportServer/ReportExecution.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rdl | 353 | | View Report History | | /community/blogs/rick/_layouts/ReportServer/ReportHistory.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x40 | FileType | rdl | 354 | | View Dependent Items | | /community/blogs/rick/_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rsds | 350 | | Edit Data Source Definition | | /community/blogs/rick/_layouts/ReportServer/SharedDataSource.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rsds | 351 | | View Dependent Items | | /community/blogs/rick/_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | smdl | 350 | | Manage Clickthrough Reports | | /community/blogs/rick/_layouts/ReportServer/ModelClickThrough.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | smdl | 352 | | Manage Model Item Security | | /community/blogs/rick/_layouts/ReportServer/ModelItemSecurity.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x2000000 | FileType | smdl | 353 | | Regenerate Model | | /community/blogs/rick/_layouts/ReportServer/GenerateModel.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | smdl | 354 | | Manage Data Sources | | /community/blogs/rick/_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} | 0x0 | 0x20 | FileType | smdl | 351 | | Load in Report Builder | | /community/blogs/rick/_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderModelContext&list={ListId}&ID={ItemId} | 0x0 | 0x2 | FileType | smdl | 250 | | Edit in Report Builder | /_layouts/images/ReportServer/EditReport.gif | /community/blogs/rick/_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderReportContext&list={ListId}&ID={ItemId} | 0x0 | 0x4 | FileType | rdl | 250 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /community/blogs/rick/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /community/blogs/rick/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
|
|
|
|
|