Friday, June 27, 2008

How to get a top level domain name

ICANN has indicated they will allow companies to submit proposals for top level domain names or TLD names. It looks like the initial cost will be in the six figures to obtain one of these bad boys and the process looks like it has been well planned. See link below.

http://www.praxagora.com/andyo/professional/icann_tld_approval.html

I can only hope it is that easy.

Thursday, June 26, 2008

Unable to instantiate event handler Request registry access is not allowed

I've create a custom SharePoint document library event handler and have attached it to a document library, however when I do something to kick off the handler, nothing happens and this error gets recorded on the server event log. Looking through some (I mean very few posts) I found that the document library event handlers run as the app pool account of the SharePoint site.

So if the app pool account doesn't have access to the registry then it's probably possible that this is the reason registry access is not allowed. To fix this I gave the app pool account admin privledges on the server and retried. This fixed the problem.

Event manager error: Unable to instantiate event handler (assembly "EventHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=", class "EventHandler"), or report event for ".xml" in ". Requested registry access is not allowed.

SPFile.CopyTo SPFile.MoveTo How to move a file across SharePoint sites programmatically

I think we've all tried SPFile.CopyTo(destUrl) or SPFile.MoveTo(destUrl) and have quickly found that it doesn't allow us to move that file across SharePoint sites. How then can we copy a file from one site to the other programmatically?

Well we need to use the SPFileCollection.Add method as demonstrated below. Sure it's not as easy as a one liner but it gets the job done just the same and more importantly it lets you do it between sites and site collections.


//copy the file to another site document library

using (SPSite spSite = new SPSite("http://destination site url/"))

{

string destinationUrl = "some destination url/" + spFile.Name;

SPFileCollection spFiles = spSite.AllWebs["site relative url"].GetFolder("Doc Lib Name").Files;

byte[] bFile = spFile.OpenBinary(); //spFile is the source file

spFiles.Add(destinationUrl, bFile, true);

}

Basically open up your destination site, get the file collection object from the source document library, add the binary representation of the file to the file collection object and that's it.

Wednesday, June 25, 2008

The selected file was not found - InfoPath Form Services

I created an internal InfoPath form that was hosted in the InfoPathViewer Web Part and put a file attachment control on it. I kept getting "the selected file was not found" when attaching a document to the form. To solve this I needed to add a Content Editor Web Part with the following code in the source. This encoding is crucial for the ability to attach attachments to InfoPath forms hosted on Forms Server or within the InfoPathViewer Web Part.

script type="text/javascript" aspnetForm.encoding = "multipart/form-data"; /script

Tuesday, June 24, 2008

Create a Save As dialog box in InfoPath

Just pop the following code into your VSTO project for the button click event.

FileDialog oDialog = new SaveFileDialog();
oDialog.DefaultExt = "xml";
oDialog.Filter = "InfoPath Form (*.xml)*.xml";
if(oDialog.ShowDialog() == DialogResult.OK)
{
string sFilename = oDialog.FileName;
this.SaveAs(sFilename);
}

Update SPListItem without changing Modified Date

SPListItem.SystemUpdate Method (Microsoft.SharePoint)


Updates the database with changes that are made to the list item without effecting changes in the modified time or modified by fields.

Office 2003 Web Parts (Components) Security Prompts

By default these two warning prompts will display because of a setting in IE.

This website uses a data provider that may be unsafe. If you trust the website, click OK, otherwise click Cancel.

This website is using your identity to access a data source. If you trust this website, click OK to continue, otherwise click Cancel.

To get rid of these Enable Access data sources across domains, instead of Prompt set it to Enable. And Automatic logon with current user name and password.

InfoPath .NET Programmability

Need to install the programmability feature for InfoPath otherwise you'll receive this error:

InfoPath cannot open the selected form because of an error in the form's code.The required version of the Microsoft .NET Framework is not installed on your computer, or the InfoPath Primary Interop Assembly (PIA) is not registered. Use Add or Remove Programs in Control Panel to make sure that the required version of the Microsoft .NET Framework is installed. Or install it using Windows Update and run the Setup program again to confirm that the corresponding version of the .NET Programmability Support is installed, or contact your system administrator

