Thursday, July 28, 2011

Office 365 Inbound Email Enabled List

Scenario
  • You would like to configure an email enabled document library in Office 365 SharePoint Online
Issue
  • Office 365 does not support this feature
Resolution
  • Use a third party service to send emails to your lists
    • vorApps - Per user subscription
      • Azure based cloud service with additional storage options
    • MessageOps - SharePoint Bridge - Free
      • This was developed for BPOS and may not work with Office 365 yet
      • Runs as a service on a local server/workstation

Tuesday, July 19, 2011

Basic Group and Collaboration Site Options

Scenario
  • You want to share stuff and/or coordinate events with a limited group of people
  • Private, invite only, or exclusive access
  • Following is a comparison of Office 365 SharePoint Online vs Facebook Groups vs Google Groups vs Google Plus Circles vs Windows SkyDrive Live Groups vs WordPress vs Blogger vs Meetup vs Evite
  • Generally the free services are ad supported, while paid services are not.  Some free services offer an ad-free upgrade
  • These are all fully hosted cloud based services
Features
  1. Photo sharing
  2. Video sharing
  3. Presence and Instant Messaging
  4. Document sharing
    1. Online document editor integration (Office Online, Google Docs)
  5. Owner/Organizer based event planning
  6. Member based event planning
  7. Multi-level security options - More than just Owner/Member
  8. Email alerts/subscriptions
  9. Standard login support: OpenID, Facebook, Live, or Google
  10. Tasks
  11. Wikis
  12. Mobile/Web calendar integration: Google, Exchange, or Facebook
  13. Mobile/Web contact integration: Google, Exchange, or Facebook
  14. Map integration
  15. Group Email Address
  16. Personal Domain Name support
  17. Blog / RSS
Options
  • Office 365 - SharePoint Online - Monthly fee per user, designated user accounts
    • Features: 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15 (exchange distribution list), 16, 17
    • Also includes Exchange Mail hosting, LiveMeeting accounts, Search, workflows, dashboards, Public Web Site Hosting, and Lync IM solution
    • Integrates with SharePoint Workspace and Microsoft Office
    • Designed for businesses/organizations
    • Highly customizable and feature rich
  • Facebook Groups - Free
    • Features: 1, 2, 3, 5, 6, 8, 9 (all), 12, 13, 14, 15
  • Google Groups - Free
    • Very limited
  • Google+ Circle - Free
    • Users have to manage their circle memberships separately (quasi-group)
    • Features: 1, 2, 3, 9
  • Windows Live SkyDrive Groups - Free
    • Features: 1, 2, 3, 4 (specialty), 4.1, 5*, 6*, 7** , 8, 9, 10*, 12, 13, 15
    • * 5, 6, and 10 are a shared calendar rather than a true invite and tasking system
    • ** 7 has a co-owner role and folder/document level security 
  • Blogger - Free
    • Features: 1, 2, 16, 17 (specialty)
    • Default is public
  • WordPress - Free basic, Yearly per feature fees
    • Features: 1, 2*, 16*, 17 (specialty)
    • * 2 and 16 require paid subscription
    • Default is public
  • Meetup Group - Monthly fee
    • Features: 1, 5 (specialty), 6, 7, 8, 9, 12 (manual sync), 14
    • Local/activity based group promotion built-in
  • Evite - Free
    • Event management only, email based
    • No grouping

Monday, June 20, 2011

SharePoint Saturday Sacramento 2011 Web Part Presentation

I presented on Web Part Development and SPMetal at the conference.  Thanks for all who showed up and please remember to connect with me and leave any feedback on my LinkedIn Page.

In addition to my speaking engagement, I attended the following sessions:

  • Building the Perfect SharePoint 2010 Farm: Real World Best Practices from the Field
    • Michael Noel (MVP)
  • The Collaboration Experience
    • Talia Israel
  • SharePoint Street Smart - Delivering Content to Mobile Devices and Tablets
    • Kenneth Lo
  • Metadata: Simple to Sublime
    • Andy Coyle

Monday, June 13, 2011

Column Validation Formula - Phone Number

Scenario
  • You need to force a formatting convention for phone numbers in a list using the list's column validation formulas.
