פוסט בעברית לשם שינוי.
במסגרת דיונים על תרגום עברי להנחיות הנגישות לאינטרנט אנחנו מחפשים תרגום למונח “User-Agent”.
כרגע הגענו לתרגום: “תוכנות הצגה”.
אשמח לשמוע את דעתכם בנושא, ו/או רעיונות חלופיים.
Every now and then, when I prepare my self to a lecture, or when I need to create a demo, I need to produce some “content” on my MOSS site.
Since it is quite a tedious task to produce 10-15 pages, I wrote a small code snippet that will do this task for me.
The basics – creating pages with code
Here is the basic C# code:
- using (SPSite site = new SPSite("http://joeysh-srv-pt:100"))
- {
- using (SPWeb web = site.OpenWeb())
- {
- //Get the publishing site, and publishing web
- PublishingWeb pubWeb = PublishingWeb.GetPublishingWeb(web);
-
- //Get the content type for the page
- SPContentTypeId ctID = new SPContentTypeId("0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900B1281BE7EC1A304F977F3595ED435565");
-
- //Now let's get the page layout for that content type
- //Note: assuming only one page layout for that CT
- PageLayout layout = pubWeb.GetAvailablePageLayouts(ctID)[0];
-
- //Create the page
- //Note: assuming page doesn't exist yet
- PublishingPage newPage = pubWeb.GetPublishingPages().Add("newly_created_page.aspx", layout);
-
- //Add the title and description. Those are special fields which doesn't exists in the SPListItem for that page.
- newPage.Title = "Page created with code";
- newPage.Description = "This page was created solely with code";
-
- //Now set some fields' values
- newPage.ListItem["DetailedDescription"] = "This is a very good product description";
- newPage.ListItem["Price"] = "50.99";
- newPage.ListItem["IsOnSale"] = "Yes";
-
- //Update the item, check-in and publish
- newPage.ListItem.Update();
- newPage.ListItem.File.CheckIn("Created automatically");
- newPage.ListItem.File.Publish("Created automatically");
- }
- \
I think the code is really straight forward. After getting an instance of the desired site collection, I’m getting a publishing web object (line 6). This is done to get access to some of the publishing method, which the basic SPWeb doesn’t expose.
In line 20 – 31, I’m filling in some content in the page’s fields. Note that the “title” and “description” fields are getting different attention. The reason for that, is the they both comes from the base object, and not from the content type’s list item.
The last important part is to update the list item, and check in the new file. The update part is simple – a page is a list item, and hence it needs to be updated, just like any other list item.
The check-in and the publish, is unique to pages, and the reason for that is versioning. Unlike regular list items, pages can save versioning information, therefore you should check them out for editing and check them back in when you done. When you create a new page, it is automatically checked out on you.
I would suggest you leave the remark there, and/or add something more descriptive, just so you can recognize you pages later.
Creating multiply pages with code
This is actually a very small extension to the code above.
All I add is a function that will fetch some content from an Excel file, or XML or any other source, it might even be just another list inside your SharePoint. The point is that those data sources, are easier to edit and you can easily just drop as many rows as you like.
So, my code differs very little, first, I get a list of items from my data source:
- //Get some data from any data source
- //'SingleRow' is some data structure. It can be anything:
- //XML, DataRow, any class or object, etc.
- List<SingleRow> pagesToCreate = GetPagesContentFromSource();
-
And then I rap the page-creation-code in a loop, so it looks like that:
- //Now loop the data source, and create a page for each item
- foreach (SingleRow currentRow in pagesToCreate)
- {
- //Create the page
- //Note: assuming page doesn't exist yet
- //The page name is creates using the data source's title
- PublishingPage newPage = pubWeb.GetPublishingPages().Add(currentRow.Title + ".aspx", layout);
-
- //Add the title and description. Those are special fields which doesn't exists in the SPListItem for that page.
- newPage.Title = currentRow.Title;
- newPage.Description = currentRow.Description;
-
- //Now set some fields' values
- newPage.ListItem["DetailedDescription"] = currentRow.DetailedDescription;
- newPage.ListItem["Price"] = currentRow.Price;
- newPage.ListItem["IsOnSale"] = currentRow.IsOnSale;
-
- //Update the item, check-in and publish
- newPage.ListItem.Update();
- newPage.ListItem.File.CheckIn("Created automatically, page title: " + currentRow.Title);
- newPage.ListItem.File.Publish("Created automatically, page title: " + currentRow.Title);
- \
Note that I’m only wrapping the lines that do the actual creation. I don’t want to create instances of sites on each iteration, of course. Furthermore, since I’m creating pages of the same type, the Content Type and the Layout doesn’t change as well.
You can, of course, make the code even more sophisticate, and choose different pages’ layouts and different content types.
Last week, Matrix launched its own blogs’ site – blogiX.
I have a new blog there, about SharePoint, content management and so on.
The blog is in Hebrew, and I will post there some translated posts from this blog, and some originals.
New blog’s address: http://portals.blogix.co.il
Enjoy reading.
This post was suppose to be part of the Validating WCAG 2.0 post. But due to the length of the combined post, I decided to split them.
SortSite by Electrum is a complete testing tool for web sites. It isn’t free, but it isn’t very expansive either - the standard version cost 149$ (complete price list).
It stands alone, and doesn’t require Internet access (there’re couple of information frames that pools data from the web site, besides those, everything will work).
The application checks many things:
- Accessibility
- Browser Compatibility
- Broken Links and Errors
- Web Standards
- Search Optimization (Pro edition only)
- Legal Compliance (Pro edition only)
- User Experience (Pro edition only)
The interface is very simple, and it looks just like a browser. Just type in the address of the page you wish to check, and hit the “Check” button.
Each page in the application includes clear explanations of how to achieve the basic functionality of that page.
As an example, here is the “Rule Settings” page (click to enlarge):
Configuration
In the “Choose Rules” dialog, you can select which rules and guidelines to check:
The accessibility section offers checks for WCAG 1, WCAG 2, and Section 508. You can select which level you wish to support, and check to that level.
You can assemble a list of check you wish to run and export it. Later on, you can import it back to run that set of tests again. This can be very useful, if you want different set of checks for different development phases. The import/export is done using the links on the bottom of the dialog.
Check results
The result page will show you a summary of all the checks conducted on the page.
Drilling down to the accessibility report, will show the accessibility check report.
On the top of the page there’s an accessibility status summary table, showing you how the site stands on each level and version checked.
Each error, offers a link to the guideline it self, from the WCAG guidelines pages. Clicking the link will open the page inside the application, which makes it easy to quickly check the description of that error.
Clicking the errors on the left, will show you the pages on which the error was found.
Each page has a separate report; clicking the link, will navigate to the single page’s report, showing the error it self, the line number on which the error exists, piece of the HTML code, and a fix suggestion.
Summary
Over all this is a very good tool for checking many aspects of your web site.
Although it isn’t free, I think it worth its price. You can use it for 30 days, using the trial version, before you decide.
But if you need to check many sites, conducting the same tests over and over, I think it will defiantly save you some time.
Earlier this week, I’ve published my post about Fujitsu Accessibility assistance. One of the problems with this tool is that it still checks only for WCAG 1.0.
In fact, most of the tools out there, are still aimed at WCAG 1.0.
Following the post, I was asked for a tool that will validate WCAG 2.0. Since I actually need it my self, I didn’t need much more to get on the search.
ATRC Web Accessibility Checker
The “ATRC Web Accessibility Checker” is an online validating tool from the “Adaptive Technology Resource Centre”.
It is completely free, but since it works only on-line, you should have Internet access. You can, as a workaround, save your rendered file to a static HTML file, and upload that file.
The interface is very simple:
Just type in the URL for the site you wish to check, select the options you want, and hit “Check It”.
After a while (it will take quite a few seconds) you will have a tabbed report on the bottom of that page, which looks like that:
Each error, is marked with the line number in the checked HTML. Note that if you are checking an Asp.Net page, the line number wouldn’t be same as your mark-up, but as your rendered HTML result.
The “Repair” section of each error, offers a method to repair that error.
Clicking the error’s title link, will open a popup window with a detailed explanation of the guide line and repair method.
If you need an offline tool, read about SortSite - web site testing tool
When you develop an accessible site, you would probably incorporate the accessibility test into your QA phase. This is a standard practice, and it is a good practice.
However, you might want to test your code yourself, while still in development. This is a good practice too. If you’re running unit tests on you C# code, why wouldn’t you do something similar for your HTML code?
If you are developing within Visual Studio, the IDE highlights some elements, and offer some tests for accessibility.
But if you don’t use Visual Studio (developing Java maybe?), you need some external tool.
There are many tools that can do automatic checks on your web page. Most of them aren’t for free, or if they are free, they are on-line (which might be a problem, if you are on a secured network).
I was working with a development project, and I need some tools, so they can check for accessibility themselves, before my final test.
After not much of searching, I found out the Fujitsu Accessibility Assistance toolset.
There are 3 tools on that set:
Web Accessibility Inspector ColorSelector ColorDoctor I’m going to focus only on the first and last, as ColorSelector is merely a color-picker and not really an accessibility tool per se.
Both tools are completely stand alone, and they don’t need no Internet access. Both are built with Java, and you will have to download Java runtime to get it to work.
Web Accessibility Inspector
This tool will perform an automated check for WCAG 1.0 (no WCAG 2.0 support yet). The interface is very simple as you can see below:
You can select to check a folder (where you HTML or ASPX files are located), including sub-folders, with the option to drill one layer, two layers or all layers. You can check the level of compliance you wish to check, or to customize the check list, to check only specific guide lines.
A word of caution: do not hit the “version…” button. Due to some bug, it hangs the application (at least it did on my machine).
If you hit the “Setup the environment…” button, you’ll get the following screen:
Here you can setup the browser to use for the check and when watching the result file, setup proxy (if you’re checking your site on-line), and so on.
One of the coolest thing in my opinion, is that the result are being presented as an HTML page, which you can save, print, or send by mail. I’m using it to produce a check list of errors to my team.
The result file shows a summary table, with internal links, to the problem found.

As you can see, the tool checks not only the main file, but also the supporting files (i.e. CSS files, and JaveScript).
Just below that table, you can get a quick view of how many errors you need to fix, to meet each compliance level.

Each error found, is being described in details, including the line number, the compliance level for which this guideline belongs, and a link to the guideline itself on the WCAG web page.
Color Doctor
Now this tool, is a simulation tool, design to show you how your site will be seen in the eyes of a person, having types of color blindness deficiency.
As with the first tool, the interface is very simple:
Just type in the URL to your page (it can be local) and hit the “Go” button. Choose the type of deficiency you wish to check for, and hit the “Convert image”.
Note that only the left pane is scrollable. If you scrolled the left pane, you will have to click the “Convert image” once more. Marking the “Real-time conversion” will scroll and convert the right pane, while you’re scrolling the left pane. Note that the conversion process is heavy, and the scrolling wouldn’t be smooth.
You can use this tool to check images you’re about to use on your site. Just replace the URL with the full path to the image file (i.e. “C:\someFolder\somefile.jpg”) and everything else is just the same.
A friend asked me to find her an on-line map for the subway in several cities she is going to.
Naturally, I’ve Googled with “subway maps” and the second result was that: Subway Maps on amadeous.net.
I’ve browsed a bit to see if it has all the maps I need, and then, surprisingly, found “Haifa” in the list of cities who has a subway.

And there is a map as well(!)
I knew about the “Carmelit”, of course. I took some rides in it too. But it was very funny to see it besides subway’s maps from London or Tokyo…
Just take a look at the other maps and you’ll catch the funny part.
It’s a good site to have in your bookmarks, anyhow.
While I was researching for my post What's new in WCAG 2, a new podcast was published in a podcast show I like to watch: Boagworld.
It is very interesting, and I think people might find it interesting. The sound is not that great here (there’s a whole bunch of apologies for that on the podcast’s site itself
).
If you prefer to see the video on the original site, here’s the link: Video: Introduction to WCAG 2.
If you want to read the transcript of this presentation, it is available on the original page as well (below the video).
Introduction to WCAG 2.0. from Paul Boag on Vimeo.
Enjoy
Last December, at last, W3C published the final release of Web Content Accessibility Guidelines (WCAG) 2.0.
It took five years to create this new version, and now that it is out, there are many questions regarding this new version. I will try to cover the main issues and questions I’m getting from clients and colleagues, and I’ll be happy to add some more, if you have any (just, send me a line, or add it in the comments).
Why do we need the new version?
Well, that is the first question that usually rises. The answer for that is very simple – evolution. The first version WCAG was published on 1999. The web had gone a long way since those days. The technology changed. People had changed.
In 1999, the Internet was a network to exchange data, and to entertain yourself. Today, you can do almost anything over the Internet:buying groceries, paying you bills, rent a movie, and so on and so forth.
The Internet became a tool for people. It is even more effective for people with disabilities. Consider how difficult and even dangerous for a blind person to go to his bank, compared to the option of communicating with his bank entirely from his home and seat.
The technology today allows all that. Furthermore, web technology advanced so greatly, so some of the old guidelines just weren’t possible to implement.As an example, take guideline 6.3: “Ensure that pages are usable when scripts, applets, or other programmatic objects are turned off or not supported.”, how can you have a Dot.Net application with out scripts to do the post backs?!
The new structures
If you read WCAG 1.0, you probably remember the old structure: there where three levels of compliance, each with several guidelines, and you could filter the guidelines to see only the level you wanted.
The new structure is different. There are now 4 categories of compliance, and 12 guidelines (in all 4 categories all together) with 3 success criteria for each guideline.
The 4 different categories, are:
Perceivable
From the original document: “Information and user interface components must be presentable to users in ways they can perceive.”
Meaning that parts of your page should be viewable to people, no matter what user agent they are using, and no mater what sense are they using (i.e. using their ears, instead of their eyes, to “read” you page).
The success criteria you will find here are about text alternatives, about time limited media, captions, etc.
Operable
From the original document: “User interface components and navigation must be operable.”
This category is about how users will work with your site; how will they navigate, etc.
The meaning here is that users should be able to operate the site no matter what technology they are using.
In this category you will find guidelines and success criteria regarding keyboard operation and keyboard traps, time limited responses, etc.
Understandable
From the original document: “Information and the operation of user interface must be understandable”
Meaning that user must understand what they read on your page, and must understand how to operate the site. As an example, if you’re using a special button to log-off, it must be designed so people understand that this is the log-off button.
You will find here criteria about the use of jargon (words or expressions used by a particular profession or group), about languages, and so on.
Robust
From the original document: “Content must be robust enough that it can be interpreted reliably by a wide variety of user agents, including assistive technologies”.
This part is something that was too vague in WCAG 1.0: the meaning here is that your site needs to remain accessible even if technology changes. I.e., if technology now offers AJAX, you should keep a version that doesn’t use AJAX, if your AJAX framework isn’t accessible.
There is only one guideline here, which basically says that you need to be as compatible with current user agents as possible. It also says that you need to be as compatible as possible with future user agents.Which basically means that you should know the future…
New guidelines
There are number of new guidelines in the new version. You can use Comparison of WCAG 1.0 checkpoints to WCAG 2.0 to check what’s new (it is in the end of the page).
Some of the new items added are (re-phrased):
- Validation errors should be text only or with text alternatives, not just sound or color.
- Text’s images, or any other representation of texts, should have a text only alternatives.
- Pages, frames, and so on, should have a title.
- Background noises can be turned off permanently.
Removed guidelines
Some guidelines were removed in the new versions. Some of those are important and it’s a shame that they were removed.
Some examples of what were removed:
- No need to create documents that validate to standards.
- Using tables for layouts is now allowed (note that it is “tables” and not “table”).
- You can use text images.
- No need to split large chunks of content into smaller units.
There are a few more, but I think those four are the most crucial (in my opinion).
Is it better?
I think this is the biggest question.
The answer is basically “yes and no”.
It really depends who you ask. Joe Clark wrote an article a couple of years ago - “To Hell with WCAG 2” - that really summarizes the bad things about WCAG 2.0. If you into accessibility, you should read it.
Another article “WCAG 2.0: The new W3C accessibility guidelines evaluated” (from WebCredible) discuss in more details what is new, what is good and what is bad in WCAG 2.0.
The main point with WCAG 2.0, is that it didn’t become any more easier to read it. The documents spread over 200 pages and more. It is really difficult for the average developer to find exactly what he needs to make his code accessible.
Furthermore, the test it self is really hard to understand, or even just to read, with all the links inside of it.
it is better, however, in the fact that some obsolete guidelines were removed, and some new ones added to reflect some of the new technology. It is also more technology-independent, so technologies which couldn’t be accessible before (such as Flash) are now accessible.
Are there still 3 levels of conformance?
Yes there are, but not in the same sense as it was before.
Actually this is one of the good parts in WCAG 2. In the old version, some guidelines where on level AA or AAA simply because they were a little bit to difficult to implement. The compliance level, made developers ignore them completely, leaving some crucial functionality not accessible (i.e. images’ contrast).
In the new version, the compliance level is more of “Accessible”, “More Accessible”, “Best Accessibility”.
This way, developers might just take a look to see what is required to be a little bit better, and might just implement it.
What version should I refer to?
Well, if you are just writing your site now, or just upgrading it now, refer to WCAG 2 solely. When your site will be checked, it will be checked using this version.
How ever, you should also be familier with the old version. Keep in mind that this version is still new, not many people knows it as well as the old one.
and basically speaking, it doesn’t really matter which version. After all accessibility is for the people and not just to fulfill a checklist.
Is my site still accessible?
Probably yes. If you wrote your site according to WCAG 1.0, it will be accessible according to WCAG 2.0.
You might need to re-check. And you will probably want to check if some things that you couldn’t do before, are now possible, with the new guidelines.
References
Read more about it
Couple of days ago, Israel had an election day.
Like most people here, I’ve spent the day-off doing all kinds of stuff I didn’t manage to do in the past few weeks. I’ve fixed some things at home, went shopping for some things and basically spent the time with my princess.
In the evening, we went to my sister’s place for the main event: Home made pizza (courtesy of my brother in law), home made (great) red wine (that too, is courtesy of my brother in law), and some quality time with my great little ninja niece – Mili (well, courtesy of her parents
).
My sister’s place has a great view to Azrieli Center. This year, one of the Israeli news channel posted the first results on the towers, using computerized controlled lights.
On top of that, the weather was stormy that night, with thunders and lightning. The only thing missing is some surprising (or better yet - shocking) results, to make the show perfect.
This is how it looked like (minus the lightning) – courtesy of my sister and her new camera.


My company Matrix is looking for a few good men :)
MOSS Professionals
People with experience in MOSS 2007, SPS 2003, MCMS 2002 (any of those) and Dot.Net development for SharePoint are needed for central Israel, and for Jerusalem (Israel).
A huge advantage for people who knows MOSS 2007 and SPS 2003/MCMS 2002.
Dot.Net Instructors
With 3 years of experience in Dot.Net development.
The job will include frontal training in courses and conventions, and consulting to the company’s clients.
This can be a partial or full time job.
Contact me
If you are interested, or know someone who might be interested, please contact me using the contact form here, or directly to my mail.
A few days ago, I was asked to give my opinion regarding the accessibility level of a web site. The lead UI designer said something like “If I understand the guidelines correctly, there is no need to change the design, to comply with WCAG 2.0”.
This phrase got me thinking: the person who said it, is a person I appreciate a lot; but yet, something in this phrase didn’t sound right.
The point is, that the accessibility guidelines are meant to give the web-developer with some rules and explanations on how to make your code (and hence the resulting web page) more accessible.
The success criteria are sort of a QA check lists.
But the idea behind it is not just a badge. The idea is to allow as many people as possible, use your site, in the same manner, no matter what user-agent they are using.
The idea is people.
Some of the success criteria on level AA and AAA, are only there because they are a little bit more difficult to accomplish. Not because they are more important. Images’ contrast, as an example, is an AA criteria; but yet, many people will have difficulties reading gray text over black background.
So, next time you’re going to write an accessible page (or should I say, next time you write a page), keep in mind the people, your users, who should use this page. Make the page accessible to the highest possible level, not or the badge,but for the people.
Remember this: if a person can use your site (technically), he will! And he will come back. It’s a win-win situation, and how many of those do we have?
Last Wednesday, the SharePoint team announced the December Cumulative Updates for MOSS 2007 and WSS 3, on the team's blog.
There're a few key points about this cumulative update (quoted from the post):
- WSS continues to remain separate and is not included in the MOSS package
- All of the latest Global and Local patches for WSS are in the WSS package
- All of the latest Global and Local patches for MOSS (Excel Server, Document LifeCycle, etc are part of MOSS), InfoPath Forms Server, Project Server are in the Office Server package
- The list of what is in the package is an accumulation over time of what we have shipped since RTM
- The package includes the Infrastructure Update, there is no reason to install it separately.
For my on personal opinion, there are two great things in this update:
- The fact that it includes all the hot-fixes and updates up till now.
- The fact that it includes all the languages available.
I did many migrations' projects lately, and I have a couple of clients that just had a process of leveling and updating all of their environments. I can tell you for sure, that this update will defiantly save time.
To get more information on the updates, use the following links:
Description of the Windows SharePoint Services 3.0 cumulative update package: December 16, 2008
Description of the SharePoint Server 2007 cumulative update package: December 16, 2008
To request the updates, use the following links:
December Cumulative Update for Windows SharePoint Services 3.0
December Cumulative Update for Microsoft Office Servers
Reference:
Announcing December Cumulative Update for Office SharePoint Server 2007 and Windows SharePoint Services 3.0 From Microsoft SharePoint Team Blog
In my previous post, I've described my general guidelines for exporting a WSS 3.0 site, to a MOSS 2007 farm.
In this post, I will cover the errors and problems I've stumbled upon, and how I've fixed them.
Import and Export errors, and their fixes.
Your backup is from a different version.
This error happened on my first try. I was trying to use backup and restore using STSADM, and got the error.
The complete error message was:
"Your backup is from a different version of Windows SharePoint Services and cannot be restored to a server running the current version.
The backup file should be restored to a server with version ‘12.0.0.6219′ or later."
This one is very easy, and I've mentioned it in my guidelines: you should make sure both servers, the source and target, are running the same versions. In some cases, if the target server is running a higher version, the restore will still work.
In this case, the WSS server had SP1 installed, while the MOSS 2007 server didn't. I've just installed SP1, and that's it.
If you need instructions, on how to do it, a very good post about that, is here: How to install WSS and MOSS SP1.
STSADM Export FatalError: Guid should contain 32 digits with 4 dashes
This is the first error I've got, when I tried to export the site collection. I didn't solved this one by myself, I've found the solution in a post with the same title.
In short, this error happens when the export process tries to export the fields. It appears that in the "Fields.xml" file, there's an "ID" attribute for each field, holding the GUID for that field. However, the string is surrounded by curly brackets, which breaks the export.
Find the file in:
"C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\TSATypes\Fields.xml"
and back it up somewhere.
Remove the curly brackets, through out the file, and you're all set to go.
Could not find WebTemplate
As I've mentioned in the previous post, the original site wasn't documented, and it was used for lots of try-outs of all kinds.
One of the try-out the company's employees did, was to install some application templates, taken from the "Fantastic 40" pack.
The "Fantastic 40", in case you are not familiar with it, is a set of application templates, and site templates, developed by Microsoft, and available for free on TechNet. The pack includes all kinds of templates, to extend the out of the box template pack, which is included with WSS 3.0. As an example, you can find there an HR modules, such as "Absence Request and Vacation Schedule Management", "Inventory Tracking" module, and so on and so forth.
To read more about it, and to download it, go to: Application Templates for Windows SharePoint Services 3.0.
The complete error message I've got was something like that:
"FatalError: Could not find WebTemplate XXXXXX with LCID 1033"
LCID, is the Language Code ID. My source and target sites, were both in English, so I didn't had no problems there.
XXXXXX was some kind of ID for the template. As an example, I've got something like: "KB#75806", which directed me to the Knowledge Base template (the "KB" is the clue
). Another one I had was "ITTEAM#75817", which was, of course: IT Team Workspace. I think you're catching the idea by now.
You might ask "why not install all of them and that's it?", well, you might be right, but I just didn't want to install things I didn't really need.
If you do want to install all the template at once, just extract them to a single folder, and create a batch file in that folder. Copy the following code to that batch file, and run it:
set stspath="C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\"
for %%wspfile in (*.wsp) do %stspath%stsadm.exe -o addsolution -filename %%wspfile
for %%wspfile in (*.wsp) do %stspath%stsadm.exe -o deploysolution -allowgacdeployment -immediate
-name %%wspfile
The content type name cannot contain: (list of chars)
I have to admit that I didn't manage to overcome this one, just to go around it.
The complete error message is:
"FatalError: The content type name cannot contain: \ / : * ? " # % < > { } | ~ &, two consecutive periods (..), or special characters such as a tab."
I've search the Internet for a solution for that, and find all kind of forums' threads, such as this one: stsadm import error content type name cannot contain, or this one: Import Site Error.
The only thing I learned from them was that it is an error related to the "Fantastic 40" templates. To work around this error, I've created a new blank site collection, and just imported the sub sites, one after another.
This worked just fine!
The problem here was that the root site had some lists and document libraries in it, so I had to copy them to.
To copy document libraries which doesn't have any custom fields
The easiest thing to do here, is to create the document library on the new server, with the same name, permissions' set, etc.
Use two browser windows, side by side, and switch the document libraries to explorer view (both of them). Now just drag the files from the source library to the target.
And if explorer view doesn't work?
Well, I had this problem, and there might be some reasons for that.
The first thing you should check, is if your "WebClient" service is running. To do so, go to "Start -> Run" and type "services.msc" to load the services console. Look for the "WebClient" service and start it.
If explorer view still doesn't work, try to add the site to your trusted sites in IE (that is always a good idea).
Another thing you might want to check, is if WebDav, is enabled in IIS. To do so, go again to "Start -> Run" and type "inetmgr", to load IIS manager. Go to "Web Server Extension", mark "WebDav", and click "Allow".
To export and import lists
I've mentioned before an STSADM extension I was using, so here is the place to elaborate a bit about it.
When I was looking for a way to export lists, I've found Gary Lapointe's blog, who published these cool Custom STSADM Extensions. There are many extensions there, some of them are really important and helpful (I didn't use them all). You should really have a look over them.
I've used his gl-exportlist to export the lists I needed from the source site, and then gl-importlist to import it back.
There are other methods, like saving the list as a template, with the content. To do so, go to your list, and in the "Settings" menu, choose "List Settings".
Click the "Save list as template, under "Permissions and Management".
In page that loads, fill in the necessary details, and don't forget to mark the "Include Content" checkbox.
Personally, the STSADM extension worked better for me.
The update cannot be started because the content sources cannot be accessed.
This error is actually a post migration error. After I've finished everything, and the new site seemed to work properly, the IT manager complained about this error, which kept appearing in the Event View.
The detailed error was:
"The update cannot be started because the content sources cannot be accessed. Fix the errors and try the update again.
Context: Application 'Search', Catalog 'index file on the search server Search'
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp"
The solution for that one is actually very simple. The search service, needs to write some data to index files, located in a file system folder. This file system, is being set, when you configure the search service for the first time.
By default, as with any NTFS folder, this folder has only limited amount of permissions.
Now, if you've used best-practices while installing, and used a dedicated domain account, which isn't a domain admin, to run your SharePoint Search service, this service probably doesn't have permissions for that folder.
To solve it, first find the data folder for the search service. In Central Admin, go to "Operations -> Servers in Farm" and locate the server running the search service.
Click it's name and you will be transferred to the "Services on Server" page.
Click the "Office SharePoint Server Search" link, to get to its settings page and there note the "Default index file location" text box, and copy that path.
Browse to that folder, and grant permissions to Modify, for the domain user which runs the service.
A single user complains that his files lost during the migration process.
If you recall, I wrote in my guidelines (in the previous post) to make sure that files are checked in. And this is exactly the reason.
This error occurs, usually, when the complaining user didn't PUBLISH his file to the library even once. There for, they are still personal and in draft mode, and no body, including the site collection's administrator can see them.
The solution here, as I said, is very easy, just have the user publish his files.
Well then, that's all from this process. I hope it will help someone in the future, and I'll be happy to hear about it.
I'll be also very happy to hear about problems you've encountered and how you solved them (if you did).
Last week I was working with a client, on moving their site from a WSS 3.0 server to a MOSS 2007 server.
Usually, this shouldn't be too complicated, or too difficult, but with this one I had all kind of errors and bugs, which made this one quite a challenge.
There're millions of posts out there, explaining how to do an import, so I'm not going to write that kind of a post. Instead, I will write a few of the things I've stumbled upon, as a sort of a reference list, or a one-stop-for-errors-post.
Due to the length of the post, I'll split it into two parts: Migration plan, and Various errors and solutions while exporting.
So this is part one:
Create a migration plan
The WSS site I needed to migrate, was created by the company's employees, which didn't know much about SharePoint when they started. Instead, they used the site to learn, and did many experiments. Due to that fact, I had two problems:
- There were no documentation for what was installed in terms of hot-fixes, templates, etc.
- There were many customizations which wasn't needed, or was not in use.
When I've tried to import an exported site, to the new server, I've started to get all kind of errors, about missing content types, and missing templates.
I didn't think such a move will work, but I wanted to try in anyway, testing my luck :)
Therefor, what I did, and what I think is very important to any migration, is to plan the process.
My basic guidelines, look something like this:
- Make sure you are the site-collection's administrator, on both machine.
- Go over the old site, play with it a bit, make sure you know what content resides in what sub sites, etc.
- Make sure both servers are running the same versions, same hot-fixes are installed, etc.
You can check it by going to "Central Admin -> Operations -> Servers On Farm" the version number should be listed there.
In the above image, you can see that my server version is 12.0.0.4518, that means that I haven't installed SP1 yet. With SP1, I would have 12.0.0.6219. A list of all the hot-fixes and version numbers can be found here:
What version of WSS/MOSS are you running?
- Make a list of custom templates, custom content type, etc.
One method of getting a list of custom content types, is to go to your Site Actions menu -> Site Settings -> Modify all site's settings. Browse to the "Site Content Types" gallery, under "Galleries". If you're lucky, all the content types will be located in a special group.
Also, you might want to check for deployed solutions, to get a list of custom site templates installed, features, and so on. Go to "Central Admin -> Operations -> Solution Management" to check that.
- Make sure all the documents and content are checked in!
Go to "Site Action Menu -> View all site content" and go folder by folder. Ask people to check in their file, or just check in all the files which are checked out using your administrator rights.
You can check-in multiply files, by checking the check box next to them, and clicking the "check-in" action, under the "actions" menu.
- Export all the custom items to a shared folder, accessible by both servers.
You can easily export content types using an STSADM extension: Export Content Types, which is a part of a bigger extension pack, which I will mention in details later.
To export solutions, site templates, features and so on, go to "Central Admin -> Operations -> Solution Management"and export all the deployed solutions (or, if you have them stored somewhere, just take it from there). To export, simply right click each solution, and choose "Save Target As".
- Export the entire site collection, using STSADM. The simple "export" command is like as follows:
stsadm -0 export -url <URL> -filename <Name> -includeusersecurity -versions 4
Where <URL> stands for you site's URL; <Name> is the file name to be saved.
The -includeusersecurity tells STSADM to save the users' permissions as defined. You should only use this one if you're exporting to a server in the same environment.
And lastly,-versions the with value of "4" tells STSADM to export all the version history.
- Make sure your content database is offline. You can do that directly from Central Admin: go to "Application Management -> Content Databases", click the desired content database, and change the "Database status" combo-box to "offline"
Click "OK" on the bottom to confirm.
- Create an empty, blank, site collection on the target server.
Don't worry about the template, it'll be created by the import process.
- Import the custom content types, and install solutions, features, etc.
To install solutions and features, use STSADM with the "addsolution" followed by "deploysolution" for solutions, and "installfeature" and "activatefeature" or features.
- Import the content to the new server.
Again, this is very easy to do, just use the STSADM "import" operation. The basic syntax is:
stsadm -0 import -url <URL> -filename <Name> -includeusersecurity -updateversions 2
URL, Name, and includeusersecurity, are the same as with the export operation.
updateversions with value of 2, tells STSADM to overwrite files and all of their versions, if the file exists.
This is only good if you don't import to an existing site.
Well, here you have it. That was the guidelines. Go to part two, to read the errors I've stumbled upon.
More Posts
Next page »