Continuing SQL Reporting Services Integration with SharePoint (SSRS)

Another issue that I ran into while trying to configure the integration is when trying to add the "SQL Reporting Services" web part I encountered an error along the lines that it wasn't added to the safe controls in the web.config. I looked at the safe control entries and the previous control was registered the version was something like 9.0.262.0 however the new dlls are all 10.0.0.0 so I added the following to the web.config and got rid of the old entries.

safecontrol assembly="Microsoft.ReportingServices.SharePoint.UI.ServerPages, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.ReportingServices.SharePoint.UI" typename="*" safe="True"

safecontrol assembly="Microsoft.ReportingServices.SharePoint.UI.WebParts, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.ReportingServices.SharePoint.UI.WebParts" typename="*" safe="True"

Trying to add the web part to the Report Center again throws another error about a verb not added to the web.config. This time the error message actually tells me what to add. So now I add the following:

add type="Microsoft.ReportingServices.SharePoint.UI.WebParts.WebPartHttpHandler, Microsoft.ReportingServices.SharePoint.UI.WebParts, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" path="Reserved.ReportViewerWebPart.axd" verb="*"

And finally try adding the web part again and finally the web part gets added without errors.

I will say that the integration with SharePoint is a lot easier than it was with SQL Server 2005 Reporting Services but it still has some issues.

An update conflict has occurred, and you must re-try this action

To fix this error do the following:

1. Stop the Timer service. To do this, follow these steps: a. Click Start, point to Administrative Tools, and then click Services.
b. Right-click Windows SharePoint Services Timer, and then click Stop.

2. Delete or move the contents of the following folder:
%ALLUSERSPROFILE% \Application Data\Microsoft\SharePoint\Config\GUID
3. Start the Timer service. To do this, follow these steps: a. Click Start, point to Administrative Tools, and then click Services.
b. Right-click Windows SharePoint Services Timer, and then click Start.



http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1670401&SiteID=1

http://support.microsoft.com/kb/939308

Monday, June 23, 2008

Next West Michigan SharePoint User Group meeting is on September 2, 2008

Next West Michigan SharePoint User Group meeting is on September 2, 2008. One of the speakers will be John, a former colleague of mine at Sagestone and NuSoft Solutions Consulting. Looks like Blue Sphere is a sponsor of the group, wonder what happened to NuSoft, oh wait, their RCMT now. Big company like that should have some dough for a sponsorship.

Invitation email from SPWMUG
"On September 2nd, David Tappan of C/D/H and Clay Osborn of Blue Sphere Solutions will do a deep dive on using data view/data form web parts to surface and present content from multiple sources. They will show how the data view web part is the “swiss army knife” of web parts. The presentation will include tips and tricks on setting up data connections and little known settings in SharePoint Designer, as well as how to do some amazing customizations of both functionality and look and feel using XSLT.

John von Rosen, a Software Consultant for Blue Sphere Solutions, will be giving a presentation on using the Business Data Catalog in SharePoint to provide insight into corporate data in an enterprise dashboard.

The presentation will provide information for business users by demonstrating the potential for access to business data in a dashboard. We will also cover the technical aspects, such as understanding the BDC metadata definition file."

Configuring and Installing SQL Server 2008 Reporting Services SharePoint Add-in

Installing the SQL Server 2008 Reporting Services SharePoint Add-in is as painful as ever. I've downloaded the installation package from Microsoft SQL Server 2008 Reporting Services Add-in for Microsoft SharePoint Technologies and followed the instructions provided on msdn How to: Install or Uninstall the Reporting Services Add-in but still encounter installation errors.

The error in the installation log was

Install error: A web configuration modification operation is already running.
Error details: System.InvalidOperationException: A web configuration modification operation is already running.
at Microsoft.SharePoint.Administration.SPWebService.ApplyWebConfigModifications()

I looked at the SharePoint web.config and it was not write protected and the Everyone group has access to it. I couldn't figure out why it was trying to be modified twice, so after searching on "the google" (nice Bushism) it appears that this occurs when SPFarm.Local.Services.GetValue().ApplyWebConfigModifications(); is called twice during the feature installation.