Issue
  • Regular Expressions are not supported. :(
Resolution
  • You must build your functions using Excel 2010 formulas
  • Example for (555) 555-5555 format on a column named "CELL PHONE"
    • =AND(IF(ISERROR(FIND("(", [CELL PHONE],1)), FALSE, (FIND("(", [CELL PHONE]) = 1)), IF(ISERROR(FIND(")", [CELL PHONE],5)), FALSE, (FIND(")", [CELL PHONE], 5) = 5)), IF(ISERROR(FIND(" ", [CELL PHONE],6)), FALSE, (FIND(" ", [CELL PHONE], 6) = 6)), IF(ISERROR(FIND("-", [CELL PHONE],10)), FALSE, (FIND("-", [CELL PHONE], 10) = 10)),IF(ISERROR(1*CONCATENATE(MID([CELL PHONE], 2, 3), MID([CELL PHONE], 7, 3), MID([CELL PHONE], 11, 4))), FALSE, AND(1*CONCATENATE(MID([CELL PHONE], 2, 3), MID([CELL PHONE], 7, 3), MID([CELL PHONE], 11, 4)) > 1000000000, 1*MID([CELL PHONE], 2, 3) <> 911, 1*MID([CELL PHONE], 7, 3) <> 911)))
  • You must use your column name instead of "CELL PHONE"
  • Includes checks for 911

Tuesday, June 7, 2011

FREE SharePoint Saturday Conference Coming to Sacramento

I will be presenting on Web Parts and SP Metal.  Come out and learn SharePoint for FREE!
http://sharepointsaturday.org/sacramento/default.aspx

External Content Type Picker stale or missing entries

Scenario
  • You have deleted and/or added some External Content Types to Business Connectivity Services
  • You attempt to use the External Content Type Picker via a Chart Web Part or some other control
  • You correctly see the external content types in SharePoint Designer and in the Central Admin BCS Service Application screens
Issue
  • You see deleted External Content Types and/or do not see the newly added External Content Types
Resolution
  • Reset IIS on the SharePoint Server(s)
    • App pool recycle does not work

Thursday, June 2, 2011

Attending Microsoft Cloud Intelligence #CloudIntel Conference

Session Notes
  • Bob McDowell - Keynote
  • Platform as a service: Windows Azure - Joel Forman
    • CDN: Content Delivery Network
      • Caches commonly used files in geographically appropriate locations
      • Configure for specific static files: media, css, js, etc.
      • Each file has a CDN url
    • Windows Azure Traffic Manager
      • Geographically dispersed Domain resolution forwarding
        • Forwards domain requests to appropriate servers by location
    • Windows Azure Storage
      • File hosting
  • SharePoint 2010 Online - Atul Totre
    • Dedicated SharePoint Online available for over 5,000 users
    • Online Standard Infrastructure Limits
      • 10 GB base + 500 MB per user account
      • 100 GB max per site collection
      • 300 site collection max
      • 1 TB storage max per tenant up to 5TB
      • 250MB file upload size
      • 500 MB per MySite (separate from Site Collections)
      • Backups: every 12 hours for 14 days retention
  • Management with System Center - Rand Morimoto of CCO
    • Configuration Manager (SCCM)
      • Patching servers and OS's
      • Deploying images/VMs
      • Scheduled downtime patching and system grouping
      • Quest Management Xtensions - Allow patching non-MS devices, Apple, mobile, etc.
    • Operations Manager (SCOM)
      • Monitoring
      • Plugins: Cisco, SalesForce cloud, Office 365, VMware, etc.
      • Logical service grouping
      • Monitoring Agents: Run scripted scenarios remotely for client response time monitoring
      • Dashboards
    • VM Manager (SCVMM)
      • Migration to Hyper-V
      • Rapid PowerShell provisioning
      • Automated Live Migration based on guest session utilization
      • Self-service VM Guest Session creation - user's can automatically create VMs
    • Data Protection Manager (SCDPM)
      • File system, Exchange, SQL, SharePoint, Hyper-V Host/Guest, Windows 7
      • Incident Management, Self Service Portal and Password Reset
    • Opalis
      • Workflow type GUI instead of scripting
    • 2012 planned features
      • Provision Hyper-V Host
      • Cloud based monitoring (Azure)
      • Server App-V Application Virtualization
        • Application bubble isolates application install from OS
  • PaaS Developer Tooling - Bruno Terkaly
    • Windows Azure
      • Compute
        • Web Roles
        • Worker Roles
      • Storage
        • Tables, Blobs, and Queues
        • Tables are unlimited scalability, but not relational
    • SQL Azure
    • App Fabric
    • Tools

Friday, May 27, 2011

SharePoint Folder to Document Set Content Type Conversion Bug

Scenario
  • You create a folder in a document library or have email enabled a library which adds folders
  • You change the content type of a folder to a document set content type (from the folder properties)
Issue
  • SharePoint 2010 has a bug where folders are not correctly converted to document sets.  The following symptoms occur:
    • Folder icon remains instead of the correct document set icon.
    • The Document Set home page does not appear.
    • Other document set functionality is not available via the ribbon.
Resolution

Monday, March 14, 2011

SharePoint 2010 Limited Web Part Selection

Scenario
  • You are working in a sub-site that does not inherit permissions.
  • You want to add a web part from any Category other than "Lists and Libraries"
  • You are not a site collection administrator, but do have full control on the current sub-site.
  • You do not have access to the site-collection root.
Issue
  • The other web part categories do not show up after clicking "Add Web Part"
Resolution
  • You need at least view-only access at the site-collection root level to see the additional web parts.  
  • These web parts are located in the site-collection web part gallery, which you need access to.
  • Alternative: Consider making the sub-site a site collection via a managed path rather than a sub-site in order to completely isolate permissions from the root site.

SharePoint Server 2010 Development VM for VirtualBox or VMWare, Part 2

Continued from SharePoint Server 2010 Development VM for VirtualBox or VMWare, Part 1
This Part covers Application, Office Web Apps, and Mail Server installation

Install
  • Boot up the virtual machine
  • In VirtualBox or VMWare, share the folder on the host machine where the install files are
    • In VirtualBox, Shared Folders appear under Network\VBOXSVR
  • Run the SharePoint Designer Install
    • Close when prompted to go online
  • Open SharePoint Designer
    • Select Use Standard Settings
    • Close SharePoint Designer
  • Mount the Office Professional Plus iso
    • If you install the 64-bit version of Office, you will need to also install the Datasheet View fix: http://support.microsoft.com/kb/2266203
      • I recommend installing 32-bit Office.  The Datasheet View fix does not behave exactly the same as the 2010 version.
  • Run the Setup
    • Enter your license key
    • Modify the InfoPath install files to install all files to the hard drive
    • Continue through the installer
    • Do not go online, close.
  • Add mx record to DNS Server
    • Open DNS Manager
      • Forward Lookup Zones \ sp.local
        • Right-click \ New Mail Exchanger (MX) ...
          • Leave Host domain blank
          • FQDN of mail server: sps2010.sp.local
          • priority: 10
  • Install hMailServer (lightweight alternative to Exchange)
    • Browse to the mapped folder containing the hMailServer executable and run it
      • Use external database engine
      • Create a new hMailServer database
      • Microsoft SQL Server
        • DB address: sps2010
        • DB name: hMailServer
        • Use Windows Auth
      • Service: SQL Server (MSSQLSERVER) (MSSQLSERVER)
      • Password: same as admin password from part1
      • Finish
    • Now hMailServer Administrator should be open
      • Connect to administrator on localhost
      • Add Domain
        • Domain: sp.local
        • Advanced
          • Catch-all address: administrator@sp.local
        • Save
      • Add User
        • Address: administrator
        • Password: same as admin password from part1
        • Administration level: Server
        • Active Directory Tab
          • Domain: sp.local
          • User Name: administrator
        • Save
      • Settings \ Advanced
        • Default Domain
          • sp.local
        • Administration password
          • same as admin password from part1
        • IP Ranges
          • Add
            • Name: sp.local
            • Lower IP: 10.0.0.1
            • Upper IP: 10.255.255.255
        • Save
      • Exit
  • Configure administrator user's email address and remove password expiration
    • Open Active Directory Administrative Center
      • Users
        • Administrator
          • General\Email: administrator@sp.local
          • Account\Account Options: check "Password never expires"
  • Disable IE ESC
    • Server Manager / Configure IE ESC / Administrators = Off
    • This will prevent the about:internet trusted site prompt within Outlook
  • Fix loopback checking for the sps2010 hostname - fixes login via Firefox and login as another user
    • Specify host names (Preferred method if NTLM authentication is desired) To specify the host names that are mapped to the loopback address and can connect to Web sites on your computer, follow these steps:
      1. Click Start, click Run, type regedit, and then click OK.
      2. In Registry Editor, locate and then click the following registry key:



        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
      3. Right-click MSV1_0, point to New, and then click Multi-String Value.
      4. Type BackConnectionHostNames, and then press ENTER.
      5. Right-click BackConnectionHostNames, and then click Modify.
      6. In the Value data box, type sps2010, and then click OK.
      7. Quit Registry Editor, and then restart the IISAdmin service.
  • Reset the Internet Explorer home page to http://sps2010
  • Open Outlook 2010
    • Configure Email account
      • Name: Admin
      • Email: administrator@sp.local
  • Configure SharePoint outgoing mail server
    • Open SharePoint Central Administration
      • System Settings
        • Configure Outgoing Email settings
          • Outbound SMTP server: sps2010
          • From address: no-reply@sp.local
  • Configure User Profile Sync
    • Add spservice user to the local administrator group
      • Open Active Directory Administrative Center
        • Users \ spservice \ Add to group
          • Administrators
            • This is necessary to start the User Profile Synchronization Service
    • Grant Replicate Directory Changes permissions on sp.local to sp\administrator
      • Open Active Directory Users and Computers
      • Right-click sp.local and select Delegate Control
    • Grant Full Control rights to Network Service on the C:\Program Files\Microsoft Office Servers\14.0 directory
      • This prevents Application Event Log warning event ids: 1015, 1001, and 1004
      • More Info
    • Open SharePoint Central Administration
      • Application Management
        • Manage Services on Server
          • Start the User Profile Service
            • Use the spservice username and password
          • Start the User Profile Synchronization Service
            • Use the spservice username and password
          • Reset IIS (cmd\iisreset)
        • Manage Service Applications
          • User Profile Service Application
            • Before continuing, make sure the Forefront Identity Manager Service has started
              • Task manager \ services \ services
              • If not, you will receive an error: "MOSS MA not found"
            • Synchronization \ Configure Synchronization Connections
              • Create New Connection
                • Connection Name: sp local users
                • Forest Name: sp.local
                • Account Name: sp\spservice
                • Password: same as before
                • Populate Containers
                  • Navigate to SP
                    • Check Users (first one)
            • Synchronization \ Start Profile Synchronization
              • Start Full Synchronization
              • Wait for this to complete
                • Refresh the page until it says Synchronizing, then wait for about 20 minutes until idle
              • Verify that the sp\administrator profile contains the updated email address.  If not, manually populate.
  • Open SharePoint Workspace
    • Create a new account
      • Name: Admin
      • E-mail: administrator@sp.local
      • check "Allow me to recover my account later"
      • Finish
  • Install Visual Studio 2010
    • Mount the Visual Studio 2010 Premium CD iso
    • Run the installer
    • Install Full
      • Good thing we allocated enough disk space :-)
    • Ignore the "SQL Server Express Service Pack 1" install error
      • We installed the full version of SQL Server, not SQL Express
    • Finish and do not check for updates
    • Set to run as administrator
      • Browse to the Visual Studio 2010 shortcut in the start menu
        • Right-click the shortcut and select properties
        • Select Advanced...
        • Check "Run as Administrator"
        • OK, OK.
  • Install Visual Studio Team Explorer 2010
    • Mount the Visual Studio Team Explorer 2010 CD iso
    • Run Setup.exe from the CD
    • Step through the install
    • Finish
  • Install Visual Studio 2010 Service Packs - SP1 at time of article
    • Run the VS10sp1 installer
    • Step through the install
      • This downloads realtime, so make sure you have a high-speed internet connection
    • Wait a very long time for this to download and install
    • When prompted, reboot the machine
  • Install Firefox
  • Install CodeRush Express
  • Install PowerGUI
    • Add the SharePoint PowerPack from the PowerGui Administrative Console
    • Open PowerGUI Script Editor, add the SharePoint Library from File / Powershell Libraries
    • Apply the .Net 4 fix
  • Install Google Chrome
  • Install Safari
  • Install Snagit
  • Install Firebug
  • Install Fiddler
  • Install Paint.Net
  • The remaining instructions have not yet been vetted. Please check back later for more info.
  • Install Windows Live Essentials
  • Shut down and take a snapshot named "SP Dev Workstation"
  • Start the Virtual Machine
  • Install Office Web Apps
  • Shut down and take a snapshot named "SP Dev Workstation with Office Web Apps"
  • Apply any SharePoint service packs as needed
    • We do this last so you have the option of testing against different SharePoint builds and testing Service Pack deployments against existing Sites
  • Shut down the virtual machine and backup to another machine
  • Distribute to the developers in your team and enjoy!

