The workflow failed to start due to an internal error

Yeah, that error.  Like an STD, its the one you hope you don't get! There are many reasons this error can creep up on you.  The most common being that the content types are corrupted and cannot be assigned to the task and history lists.

There are several blog posts that try to help here:

  • Uninstall and re-install the workflow features
    • In essense this should be the fall back, as it should remove the content types and put them back – as I found out, this didn't work in my case
  • If you are building your own workflow, ensure that your dlls have been loaded and the assembly manifests match up 
  • Make sure your Infopath forms are in the right places and haven't been modified
    • Typically, the forms are loaded up at the site collection under (_Catalogs/wfpub)
  • Make sure your web.config file was not corrupted and all the workflow entries exist (System.Workflow.ComponentModel.WorkflowCompiler)

So what was special in my case that none of these worked?  A simple answer, an orphaned web.  We were doing some migration work and we started to move a very large web from one web application to another.  We stopped the process halfway through, then we deleted the failed web.  Unfortunately, we didn't realize that this created the orphaned web.  As part of being orphaned, the transaction that does the deleting doesn't complete all its tasks and you are left with residual in the database. 

How did I reach this conclusion?  I tested workflows in another site collection in the same web application, they worked (ruling out that corruption occured via cumulative updates and feature corruption).  I tested the workflows in two different webs in the same site collection, both failed.  I tested an import on a different QA server and workflows still worked (but being that I didn't replicate what we did exactly last time, stop halfway, not a reliable test).  I kept at it and re-fired the workflow and saw that it would execute on the second or third execution, but it wouldn't create any tasks.  That lead me to believe that there was something wrong with the task list.  I looked at the working task list and saw that the content types DID exist on the list, but in the broken site, they did not.  I decided to manually add the content type via powershell and bingo…a helpful error ("Object reference not found").  Doing some searching I ran across this post:

http://social.technet.microsoft.com/Forums/zh/sharepoint2010programming/thread/dc211298-75b4-4c1a-8c95-acf6d610ed6f

Each content type has to have a field.  Looking at the content types, they didn't have any fields!  How weird right?  That made me realize that the content types were corrupt.  Therefore, I needed to delete all the content types and parents that didn't have fields.  This started at Publishing Approval Workflow Task (en-US)->SharePoint Server Workflow Task->Workflow Task.  Workflow task being one before the system content type "Task".  If you lose that one, you are screwed!

Luckily we didn't have many workflows so I decided to delete all the workflow content types (from all Task lists, which means the tasks must be deleted too).  I was able to delete the first two easily (turn off the features), but when I went to delete "Workflow Task" it would not delete as it was part of a feature (that meant chaning the bit column in the database for the content type)!  I turned off the feature (695b6570-a48b-4a8e-8ea5-26ea7fc1d162), but it still would not delete as it was being used!  So using the handly SPContentTypeUsage class (as blogged here – http://sharepoint.mindsharpblogs.com/NancyB/archive/2011/01/17/Finding-children-the-easy-way-(Content-Type-children,-that-is).aspx).  I was able to find the usage of the content type.  To my amazement…a deleted/orphaned web was showing. 

Once a web is deleted, you have no visibility to it via the object model.  That means a trip to the database tables was the next step.  Remember, the residual I mentioned earlier?   In our case, the ContentType and ContentTypeUsage tables had yuky residual in them.  I had to manually remove the ContentTypeUsage records, then manually delete the ContentType row for the orphaned web.

After that i was able to remove the ContentType via the object model.  I then reactived the workflow features and my problem was solved!  All the content types show fields for them now and all workflows work as expected!

Enjoy,
Chris

Oracle Portal 10g to SharePoint Migration

Do you have Oracle Portal 10g?  Want to move to SharePoint with full fidelity?  I have scripts that will do exactly that!  This would include:

  • Portal Groups
  • All pages with all "things" (URLs, content, files)
  • Files with versions and comments
  • Workflows
  • Permissions

Contact me at:
chris@architectingconnectedsystems.com

I'd be happy to chat with you about moving to SharePoint 2010!

Oh, and here are some interesting facts about Oracle Portal versus SharePoint:

  • Web part zones can have web part zones (these are called regions and subregions in Portal) 
  • Workflows have steps for approvals (whereas SharePoint an approval is just a single step)
  • Groups are global in Oracle Portal (SharePoint groups are limited to site collections)
  • Oracle uses a concept of "things".  Everything is one and everything can have other "things".  This is *super* powerful notion and means that a single page can contain "things", where a thing can be a URL, a file, content, etc.  SharePoint pages can only have web parts on them.
  • Each "thing" on the page can have security for it, SharePoint doesn't let you do this
  • Each "thing" has a version (no matter what it is), SharePoint doesn't have this
  • Each "thing" on a page can have a workflow.  SharePoint workflows are tied to list items, you can't workflow web parts
  • Each "thing" can be optionally HIDDEN.   SharePoint doesn't have a notion of hidden.  The closest you can get is by creating a second list/library and setting permissions.
  • Oracle has a built in notion of shortcut links (a GUID that takes you to the page you want to hit), SharePoint doesn't

So what saves SharePoint at the end of the day?

  • Office Web Apps is the savior, you can't do fancy Office Document manipulation in Oracle
  • Oracle Portal is *much* more expensive than SharePoint

Chris

1 Year Anniversary Tribute – eBay upgrade video

As a tribute to the 1-year anniversary of the start of the eBay upgrade project, I thought I would share the video I created to show at our celebration party in San Jose.  It is a great video, and shows how much fun we had (and you should too) when we did the upgrade.  The team deserves a tremendous amout of credit for the work and effort they put in…so here it is:

http://youtu.be/EnK2c_lntOY

As a run down, here is what occurs in the video:

  • The SharePoint odessey – the 2001 to 2010 evolution.  When the monkey discovers the monolith and evolves.  Simiarly, eBay's discovery of SharePoint 2010 starts with a monolithic-white board (its only appropriate that we use Richard Struass's Also sprach Zarathustra to show this)
  • You see that it really is a love of "SharePoint" that progresses the joining of all parties
  • As we drive through the initial requirements (found and un-found), you will realize that this project was done in 3.5 months (when similar quotes were at 14 months at 4x the cost).  This drives the selection of Queen's…"Under Pressure"
  • At one point you will see Ramin and I on the ground with our hands in the air…it was a fun moment as we were not really knowing what was going to happen…
  • You will see photos of our countdown timer of the night we went live (we had an upgrade window of the weekend to finish the upgrade successfully).  It slowly winds down until the "GO-NOGO Moment"
  • As the pictures are displayed, you will see various moments over the 3.5 months of us working intent-ly getting the job done
  • Not everything went as planned and hence you see the "GO-NOGO" which occured at least 4-5 times (some elements include NDR64 discoveries and the infamous Search ResultsProvider that has claimed countless develpers…
  • Katy Perry's song of "Firework" is perfect for our dispay of the team members that worked so very hard to make the upgrade happen and thusly are amazingly bright and wonderful people that randomly came together to accomplish something amazing (NOTE: there are moments in the song lyrics that relate to hidden moments)
  • Let me be the first to say that eBay has an amazing NetOps team that just kicks butt (Kenny Cheng and Ken MacIntosh), they saved our a$$ a few times…
  • You will see a snapshot of a fortune cookie that "I" got…it was the week of the upgrade and it said "Your hard work is about to pay off", it was the best fortune EVER!
  • There were some times when we had some pretty "interesting" dinners…hence the snapshot of the menu…
  • The video ends with 00:00:00 and pictures of the eBay intranet running SharePoint 2010 and our SharePoint Conference 2011 session – "How eBay successfully upgrade their intranet to 2010"

Enjoy!
Chris

Fixing: Action 4.0.23.0 of Microsoft.SharePoint.Upgrade.SPSiteWssSequence failed.

This was a tough error, THAT IS AN UPGRADE SHOWSTOPPER, that I ran into a few months ago.  Just now getting around to blogging it.  Here's the full error:

[powershell] [SPSiteWssSequence] [ERROR] [9/29/2011 12:02:27 PM]: Action 4.0.23.0 of Microsoft.SharePoint.Upgrade.SPSiteWssSequence failed.
[powershell] [SPSiteWssSequence] [ERROR] [9/29/2011 12:02:27 PM]: Inner Exception: Field name already exists.

The name used for this field is already used by another field in the list.  Select another name and try again.<nativehr>0x81020013</nativehr><nativestack></nativestack>
[powershell] [SPSiteWssSequence] [ERROR] [9/29/2011 12:02:27 PM]:    at Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateField(String bstrUrl, String bstrListName, String bstrXML)
   at Microsoft.SharePoint.Library.SPRequest.UpdateField(String bstrUrl, String bstrListName, String bstrXML)
[powershell] [SPSiteWssSequence] [ERROR] [9/29/2011 12:02:27 PM]: Exception: Field name already exists.

The name used for this field is already used by another field in the list.  Select another name and try again.
[powershell] [SPSiteWssSequence] [ERROR] [9/29/2011 12:02:27 PM]:    at Microsoft.SharePoint.SPGlobal.HandleComException(COMException comEx)
   at Microsoft.SharePoint.Library.SPRequest.UpdateField(String bstrUrl, String bstrListName, String bstrXML)
   at Microsoft.SharePoint.SPField.UpdateCore(Boolean bToggleSealed)
   at Microsoft.SharePoint.SPField.Update()
   at Microsoft.SharePoint.SPFieldIndexCollection.IndexOneField(Object field, Boolean bIndexed)
   at Microsoft.SharePoint.SPFieldIndexCollection.Add(SPField field)
   at Microsoft.SharePoint.Upgrade.RestoreWorkflowAndDatasourceLibraryPermissions.Upgrade()
   at Microsoft.SharePoint.Upgrade.SPActionSequence.Upgrade()

What causes this?  Diving into the upgrade code I find that it is obviously trying to add a column to a list.  But which one?  The hint was in the name of one of the methods – "RestoreWorkflowAndDatasourceLibraryPermissions".  Looking at this, it is checking for all task lists in each site that are setup for workflow.

I reran the code in powershell and eventually found the offending list:

foreach($web in $site.allwebs)

{

$ht = new-object system.collections.hashtable

foreach($list in $web.lists)

{

foreach($ct in $list.ContentTypes)

{

if ($ct.Id.IsCHildof([Microsoft.SHarePoint.SPBuiltInContentTYpeId]::WorkflowTask))

{

$ht.add($list.id, $list.id)

"Web:" + $web.TItle

"List: " + $list.Title

"Content Type:" + $ct.Name

} #end if

} #end ct

} #end list

foreach($id in $ht.values)

{

$l1 = $web.lists[$id]

#$g = new-object system.guid ([Microsoft.SHarePoint.SPBuiltInFieldId]::WorkflowInstanceID.tostring())

$g = new-object system.guid ("de8beacf-5505-47cd-80a6-aa44e7ffe2f4")

#$l1.FieldIndexes.delete($g);

$l1.FieldIndexes.add($list.fields[[Microsoft.SHarePoint.SPBuiltInFieldId]::WorkflowInstanceID]);

$l1.update()

#$g = new-object system.guid([Microsoft.SHarePoint.SPBuiltInFieldId]::Guid.tostring())

$g = new-object system.guid("ae069f25-3ac2-4256-b9c3-15dbc15da0e0")

#$l1.FieldIndexes.delete($g);

$l1.FieldIndexes.add($list.fields[[Microsoft.SHarePoint.SPBuiltInFieldId]::Guid]);

$l1.update() 

} #end hashtable

} #end web

What was the cause?   When you create a workflow, it asks for a task list. 
You can point the workflow at an existing task list or create a new one.  It seems that not only did the users create a workflow that pointed to an existing list, but that list in fact was the task list that the workflow was using for task tracking!!  This causes a loop in the upgrade code and hence the failure.

Fixing it requires deleting some of the fields that were added by the workflow.

Enjoy!

Chris


Adding "Add folder" to SharePoint 2010 document library views

A customer asked me if they could add a "Add Folder" to the document library list type in SharePoint 2010.  I said, "probably", but wasn't sure exactly how one might do it.  I dug in and found it!  The secret lies in the vwstyles.xsl file.  It is located in:

C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14TEMPLATELAYOUTSXSL

You will want to open the file and find the template called:

<xsl:template name="Freeform">

From there you should see some XSLT that is responsible for creating the "Add document" link.  Right above the variable declaraton"<xsl:variable name="Url">", you need to add a new one:

<xsl:variable name="FolderUrl">
<xsl:value-of select="$HttpVDir"/>/<xsl:value-of select="
$XmlDefinition/List/@title"/>/Forms/Upload.aspx?Type=1&amp;IsDlg=1&amp;List=<xsl:value-of select="$List"/>&amp;RootFolder=<xsl:value-of select="$XmlDefinition/List/@RootFolder"/>
</xsl:variable>

Then add a new table row below the current one that defines the "Add Document" link:

        <tr>
          <td class="ms-addnew" style=’padding-bottom: 3px’>
          <span style=’height:10px;width:10px;position:relative;display:inline-block;overflow:hidden;’ class=’s4-clust’><img src=’/_layouts/images/fgimg.png’ alt=” style=’left:-0px !important;top:-128px !important;position:absolute;’  /></span>
          <xsl:text disable-output-escaping="yes" ddwrt:nbsp-preserve="yes">&amp;nbsp;</xsl:text>
          <xsl:choose>
            <xsl:when test="
List/@TemplateType = '115'">
              <a class="ms-addnew" id="{$ID}-{$WPQ}"
                 href="{$Url}"
                 onclick="javascript:NewItem2(event, &quot;{$Url}&quot;);javascript:return false;"
                 target="_self">
                <xsl:value-of select="$AddNewText" />
              </a>
            </xsl:when>
            <xsl:otherwise>
              <a class="ms-addnew" id="{$ID}Folder"
                 href="{$FolderUrl}"
                 onclick="javascript:NewItem2(event, &quot;{$FolderUrl}&quot;);javascript:return false;"
                 target="_self">Add folder
              </a>
            </xsl:otherwise>
          </xsl:choose>
          </td>
        </tr>

BAM!  You now have a handly "Add folder" link at the bottom of the page instead of using the ribbon.  NOTE:  This change would need to be applied to all WFEs in the farm and you would need to re-check after every CU or Service Pack deployed.  Also, you will need to add some other logic to keep it from showing up in places you don't want it…I'll have to add this in a later update to this blog.

NOTE: Also keep in mind that this file is cached on its first load and an IISRESET is required in order to see any changes.

Enjoy!
Chris

 

CanUpgrade [Microsoft.SharePoint.Administration.SPIisWebSite] failed.

How do I always seem to be the guy finding this stuff is beyond me, but I'm always excited when I figure this stuff out…ok, was getting this error after trying to run the PSConfig after an upgrade to SP1 and December 2011 CU.

[OWSTIMER] [SPUpgradeSession] [INFO] [1/8/2012 1:48:44 PM]: SPWebApplication Name=SharePoint – xxx
[OWSTIMER] [SPUpgradeSession] [ERROR] [1/8/2012 1:48:44 PM]: CanUpgrade [Microsoft.SharePoint.Administration.SPIisWebSite] failed.
[OWSTIMER] [SPUpgradeSession] [INFO] [1/8/2012 1:48:44 PM]: SPWebApplication Name=SharePoint – xxx
[OWSTIMER] [SPUpgradeSession] [ERROR] [1/8/2012 1:48:44 PM]: Exception: The system cannot find the path specified.
[OWSTIMER] [SPUpgradeSession] [INFO] [1/8/2012 1:48:44 PM]: SPWebApplication Name=SharePoint – xxx
[OWSTIMER] [SPUpgradeSession] [ERROR] [1/8/2012 1:48:44 PM]:    at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
   at System.DirectoryServices.DirectoryEntry.Bind()
   at System.DirectoryServices.DirectoryEntry.get_AdsObject()
   at System.DirectoryServices.PropertyValueCollection.PopulateList()
   at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName)
   at System.DirectoryServices.PropertyCollection.get_Item(String propertyName)
   at Microsoft.SharePoint.Administration.SPIisVirtualDirectory.get_Path()
   at Microsoft.SharePoint.Administration.SPProvisioningAssistant.GetBuildVersionOnIisWebSite(Int32 iisInstanceId)
   at Microsoft.SharePoint.Upgrade.SPSequence.get_CanUpgrade()
   at Microsoft.SharePoint.Upgrade.SPUpgradeSession.CanUpgrade(Object o)

