Welcome to Office Zealot Sign in | Join | Help

Programmatically Create an InfoPath form with ASP.NET

I worked on a project a while back where I needed to develop a .NET based web application that collected data and submitted the results as an InfoPath form in a SharePoint form library.  It had some very cool features (like binding dropdowns to SharePoint lists and hiding/showing administration fields based on SharePoint security... this allowed all adminstration to be done with the SharePoint UI).  The coding was loosely based on this posting (http://www.bizsupportonline.net/infopath2007/programmatically-create-infopath-form-console-app.htm) which I found to be a solid framework.

 

Anyway, getting things to sync nicely was a bit of a pain (from InfoPath version number matching to data formatting for dates) but, in the end, all worked well.  Except… We were seeing issues with posting an InfoPath form when the associated XML exceeded a certain number of characters.  When things worked, the form posted and worked cleanly with the InfoPath client.  When we appeared to exceed our character limit, the data posted to the form library but as an XML document (different file icon) and could not be read by InfoPath.  Looking at the XML itself with WordPad showed the addition of a special character at the end of the file.  After a couple of hours of head scratching (OK, maybe it was a couple of days) I solved it. 

 

Using the code example in the link above, I changed:

 

infoPathFormData = ms.GetBuffer();

 

to

 

infoPathFormData = ms.ToArray();

 

 

All done!  Now we have the equivalent of a poor man’s InfoPath form server.  As my wife often reminds me, I am still a programmer at the core…

 

Posted by Mauro | 1 Comments
Filed under: , ,

SPTech Conference Recap

  I spent a few days this week at the SPTech Conference in Boston, doing a session on requirements gathering for SharePoint and working the Nintex booth with Mike Fitzmaurice.  First, some observations…

 

·         Solid attendee base.  Given the economy, I wasn’t sure how attendance would look but there were lots of eager SharePoint’ers from all over the country.

·         There are still lots of people brand new to SharePoint.  Very cool!  I especially like their commitment to “going slow and getting it right”.

·         SharePoint 2010 is (already) hot.  The demand for crumbs of information is amazing… and I am certain that users will not be disappointed when they see it in action.

·         There is no glory in working a conference booth; props to those who do it regularly.  My back still hurts from all that standing! But, I love the spontaneous dialog with strangers.

·         Nintex workflow is way cool.  I don’t do product reviews or shameless plugs but after spending two days with it I can’t live without…

·         Mike Fitzmaurice is a technology guy who gets business value.  It was a pleasure hanging out with him.

 

As for the session, my big thing was focusing on… wait for it… planning.  I actually had one attendee, a business analyst, tell me after the session that she discovered one of her co-workers, IT person, was at the conference when he asked a question from the back of the room.  Let’s work together folks and make this a success for all…

 

I posted my deck for SPTech Conf attendees but I can share it with anyone interested.  Just shoot me an email.  Below is my summary of what I think a requirements document looks like…

 

 

What it is…

What it isn’t…

Clearly defined business process(es) definition; exceptions noted

Placeholder document until “we figure things out”

Clearly defined security model definition; risks noted

Loosely structured with lots of open questions

Definition statements for membership, purpose, vision, ownership (accountability)

Different from all other SharePoint requirements documents

Validation that intent maps well to native SharePoint; exceptions (and resolutions) noted

Written by the owners of the new solution

Actionable and always true

Done after the solution is delivered

Read and approved by business and executive sponsors

All words

 

 

Dealing with a SharePoint Security Breach

This week a friend of mine told me about a SharePoint related “incident” at his company where it was discovered that someone had posted a spreadsheet that contained sensitive employee data.  The file was not properly secured (discovered via a keyword search) and quickly was removed; no damage was done.  Nonetheless, it got me thinking about the appropriate steps to take during such a scenario… and, if you know me, that means having a plan.  

Mine has two categories (below):

Reactive

·         (Easy) Delete the file… all the way through the Recycle Bin(s)

·         (Easy) Determine if the security associated with the file/list/site had been recently altered to allow for file access.  If yes, fix it.

·         (Moderate) Ensure that the file no longer shows up in search results by rebuilding the index(es).

·         (Moderate) Determine the timing of the upload and whether the file is contained in any saved backup files.  Do not allow these backups to be used by developers or any staging refreshes.

·         (Hard) If appropriate, leverage audit data to determine who may have seen/downloaded the document.

Proactive

·         (Hard) Be humble.  Let folks know what happened, how you dealt with it and what steps are being taken to minimize something like this happening again.  This is not a SharePoint problem (liken it to sending an email attachment to the wrong people or putting a file in the wrong network folder).

·         (Moderate) Consider revisiting end user training to discuss the accountability associated with content ownership.

·         (Moderate) Investigate whether 3rd party compliance or reporting tools are necessary to monitor content and security changes.

·         (Easy) Talk to the content owner, discuss what happened and leave him/her alone.  Lesson learned.

·         (Easy) Subscribe to various sensitive keyword searches (e.g. ‘confidential’, ‘salary’, ‘payroll’, ‘layoff’, etc.) as a means (but not the only means!) of proactive monitoring.

·         (Easy/Hard) Don’t panic.  Don’t shut off My Sites.  Don’t kill the wiki or blogs launch.  Stay the course.

 

Posted by Mauro | 1 Comments

Thought For the Day…

I love learning.  Because my job requires me to be people facing, I am constantly challenging myself to be a better story teller (which I find to be the most impactful way of teaching).  To that end, I look for short stories or (even better) pictures that drive home a key component of my business philosophy.  So…

 

I came across a great blog post (found through a LinkedIn group on Business Intelligence).  It was written by Peter Thomas and is called “Data – Information – Knowledge – Wisdom”.  I follow Peter’s blog and we share the same philosophy associated with making people accountable in any system building.  In this post, he references an article written by Gene Bellinger, Durval Castro and Anthony Mills.  The key takeaway is the image used (see below).  Great story!  Think about it in the context of SharePoint.  Yes, it can ultimately become your corporate  knowledge center BUT there is a (transitional) human element that must occur in order to make it truly useful.  Just because you post all your documents into SharePoint doesn’t mean anyone else is any smarter for it.  You must cultivate the information you collect, structured and unstructured, in order to derive true value from what’s stored in the database.  That’s a big (and highly personalized) problem… but one well worth the effort.

 

 

 

 

Posted by Mauro | 0 Comments
Filed under: ,

Who Do You Know Who Knows…

I did a presentation on Social Computing at an event yesterday sponsored by Microsoft and NewsGator.  Great turnout and excellent questions from an engaged audience.  One of the more interesting topics was the Social Network Graph (see below) presented as part of the NewsGator Social Sites.  There is an obvious ‘wow’ factor with a compelling image like this.  The challenge is around getting past it and understanding the true business value.  There were a few folks in the audience interested in the algorithm behind the mapping.  Me?  I’m OK with the mystery behind it.  I’m more excited about the problem it helps solve…

 

One of the use cases that I often reference in an introductory SharePoint session is the value of SharePoint as a knowledge repository and the minimization of the classic email sent to all employees asking “does anyone know…?”.  I use it for dramatic effect because I realize that it rarely occurs.  More often, someone is clever enough to focus in on the right team and sends an email (I have received many!) to a manager that asks “who on your team knows…?”.  Same impact; just more focused.  What’s the difference?  In the first scenario, knowledge sharing is everyone’s problem.  In the second, the responsibility falls on the manager to ensure proper knowledge capture is occurring at the team level.  Specifically, I do know exactly who on my team is best suited to answer a question about search or branding or web part deployment… and I also know that this information is not well captured in our portal to show it.  I am in the way of social computing success!  I need to do a better job of getting my team to catalog the expertise each carries (by publishing and tagging content, structured and unstructured) and I can monitor that through something like the Social Network Graph.

 

One of the great ways to break down a big problem like social computing success is to carve it up into lots of small wins and set accountability at a person or team level.  I can’t change the way the organization shares but I can change the way my team does.  In my book we use the term ‘delivering high impact collaboration’.  To me, that has never been about the system replacing the people but rather the system facilitating “good” dialog among the “right” people.

 

Happy sharing!

 

 

Posted by Mauro | 0 Comments
More Posts Next page »