Wednesday, February 5, 2014

SPC14 - MS SharePoint Conference 2014

I am attending the Microsoft SharePoint Conference 2014 in Las Vegas.  I will update my session notes here.  If you'd like to meet up with me during the conference, please comment here or contact me via LinkedIn or VoteMatrix.  Also, I set up a Sacramento SharePoint Community page on Facebook if you'd like to share your experiences and meet up with other Sacramento SharePoint professionals at the event.

Itinerary and Session Notes

Sunday - 3/2

  • Flight in
  • Blue Man Group

Monday - 3/3

Keynote

  • Bill Clinton
    • No real info
    • Compared Ukraine policy to the inclusiveness embraced in the gay rights movement
    • Stressed technology for solving inequalit
  • Jared Spatero
    • Intr
  • Jeff Teper
  • Transformation of Office
    • Cloud
      • Accelerating Office 365 updates
    • Personalized Insights
      • Office Graph
      • Oslo Hero Experience
    • Next Gen Porta
  • Julia White - Office 365
    • Groups
      • Yammer included on top navbar
      • Available in Outlook Online
        • Meetings
          • Can import into your calendar
        • Conversations
          • Integrated into Office Web Apps Online
    • Oslo - SharePoint Graph
      • Metro interface
      • Metrics
        • Modified by me
        • Presented to me
        • Liked by me
        • Trending around me
        • Shared with me
    • OneDrive for Business
      • Demoed on ipad
      • demoed mobile website
    • PowerBI
      • Q&A
        • Freetext pivots
          • EX: "Average annual income per person vs population"
      • PowerMap
        • Map visualization of pivot dat
  • Jeff Teper
    • Contextual Apps
    • Robust APIs
    • Services
    • Tools
      • MS Access
  • Arpan Shah - Dev
    • Demo
      • Compose App Feature
        • Outlook Online (Office 365) App
      • Android API app demoed for approval and notification
  • Jeff Teper (IT Pro)
    • Cloud Platform
      • 250000 req per secs
      • 400000 cores
      • 400 PBs storage
      • 99.98% uptime
      • Datacenter acquisitions
      • Privacy
      • Monitoring
      • 1TB site collections
      • Compliance - HIPAA, etc
    • Trust
      • E-discovery
    • Controls
  • Michal Gideon Demos
    • Compliance in Office 365
      • eDiscovery
        • Search query tool allowing policies to be configured
      • Log viewer component
    • Multi-factor auth in Office 365
  • Jeff Teper
    • Cloud onramp
    • 2013 SP1
      • Hybrid switch
    • OneDrive for Business
      • 25GB
  • Jared Spatero
    • File sync and share

Dev Keynote (Rob Lefferts - Director of PM, Brian Jones – GPM)

  • App Model Redux - Principles
    • Open and flexible
    • Consistent platform
    • Multiple Devices

image

  • Contextual Apps
  • Office 365 Apps

image

  • Tools
  • Demos
    • Outlook (OWA) Apps integration
      • Works in rich client as well
    • Site provisioning CSOM API
    • Excel App API
      • Bing map sample app
    • DocuSign Outlook integration component demo
    • PollEverywhere poll shows File extension handler is most popular at this event
  • GitHub
    • OfficeDev O365 API open source solution
  • SAP
  • Access Web Apps
  • API Updates

image

Anyone can build a SharePoint app with MS Access (Jeff Conrad and Chris Usher)

  • MS Access web apps
  • Uses SQL Server for the table back end
    • SQL Azure in Office 365
    • SQL connection info available in Access Client
  • Consuming Lists
    • Link to or import
  • Cascading combo box feature
  • MS using internally
    • Being used to reorganize MS Office and Windows divisions
    • Attorney tracking
    • Training feedback
    • TAPs

Advanced Performance Analysis (Ryan Campbell)

  • Intro
  • Caching
    • BLOB cache too low
    • Page cache too low
  • App pool recycles caused issues
  • Load time and user count per site path request

Tuesday - 3/4

Wednesday - 3/5

Thursday - 3/6

  • Flight out

Monday, January 27, 2014

Friday, December 6, 2013

SharePoint 2010 Search - View Properties Link w/ folder and case support - Federated

Issue
  • You have SharePoint 2010 Server Standard or Enterprise
  • SharePoint search results provide a link to the document, but no other links
    • Often times a user has to copy and paste the document library url into the address bar and then search for the document in the library to view the properties or kick off a workflow.  This is extremely inconvenient.
  • You would also like a link to the document's View Item (DispForm.aspx) form
  • You would also like a link to the document's Document Library
  • You would like to configure this at the Search Service level so that the links appear in any search center in the farm utilizing the Search Service and also on the OSSSearchResults pages
  • Utilizing code from the following blogs

