Tuesday, May 18, 2010

CTT+ Passed

I'm so excited - I finally passed the performance-based portion of the CTT exam. For those who haven't dealt with this process I'll summarize: You take a written exam which is very, very special and often difficult because the scenarios presented aren't always clearly tied to the answers. The performance-based portion is where you tape a 20-minute training session and send it in for review. Sounds simple, right? Well, you have to make sure you are reaching every major and sub areas to be judged on in your video (all 12 of them)...not easy to do in 20 minutes.

On top of that, the process for submitting your video can be hectic because you either need to submit electronically (in the exact format specified - only available to be encoded if you have Adobe Media Encoder which is part of Adobe Flash CS4 - and in a small size limit for transer) or in DVD format to a smaller company that accepts and processes the videos. If your video isn't in the proper format, it's an extra charge. If your video is way too big, possibly another extra charge. If your video is somehow invalidated - no refund. If you use aliases or pseudonyms in your video - prepare for a world of hurt. All in all, it's a tough certification and you'll be soooo happy when it's over with that you will want to tell everyone.

Thursday, May 13, 2010

InfoPath Form Layout - Proper Design

So,
You've decided to create an infopath form but don't want to do the whole "let's make this and see how it works and then figure out the 'right' way to do it" approach. One simple tip that will really help in laying out your form for both presentation sake and for data source/structure's sake: EVERY label AND control should have their OWN cells inside a table which is inside a section which is inside another table.

This may sound strange, but let's break it down further. You have a simple form with 4 fields (First Name, Last Name, Favorite Food, and Favorite Color). You should firstly think of how the information should be grouped (name info and favorites info) and use that to think of how many sections you will need. For this we would need two sections. Once you have your number of sections, add 2, and that's how many rows you need for a simple form (one of those rows is the title row and the other will be for the submit button). To create this layout, I used a Table with Title layout table, split the second cell into 3 rows, removed the shading on the second row and all borders on those bottom rows, gave it a title, put two sections in their respective rows, and put a button down at the bottom. From there, you place a Custom Table inside the sections to allow you to put controls and their labels into the section in an organized fashion. Having done that, name all the controls and sections by double-clicking them and changing the Field or Group Name. Here's what the results looked like in both the table and then the data source menu:





This particular way of doing things will keep all of your data sources in named folders and makes it easy for those coming later to identify where a data source should exist on the basic page. All corresponding data is automatically grouped together for easier retrieval, if necessary, from them pesky programmers. Have fun!

Wednesday, May 12, 2010

So I've been gone a while

Well,
It's been a while but I'm starting to come back around to updating with some new posts, so here's some of my recent stuff:

1. Our SharePoint setup was such that everything was in a single content database and single site collection. This has proven troublesome, especially in MOSS 2007, so the system admins are going to split some subsites into their own site collections and group them into multiple content dbs. We're hoping to be able to point out where some of our current performance flaws exist in doing this but also to prepare for a migration to SharePoint 2010.

2. Working on the CTT+ certification...fun times there...pro tip: don't have people use funny first names in your video - creates a world of havoc in submission and processing.

3. Created a vehicle registration form for the university to register (2) vehicles in an infopath form, submit each vehicle as a separate form to sharepoint, and then process those via Access on the backend. This is a pretty simple but cool setup and didn't involve any major work EXCEPT: infopath decided, upon one of the publishing processes, to add a 'comment' tag in 3 different places...there wasn't a comment opening tag or any actual comment, just that closing tag. I also got an error for "unexpected CSS formatting" or "potentially unsafe HTML found in your form". To fix the comment issue, you have to do the scaries thing ever: Save your infopath form "as source files" and then open the particular view.xsl in notepad++ and look at the CODE...scary...and then do a simple find for the word 'comment' and see what you find. I just deleted the tags since they weren't connected to anything and that fixed them (you won't see them anywhere in the form, just in the code).

4. Learned a nifty trick on Microsoft's website for determining if someone who is opening an infopath form is opening it in the browser of if it's being opened in InfoPath: use a condition on an opening rule that says "matches the expression": "xdEnvironment:IsBrowser"...this is useful if you want to have certain views used internally for processing but the main page be a browser form for public use.

5. Had an interesting problem sent to me: someone deleted a list in sharepoint and, when it was restored (not from the recycle bin), the list had a new ID number (called a GUID). This messed up several things that were originally connected to this list; however, there was a simple albeit scary solution for it: open up the site in sharepoint designer and just do a simple find-replace for the original list's GUID with the new one...had several thousand fixes - mostly from workflow configuration and workflow history. After I did that, I double-checked the workflows themselves and noticed that you can open these up as xml files and just do a find and replace there too - so i did. Between the two pieces, it fixed all references to the list and all workflows now work just fine.