Saturday, February 12, 2011

VoteMatrix, Politics made Personal!


VoteMatrix is seeking ASP.Net / SQL developers, political analysts, and investors.  
If you or anyone you know would like to partner with us, please message me.
 
The site is written using Asp.net, LINQ to SQL, and the Dynamic Data Framework.
 
Thank you,
Robert Freeman
President VoteMatrix

Tuesday, February 8, 2011

SharePoint Server 2010 Development VM for VirtualBox or VMWare, Part 1

SharePoint 2013 dev server deployment guide can be found here

Scenario
Prerequisites
  • Your workstation must be running a 64bit processor with Hardware Virtualization enabled
  • You must have enough memory (4GB rec), disk space (50GB rec), and processor power (2 cores rec) to run the VM and hold all snapshots
    • I highly recommend running this VM from a solid state drive (SSD) for optimum performance.  Disk speed is the greatest limiter for performance and if your RAM is limited, then the SSD swap file will help compensate.
  • You must have access to and appropriate licensing for above products
    • ex: MSDN Subscription
  • You must have time (about 8 hours) to install everything.  
    • Hints:
      • Look for "Wait" for good break points
      • Snapshots can be used to create other virtual machines or to test minimally installed environments
How To
  • Download the Software Listed Above
  • Install VirtualBox and the Extension Pack or VMWare
  • Create a new virtual machine named "sps2010" for Windows 2008 (64bit)
    • 4096 GB RAM
    • 100GB dynamically expanding boot hard disk
      • You will likely use 45GB of this without any content
    • Mount the Windows Server 2008 R2 ISO
    • Enable RDP support
  • Start the sps2010 virtual machine
  • The Windows Server 2008 R2 installer should begin
    • Select Windows Server 2008 R2 Standard (Full Installation)
    • Select New Installation
  • Set a new administrator password
    • pass@word1
  • Install VirtualBox Guest Additions or VMWare Tools
    • Auto Reboot
  • Authenticate Windows
  • Rename the server to sps2010
    • Note: If you forget this step, you will have a randomly named server.
      I have included instructions for aliasing and configuring a randomly named server.
  • Shut down and take a Snapshot named "Windows Install"
  • Enable Remote Desktop for all versions
  • Add Roles
    • Active Directory Domain Service
    • You will get a Windows Update is not enabled warning.
    • Select "Close this wizard and launch the Active Directory Domain Services Installation Wizard"
    • Ignore the "Operating System Compatibility" warning
    • Select "Create a new domain in a new forest"
    • FQDN: sp.local
    • Forest functional level: Windows Server 2008 R2
    • Ignore DHCP warning
    • Ignore DNS warning, click Yes
    • Use same password as admin user above
    • Reboot on completion
  • Add Roles
    • Server Roles
      • Application Server
      • Web Server (IIS)
    • Application Server / Role Services
      • Web Server (IIS) Support
    • Web Server (IIS) / Role Services
      • Leave Default Selections
    • Install
  • Windows Update: Turn on auto updates
    • Install Updates and Long Wait
    • Reboot when prompted
  • Open Active Directory Administrative Center
    • Create a user
      • Full Name: User
      • User SamAccount: sp\user
      • pass: same as admin above
      • Password Options: Password never expires
  • Stop and Disable the following Services
    • DFS Namespace
    • DFS Replication
  • Shut down, snapshot "DC and IIS", and start virtual machine
  • Mount the SQL Server Iso from the Virtual Box Devices menu
  • Open Active Directory Administrative Center
    • Create a user
      • Full Name: spservice
      • User SamAccount: sp\spservice
      • pass: same as admin above
      • Password Options: Password never expires
  • Start SQL Server Setup
    • Installation
    • New Install
    • Continue
    • Ignore DC and Firewall warnings
    • All Features with Defaults
    • Continue
    • Server Configuration / Service Accounts
      • Use the same account for all SQL Server services
        • specify the sp\spservice account and password created above
    • Continue
    • Analysis Services Configuration
      • Account Provisioning
        • Add Current User
    • Reporting Services Configuration
      • Install the SharePoint integrated mode default configuration
    • Continue then Wait
  • Shut down, snapshot "SQL Server", and start virtual machine
  • Open SQL Server Configuration Manager
    • SQL Server Network Configuration
      • Protocols for MSSQLSERVER
        • Enable Named Pipes
  • If your server is randomly named - not sps2010
    • DNS Manager
      • Forward Lookup Zones
        • sp.local
          • Add a new alias
            • Name: sps2010
            • FQDN: Browse to splocal\servername
              • servername will be a randomly generated value
  • Mount the SharePoint Server 2010 iso
  • Start the Prerequisites installer
  • Start the SharePoint Install
    • Enter your Enterprise license key
    • Wait
    • Run the Configuration Wizard
    • Create a new server farm
    • Configuration Database
      • Server: sps2010
      • Name: SharePoint_Config
      • Username: sp\spservice
      • Password: same as above
    • Farm Security Settings
      • Passphrase: same as admin password above
    • Central Admin Web App
      • Port: 8000
      • Auth: NTLM
    • Short Wait
  • IE will open to the central administration website.
    • Login as administrator
    • Move the central admin site from the Trusted Sites zone to the Local Intranet Zone
      • Also add "http://sps2010" to the Local Intranet Zone
  • Shut down, snapshot "Base SharePoint", and restart
  • Configure Alternate Access Mappings
    • Set the central admin default public url to http://sps2010:8000
  • Run the Farm Configuration Wizard from Central Administration
    • Use existing managed account
    • All items should be checked except for Lotus Notes
    • Create Root Site Collection
      • New Web Application
        • Name: sps2010
        • Port: 80
        • Path: change "80" to "sps2010"
        • URL: http://sps2010
        • Create a new app pool
          • Name: SharePoint - sps2010
          • Configurable: sp\spservice
        • Database server: sps2010
        • Database name: sps2010_Content
        • CEIP: No
      • Title: Sps2010
      • Template: Publishing \ Publishing Portal
      • Primary admin: sp\administrator
  • Set the browser home page to http://sps2010
  • Configure Search from Central Admin
    • Central Admin \ Manage service applications \ Search Service Application (first one)
      • Content Sources
        • Local SharePoint Sites
          • Schedule incremental every 5 minutes and start a full crawl
  • Open http://sps2010 in IE
    • Add sp\administrator to the Approvers and Members groups
    • Validate that the following work
      • Approval process
      • Both search scopes
      • My Site
      • Profile
  • Shut down, snapshot "SharePoint Configured", and restart
  • Continue to Part 2