Well knowing that SharePoint would create a Timer job for this operation I went into Central Admin -> Operations -> TImer Job Definitions during the "Removing backup files" part of the rsSharePoint.msi installation process and sure enough there were two "SharePoint Update Web Configuration" jobs. This is a no no since they will lock trying to modify the web.config. So I deleted both jobs and waited...

This time the rsSharePoint.msi installation did not fail, it took a long time to install because it apparently extracts all the locale cabs until it finds the one for the current SharePoint locale and then during the Removing backup files part it actually has to uninstall all the locale cab packages except the one that is right for the SharePoint installation.

But deleting those two jobs and waiting worked.

Just in case you are waiting for it to "remove backup files" look in the Local Settings/Temp folder of whichever user you are installing the package as and you'll see a folder called MS.WSS.RS and within that folder you'll see another folder named 3082, 2070... so on as you can see below, this is exactly what it does. If you constantly refresh this folder you'll see new ones created and removed consistently and in the installation log you'll actually see that each package is being uninstalled. You'd think they'd be able to tell which locale is installed before extracting and installing all unnecessary files.

Calling HCInstal for lcid '3082'

Calling HCInstal for lcid '2070'

Calling HCInstal for lcid '2052'

Calling HCInstal for lcid '1055'

Calling HCInstal for lcid '1053'

Calling HCInstal for lcid '1049'

Calling HCInstal for lcid '1046'

Calling HCInstal for lcid '1045'

Calling HCInstal for lcid '1044'

Calling HCInstal for lcid '1043'

Calling HCInstal for lcid '1042'

Calling HCInstal for lcid '1041'

Calling HCInstal for lcid '1040'

Calling HCInstal for lcid '1038'

Calling HCInstal for lcid '1036'

Calling HCInstal for lcid '1035'

** You'll notice that my locale of '1033' is missing since it doesn't need to uninstall that one.

Calling HCInstal for lcid '1032'

Calling HCInstal for lcid '1031'

Calling HCInstal for lcid '1030'

Calling HCInstal for lcid '1029'

Calling HCInstal for lcid '1028'

Cab files uninstalled successfully.

One other note, calling the rsCustomActions.exe /i doesn't work, it will give you more verbose logging but it won't install the files it needs. For instance, it will through an error that Microsoft.ReportingServices.SharePoint.UI.ServerPages file is not found. So running that exe is useless.

Friday, June 20, 2008

SharePoint FAST ESP Search Web Parts

At TechEd Developers week, one of the questions asked was when can we expect to see the acquisition of FAST search put into Microsoft products. It was indicated that probably first there will be a seperate set of web parts for SharePoint or a seperate installation for FAST ESP. Today we get a glimpse of the web parts by downloading and playing with them from codeplex.

http://www.codeplex.com/espwebparts

Probably not the next version of SharePoint, unless those guys are really good, but the version after FAST will be built into SharePoint and most likely replace the current SharePoint search engine. I still don't think this acquisition is going to boost the Live Search over Google but it's a start.

I would like to see searching within videos and music. Imagine being able to search speech within youtube videos to find information you are interested in. How would someone go about developing that technology and how would that person pick out keywords from the audio? What defines a keyword? Wish I could work on that type of search.... might be worth the time if someone like MS or Google bought it.

WSS Extensions for Visual Studio 2008 (VSeWSS)

Finally the SharePoint extensions for Visual Studio 2008 have been released. I have been using the tools with VS 2005 ever since they were released and have been waiting to switch my SharePoint development to VS 2008 but this was one of the big items stopping me.

You can download all the goodies here:

http://www.microsoft.com/downloads/details.aspx?FamilyID=7bf65b28-06e2-4e87-9bad-086e32185e68&displaylang=en

Wednesday, June 18, 2008

Programmatically add InfoPath mail attachment (mime types)

In order to send an attachment within a workflow I had to write my own method since the out-of-the-box SendEmail activity doesn't support attachments. While doing this I had to figure out how to attach an InfoPath form to the e-mail. Using the code below I was able to accomplish this task. Not very obvious at first but after diving into what is actually going on it makes perfect sense.

