Aug
30
Some of you have been asking why it has taken so long to post my slides from SharePoint Saturday Columbus. Well, I have no excuse other than being a ninny. Link below:
SharePoint Saturday Columbus - The Great InfoPath Voyage
I will be adding to this post within the next day or so, with a link out to the code for the presentation as well.
Thanks for coming to my session, and thanks for the Twitter follows @mack247.
Also, thanks to SharePointSupport.com for footing the bill for me to come to speak to everyone. Please check out our SharePoint Support and Administration services at www.sharepointsupport.com. Thanks!
About this Post
Permalink | Trackback |
|
Print This Article | Leave a Comment
Aug
12
Speaking at SharePoint Saturday Columbus
Filed Under SharePoint
I will be speaking at SharePoint Saturday Columbus this Saturday, August 14. It will be one of the more interesting sessions I have given at any of my SharePoint speaking engagements.
I am going to be building out a comprehensive solution based on InfoPath 2010 and SharePoint 2010. We are going to have all the tools open at some point – Central Admin, InfoPath Designer, SharePoint Designer, Visual Studio, you name it.
Here is the official abstract for the session:
The Fantastic InfoPath Voyage
Join SharePoint Saturday veteran Joe Mack as he takes you through an end-to-end solution using Microsoft InfoPath and SharePoint 2010. After a brief introduction to some of the key new features in InfoPath 2010, we will: design and deploy a form template for use in the browser through Forms Services; develop a custom WCF service, host it within SharePoint 2010 and wire it up to our InfoPath template; create an on-form State Machine and link it to SharePoint metadata; automate the archival of completed forms to a SharePoint Records Center using SharePoint Designer workflow; and use the very cool ECMAScript Client Object Model to open the forms in a Modal Dialog.
So, if you are already signed up, I look forward to seeing you in Columbus. If not, then you will be able to get the slides and code here shortly after this Saturday. Depending on the technology present in Columbus, there might even be a video of my session available somewhere.
Stay tuned to this space for updates.
About this Post
Permalink | Trackback |
|
Print This Article | Leave a Comment
Jun
20
June Microsoft Patch May Break SharePoint
Filed Under SharePoint
While I would love to just be lazy and link out to someone else's article on this matter, no one has been able to get the product name right yet - everyone keeps referencing the nonsensical Windows SharePoint Server 3.0 - so I will just provide the short and shorter of it right here without giving anyone else the credit. Perhaps they should have just stuck with the WSS 3.0 acronym.
At any rate, there is a patch, Microsoft Security Bulletin MS10-130 (KB983444), that shipped as part of the June "Patch Tuesday" last week. The patch is supposed to fix a security hole whereby a user could elevate his or her privileges on WSS 3.0 all by themselves.
Great idea on paper right? Regular users making themselves site collection admins sounds like a bad thing, and fixing it must be good. Well, several users have been posting to the SharePoint Forums that, after applying the patch, they are seeing an "Unable to connect to configuration database" error, apparently even on Central Admin. There have been reports that running the SharePoint Configuration Wizard has fixed the issue in some cases, but not all of them.
It's kind of funny that I heard the Hippocratic Oath-y phrase "do no harm" put forth by a SharePoint MVP just this week as the mantra of the SharePoint Product Team when working on the WSS 3.0 / MOSS 2007 to SPF 2010 / SPS 2010 upgrade process. Also adding to my personal giggles over this is the fact that I shared a Twitter thread with some friends this week about some great free products in the open source community and personally remarked that sometimes you really don't get what you pay for.
While no "Patch Tuesday" being called "Black Tuesday" scenario is good for Microsoft, it just seems funny to me after seeing those Tweets. You can just picture someone at Microsoft saying -- at least the free stuff is messed up. Could you imagine if we messed up MOSS installations? Now THAT would be bad.
As exepcted, Microsoft is sort of not really acknowledging the issue yet, but probably scrambling behind the scenes to get a fix. Given their recent track record of being highly successful at delivering good patches and quickly fixing those that aren't good, I would expect this issue to be resoved in short order.
The lesson, as always, is this: anything you do that takes control of YOUR environment out of YOUR hands, to include the myopic Download and Install Updates Automatically should have "caveat emptor" written all over it beforehand and "I told you so" afterwards.
About this Post
Permalink | Trackback |
|
Print This Article | Leave a Comment
May
16
Wordpress Update Will Mess You Up
Filed Under General
Depending on your hosting provider, you may or not end up with portions of your Wordpress blog (main site, admin site, plugins, etc.) that are completely hosed. Yes, that is a technical term.
Like I said - it all depends on your hosting provider. My blogs use 1and1, and I experienced this issue with my admin pages (<blog url>/wp-admin/) only. After about 30 minutes of spinning wheels, I discovered that there was an issue where the new Wordpress admin pages were using PHP5 and the server was not set up to use PHP5.
All I had to do was add the following lines to my .htaccess file, located in the root of my blog's file system, and everything started working like a charm.
Options All -Indexes
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
About this Post
Permalink | Trackback |
|
Print This Article | Leave a Comment
May
6
Using the SharePoint 2010 Dialog Platform with Forms Services
Filed Under Development, Knowledge Management, SharePoint
First things first, thanks to Jomit for his Dialog Platform post, which served as the basis for my work herein.
So, I recently had occasion to open up a browser-based Forms Services form from outside of the site collection where the template and the "Save Location" both reside…you know, kind of like one of those completely unplanned "Real World Scenarios" that we are always hearing about.
Anyway, anyone that has opened up a Forms Services form in the browser has noticed the extremely long URL that is necessary. For the uninitiated, here is a very quick synopsis of the various portions of the URL.
-
Base URL. Forms Services forms are processed by an ASP.NET page located in the layouts folder. This is the base URL and it looks like this:
- http://<<URL to your site>>/_layouts/FormServer.aspx
-
Query String. There are various query string parameters that you may or may not have, depending on your situation.
-
XsnLocation. This is the location of your Form Template, and it looks something like what appears below. If you click on the "New" button in a document library configured to use the form, this parameter is NOT encoded, although the others are…it's probably a good idea for you to encode all of them if you are building your own long-ass URL from scratch. For the sanity of anyone reading, I am not going to show encoded stuff here. If you would like a quick and easy way to encode/decode stuff, here is a good one.
- XsnLocation=http://<<site>>/Form Templates/Template Name.xsn
-
Save Location. This is usually optional, as the form will just submit to the Document Library specified in the form template if this parameter is not there. Here is what it normally looks like:
- SaveLocation=http://<<site>>/Documents
-
Source. This is the page you want to bring up after the user is done with the form…and is the source of the challenge I had that started this whole darn thing. Basically, if you try to pass a Source parameter that is from a different site collection, Forms Services will treat you like a pigeon treats a statue. Here is what this parameter looks like:
- Source=http://<<site>>/Pages/Success.aspx
-
DefaultItemOpen. This parameter is used to force the form to open in a browser. If it is set to something other than '1' or not present, the form will try to open in InfoPath. Here is what the "open in browser" option looks like:
- DefaultItemOpen=1
-
-
The Whole Damn Thing. So, if you put all that stuff together, it looks something like this:
- http://docs.company.com/sites/active/_layouts/FormServer.aspx?XsnLocation=http://docs.company.com/sites/active/Form Templates/Template Name.xsn&SaveLocation=http://docs.company.com/sites/active/Documents&Source=http://docs.company.com/sites/active/Documents/Forms/AllItems.aspx&DefaultItemOpen=1
So, I am not sure if you caught on to the main issue reading through all that junk, but here it is in a nutshell. If you try to pass in a "Source" parameter that is from a different site collection than the one where the template is located, Forms Services will barf. That kind of puts on damper on my "Real World" scenario of having the users access a centralized landing page / application, while exhibiting a higher level of control over the document processing center where the forms are going to be filled out.
I know what some of you might be thinking – just use a new window/tab. The problem with that is that not everyone likes popups, plus, sometimes you end up with a useless popup sitting there just displaying "The form has been closed" in the middle of the screen. Besides, popups are just so Web 1.0. Modal windows, that's wave of the future, man!
For those of you that have seen SharePoint 2010 in action, you know Microsoft has gotten behind the whole modal window thing as well. In fact, if you have access to a SharePoint 2010 box, go ahead and type in the URL to the Upload form of one of your document libraries (http://<<site>>/Documents/Forms/Upload.aspx). SharePoint will get the standard Upload page from the _layouts folder, and it pretty much looks like a normal SharePoint page, right? Now, add in a query string parameter so it looks like this (http://<<site>>/Documents/Forms/Upload.aspx?IsDlg=1). See that? That form is damn sure ready for a modal dialog, huh? In fact, it is the standard way that Microsoft allows users to upload documents to a library, by putting the Upload form in a modal window and using the IsDlg parameter to keep all the extraneous stuff from showing up.
Well, that's not the only place where Microsoft has bought into this whole modal window thing. As it turns out, there is a JavaScript method set up for this that comes along with the ECMAScript Class Library that you can use from just about any SharePoint page. Check out Jomit's post that I referenced above for a little more detail and the links to learn more about the method and the ECMA library.
Since the FormsServer.aspx page doesn't even recognize the IsDlg parameter, I didn't even need it. So, armed with everyone's favorite way to hack a SharePoint page (the Content Editor Web Part), I set out to get my InfoPath form to open up in a modal window. Here is the code that got it to work:
<script type="text/javascript">
//Handle the DialogCallback callback
function DialogCallback(dialogResult, returnValue)
{
}
//Open the Dialog
function OpenModalDialog(dlgURL)
{
var options = {
url: dlgURL,
width: 700,
height: 700,
dialogReturnValueCallback: DialogCallback
};
SP.UI.ModalDialog.showModalDialog(options);
}
</script>
//Link to InfoPath Form
<a href="javascript:OpenModalDialog('http://docs.company.com/sites/active/_layouts/FormServer.aspx?XsnLocation=http://docs.company.com/sites/active/Form%20Templates/Form%20Template.xsn&SaveLocation=http%3A%2F%2Fdocs%2Ecompany%2Ecom%2Fsites%2Factive%2FDocuments&DefaultItemOpen=1');" onmouseover="javascript:window.status='';return true;" onmousedown="javascript:window.status='';return true;">Coolest Form Ever</a>
So, you see that I have gotten rid of the "Source" parameter in the Query String, as that still breaks the form if you send it something that is in a different site collection than the template, but the UX is about 100 times better than having a popup or (even worse) sending them to a page that is on a different site collection than where they started.
I still need to move this out of the CEWP before it is ready for prime time, but just think about the implications here. This is a bona fide slam dunk and a huge win for Microsoft by allowing us to quickly deliver solutions that are in line with what others are doing in the industry.
About this Post
Permalink | Trackback |
|
Print This Article | Leave a Comment
Dec
15
Not too much time to blog today, but several folks have been asking about the slide deck from my metadata talk at SharePoint Saturday in Kansas City.
Please download the slides from the link below.
Metadata Briefing Slide Deck – SPSKC
I should have some time coming up in the next week or two to start blogging a little more frequently.
I’ll also throw a teaser out there and let you know that I am working on a cool SharePoint content aggregator site that should be live by the end of the year. Nothing fancy, just a single place to go to get a lot of SharePoint information that is currently somewhat scattered throughout the blogosphere. Hopefully, I have not said too much - I know there are lots of people out there with more brains and free time than myself. I would hate for someone to steal and implement my idea, since I would not do well in prison. <grin />
About this Post
Permalink | Trackback |
|
Print This Article | 1 Comment
Sep
29
I have had multiple clients over the past couple of years task me with getting external RSS feeds on their WSS sites. While MOSS comes with an RSS Feed web part, and while there are other RSS Feed web parts out there for free or a nominal fee, I though I would make a post about the two most common ways I have implemented RSS Feeds onto a WSS page or site.
Method 1 – The XML Web Part
1. Navigate to the page where you would like to show an RSS Feed.
2. Click on Site Actions, then Edit Page.
3. Click the Add a Web Part link in the zone where you would like to add the RSS Feed.
4. Under All Web Parts | Miscellaneous, select the XML Web Part and then click the Add button.
5. Click the open the tool pane link in the web part.
6. Enter the RSS Feed URL in the XML Link field.
7. Click the XSL Editor button.
8. Add the following code:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="xsl"> <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/> <xsl:template match="/"> <div> <xsl:apply-templates select="rss/channel"/> </div> </xsl:template> <xsl:template match="rss/channel"> <xsl:variable name="link" select="link"/> <xsl:variable name="description" select="description"/> <ul><xsl:apply-templates select="item"/></ul> </xsl:template> <xsl:template match="item"> <xsl:variable name="item_link" select="link"/> <xsl:variable name="item_title" select="description"/> <li> <a href="{$item_link}" title="{$item_title}"><xsl:value-of select="title"/></a> </li> </xsl:template> </xsl:stylesheet>
9. Expand the Appearance node and enter your desired web part title in the Title field.
10. Click the OK button.
11. You are done. The RSS Feed should not be displayed on the page as a series of bulleted items.
Method 2 – Using the Data Source Library and DataForm Web Part in SharePoint Designer
1. In SharePoint Designer, open the page where you would like to add the RSS Feed.
2. Click on the name of the web part zone where you would like to add the RSS Feed.
3. In the Data Source Library dialog, expand the Server-side Scripts node and click on Connect to a script or RSS feed…
4. On the General tab, enter a Name and/or Description.
5. On the Source tab, enter the RSS Feed’s URL in the Enter the URL to a server-side script field.
6. If authentication is required for your RSS Feed, enter the authentication information on the Login tab.
7. Hover over your newly-formed Data Source, click the down arrow to enable the hover menu, and select Show Data.
8. Browse down to the Item node and select the title field. Hold down the Ctrl key and then select the description field.
9. Click on the Insert Selected Fields As button and then click Multiple Item View.
10. You are done. The RSS Feed should now be displayed on the page.
NOTES:
You can click the small arrow in the top right of the newly-created DataFormWebPart and then select Change layout to choose different display options for the web part. I normally use the second one on the list, as that is a slightly cleaner display.
You can also make it a little more practical by enabling the title to link to the original post on the site that generated the RSS Feed. Do this by hovering over the title of the first RSS Feed entry and clicking the small arrow and then selecting Hyperlink in the Format as field. In the Hyperlink dialog, make sure that the Text to display field says {title} and the Address field says {link}.
The last tweak is to get rid of the “description:” text – remove it with your keyboard for the first RSS Feed entry and it will be removed for all entries.
I hope this is a little useful to some of you. Thanks.