Monday, February 7, 2011

SPTechCon 2011 San Francisco

Sessions
  • Monday
    • PerformancePoint Services - A Service in Three Acts
      • Peter Serzo
    • Building Business Applications Using BCS
      • Fabian Williams
  • Tuesday
    • Developing SharePoint 2010 Applications with Visual Studio 2010
      • Steve Hansen
    • Upgrading to SharePoint 2010 from SharePoint 2007, Part 1 and 2
      • Todd Klindt and Shane Young
    • SharePoint 2010 User Profile Store
      • Joshua Haebets
    • What's New with SharePoint 2010 Lists & Schemas
      • Steve Hansen
  • Wednesday
    • Going Offline with SharePoint Workspace
      • Joshua Haebets
    • Vendor Exhibits

Friday, February 4, 2011

Search Center "Navigate Up" Breadcrumb Displays Search Box

Scenario
  • You change the Search Center Site's master page to v4.master
  • You attempt to use the "Navigate Up" folder icon breadcrumb
Issue

  • The "Navigate Up" link does not display correctly.  Instead, the search box and possibly the tabs appear within the popup.

Resolution
  • Follow this guide to apply the Navigate Up control to the Search Center Site's minimal.master.
  • Change the site's master page to use minimal.master

Thursday, February 3, 2011