Stream formStream = spItem.File.OpenBinaryStream();
System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType("text/xml");
Attachment attachment = new Attachment(formStream, ct);
attachment.Name = spItem.File.Name;
mailMessage.Attachments.Add(attachment);

Hope this helps someone who is trying to do the same thing. There is an activity out on Codeplex for this but that only applies to SharePoint designer workflows. If I had time and there was a need for it, I would create a VS Workflow activity for this.

SharePoint Integration with Outlook Web Access (OWA)

I recently presented a SharePoint demonstration to a select few managers and one of the items that came up during discussion is that Microsoft says SharePoint integrates with OWA. While this is completely true there are a number of caveats that users should be aware of. And then just today there was a post on the SharePoint newsgroups about how to accomplish this.

There are two ways that I know of that OWA can be set up in terms of authentication either Forms based or NTLM based. I will describe the pitfalls of integrating both authentication methods with SharePoint. Most people will look to put the OWA inbox and calendar on the user's My Sites, which by all means can be done however you may want to reconsider after reading this article.

OWA Forms Based Authentication

If you try to configure the integration with Forms based you'll quickly find that the web part simply displays your OWA logon screen. In order to seemlessly integrate you will need a developer to write a Single Sign-On application (SSO) that automatically passes the user's current credentials onto the OWA logon screen. I've done it before, it's not too hard provided you know SharePoint and are good at SSO applications. But it's not for novice SharePoint developers.

NTLM Based Authentication

If you try to configure the integration with NTML based OWA you'll quickly notice that you can add the web part to the page and then you get prompted for your credentials, after entering your credentials you get passed onto OWA. There is no solution that I know of to seemlessly logon the user to OWA from SharePoint using this authentication method. And since that's the case, why not just host the entire OWA within a Page Viewer Web Part instead of having a web part for each feature of OWA and thus requiring the user to logon multiple times. In fact, instead of just hosting it within an iframe, why not just give the user a link to OWA so the page isn't crunched into an iframe with SharePoint.

Needless to say, seemless integration between OWA and SharePoint is not currently available, possible, but not like it should be.

Tuesday, June 17, 2008

Designing InfoPath forms for performance

Very nice start to what looks like will be a number of articles describing how to design InfoPath web-based forms for high performance. It describes some common issues of poor performing web forms. The next article looks interesting to me about the differences in performance between the rich client based forms vs. the web based ones.

http://blogs.msdn.com/infopath/archive/2008/05/09/designing-browser-enabled-forms-for-performance-in-infopath-forms-services.aspx

Friday, June 13, 2008

Sitecore Item Url

One of the most common items I have to deal with is managing Sitecore items in .NET. I'm often looking for the url of the item so I can link to it on the page, I thought I would share this with the world.

Sitecore.Context.Item.Paths.GetFriendlyUrl();

Or

Item sitecoreItem = Sitecore.Context.Item;
String itemUrl = sitecoreItem.Paths.GetFriendlyUrl();

Very simple to do but not well documented.

Thursday, June 12, 2008

SharePoint Relink InfoPath Forms (Relink Documents)

I'm in a situation where I have hundreds of InfoPath forms stored within a Form Library within SharePoint. I have to update the form template every now and then, recently it has been more now then then, but I was very tired of clicking the little check box next to Relink Form in the Relink Documents view 600+ times.

So I set off to figure out how to do this programmatically for an entire SharePoint library. There is no documentation on how to do this within SharePoint. I even asked the supposed SharePoint experts at TechEd but their answer was way off base. Very disappointing. Today I decided to finally figure this one out.

SharePoint gives us a submitrepair.aspx page that handles doing the relinking, the actual page can be found in the C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS directory. Open that file up and take a look. WOW!!! MS actually did some inline code that will help us out. In fact, the code in that page does it all for us and is the basis for the windows app I wrote to do it. Note that the windows app has to be run from a SharePoint server, so ideally a web part should be written to do this but a windows app works for me so I'm sticking with that, you'll probably want a web part if you want to reuse this solution.

Anyway, my windows app has two text boxes one for the SharePoint site url and one for the list guid and then a button to relink the form. Here are the guts of it, if you'll notice it's very similar to the submitrepair.aspx page. It works and now saves me a good 15 minutes everytime I need to relink the forms to the new template.