So what is causing this?  Using the handy reflector tool I went into the upgrade code and found the sequence that upgrades SPWebApplication objects.  This creates a list of all children objects that must be upgraded and then upgrades those objects one by one.  One of the children objects is the created or extended IIS web sites.  In order to check if these "CanUpgrade", it must look at the file in the IIS virtual directory "_vti_pvtuildversion.cnf".  If it can't find this file (the virtual path is deleted or missing), then the upgrade will stop for that web application and your upgrade is stuck in a weird state with this crappy error "Product / patch installation or server upgrade required"!

How do you fix?  You can try to add the directory back, but how do you know what the directory is that you need to add?  Funny thing, you can't find it unless you open up the SharePoint_Config database.  I will spare you the details and jump to the "supported" way of fixing this.  In Central administration you won't see the offending missing zone to delete it, therefore you must resort to powershell:

$webapp = get-spwebapplication "http://yourfailedurl"

foreach($setting in $webapp.iissettings.values)
{
$setting.path
}

foreach($zone in $webapp.iissettings.keys)
{
$z = $zone
}

$webapp.IisSettings.Remove("missingzone")
$webapp.update()

Rerun your PSconfig command, viola, you are back in business!!!

Enjoy!
Chris

SQL Azure supported tables/views

Here is a complete list of supported tablesviews in SQL Azure (11.0.1814.30):