The data types of the following form fields do not match the SharePoint list

Scenario
  • You have a custom InfoPath form applied to a SharePoint 2010 list.
  • You attempt to edit or view an item in the list.
Issue
  • Error Message: The data types of the following form fields do not match the SharePoint list:
Resolution
  • This issue is due to a missing or extra field in your InfoPath form.  
  • You can go to List Settings / Form Settings to revert back to the default form.
  • Alternatively, you can edit the InfoPath form and fix the fields listed in the error.

Thursday, January 20, 2011

KwizCom Invisible Lookup Control

Scenario
Issue
  • The dropdown will not show up
  • Or the entire page will continuously refresh
    • This happens when the web.config is partially configured for 3.5.0.0 AJAX
  • There will be an error in the Application Event Log
    • The server tag "asp:scriptmanager" is ambiguous
Resolution
  • Update the web application's web.config to use the 3.5.0.0 AJAX extensions
    • You can do this by ensuring .Net 3.5 is installed and then creating a new test web application
    • The new web application should have the .net 3.5 AJAX configuration in the web.config
    • Use a text comparison tool to replace the appropriate sections
    • Make sure to backup the old web.config before changing

Tuesday, January 18, 2011

Customized Fab 40 Help Desk Template

Scenario
  • Develop an enterprise Help Desk application using MOSS 2007 with SP Designer 2007
  • Also include the following features
    • Custom alerts
    • State change based notifications
      • State machine workflows
    • Customer notifications
    • Change Request integration
      • Promotion from Ticket
      • Child Work Items
    • Work Item integration
    • Key Perfomance Indicators
      • Service Level Agreement (SLA)
      • Calculated Fields
    • Deadline notification
    • Approval workflows
    • Custom Fields
    • Custom Add Item Forms
    • Cascaded Dropdowns