Solution
  • Configure the Search Service in Central Administration as follows
  • IMPORTANT
    • Xslt variables and parameters are case sensitive
    • Make sure instructions are followed exactly as written
  • Create 2 managed properties (Metadata Properties in Search Service Application) after your sites have been crawled
    • basic4
      • map to basic:4(text)

        • You have to page to the right after selecting the "basic" group.  It does not show up on the first screen when searching for the crawled properties.  You cannot use the free-text search filter to find this item.
    • listitemid
      • map to ows_ID(integer)
    • Configure Federated Locations in Search Service Application.
      • Click "Local Search Results"
      • Expand "Display Information"
      • Modify the following "Core Search Results Display Metadata" sections
        • Uncheck "Use Default Formatting"
        • Add the following columns to the "Properties" window

          <Column Name="ServerRedirectedURL"/>

          <Column Name="listitemid"/>
          <Column Name="basic4"/>
           
      • Copy the contents of the XSL into a text editor like Visual Studio or Notepad  
        • Find the IsDesignMode parameter and modify as follows

          <xsl:param name="IsDesignMode">True</xsl:param>

          <xsl:param name="listitemid" />
          <xsl:param name="basic4" />
           
      • Find the DisplaySize template call and modify as follows

        <xsl:call-template name="DisplaySize">
        <xsl:with-param name="size" select="size" />
        </xsl:call-template>


        <xsl:call-template name="DisplayViewPropertiesLink">
        <xsl:with-param name="basicFour" select="basic4" />
        <xsl:with-param name="itemUrl" select="url" />
        <xsl:with-param name="siteUrl" select="sitename" />
        <xsl:with-param name="listItemId" select="listitemid" />
        <xsl:with-param name="contentclass" select="contentclass" />
        </xsl:call-template>

        <img style="display:none;" alt="" src="/_layouts/images/blank.gif"/>

      • Find the end of Stylesheet tag at bottom of document and modify as follows

        <!-- A custom template to display a link to view the properties for a document -->
        <xsl:template name="DisplayViewPropertiesLink">
        <xsl:param name="basicFour" /> <xsl:param name="itemUrl" /> <xsl:param name="siteUrl" /> <xsl:param name="listItemId" /> <xsl:param name="contentclass" /> <!-- Variables to convert siteUrl to lower -->
        <xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" />
        <xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
        <xsl:if test="$contentclass='STS_ListItem_DocumentLibrary'">
        <xsl:choose>
        <xsl:when test="contains($basicFour,'http')">
        <xsl:variable name="library" select="substring-before(concat(substring-after(translate($siteUrl, $uppercase, $smallcase), concat(translate($basicFour, $uppercase, $smallcase), '/')), '/'), '/')" />
        <xsl:variable name="viewPropUrl" select="concat($basicFour, '/', $library, '/Forms/DispForm.aspx?id=', $listItemId)" />
        - <a href="{$viewPropUrl}">View Properties</a>
        </xsl:when>
        <xsl:otherwise>
        <xsl:variable name="docLibLoc" select="substring-before(substring-after($itemUrl, concat($siteUrl, '/')), '/')" />
        <xsl:variable name="viewPropUrl" select="concat($siteUrl, '/', $docLibLoc, '/Forms/DispForm.aspx?id=', $listItemId)" />
        - <a href="{$viewPropUrl}">View Properties</a>
        </xsl:otherwise>
        </xsl:choose>
        </xsl:if>
        - <a href="{$siteUrl}">
        View Library
        </a>
        </xsl:template>

        <!-- End of Stylesheet -->
        </xsl:stylesheet>

         
      • Copy the contents of the text file into the "Properties:" textbox, replacing all existing text
      • Hit OK to save the changes
    • You may need to reset the index and run a full crawl to get everything working afterwards
      • Sometimes the Search Centers cache the old XSLT for awhile, so the index reset and possibly an app pool recycle may get it to refresh from the federated location.  Or toggling the Core Results web part on the search center page can work as well.


    Thursday, November 21, 2013

    Attach a Document from SharePoint or Office 365 in Outlook

    Scenario
    • You would like to attach a document to an Outlook email that you have located within SharePoint or Office 365.
    • Note that for internal documents, you should always just link to the document in SharePoint.  Only when sharing with a user who doesn’t have access to your SharePoint site should you send a document as an attachment.
      • You can still use the following to get the link to the document.
    Issue
    • You don't want to have to download it and then attach it from you local file system first
    Resolution
    • In addition to being able to email attachments directly from MS Word, you can attach the file directly from Outlook using the SharePoint shortcut as follows
    • Right-Click Document Name (This works from anywhere in SharePoint, even search results)
    • Select Copy Shortcut (This puts the Link to the Document in your clipboard)

    clip_image001_thumb

    • Open the email you wish to attach to
    • Select Attach File 
      • If the recipient does have access to this document in SharePoint, you should just paste the link into the email instead, increasing security and avoiding change management issues.

    clip_image002_thumb1

    • Paste the shortcut into the File name field (Right click and select Paste or use Ctrl-V)

    clip_image003_thumb1

    • Click Insert and finish composing the Email

    clip_image004_thumb

    Friday, November 15, 2013

    Unable to display this Web Part. SharePoint Designer modified XSLTListViewWebPart

    Scenario
    • A list or library view in the farm has ben modified in SharePoint Designer 2010
    • SharePoint Server 2010
    • An app pool recycle occurs (usually due to automatic nightly app pool restart)
    Issue
    • You get the "Unable to display this Web Part." error message on any modified view.
    • SP Logs for the correlation id contain the following:
      • Failed to cache field with id "{GUID}", overwrite=0
      • Error while executing web part: System.InvalidCastException: Unable to cast object of type 'System.Reflection.RuntimeMethodInfo' to type 'System.Type'.     at Microsoft.Xslt.MethodCollection.MethodDescription.DeclareDynamicMethod(MethodCollection methodColl)     at Microsoft.Xslt.MethodCollection.CreateDynamicMethods()     at Microsoft.Xslt.MethodCollection.GetMethodInfoInternal(Int32 methodNumber)     at Microsoft.Xslt.MethodCollection.GetMethodInfo(Int32 methodNumber)     at Microsoft.Xslt.STransform.GetCompiledTransform()     at Microsoft.SharePoint.WebPartPages.BaseXsltListWebPart.LoadXslCompiledTransform(WSSXmlUrlResolver someXmlResolver)     at Microsoft.SharePoint.WebPartPages.DataFormWebPart.GetXslCompiledTransform()     at Microsoft.SharePoint.WebPartPages.DataFormWebPart.PrepareAndPerformTransform(Boolean bDeferExecuteTransform)
    • This seems to be a Microsoft bug and only occurs after occasional app pool resets
    Resolution
    • IIS Reset
    OR
    • Open the view in SharePoint designer and save

    Thursday, November 14, 2013

    Event Receiver AfterProperties Choice field null bug

    Scenario
    • You are developing an event receiver where you are evaluating the AfterProperties value of an SPFieldChoice column.
    • The column's internal name does not match the display name.
    Issue
    • The AfterProperties value for this field always return null/nothing.
    Resolution
    • MS oddly decided that this field should utilize the Title instead of the InternalName for the AfterProperties Key.  I have not verified this with the BeforeProperties, but wouldn't be surprised if it's the same.
    • Following is the code I used to workaround this:

    Dim afterObj As Object = properties.AfterProperties(field.InternalName)
    If afterObj Is Nothing AndAlso TypeOf field Is SPFieldChoice Then

      'Microsoft Bug that choice field uses Title instead of InternalName on AFterProperties.
      'Checks for null value first in case MS fixes this later and to reduce overhead.
      afterObj = properties.AfterProperties(field.Title)
    End If

    Tuesday, October 15, 2013

    Projected Lookup Field - Lookup Column Additional Fields Missing

    Scenario
    • You want to project a lookup column (add an additional field or related field).
    • Example:
      • You have a Clients list and a Projects list
      • The Projects list includes a Client lookup column
      • You have a Timesheet list which includes a Project lookup column
      • You would like to project the Client lookup column into the Timesheet view via the Project lookup field.
    Issue
    • SharePoint 2010 does not support lookup field types as a projected/additional field
      • Some other column types are also not supported
    • Example
      • The Client column will not show up in the "add a column to show each of these additional fields:" checkbox area under the Project lookup column settings, under additional column settings
    Resolution
    • One workaround is to synchronize the fields using SharePoint Designer Workflows with an extra Client Name column in the Projects list.  This requires 1 workflow.
    • This will work with Office 365, SharePoint 2010, or 2013.  Additionally this can be done on SharePoint 2007 except projected columns are not available, so you'd have to sync another column within the Timesheet list as well (meaning 1 more workflow)
    • Note that this workaround will not automatically sync down to the Projects list from the Clients list
      • If you need to sync renames of a client down to the project and timesheet levels, you will need to do one of the following:
        • Create a sandboxed event receiver that will propagate the changes from the Clients list to the Projects list Client Name column
        • Create another workflow on the Clients list or at the site level that updates multiple list items by one of the following means:
          • Acquire or develop a custom workflow action/tool that does this looping
            • Possibly CodePlex
            • Possibly Nintex, Bamboo, K2, or HarePoint
          • SharePoint 2013 REST solution
        • Use a scheduled synchronization utility
    Workaround (Only synchronizes on Projects item change)
    Add a Client Name field (Single line of text) to the Projects list (do not display in view)
    Hide the Client Name field by modifying the Projects list content type
    clip_image006
    clip_image007
    Now create a workflow on the Projects list to update the field whenever a Project item is changed.  
    In this case the field was required, if it's not required, add in a condition to check for null values.
    clip_image008
    clip_image009
    Use the Set Field in Current Item action
    clip_image010
    Remove the workflow status column from the views on this list.

    Wednesday, October 2, 2013

    FileNotFoundException on SPWeb.GetList

    Scenario
    • You are writing code using the server object model and encounter an intermittant FileNotFound error when using the GetList command after using New Site and OpenWeb(FullURL), passing in a subsite url to OpenWeb. Note that if you add in a delay between OpenWeb and GetList the error does not occur.
    Issue
    • Apparently Opening the web at a specific location causes the GetList function to behave inconsistantly, throwing a File Not Found exception. Note that we only tried this on SharePoint 2010 in a Visual Studio 2010 console application. This may have been an environment specific issue, so if this solved your problem also, please comment if the environment was the same or different.
    Resolution
    • Pass the web url into the SPSite constructor and call GetWeb with no parameters. Then, when you call SPWeb.GetList(FullUrl) you will not get the FileNotFound exception.

    Tuesday, September 17, 2013

    Office 365 Registration "Partner Information"

    Scenario
    • You are signing up for an Office 365 account and would like to register me as your partner for solution architecture, custom development, integration, and support.  :)
    • This is now known as "Delegated Administration"
    Resolution
    Office 365 Microsoft Partner ID:
    3831100

    Thursday, September 5, 2013

    Web.Lists, GetLists, and TryGetLists Performance

    Scenario
    • Getting a list or library from a spweb with a large number of lists and libraries. In my test case each spweb had about 90,000 document libraries on sp2010 sp1.
    • You cannot cache the spweb.Lists object across calls. 
      • Ex:  Dynamically looking up a library for each document uploaded via a custom web service or event receiver.
    Issue
    • Each call to spWeb.Lists.TryGetList(libName) took 13 seconds to process since any access to the Lists collection returns the metadata for all lists in the spweb.
    Resolution
    • Had to recode the solution to access the libraries using the URL rather than the list name, resulting in sub-second processing. spWeb.GetList(listURL)

    List Template Event Receiver Bug

    Scenario
    • You have an event receiver enabled on a specific list via the Receivers ListUrl attribute.
    Issue
    • If you make a List Template of a list that has been mapped to an event receiver, new lists created from that list template will have the event receiver attached to it regardless of the new URL.
    Resolution
    • Use SharePoint Manager to fix this or disable the event receiver before making the template.

    Wednesday, June 19, 2013

    Database to SharePoint List Synchronization Tools

    MS: Out of the box
    Third Party COTS Synchronization

    Tuesday, June 11, 2013

    BCS BDC external data lookup field migration

    Scenario
    • You want to programmatically set an External Data lookup field
      • Ex: Migrating data into a SharePoint list or library
    Issue
    • In this case, we used Idera / Metalogix Migration Manager, which does not support External Data fields, nor do they plan on supporting it in the near future
      • This is likely due to the fact that they offer a client only (non-server deployed solution) and haven't figured out how to do this using the remote content deployment APIs
    • The result was that the external data field only displayed correctly in the View Item form and did not populate in the Edit item form or any of the related/projected fields in the view.
    Resolution
    • Luckily I did have access to deploy a server solution, so I developed the following web part to handle the migration
      • If you are using Office 365 or don't have this access then you will need to develop your own solution or need to use a data synchronization solution instead (several vendors make these)
    • In order for this solution to work, you need to add a temporary column to the list that will store the IDs of the field you wish to migrate.  Note that this is not necessarily the display name.
      • In our case we migrated the ID column to a list column named SourceId, ran the tool, then deleted the SourceId column.
    • I utilized code from StackExchange and Jaspers' Weblog along with some forum posts, converting all to VB.Net for aesthetics
    • Download the code
      • The wsp solution file is located in the \SetExternalDataWebPart\bin\Release folder
      • You must enable the feature at the site collection level and add the web part to a page in the subsite that contains the list. 
      • In my test environment this tool updated 25 records every 10 seconds.
    • Notes
      • I found that in addition to setting the display name you also need to set the RelatedField to the BDCIdentity to get the correct value to display in the edit form and to be updateable via the refresh icon.
    // Set the BCS field itself (Display Value)
    listItem[dataField.Id] = dtBDCData.Rows[0][dataField.BdcFieldName].ToString();
    // Set the related field to the BDC Identity
    listItem[dataField.RelatedField] = dtBDCData.Rows[0]["BdcIdentity"].ToString();
    • Some other tips:
      • I had to use the RevertToSelf (BDC Identity) connection to get the refresh to function
      • I did not need to run with elevated or allowunsafeupdates except when debugging permissions.
    • Updated release info:
      • 6/27/2013
        • Added list ID range support to split copies into smaller chunks
          • Uses an SPQuery on ID field.
        • Added refresh interval for regular mid-copy status updates
          • These are actually just auto post backs using an asp.net timer control
      • 7/5/2013
        • Fixed refresh bug

    Tuesday, May 28, 2013

    Every SharePoint Team Site should have a OneNote notebook

    Update:  Office 365 and SharePoint now include a OneNote notebook in every Team Site.  Thank you Microsoft for listening!

    In my experience, any "Team Site" should have a document library containing a OneNote team notebook.  My premise is that since a team site is typically created for collaboration, a team notebook is likely the best tool for those needs.  Team sites gutted and used as the base for a custom solution would no longer count towards this premise.  I would also consider Evernote or similar notebook tools as decent alternatives, albeit not as fully featured or integrated.

    Windows 8/10 Tip 
    Make the desktop version of OneNote the default (Not the Metro version) to get the most features

    OneNote 2016 and Office 365 new features

    OneNote Notebook features
    • Continuous Save. No Save Button
    • Automatic track changes / version history
    • Automatic synchronization and offline editing
      • Sync Now (Shift+F9) is an option to refresh quicker when collaborating
    • Simultaneous editing (changes highlighted)
    • Windows-Shift-N desktop shortcut or right click via the control panel
      • Also the Windows-N new side note and Windows-S screen clipping shortcuts
      • Other than Copy/Paste, these should be your most commonly used keyboard shortcuts
    • 1-4 click left/top/right navigation (can go deeper at the section level)
    • Recent notebooks are easily accessible via the Notebook Pane
      • Notebooks are available on the Notebooks Pane on the left nav every time you open OneNote until you remove (Close) the notebook
      • Notebooks can be renamed uniquely to that machine and user
        • Notebook contents however are synchronized across machines and users
      • OneDrive/OneNote.Com/SharePoint/O365 will also maintain a separate list of your recently used notebooks across machines
    • Audio (and video) recording with note taking time stamps
      • Notes taken at any time during the recording can replay the recording at the appropriate time
    • Mobile device support
    • Embedded documents
    • Screen clip tool (Windows-S or Insert screen clip from note page)
    • Embedded links (Linked Web Notes)
      • If researching using a browser, notes taken in OneNote will automatically embed the related URL
      • Copying, pasting, and screenshots will also include the current address from the browser
      • Also works when viewing other OneNote notebooks, PowerPoint, or Word documents
    • Drawing/tablet support (Ink to Text, Ink to Math)
    • Math (Trig/Calculus support )
    • Linked meeting notes from Outlook invitation for quickly accessing meeting notes for scheduled meetings
    • Free form layouts, markups, and drawings
      • Text, drawings, images, etc. can be inserted anywhere on the note page
      • Use to markup a screenshot or document print
    • Dock to desktop and full screen features
      • Docks to side of screen displacing the desktop so that you can take notes while demoing or working
      • Full screen mode removes the notebook navigation and menu items
    • Save to SharePoint or OneNote Online (OneDrive)
      • Notebook sections and pages are saved as folders and files within the document library, so don't be surprised if you see this in explorer view
    • Print to OneNote
      • Quickly markup or take notes on any document source
      • OneNote installs a virtual printer driver on your machine
    • Web based versions of OneNote
    • Share pages and notebooks via Email or Hyperlink (to facilitate notebook adoption)
    • MindMapping Source (Not really specific to OneNote but a nice use)
      • MindMaps are just graphical bulleted lists.  Make the bulleted list in OneNote and then copy the list to your favorite MindMapping tool.  This way you can collaborate with others who don't know or own the MM tool and you can look cool demoing the info.  Note that my whole blog could be converted into a giant mind map. :)
    Additional Features with OneTastic
    • Macros
      • Macroland: prebuilt macros
    • OneCalendar
      • See your notes by date in a calendar
    • Image utilities
      • Crop/rotate images and select OCR'd text
    • Custom styles
      • Like MS Word styles
    • Favorites and pin desktop shortcuts
    When not to use OneNote
    • Final published or printable document
    • Blogging
      • Use Windows Live Writer instead (send to blog is supported but not as good)
      • Drafts in OneNote are ok
    • Heavily formatted content or page oriented layout
      • This is better done in Publisher or Word
      • When copy/pasting or sending to MS Word, bullets may need to be reset and other formatting corrected
        • Highlight the bulleted list and then double click the bullet icon to fix the lists in MS Word
    • Diagramming or presentations
      • Use Visio or PowerPoint
      • Quick hand drawings or draft object drawings are ok
    • Spreadsheets
      • Use SharePoint lists or Excel and embed a link in OneNote
    • Dynamic/sortable/filterable lists, data, or documents
      • Use SharePoint

    Monday, May 13, 2013

    Projected Field in View Item Form

    Scenario
    • You are using Projected Fields (a.k.a. additional columns) from a lookup column in a list or library. 
      • This may be a standard lookup column or a BCS External Data column.
    • You would like these fields to show up on the list/library display (View Item) form.
    Issue
    • Normally you will only see projected fields in list views configured to display these columns.  For some reason, MS did not include them by default on the display form.
    Resolution
    • Add these fields below the standard item form.
      • The form will continue to be dynamic since the standard Data Form Web Part is still used for all other fields
        • Example: A new column added to the list will automatically show up on this customized display form.
    Steps
    • Create a New Form in SharePoint Designer on the appropriate list/library.
      clip_image001
    • Set the File Name to "DispFormWithAdditionalFields", Type to Display item form, and set as default
      clip_image002
    • Temporarily Insert a Display Item Form in the div Below the existing content
    • This will populate the Data Source Details window. Open this window if not already visible. Data view Tools (ribbon) / Options / Data Source Details (Data section)
      clip_image003
    • Right click on the Projected Field you wish to display, right click it, then select Copy Item XPath
      clip_image004
    • Now delete the temporary Display Item Form. This was just used to populate the Data Source Details window.
    • Insert a SharePoint ListItemProperty control (Insert / Controls / SharePoint) at the same location
      clip_image005
    • Right click the control and edit properties.
    • In the Tag Properties window Set the Property property. :)
      • Paste the XPATH copied earlier and delete everything up to the @ sign
        • /dsQueryResponse/Rows/Row/@Exam_x0020_Number_x003a__x0020_Company_Name
        • Change to: Exam_x0020_Number_x003a__x0020_Company_Name
    • Add a column header above or to the left of the new field.
    • Save and Preview in Browser
      clip_image006
      (names removed in image)
    • Enjoy!

    Wednesday, May 8, 2013

    SharePoint Migration Tools (Incomplete Article)

    Feature List
    1. Term Stores / Enterprise Keywords
    2. Site Content Types and Site Columns (Taxonomy)
    3. Site Comparison (Differences)
    4. Version History
    5. Maintain modified/created metadata
    6. Metadata bulk editor
    7. Utilize Web Services (No server installs)
    8. Lists and Libraries
    9. Permissions
    10. Users and Groups
    11. SharePoint Designer List and Library workflows
    12. SharePoint Designer Reusable and Site workflows
    13. Flatten folder hierarchy
    14. Office properties to SharePoint properties

    Data and file transfer to SharePoint from the following systems:

    SharePoint: Prior Version, Online (Office 365), or Farm to Farm
    • Idera: SharePoint Migration Suite
      • 2003 - present, SharePoint Online
      • Features: 1, 2, 3, 4, 5?, 6, 7, 8, 9?, 10?, 11?, 12?, 13?, 14?
    • Metalogix
    • AvePoint
    • ShareGate: Migration & Classification
      • Features:  1, 5, 6, 7, 13, 14
        • *1 Features: 2, 8, 9, 10, 11, 12
      • Pricing (11/2012) - Unlimited data - Migration user license
        • $695 for 1 user, $1,295 for *1 Features
        • $4k for 25 users, $4,995 for *1 Features
    OpenText Hummingbird DM or EDOCs DM (part of Enterprise)
    EMC Documentum
    File System

    Sunday, December 16, 2012

    Pandora on Xbox 360

    Scenario
    • You want to stream Pandora internet radio from your Xbox 360
    Issue
    • Pandora has not yet released an Xbox 360 app
    Resolution
    • Download the internet explorer app and browse to Pandora.com
    • I highly recommend using Xbox glass to navigate and fill out your Pandora account information

    Monday, December 3, 2012

    Microsoft Surface / Window RT missing Bluetooth DUN support

    • No Bluetooth DUN (Dial Up Networking)
      • BthModem is not supported by the Microsoft Bluetooth Stack
      • This means standard Bluetooth Dial Up Networking is not available
      • If you have a mobile phone, you must use a USB or WiFi tether unless PDAnet, FoxFI, Tether.com, or similar partner develops a custom driver specifically for these devices

    Cloud Hosted Dev, Test, Training, and Demo environments

    This article is in progress.  The purpose is to identify and compare preconfigured cloud hosted virtualized development, testing, training, and demonstration hosting providers.

    Features
    1. Preconfigured Servers (ex: Preloaded SharePoint Server)
      1. Licenses Included
      2. BYOL (Bring your own licenses)
    2. Automatic suspend and resume
    3. Clone VMs
    4. Snapshots
    5. VM Sharing (transfer your VM to a team member's account)
    6. Export VM (for use locally)
    7. Public IP or URL
    8. VPN Tunnel
    9. Scalability
    Pricing Considerations
    1. Simultaneous users
    2. Processing or Usage time
    3. CPUs
    4. Bandwidth
    5. Per VM
    6. Disk usage
    7. RAM
    8. Public IP or URL
    Hosting Providers
    • CloudShare
      • ProPlus (8GB RAM, 300GB Disk for $60/month)
        • Features: 1.1, 2, 3, 4, 5, 6?, 7*
          • 6?: More difficult to request this since the licenses are included
          • 7*: Public URL redirector.  Unreliable in my experience.  May not work if the machine was auto-suspended.
        • Performance: Lackluster.  Takes 5 to 10 seconds to load some standard pages.  Can be time consuming to wait for servers to resume from suspend (3-4 times per day).  Limited CPU allocation.
    • Skytap
      • Features: 1.2*, 2, 3, 4, 5, 6, 7, 8, 9
      • 1.2*: These templates are not provisioned as well as CloudShare.  Recommend bringing your own VM as well as licenses.
      • Performance: Untested.

    Other Articles:

    Thursday, November 29, 2012

    SharePoint Folders and Document Set Best Practices

    The general consensus is to move away from folders and instead convert the taxonomy to metadata fields or convert to sites and libraries.  This is typically hardest to do when migrating from a file system into SharePoint.  If you do decide to do this, make sure to disable folder creation at the library level.  This won't stop explorer view from creating folders, but does remove it in-browser.

    Users typically want to use folders for navigation.  This is usually due to a lack of proper site structure, navigation, views, search, and metadata.  Grouping within a view can be used to simulate folder based navigation and help with user adoption.

    There are plenty of articles on how folders are bad, so I'll just list the main justifications for using them and possible workarounds.  If you must use folders, consider using document sets instead (see document set features below)

    If you do want to use folders it should be for one of the following concrete reasons:
    • Different security but the files should appear in the same views
      • If they don't need to be viewed together, move them to new libraries
      • Even if they do, consider a third party library rollup / library collection web part instead
        • This would allow you to view multiple libraries in one view
    • Explorer view usage (if explorer view is the primary mechanism for working with files)
      • This is not recommended except in bulk document management scenarios
      • Note that explorer view works with doc sets and separate libraries as well and these should be preferred over folders
    • Document Set feature usage 
      • Doc sets are library root level folders with advanced features
      • They cannot be nested - This is a good thing
      • Features:
        • Custom page for viewing/managing the grouped documents
        • Versioning multiple files in a group
        • Configure metadata for a group of documents simultaneously
        • Running a workflow against a group of documents
        • Preload several documents as a single group
    • Email enabled libraries
    • Too many groupings to manage
      • Consider a keyword taxonomy field, lookup, choice with add item enabled, or single line of text metadata field instead

    Friday, November 23, 2012

    Windows 8 - Android Bluetooth Tether

    Scenario
    • You are tethering an Android phone using the free FoxFi or PDANet Bluetooth dial up modem
    • You have already installed the software on your computer and on your phone.
    Issue
    • The simple Bluetooth connect button is not available from the Bluetooth device screen as it was in Windows 7
    Resolution
    • You must connect as a Dial up connection and specify "*99#" as the phone number
      • First start the FoxFi or PDANet Bluetooth app from your phone
      • Go to your Networks settings (Mouse: Bottom right corner+up/settings/internet access/dial-up-connection)
      • Enter in *99# in the phone number, ensure your phone is selected as the device, and select connect
    (Idea From: http://unlock4modem.blogspot.com/2012/08/access-internet-via-mobile-bluetooth-on_19.html)

    Monday, November 5, 2012

    MS SharePoint Conference 2012

    Entry Sponsored by:
    http://www.esgnetwork.com/
    Everest Solutions Group
    Business Strategy, Application Development, Mobile, and Portal/Web Design!


    I'll be attending the SharePoint Conference 2012.  Sunday the 11th through Thursday the 15th.  If you plan to be there and would like to meet up, please reply here, on Facebook, or on LinkedIn.  I'll be staying at the Vdara (City Center) Sunday night and the rest at the Aria (City Center). 
    Note: I used Priceline Express deal for Strip Vicinity: South.  Buy Sunday separately since the other nights are much cheaper.

    Itinerary (Updated with session notes)
    • Sunday Night
      • 3:20 - Arrive
      • 6:00 - Registration
    • Monday
      • 8:00 - Breakfast
      • 8:30 – Keynote (SharePoint 2013 New Features)
        • Social Features
          • @ and # tagging
          • inline video
        • ECM Features
          • Drag/Drop in browser
          • Preview pane
          • Integrated social conversations
        • Yammer
          • Button integrated into list/library Ribbon
          • Enterprise graph (Open Graph)
            • Conversations about the item
          • Mobile Device
          • Included with Office 365
          • Free version and a discounted paid version available
          • Nationwide case study (Spot)
          • ??? Not sure how this deviates from the standard SharePoint 2013 social
        • Search, Web Publishing, Web Content Management - Richard Riley
          • Search
            • Fast Included
            • Previous results intellisense in search box
            • Results block
              • ??? – Is this different than Keywords/Synonyms???
          • Web Publishing
            • Dreamweaver (other editor) support
              • Snippit editor in browser
              • Copy the webpart code as a snippit directly into the HTML
            • Content search webpart (Amazon product like display using a SharePoint Query)
          • eDiscovery
            • In-Place holds
              • Includes query features
          • Outlook integration
            • SharePoint Inbox, Documents, People, and Events folders in Outlook
        • Infrastructure/Foundation
          • Cloud (MS geo-redundant Datacenters are the Best)
          • 40% more efficient bandwith
          • 4x image compression
          • 50% reduction in server-side latency
          • Version history only stores changes now (used to store copies)
          • Upgrade path
            • Backward compatible UI mode (Visual Upgrade for 2013)
            • Health check (Upgrade validation)
        • Development
          • oAuth security to Office 365
          • Deployment into the cloud
            • Seamless deployment to Azure and Office 365
          • Cloud app model – reseller opportunities
      • 11:00 – What’s new for developers in Office 2013 and SharePoint 2013 (Keenan Newton, Cyrielle Simeone)
        • Office HTML and JavaScript apps utilizing web services can be embedded in Excel (and other Office apps)
          • 1 app for Word, Excel, Access, etc.
        • Mail apps
          • Outlook/Exchange
          • Deployed via exchange rules
          • ??? - Does this work with Office 365 Exchange
        • MS Access 2013 apps in SharePoint
          • Can now use SQL server back-end within SharePoint
        • Office and SharePoint Store
        • “Napa” Office 365 Development Tools
          • Javascript and Asp.Net  web based (Azure) coding interface
          • Option to open in Visual Studio
        • Visual Studio 2012
          • Remote SharePoint debugging and coding on Windows 7/8
      • 12:15 – Lunch
      • 2:00 – What’s new with Enterprise Content Management in SharePoint 2013 (Tejas Mehta, Jim Masson)
        • Hash tags – integrated with managed metadata
        • Profile – docs I’m following, suggested docs
        • Missing notes here
      • 3:45 – Enterprise Social 101 (Jared Spataro, Adam Pisoni, Pavan Tapadia, James Patterson, Jessica Halper, Lauren Antonoff)
        • Yammer is going away.  There will be 1 product (SharePoint).  This explains why they demoed the 2013 social features, but only pieces of the Yammer offering during the keynote.
        • Use Yammer for 2010 now and there will be an upgrade path to 2013
        • My take: MS basically bought Yammer for the staff and customer base
      • 6:00 – LoungeSPC  - House of Blues
      • 7:00 - Dinner
    • Tuesday
      • 8:30 – Breakfast
      • 9:00 – Overview of ECM for teams with Site Mailboxes (Adam Harmetz, Alfons Staerk)
        • Can drop personal emails into this mailbox for team
        • Site Mailbox Document Library folders
          • Can forward a link of the document from the team mailbox
            • Doesn’t use Document ID feature.  Uses a static link
          • Inbound email only.
          • Doesn’t display columns within Outlook
          • Same functionality as WebDav, browser drag/drop
          • Uses the default content type
          • OWA interface will not include (you must go to the SharePoint site)
          • SharePoint search will not include the emails, Outlook search will not include the documents
          • Exchange stores site mailbox content – no duplicate data storage
          • SharePoint manages lifecycle policy for the site mailbox
        • eDiscovery support
        • Site Closure and Deletion
          • Policies to close and delete sites automatically based on site created date
        • Add the mailbox via a SharePoint App
        • Exchange 2013 must be configured to support SharePoint 2013
          • If upgrading, you will need to migrate user mailboxes to Exchange 2013
          • Users would need Outlook 2013 to view the site mailboxes in the client
          • No hybrid Exchange support
      • 10:30 – Developing apps for SharePoint 2013 with Visual Studio 2012 (Mike Morton, Sean Laberee)
        • New Options
          • Full Page
          • App Parts (hosted web parts)
          • UI command extensions (UI custom actions)
        • Remote Development
        • Build a dev site using the dev site template or else use http://dev.office.com
        • Office enabled app for SharePoint
          • Office app embedded in a SharePoint document library default template
        • “Appetize” an existing web app
          • Demoed taking a standard MVC 4 web application,
        • oAuth via ACS (STS)
        • High-Trust apps (In-house hosted apps)
          • Use OAuth via Certificates
          • Each web app has to have a certificate
          • Internal use apps (no app store integration)
          • Open SOAP endpoints for app event and remote event receiver via your firewall
            • Utilize service bus (white-paper coming)
          • Remote event receivers with real-time debugging within Visual Studio
          • Intelli-trace (step back during debugging)
      • 11:45 – Lunch
      • 1:45 – People Search and Extensibility in SharePoint 2013 (Mikael Svenson, Sana Khan)
        • User Profiles
          • Now can relate an external source (via BCS) to a user’s profile to import related propertie
          • External Content Types now configured in Visual Studio instead of SharePoint designer
        • User context for customizing enterprise search
          • Prioritized by
            • Organizational structure distance
            • Who y0u follow
            • Sites you follow
          • Search Content Enrichment
      • 3:15 - Claims Based Authentication – Migrating to the new SharePoint 2013 Identity Model (Israel Vega, Nathan Miller)
        • Pushing claims (Classic is depreciated but supported)
        • Flow
          • Migrate web applications
            • Update to use Claims
            • Update web application policy
        • Classic to Classic (Depreciated)
          • Use PowerShell
          • Warning in health rule
          • No Office Web Apps (preview) in classic mode
        • Classic to Windows Claims (OOTB Content and user migration)
          • Clean up: "Last Modified By” is not populated by default
          • Custom code utilizing “WindowsPrinciple” in code will no longer work when switching to claims.  Change to “UserPrinciple”
          • See slides for PowerShell code to migrate users
          • Create the Portal SuperUser and SuperReader accounts (PowerShell code provided in slide deck)
          • Impersonation and other information on IWF and C2WTS
        • Custom Claims migration
        • Windows Claims to SAML (Federated)
        • SAML to SAML (Federated)
          • Inventory the claims the encodings
          • Sync the claims encodings
          • Migrate the trusted provider
          • Migrate/update the provider realms if needed
          • Migrate content DB’s
          • Add web policies
          • Test, test, test
      • 7:00 - Attendee Party –(Bon Jovi)
    • Wednesday
      • 8:30 – Breakfast
      • 9:00 – SharePoint 2013 Upgrade Deep Dive (Sean Livingston)
        • Upgrade site collections via PowerShell commands or individually per site collection (with or without an evaluation site)
          • Can queue up multiple site collections for synchronous processing
        • Self-service site collection upgrade option
        • Evaluation site collections
          • Size quota option
          • Expiration: Default is 30 days
            • No expiration extensions in the UI, requires PowerShell
          • Entered in the Site Map
          • Linked to from original site
            • Only 1 eval site per original
          • Eval site creation is scheduled as a timer job
        • Solutions
          • Install-SpSolution CompatibilityLevel
            • blank – Will install based on codebase tags (likely 14 only)
            • 14, 15 – Both as same codebase
            • 14 – 2010 only
            • 15 – 2013 only
          • Does not support partially trusted code solutions
            • Bin directory requires full trust install
        • Claims
          • Existing 2010 claims providers should work fine
            • Make sure provider names match
          • Claims Auth is now recommended
        • Farm Services
          • 2010 content farm can consume 2013 farm services
      • 10:30 - Advanded Dashboard Creation using Excel, Excel Services, PerformancPoint and Apps for Office (Kevin Donovan)
        • Stack
          • SQl Server – SSRS, SSAS
          • Excel – PowerView, PowerPivot, Excel Services
          • SharePoint – PerformancePoint
        • Office 365
          • No PerformancePoint services
          • No data refresh
          • MS is working on implementing
        • Excel
          • Pivot Table
          • Recommended Charts
            • Data slicing (timeline)
          • Apps for Office
        • Excel Services
          • Field List/ Field Well
          • EffectiveUsername
            • Allows delegated credentials via a username property Analysis Services queries using this user instead of process identity
            • Less need to use Unattended Service Account
          • Automatic Target App Creation
          • BI Server
            • Excel services must be configured to use SSAS server(s) for processing
          • NOV2
          • Named object view
        • SQL
          • Import to SSAS from PowerPivot using SSDT (SQL Server Data Tools / New BIDS)
        • PerformancePoint
          • Themes
          • BICenter (Dashboard Designer in the ribbon)
          • Filter Enhancements
          • Filter Search
          • EffectiveUsername
          • CustomTargetApplications
            • Share target applications between Excel Services and PerformancePoint
          • Server-side Migration
          • Dashboard Designer Authentication
      • 11:45 - Lunch
      • 1:45 - Client Side Rendering in SharePoint Server 2013 (Kirk Evans)
        • No notes
      • 3:15 – Security Trimming for Search in SharePoint 2013 (Morgan Larsson – Senior PM, Sveinar Rasmussen – Principal SDE)
        • No notes
      • 7:00 - Cirque: Ka at MGM Grand (Category D)
    • Thursday
      • 8:30 – Breakfast
      • 10:30 – Deep Dive on Managing Enterprise Content Types At Scale (Chris Bortlik, Scott Jamison)
        • General Content Type overview
        • General Column overview
        • Column Usage Report (2010 and 2013)
          • Will distribute after the conference
        • Content Type Syndication Hub
          • Pros
            • OOB
            • End User management
            • Single source for content types
          • Cons
            • Lack of change mgmt
            • Coordination via dedicated site collection
            • Does not work for hybrids
        • Left at this point since nothing new was covered
      • 12:00 – Surfacing LOB Data in SharePoint 2013 using BCS and Search (Shannon Bray)
        • Same as 2010
      • 1:30 - Lunch
      • 3:25 – Flight Homehttp://www.esgnetwork.com

    Friday, October 5, 2012

    MS Access SharePoint Read Only Linked Library

    Scenario
    • You are getting external data from a SharePoint library with Microsoft Access and wish to edit, insert, update, or delete the records
    • The library requires approval of submitted documents
    Issue
    • You receive any of the following errors due to the list/library being read-only
      • "Cannot update. Database or object is read-only."
      • "This Recordset is not updateable."
      • etc.
    • You may also receive the "The setting you entered isn't valid for this property." 
      • You can ignore this one as it is irrelevant to this issue and will not prevent updating the list/library.
    Resolution
    • Disable the approval requirement in the document library versioning settings. Re-enable when done.
      • This seems to auto-approve any that are in progress. 
      • In addition, the Approval Status column may disappear from configured views.
    • Side note: For records with a populated person/group column, MS Access may hang during an update (via query or linked list manual update).  Removing and re-adding the users cleared this up for me.  And yes, this was strange.
    • The following scenario also does not affect the read-only status:
      • The list or library you are accessing included a managed metadata field at some point in time

        You can verify this by viewing the linked library in Design View in MSAccess and looking for a column named "Taxonomy Catch All Column". If it exists, then this list had a Term Store (Managed Metadata) column associated with it. Ex: Enterprise Keywords