sys.all_columns;
sys.all_objects;
sys.all_parameters;
sys.all_sql_modules;
sys.all_views;
sys.assemblies;
sys.assembly_types;
sys.CHECK_CONSTRAINTS;
sys.column_type_usages;
sys.columns;
sys.COLUMNS;
sys.computed_columns;
sys.database_permissions;
sys.database_role_members;
sys.databases;
sys.default_constraints;
sys.dm_exec_requests;
sys.dm_exec_sessions;
sys.dm_tran_active_transactions;
sys.dm_tran_database_transactions;
sys.dm_tran_locks;
sys.dm_tran_session_transactions;
sys.event_notification_event_types;
sys.event_notifications;
sys.events;
sys.foreign_key_columns;
sys.foreign_keys;
sys.identity_columns;
sys.index_columns;
sys.indexes;
sys.key_constraints;
sys.numbered_procedure_parameters;
sys.numbered_procedures;
sys.objects;
sys.parameters;
sys.plan_guides;
sys.procedures;
sys.schemas;
sys.spatial_index_tessellations;
sys.spatial_indexes;
sys.spatial_reference_systems;
sys.sql_expression_dependencies;
sys.sql_logins;
sys.sql_modules;
sys.stats;
sys.stats_columns;
sys.synonyms;
sys.syscharsets;
sys.syscolumns;
sys.syscursorrefs;
sys.syscursors;
sys.sysdatabases;
sys.syslanguages;
sys.sysobjects;
sys.sysreferences;
sys.system_columns;
sys.system_objects;
sys.system_parameters;
sys.system_sql_modules;
sys.system_views;
sys.systypes;
sys.sysusers;
sys.table_types;
sys.tables;
sys.trigger_event_types;
sys.trigger_events;
sys.triggers;
sys.types;
sys.views;