Issue
  • The Fab 40 Help Desk template is a basic starting point and lacks the above features
Resolution
  • I recently architected a solution implementing these requirements.  It's too much info to post here, but please contact me for details on how this can be accomplished.
  • Parent child relationships require a 3rd party Cascading Lookup control

Tuesday, December 28, 2010

Emailed HTML Rich Text Column Relative URLs

Scenario
  • You have a list with a multi line text column with Enhanced Rich Text.
  • The item contains links from the current server.
  • You are emailing the contents of that column via SharePoint Designer 2007 Workflows
Issue
  • The hyperlinks in the email do not work.
  • The server name was automatically stripped from the URL, making a relative path.
Resolution
  • Workaround:
    • Add the following note to the field description notifying users of the problem and the workaround.
      • "Use http://TinyUrl.com for hyperlinks and images on this site.  This will prevent emailed relative links."
    • This works because SharePoint only strips URLs it recognizes as local URLs
      • These are usually defined in the Alternate Access Mappings
    • You can use any URL redirector
  • Fixes:
    • Use Visual Studio Workflows and replace the Relative URLs with Absolute URLs
    • Intercept the outbound emails (on the SharePoint or Email servers) and replace
    • Use a custom Workflow Action that prepends the servername into the URLs
    • Use a different field type.  Try different custom Rich Text editor columns.

Monday, December 6, 2010

Help Desk Template Sealed Columns

Scenario
  • You wish to install the MS Fab 40 Help Desk template.
  • You need to change the values in, description of, or delete the Status, Priority, or KBArticle choice or lookup columns/fields.
Issue
  • These columns are Sealed in the list definition. Therefore, you cannot delete or edit them.
    • Note: The Priority column seems to inherit initial values from the standard Priority site collection column
Resolution
  • If you haven't done much with the template, you can unseal the columns in the site definition.  You must do the following on each FEW server.  You must then recreate any ServiceRequest lists.
    • Navigate to C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\TEMPLATE\FEATURES\HelpDeskServiceRequestsList\servicerequest
    • Edit schema.xml
    • Replace all instances of Sealed="TRUE" with Sealed="FALSE"
  • If you have made changes, you can unseal all columns except Priority using SharePoint Manager 2007.  Priority can be hidden from forms and views or may be removed programatically.  Or alternatively, you can change the list definition as above, create a new ServiceRequest list and move the items from the old list to the new.