private bool RelinkDocuments()
{
try
{
SPSite site = new SPSite(txtSiteUrl.Text.Trim());
SPWeb spWeb = site.OpenWeb();
SPList spList = spWeb.Lists[new Guid(txtListGuid.Text.Trim())];
SPDocumentLibrary doclib = (SPDocumentLibrary)spList;
string solutionUrl = SPHttpUtility.UrlPathEncode(spWeb.Url + "/" + doclib.DocumentTemplateUrl, true);

foreach (SPListItem spItem in doclib.Items) //loop through the list items
{
SPFieldCollection spFields = spItem.Fields;

foreach (SPField spField in spFields) //loop through fields resetting them
{
if (spField.Type != SPFieldType.Computed &&
spField.Type != SPFieldType.Invalid && !spField.ReadOnlyField)
{
try
{
spItem[spField.InternalName] = spItem[spField.InternalName];
}
catch (Exception e)
{
}
}
}

SPContentType spContentType = spList.ContentTypes[(SPContentTypeId)spItem["ContentTypeId"]];
if (spContentType != null) //try to update the item with the content type's template url which is the updated one
{
if (spContentType.DocumentTemplate.StartsWith("http://") ||
spContentType.DocumentTemplate.StartsWith("https://"))
{
spItem["TemplateUrl"] = SPHttpUtility.UrlPathEncode(spContentType.DocumentTemplate, true);
}
else if (spContentType.DocumentTemplate.StartsWith("/"))
{
spItem["TemplateUrl"] = SPHttpUtility.UrlPathEncode(spWeb.Site.MakeFullUrl(spContentType.DocumentTemplate), true);
}
else
{
spItem["TemplateUrl"] = SPHttpUtility.UrlPathEncode(spWeb.Url + '/' + spList.RootFolder + '/' + spContentType.DocumentTemplate, true);
}
}
else //no content type found so default template url to solution Url
{
spItem["TemplateUrl"] = solutionUrl;
}
spItem.Update();

}

return true;
}
catch (Exception ex)
{
return false;
}
}

Url Encode/Decode Page SharePoint List Guid

I've been using this web page for awhile now to quickly decode SharePoint list Guids but it can be used for other operations as well.

http://www.albionresearch.com/misc/urlencode.php

Spell Check Word Template Form Fields Protected Document

This page gives you all the code you need to create the macro. http://word.mvps.org/FAQs/MacrosVBA/SpellcheckProtectDoc.htm

And then since when a document is protected you can't get to the Macros because the protected document disables it, so you need to add a menu button to run it.

That's when this article comes in handy about how to add a menu or toolbar button that runs a Macro. http://www.officearticles.com/misc/methods_to_run_a_macro_in_microsoft_office_applications.htm

Wednesday, June 11, 2008

How to define Sitecore Client Authoring Role

This may also explain why the Home tab and Publish tab no longer show up for your Sitecore editors. Switch to the core database and grant your group access to the following items.

/sitecore/system/Ribbons/Chunks/Clipboard/Paste
/sitecore/system/Ribbons/Chunks/Clipboard/Cut
/sitecore/system/Ribbons/Chunks/Clipboard/Copy
/sitecore/system/Ribbons/Chunks/New/New
/sitecore/system/Ribbons/Chunks/Operations/Duplicate
/sitecore/system/Ribbons/Chunks/Operations/Copy To
/sitecore/system/Ribbons/Chunks/Operations/Move To
/sitecore/system/Ribbons/Chunks/Operations/Delete
/sitecore/system/Ribbons/Chunks/Publish/WebEdit
/sitecore/system/Ribbons/Chunks/Publish/Edit Preview
/sitecore/system/Ribbons/Chunks/Publish/Publishing Viewer
/sitecore/system/Ribbons/Chunks/Publish Restrictions/Lifetime
/sitecore/system/Ribbons/Chunks/Publish Restrictions/Change
/sitecore/system/Ribbons/Chunks/Rename/Rename
/sitecore/system/Ribbons/Chunks/Rename/Display Name
/sitecore/system/Ribbons/Chunks/Schedule/Reminder
/sitecore/system/Ribbons/Chunks/Schedule/Archive
/sitecore/system/Ribbons/Chunks/Sorting/Move Up
/sitecore/system/Ribbons/Chunks/Sorting/Move Down
/sitecore/system/Ribbons/Chunks/Sorting/Move First
/sitecore/system/Ribbons/Chunks/Sorting/Move Last
/sitecore/system/Ribbons/Chunks/Validate/Spellcheck
/sitecore/system/Ribbons/Chunks/Validate/Validate
/sitecore/system/Ribbons/Chunks/Versions/Add
/sitecore/system/Ribbons/Chunks/Versions/Compare
/sitecore/system/Ribbons/Chunks/Versions/Remove
/sitecore/system/Ribbons/Chunks/Workflow/WorkflowPanel
/sitecore/system/Ribbons/Chunks/Workflow Edit/Edit
/sitecore/system/Ribbons/Chunks/Write/Save