Unsupported tables:

sys.allocation_units;
sys.assembly_modules;
sys.assembly_references;
sys.asymmetric_keys;
sys.backup_devices;
sys.certificates;
sys.change_tracking_databases;
sys.change_tracking_tables;
sys.COLUMN_DOMAIN_USAGE;
sys.COLUMN_PRIVILEGES;
sys.column_xml_schema_collection_usages;
sys.configurations;
sys.CONSTRAINT_COLUMN_USAGE;
sys.CONSTRAINT_TABLE_USAGE;
sys.conversation_endpoints;
sys.conversation_groups;
sys.conversation_priorities;
sys.credentials;
sys.crypt_properties;
sys.cryptographic_providers;
sys.data_spaces;
sys.database_audit_specification_details;
sys.database_audit_specifications;
sys.database_files;
sys.database_mirroring;
sys.database_mirroring_endpoints;
sys.database_mirroring_witnesses;
sys.database_principal_aliases;
sys.database_principals;
sys.database_recovery_status;
sys.destination_data_spaces;
sys.dm_audit_actions;
sys.dm_audit_class_type_map;
sys.dm_broker_activated_tasks;
sys.dm_broker_connections;
sys.dm_broker_forwarded_messages;
sys.dm_broker_queue_monitors;
sys.dm_cdc_errors;
sys.dm_cdc_log_scan_sessions;
sys.dm_clr_appdomains;
sys.dm_clr_loaded_assemblies;
sys.dm_clr_properties;
sys.dm_clr_tasks;
sys.dm_cryptographic_provider_properties;
sys.dm_database_encryption_keys;
sys.dm_db_file_space_usage;
sys.dm_db_index_usage_stats;
sys.dm_db_mirroring_auto_page_repair;
sys.dm_db_mirroring_connections;
sys.dm_db_mirroring_past_actions;
sys.dm_db_missing_index_details;
sys.dm_db_missing_index_group_stats;
sys.dm_db_missing_index_groups;
sys.dm_db_partition_stats;
sys.dm_db_persisted_sku_features;
sys.dm_db_script_level;
sys.dm_db_session_space_usage;
sys.dm_db_task_space_usage;
sys.dm_exec_background_job_queue;
sys.dm_exec_background_job_queue_stats;
sys.dm_exec_cached_plans;
sys.dm_exec_connections;
sys.dm_exec_procedure_stats;
sys.dm_exec_query_memory_grants;
sys.dm_exec_query_optimizer_info;
sys.dm_exec_query_resource_semaphores;
sys.dm_exec_query_stats;
sys.dm_exec_query_transformation_stats;
sys.dm_exec_trigger_stats;
sys.dm_filestream_file_io_handles;
sys.dm_filestream_file_io_requests;
sys.dm_fts_active_catalogs;
sys.dm_fts_fdhosts;
sys.dm_fts_index_population;
sys.dm_fts_memory_buffers;
sys.dm_fts_memory_pools;
sys.dm_fts_outstanding_batches;
sys.dm_fts_population_ranges;
sys.dm_io_backup_tapes;
sys.dm_io_cluster_shared_drives;
sys.dm_io_pending_io_requests;
sys.dm_os_buffer_descriptors;
sys.dm_os_child_instances;
sys.dm_os_cluster_nodes;
sys.dm_os_dispatcher_pools;
sys.dm_os_dispatchers;
sys.dm_os_hosts;
sys.dm_os_latch_stats;
sys.dm_os_loaded_modules;
sys.dm_os_memory_allocations;
sys.dm_os_memory_brokers;
sys.dm_os_memory_cache_clock_hands;
sys.dm_os_memory_cache_counters;
sys.dm_os_memory_cache_entries;
sys.dm_os_memory_cache_hash_tables;
sys.dm_os_memory_clerks;
sys.dm_os_memory_node_access_stats;
sys.dm_os_memory_nodes;
sys.dm_os_memory_objects;
sys.dm_os_memory_pools;
sys.dm_os_nodes;
sys.dm_os_performance_counters;
sys.dm_os_process_memory;
sys.dm_os_ring_buffers;
sys.dm_os_schedulers;
sys.dm_os_spinlock_stats;
sys.dm_os_stacks;
sys.dm_os_sublatches;
sys.dm_os_sys_info;
sys.dm_os_sys_memory;
sys.dm_os_tasks;
sys.dm_os_threads;
sys.dm_os_virtual_address_dump;
sys.dm_os_wait_stats;
sys.dm_os_waiting_tasks;
sys.dm_os_worker_local_storage;
sys.dm_os_workers;
sys.dm_qn_subscriptions;
sys.dm_repl_articles;
sys.dm_repl_schemas;
sys.dm_repl_tranhash;
sys.dm_repl_traninfo;
sys.dm_resource_governor_configuration;
sys.dm_resource_governor_resource_pools;
sys.dm_resource_governor_workload_groups;
sys.dm_server_audit_status;
sys.dm_tran_active_snapshot_database_transactions;
sys.dm_tran_commit_table;
sys.dm_tran_current_snapshot;
sys.dm_tran_current_transaction;
sys.dm_tran_top_version_generators;
sys.dm_tran_transactions_snapshot;
sys.dm_tran_version_store;
sys.dm_xe_map_values;
sys.dm_xe_object_columns;
sys.dm_xe_objects;
sys.dm_xe_packages;
sys.dm_xe_session_event_actions;
sys.dm_xe_session_events;
sys.dm_xe_session_object_columns;
sys.dm_xe_session_targets;
sys.dm_xe_sessions;
sys.DOMAIN_CONSTRAINTS;
sys.DOMAINS;
sys.endpoint_webmethods;
sys.endpoints;
sys.extended_procedures;
sys.extended_properties;
sys.filegroups;
sys.fulltext_catalogs;
sys.fulltext_document_types;
sys.fulltext_index_catalog_usages;
sys.fulltext_index_columns;
sys.fulltext_index_fragments;
sys.fulltext_indexes;
sys.fulltext_languages;
sys.fulltext_stoplists;
sys.fulltext_stopwords;
sys.fulltext_system_stopwords;
sys.function_order_columns;
sys.http_endpoints;
sys.internal_tables;
sys.KEY_COLUMN_USAGE;
sys.key_encryptions;
sys.linked_logins;
sys.login_token;
sys.master_files;
sys.master_key_passwords;
sys.message_type_xml_schema_collection_usages;
sys.messages;
sys.module_assembly_usages;
sys.openkeys;
sys.parameter_type_usages;
sys.parameter_xml_schema_collection_usages;
sys.partition_functions;
sys.partition_parameters;
sys.partition_range_values;
sys.partition_schemes;
sys.partitions;
sys.REFERENTIAL_CONSTRAINTS;
sys.remote_logins;
sys.remote_service_bindings;
sys.resource_governor_configuration;
sys.resource_governor_resource_pools;
sys.resource_governor_workload_groups;
sys.routes;
sys.ROUTINE_COLUMNS;
sys.ROUTINES;
sys.SCHEMATA;
sys.securable_classes;
sys.server_assembly_modules;
sys.server_audit_specification_details;
sys.server_audit_specifications;
sys.server_audits;
sys.server_event_notifications;
sys.server_event_session_actions;
sys.ser
ver_event_session_events;
sys.server_event_session_fields;
sys.server_event_session_targets;
sys.server_event_sessions;
sys.server_events;
sys.server_file_audits;
sys.server_permissions;
sys.server_principal_credentials;
sys.server_principals;
sys.server_role_members;
sys.server_sql_modules;
sys.server_trigger_events;
sys.server_triggers;
sys.servers;
sys.service_broker_endpoints;
sys.service_contract_message_usages;
sys.service_contract_usages;
sys.service_contracts;
sys.service_message_types;
sys.service_queue_usages;
sys.service_queues;
sys.services;
sys.soap_endpoints;
sys.sql_dependencies;
sys.symmetric_keys;
sys.sysaltfiles;
sys.syscacheobjects;
sys.syscomments;
sys.sysconfigures;
sys.sysconstraints;
sys.syscurconfigs;
sys.syscursorcolumns;
sys.syscursortables;
sys.sysdepends;
sys.sysdevices;
sys.sysfilegroups;
sys.sysfiles;
sys.sysforeignkeys;
sys.sysfulltextcatalogs;
sys.sysindexes;
sys.sysindexkeys;
sys.syslockinfo;
sys.syslogins;
sys.sysmembers;
sys.sysmessages;
sys.sysoledbusers;
sys.sysopentapes;
sys.sysperfinfo;
sys.syspermissions;
sys.sysprocesses;
sys.sysprotects;
sys.sysremotelogins;
sys.sysservers;
sys.system_components_surface_area_configuration;
sys.system_internals_allocation_units;
sys.system_internals_partition_columns;
sys.system_internals_partitions;
sys.TABLE_CONSTRAINTS;
sys.TABLE_PRIVILEGES;
sys.tcp_endpoints;
sys.trace_categories;
sys.trace_columns;
sys.trace_event_bindings;
sys.trace_events;
sys.trace_subclass_values;
sys.traces;
sys.transmission_queue;
sys.type_assembly_usages;
sys.user_token;
sys.via_endpoints;
sys.VIEW_COLUMN_USAGE;
sys.VIEW_TABLE_USAGE;
sys.xml_indexes;
sys.xml_schema_attributes;
sys.xml_schema_collections;
sys.xml_schema_component_placements;
sys.xml_schema_components;
sys.xml_schema_elements;
sys.xml_schema_facets;
sys.xml_schema_model_groups;
sys.xml_schema_namespaces;
sys.xml_schema_types;
sys.xml_schema_wildcard_namespaces;
sys.xml_schema_wildcards;