Tuesday, November 30, 2010

SharePoint 2007, 2010, and 2013 Cascading Lookup Column Comparison

Scenario
  • You have multiple SharePoint lists that are related
    • Parent/Child or other relationship
  • You want to allow the user to define the relationship via a Lookup Column Dropdown (Combobox) or Multiselect Interface
  • Or you need filtered lookups or some other additional lookup functionality
Issue
  • The out of the box SharePoint Lookup Field columns are severely limited
    • They really only work for relatively small lists of uniquely named items that don't change often
    • SharePoint 2010 natively supports related lists, but do not have all the features below
  • We need one or more of these advanced features
    1. Cascading Updates (and possibly deletes)
      • Maintain Referential Integrity
      • Updates made in one list are reflected in the lookups.
    2. Keyboard filtering from the dropdown and multiselect interfaces
      • Autocomplete, find as you type
    3. Cascading drop-down filters
      • One or more dropdowns to filter the final dropdown
      • Ex: State, County, City
    4. Lookup filters (likely based on a List View)
      • Ex: Only show my Cities, or only show Active Items in the lookup
    5. Datasheet view editing (Excel, Access), InfoPath, and Office DIP support
      • In most cases this is unavailable.  The workaround is to create a view without the lookup fields for use with Office integration and ensure the lookup fields are not required or have a default value.
    6. AJAX
      • We don't want to postback when applying realtime filtering
      • We may not want to preload all the values for very large lists
    7. May be used in a Calculated Column
      • Ideally the text field and ID field would both be accessible
    8. Supports multiple display fields from the lookup list
      • ex: First and Last Name concatenation in the dropdown
      • Workaround would be to use a calculated field within the lookup list
    9. Link to add an item to the lookup list from the lookup column interface
    10. Cross site support
      • By default the list must be in the same subsite as the lookup column
    11. Cross site-collection support and content type hub support
      • Workaround would be to synchronize lookup lists accross site collections using a workflow, content deployment job, or a custom timer job.
    12. Two-way relationships
      • Items within a lookup list will keep track of where they have been referenced.
      • Ex: Orders are linked to a customer via the order form.  On the customer form, you can see the linked orders.
      • SharePointBoost's LookupBoost or Sparqube's Lookup Tracker can be installed to provide this information via a separate relationships page.
    13. Matches the SharePoint look and feel
      • Ex: Inherits themes/styles for drop down
    14. Can be created as a site column
      • Sometimes only implemented as a list column.
    15. Conversion tool 
      1. Converts lookup columns to custom lookup
      2. Converts custom lookup back to a regular lookup
    16. Allow filtering from a multiselect
      • Ex: Filter lookup of Cities when multiple States are selected
    17. Set the lookup column's default value
    18. Referential Integrity (2010 new feature)
      • Cascade or disable updates/deletes when the item is used in lookups elsewhere
      • Not available on a multi-select
    19. Projected Columns (2010 new feature)
      • Lists with the lookup column will expose other columns from the lookup list.
      • Ex: Order list with a Customer lookup column could also include Customer Phone and Customer Email in the Order list view based on the selected Customer
Resolution
  • The following third-party products are available to meet your needs.  This analysis was done based on the marketing material available on their websites and any personal experience I have with them.   ? - denotes unknown feature
    • SharePoint 2010 Lookup Column (Out of the box - not third party)
      • Features: 1 (includes recycle bin), 2, 5?, 10, 13, 14, (17 via code), 18, 19
    • Sparqube SharePoint Lookup Column (SharePoint 2010+)
      • Features (provided by vendor): 1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
      • Note: There are 2 column types to choose from.  Each has advantages and disadvantages.  All features above may not be available depending upon which control you use.
      • (12) Sparqube Lookup Tracker provides this as a separate (included) feature
    • KWizCom SharePoint Cascading Lookup Plus
      • Features: 1?, 2, 3, 4, 6, 7, 8, 9, 10, 12*, 14, 15.1, 17?, 18?, 19?
      • Review Notes
        • Runtime issues will occur if you are still referencing AJAX 1.x
        • Single-select, single-value items appear in a grid format with a header
        • Display form grid uses a hyperlink icon rather than text
        • Dropdown skins do not match SharePoint but are customizable
      • *(12) Same list 2-way relationships are not supported
    • SharePointBoost Cascaded Lookup
      • Features: 1, 2, 3, 4, 5 (except multiselect), 8*, 9, 10, 12*, 13, 14, 15, 17*, 18, 19
      • *(12) Lookup Boost: Provides feature 12 via a separate relationship page
      • Review Notes
        • Installed properly
        • Worked as advertised
        • Issue with saving a sub-site as a template after implementing a root level site column and content type.  Workaround provided by SharePointBoost
      • *(8) - Doesn't support hyphenated values in the drop-down for SP 2010.
      •  *(17) - Only supports defaulting to first item in a view and does not support the standard Default property, so this is difficult to set from code.  Does not support defaults on a multi-select.
    • Azu Lookup Plus 2013
      • I haven't evaluated this yet.  Please refer to the website.
    • Infowise
      • Features: 3, 4, 9+, 10, 12 (with bi-directional bundle), 13, 14, 15, 17?, 18?, 19?
      • (9+) Enhanced support for inline simple text additions and for task creation
    • Bamboo Lookup Selector
      • Features: 2, 3, 6, 10, 11, 17?, 18?, 19?
    • SharePointBoost Cross-Site Lookup
      • Features: 2, 10, 15, 17?, 18?, 19?
      • Lookup Boost: Provides feature 12 via a separate relationship page
    • SharePoint Tool Basket
      • Features: 2, 6, 17?, 18?, 19?
      • Open Source
    • SharePoint Cascaded Lookup Dropdowns
      • Features: 3, 6 (client-side only), 17?, 18?, 19?
      • Not a column.  Must be applied to each form.
      • Open Source
    • CodePlex Filtered Lookup
      • Features: 4, 10, 17?, 18?, 19?
      • Open Source