Tuesday, June 10, 2008

Change the start date of a SharePoint calendar

Edit the work week by going into the Regional Settings of the top level site and set the start day to whatever day of the week you want it to start on.

SharePoint Excel Services with Analysis Server

Very nice article describing how to get Excel Services working when connected to an Analysis Server database.

http://www.sharepointblogs.com/tonstegeman/archive/2007/03/11/using-analysis-services-data-in-excel-services-part-1-preparing-the-ad-for-kerberos.aspx

My only question is how does changing SharePoint to use Kerberos instead of NTLM affect things for users and the environment. I'm not a system admin so I'll leave it up to mine to tell me.

Monday, June 9, 2008

Iframes within Sitecore - $$iframe

Since the Sitecore Content Editor can't handle the iframe tag for some reason it needs to be replaced with $$iframe and iframe$$ for the start and end html tags.

The web.config needs to have the iframe items added to do this. See below.


replacers
replacer id="publish" singleinstance="true" type="Sitecore.Text.Replacer, Sitecore.Kernel" mode="on"
param desc="name"$(id)/param
replacements hint="raw:AddReplacement"
simple ignorecase="true" replacewith="" find="/Home"
simple ignorecase="true" replacewith="/sitecore/content/home/news" find="/sitecore/content/news"
simple ignorecase="false" replacewith="<iframe" find="$$iframe" forpublish="true"/simple
simple ignorecase="false" replacewith="></iframe>" find="iframe$$" forpublish="true"/simple
/replacements>
/replacer>
/replacers>

Enabling Edit chunk in Content Editor

You may not see the Edit chunk/button while being logged in as a newly created user.

Complete these steps to make it visible:

1. Switch to the core database;

2. Open the Security Editor;

3. Locate this item /sitecore/system/ribbons/chunks/workflow edit/edit;

4. Toggle the inherit checkbox as shown below

Hide "click here to enable instant search" in Outlook

You can turn off the message in Outlook by doing the following:


In Outlook go to Tools->Options->Other->Advanced

Once there remove the check next to the option: S"how prompts to install WDS"

BCM (Business Contact Manager) Local Database Location

If you are using Outlook Business Contact Manager and wonder where the local database is stored on your machine look no further than here in Windows XP:

C:\Documents and Settings\{username}\Local Settings\Application Data\Microsoft\Business Contact Manager

Should be a .ldf and an .mdf file for the database that looks similar to this:

{DatabaseName}OutlookDefaultProfile_offline

Change the default tab order for controls within InfoPath

When filling out a form, many people use a keyboard, instead of a mouse, to move from field to field. Therefore, it's important that controls in your form have a logical tab order (tab order: The order in which the focus moves in a form from one field or object to the next as you press TAB or SHIFT+TAB.).


By default, the tab order in a Microsoft Office InfoPath 2003 form is left to right, top to bottom, just like it is on a Web page. If you need to change the default tab order for your form, use the following procedure. For example, you can specify a custom tab order for a repeating table (repeating table: A control on a form that contains other controls in a table format and that repeats as needed. Users can insert multiple rows when filling out the form.), so that users can navigate column by column rather than row by row.


  1. In design mode, right-click the control for which you want to change the tab order, and then click Control Properties on the shortcut menu.

  2. In the Control Properties dialog box, click the Advanced tab.

  3. In the Tab index box, specify something other than 0. For example, to specify that users navigate to this control the first time that they press the TAB key, enter 1 in the Tab index box.

  4. To change the tab order for additional controls, repeat steps 1 through 3.


