Skip to main content

Posts

System.InvalidOperationException: The event receiver context for Workflow is invalid.

Ever got this error while developing SharePoint 2010 Workflows in Visual Studio? System.InvalidOperationException: The event receiver context for Workflow is invalid. at Microsoft.SharePoint.SPEventReceiverDefinition.ValidContext() at Microsoft.SharePoint.SPEventReceiverDefinition.GetSqlCommandToAddEventReceivers(IList`1 erds) at Microsoft.SharePoint.Workflow.SPWinOESubscriptionService.CommitNewSubscriptions(Transaction txn, IList`1 erds) Check the you have set the all the TaskIds in your code: TaskId = Guid.NewGuid(); If this is not the case need to check that your Correlation Tokens are setup correctly.

PowerShell script to add work email to the list fields for the author

The Author (Created By) field is actually an lookup field to the hidden User Information list. If you need to add the work email of the Author (Created By field) user to a specific list it can be done by adding a dependent lookup field for the Author field: $site = get - spsite "site url here"; $list = $site . RootWeb . Lists [ "list name" ]; $createdByEmailGuid = $web . Fields . AddDependentLookup ( "Work e-mail" , [ Microsoft . SharePoint . SPBuiltInFieldId ]:: Author ); $createdByEmail = $web . Fields . GetFieldByInternalName ( $createdByEmailGuid ); $createdByEmail . Description = "Work e-mail address of the Author."; $createdByEmail . LookupField = $web . Fields [[ Microsoft . SharePoint . SPBuiltInFieldId ]:: EMail ]. InternalName ; $createdByEmail . Update (); $web . Update (); $list . Fields . Add ( $createdByEmail ); $list . Update (); If additional fields are needed the same method can be applied. Here is a li...

SharePoint 2010 retrieving lookup values using ECMAScript

Script to retrieve single and multiple value lookup fields values using SharePoint 2010 Client Object Model for JavaScript (ECMAScript): var listName = "list name here" ; var listItemId = 23 ; // id here function retrieveLookupValues () { var clientContext = new SP . ClientContext . get_current (); var oList = clientContext . get_web (). get_lists (). getByTitle ( listName ); var selectedItems = SP . ListOperation . Selection . getSelectedItems (); var camlQuery = new SP . CamlQuery (); camlQuery . set_viewXml ( "< View >< Query >< Where >< Eq >< FieldRef Name='ID' / >< Value Type='Counter'>" + listItemId + "< /Value>< /Eq>< /Where>< /Query>< RowLimit>100< /RowLimit>< /View>" ); this . collListItem = oList . getItems ( camlQuery ); clientContext . load ( collListItem , 'Include(CustomSingelLookup...

Creating SharePoint 2010 Calculated Field from code in sites with different regional settings

Say you need to create the following calculated column in different sites that have different regional settings: English, French, etc. to format the DateTime [Start Time] filed to  "dd-mm-yyyy". The following formula would look list this in English - with a comma separator: = TEXT ([ Start Time ] , "dd-mm-yyyy" ) Like this in french - with a semicolon separator: = TEXT ([ Start Time ] ; "dd-mm-yyyy" ) When creating the column from from code  behind to treat this  the SP Web . Locale . TextInfo . ListSeparator  property must be used to get the correct list separator: SPList spList = SPContext . Current . Web . Lists [ "List Title" ]; string newFieldName = spList . Add ( "CalculatedField" , SPFieldType . Calculated , false ); SPFieldCalculated newField = ( SPFieldCalculated ) spList . GetField ( newFieldName ); newField . Formula = String . Format (@ "=TEXT([Start Time]{0} ""dd-mm-yyyy"")...

SharePoint Designer 2010 Reusable Workflows with Lookup Values

When you create a Reusable Workflow in SharePoint Designer 2010, that uses lookup values, and you try to deploy it in another environment, the lookup values will get broken. This is happening because the list you are reading the lookup values from has another Guid. Here is what I came up with to make this deployment easier: Deploy the reusable workflow in the new environment. Open the site you have deployed the workflow solution in SharePoint Designer Go to the related list (List and Libraries > Your Related List Name) and copy the new List ID value. Go to All Files > Workflows >   Your Workflow Name >  Your Workflow Name. xoml and open it in SharePoint Designer as XML ( right click on it > Open with >  SharePoint Designer (Open as XML) ) Find an  and you will find the old list guid in the ListId  attribute  Replace the old guid value with the new one Save it and close the window. The workflow should be pointi...

Managed Metadata field values are not displayed

Problem: The values for a Managed Metadata field values are visible only for Site Collection Administrators. In edit mode the current and possible values for the Managed Metadata field are visible and accessible. Solution:  The  NT AUTHORITY\Authenticated Users  does not have Read permission in the  TaxonomyHiddenList. Check the permissions in < site url>/Lists/TaxonomyHiddenList/AllItems.aspx. The following permissions should be present: -  NT AUTHORITY\Authenticated Users (NT AUTHORITY\authenticated users)  with  Read  permission -  System Account (SHAREPOINT\system)  with  Full Control permission