Monday, November 8, 2010

From SmartPart To Visual Web Part Demo and Slides

Here is the solution and slides for my presentation on SharePoint SmartPart and SharePoint 2010 Visual Web Part development.

Slides and Project
NOTE:
I updated the slides to add a section on uploading images to an image library, as in my prior post.  I also updated the custom property section of the slides to reflect the need to implement the custom property in the Web Part class rather than the User Control class.

I also updated the slides to include a quick intro to SharePoint for presenting to a .Net usergroup.

Tuesday, October 19, 2010

Adding Pictures to a Picture Library via a VS2010 Module

Scenario
  • You would like to add some Images to an existing Image Library in your SharePoint site using a Visual Studio 2010 SharePoint Project.
  • You do this by following these steps.
    • Add a module to the project
    • Rename the module to the Image Library name
    • Set the module tag's url and path properties to the Image Library name
      • Leaving spaces in place
      • Ex: <Module Name="Recipe Pics" Path="Recipe Pics" Url="Recipe Pics">
    • Add the images to the module using Visual Studio Solution Explorer's "add existing item" option
    • Add the Type="GhostableInLibrary" tag to the Elements.xml tag for each image
      • Ex: <File Path="FriedOkra.jpg" Url="FriedOkra.jpg" Type="GhostableInLibrary"/>
    • Run the project to deploy the solution
      • This should run without errors
Issue
  • The images are in the Image Library, but the thumbnails on the list view and the item views are missing.  The Item view displays icjpg.gif instead.
  • This issue is also documented on Eugene Rosenfeld's blog.
Resolution
  • Check-out and check-in each image you just added
    • This creates the appropriate thumbnails, but this is a manual process and will be wiped out next time you redeploy the module
    • One option is to add a feature that will check out and in each image.  An alternative is to add the thumbnails directly to the module, although this has 1 issue as outlined below.
  • To add the thumbnails to the module, follow these steps
    • On the Image List's default view page you should see the "t" thumbnails for your images
      • Save each "t" thumbnail to disk in an "_t" subfolder
      • Replace any Html Encoding with the original characters
        • Change %20 to a space 
    • Click on each image's view page and you should see the "w" thumbnail
      • Save each "w" thumbnail to disk in an "_w" subfolder
      • Replace any Html Encoding with the original characters
        • Change %20 to a space
      • Issue: The "_w" images do not work correctly in 2010 with this method.  They are uploaded, but the default item view will not display them.
    • Add _w and _t folders to your module in Visual Studio
    • Add existing items to each module folder from the above subfolders
    • Add the Type="GhostableInLibrary" tag to the Elements.xml tag for each thumbnail image

Monday, July 12, 2010

Download for Search Server Express 2008

Scenario
  • You would like to upgrade WSS 3.0 to Search Server Express 2008 or would like a fresh intall of Search Server 2008 Express. 
Issue
  • Microsoft now redirects most of the download pages to Search Server 2010.
Resolution

Thursday, June 17, 2010

CQWP Expiration Date issue

Scenario
  • You would like to filter your Content Query Web Part by Expiration Date.  You would like items to show up when any of the following are true (OR filter)

    • They are not expired (Expiration is greater than or equal to [Today])
    • Have no expiration date (expiration is null)
Issue
  • There is no Null option in the CQWP Web Part Edit Toolpane, therefore you can only enter the first criteria above.  Therefore, when the Expiration field is left blank (null date), the value is excluded from results.
Resolution
  • One workaround is to use a Data View web part via SharePoint Designer instead of the CQWP.  This will allow you to display a similar format, while adding a null date to the filter.

    • Use the a href="/{@FileDirRef}/DispForm.aspx?ID={@ID}" syntax to include a hyperlink in the title
    • The ... (more) feature will not be included