Notes:
The default tab index setting for all controls in a form is 0, but the tab order starts with 1. That is, any control with 1 in the Tab index box will be visited first when users press the TAB key. Any control with 2 in the Tab index box will be visited second, and so on. Any controls with 0 in the Tab index box will come last in the tab order. If you want to skip controls in the tab order, enter -1 in the Tab index box.


Changing the tab index setting doesn't change the order in which you tab through controls in design mode. To test the tab order in your form, click Preview Form on the Standard toolbar, and then use the TAB key to move through the form.


from http://office.microsoft.com/en-us/infopath/HP010984681033.aspx

Sitecore Authoring Client Role

Upgrading to Sitecore v5.3.1 Build 071114, I encountered an issue where the directory groups from active directory using the ldap module did not see the Home or Publish tabs and could not see operations within those tabs. After searching the forums I finally came upon something useful, I had to manually reset the permissions for the directory group. Here are the settings that should be enabled to mimic the default Sitecore Authoring Client Role within the Security Editor in the Core database.

It sure would be nice if we could add a role to another role, sounds kind of like a SharePoint thing.

/sitecore/system/Ribbons/Chunks/Clipboard/Paste
/sitecore/system/Ribbons/Chunks/Clipboard/Cut
/sitecore/system/Ribbons/Chunks/Clipboard/Copy
/sitecore/system/Ribbons/Chunks/New/New
/sitecore/system/Ribbons/Chunks/Operations/Duplicate
/sitecore/system/Ribbons/Chunks/Operations/Copy To
/sitecore/system/Ribbons/Chunks/Operations/Move To
/sitecore/system/Ribbons/Chunks/Operations/Delete
/sitecore/system/Ribbons/Chunks/Publish/WebEdit
/sitecore/system/Ribbons/Chunks/Publish/Edit Preview
/sitecore/system/Ribbons/Chunks/Publish/Publishing Viewer
/sitecore/system/Ribbons/Chunks/Publish Restrictions/Lifetime
/sitecore/system/Ribbons/Chunks/Publish Restrictions/Change
/sitecore/system/Ribbons/Chunks/Rename/Rename
/sitecore/system/Ribbons/Chunks/Rename/Display Name /sitecore/system/Ribbons/Chunks/Schedule/Reminder
/sitecore/system/Ribbons/Chunks/Schedule/Archive
/sitecore/system/Ribbons/Chunks/Sorting/Move Up /sitecore/system/Ribbons/Chunks/Sorting/Move Down /sitecore/system/Ribbons/Chunks/Sorting/Move First /sitecore/system/Ribbons/Chunks/Sorting/Move Last /sitecore/system/Ribbons/Chunks/Validate/Spellcheck
/sitecore/system/Ribbons/Chunks/Validate/Validate
/sitecore/system/Ribbons/Chunks/Versions/Add
/sitecore/system/Ribbons/Chunks/Versions/Compare
/sitecore/system/Ribbons/Chunks/Versions/Remove
/sitecore/system/Ribbons/Chunks/Workflow/WorkflowPanel
/sitecore/system/Ribbons/Chunks/Workflow Edit/Edit /sitecore/system/Ribbons/Chunks/Write/Save

Unknown server tag 'asp:ScriptManager'


Make sure you have this in the web.config of course within the proper tags < >

pages

controls

add tagprefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

controls

pages

Sunday, June 8, 2008

West Michigan SharePoint User Group

There seem to be plenty of businesses around Grand Rapids that are using SharePoint, enough that someone decided to start up a user group based on the SharePoint technologies. The group seems to be focused more on how can it help your company from a business perspective more than getting into the guts of the development side of things.

The group just started a few months ago but already seems to have lots of attendees. Seems that any user group is hard to set up at first but this one has been much needed for awhile in the GR area. It appears though that all the summer meetings have been cancelled.

I will give the group credit for using SharePoint to host their site http://www.wmspug.org/ it's always good to see a group eating their own dog food.