Fixing GroupBy List Views in SharePoint 2010 with SharePoint Designer

You may run into a problem with getting your list views to work in SharePoint 2010 if you keep your old 2007 look and feel.  Their are several articles out there that show you how to fix it programmatically, but not as an end user.

The problem is with list views that have a "Group by" added and the default XML in the CAML query is set to "TRUE" for the Collapsed attribute.  Here are the steps to fix this:

  1. You can open the view page you created for the list in SharePoint designer
  2. Do a search for "GroupBy" in the page ASP.NET code.
  3. Set the Collapse property to "FALSE"
  4. Add the following Javascript to the page to "Click" the links to collapse the elements:

<script language="javascript" type="text/javascript">               

ExpLinkFormer = function()
{
this._init();
}

ExpLinkFormer.prototype = {
_init: function() {

var links = document.links;

for (var i = 0; i < links.length; i++) {          
if (links[i].href == "javascript:" && links[i].onclick.toString().indexOf("ExpCollGroup") > -1) {
links[i].click();
}
}
}
}   
      
var expLnk = new ExpLinkFormer();
   
</script>

  • Save the page – problem solved!
  • Repeat for all the views that have the problem

Enjoy!

Chris

Top SharePoint Conference 2011 Sessions and Stats

They didn't say I couldn't post this data, so here it is.  If you wanted to know what sessions you should reviewwatch, this should help you out.  Also, if you are thinking about being a speaker, these are the type of eval scores you should expect to get:

Interesting Facts:

      Over
11,000 evals submitted,

      Core
Conference Average: 4.28
  (Partner, Customer, Analyst tracks excluded)
(up from 4.24 in 2009!),

      Customer
track avg. 4.1,

      Partner
track avg. 3.76,

      Analyst
track avg. 3.79

      Keynote
avg. 3.83 (only 415 evals)

 

(the following stats have sessions with <10 evals
removed)

Core Track Ranking:

Track Name

Evals

Average

IT Professional

2303

4.41

Search

931

4.29

Communities/Sites

646

4.27

Insights

1217

4.25

Planning, Deployment and
Adoption

500

4.25

Internet Business

1064

4.25

Developer

2190

4.25

Content

760

4.19

Office Client

310

4.17

Project

188

4.13

Grand Total

10109

4.28

 

Top 20
Sessions Overall

Session

Evals

Average

SPC373: Performance Tuning
SharePoint 2010  (Eric Shupps)

188

4.84

SPC402: Deep Dive on SharePoint
Ribbon Development & Extensibility   (Chris O'Brien)

74

4.82

SPC393: Step-by-step: Building
Search Driven Applications That Matter  (Scot Hillier)

72

4.82

SPC315: Beyond the Basics: An
Advanced Conversation on FAST Search for SharePoint 2010  (Thomas
Molbach)

58

4.79

SPC270: SharePoint 2010
Solutions for Public Sector  (Ken Mallit)

27

4.78

SPC224: Architecting and
Automating SharePoint Governance  (Dan Holme)

142

4.77

SPC392: Solving Enterprise
Search Challenges with SharePoint 2010  (Matthew McDermott)

41

4.76

SPC404: Deep Dive: Implementing
Kerberos for your BI Applications  (Tom Wisnowski)

34

4.74

SPC407: Enterprise Deployment
Considerations for the User Profile Service Application   (Spencer
Harbar)

80

4.74

SPC370: Multi-Tenancy with
SharePoint 2010  (Spencer Harbar)

40

4.74

SPC202: Attractive Business
Intelligence: Dashboards, Pivots, Scorecards, KPIs, and Reports Using
Microsoft SharePoint 2010, Office 2010, PowerPivot, and SQL Server 2008
R2  (Rafal Lukawiecki)

192

4.72

SPC385: Service Application
Federation with SharePoint 2010  (Shannon Bray)

15

4.72

SPC245: Making SharePoint 2010
Collaboration Rock by Increasing Findability  (Scott Jamison)

73

4.70

SPC276: Developing Cloud-Based
Applications for SharePoint Online using Windows Azure  (Steve Fox)

50

4.70

SPC319: Application Lifecycle
Management: Automated builds and testing for SharePoint projects  (Chris
O'Brien)

98

4.70

SPC312: Best Practices for
Creating Publishing Page Layouts  (Geoffrey Edge)

35

4.69

SPC338: Developing SharePoint
applications with HTML5 and JQuery  (Ted Pattison)

207

4.68

SPC212: More Than My: How
Microsoft is Driving Social Adoption and Intranet Transformation  (Chris
Slemp)

35

4.67

SPC304: Advanced Scorecarding
and Dashboards with Excel, Visio and PerformancePoint Services  (Peter
Myers)

71

4.66

SPC331: Creating a FAST Search
Driven Windows Phone 7 Application for a SharePoint Internet Sites 
(Shad Phillips)

17

4.66

 

Overall
Conference Top Speakers

MS Speakers

1st
      
   
SPC315: Beyond the Basics: An Advanced
Conversation on FAST Search for SharePoint 2010  (Thomas Molbach &
Thomas  Svensen)

2nd                SPC270:
SharePoint 2010 Solutions for Public Sector  (Ken
Mallit)

3rd           SPC404:
Deep Dive: Implementing Kerberos for your BI Applications  (Tom Wisnowski)

Non MS Speakers

1st           SPC373:
Performance Tuning SharePoint 2010  (Eric Shupps)

2nd          SPC402:
Deep Dive on SharePoint Ribbon Development & Extensibility  
(Chris O'Brien & Andrew Connell)

3rd           SPC393:
Step-by-step: Building Search Driven Applications That Matter  (Scot
Hillier)