Skip to main content

Declarative workflows cannot automatically start if the triggering action was performed by System Account. Canceling workflow auto-start.

 I was developping a sequential workflow wich added a new item in a list that has an autostart workflow associated. However, the workflow is not started. When i try to add a new item in the sharepoint using an account, other than the system account, the workflow is starting correctly.

The reason is "if we install SP1 package, then declarative workflows can no longer be triggered by the SharePoint System account" as there is the possibility of security vulnerability. So, they didn't give access to run the declarative workflows under the System account.

So, to run that workflow we have to add the item using another user token in our code.
Here is the code to use : 

SPUserToken tokenCingecom = workflowProperties.Web.AllUsers["UserLogin"].UserToken;
using (SPSite impersonatedSite = new SPSite(workflowProperties.SiteId, tokenCingecom))
{
     // adding the user
}

Comments

Popular posts from this blog

Updating SPListItem without triggering event receivers

I had an event receiver applied on documents wich can start, programatically of course, a workflow. In this workflow, i used to update some metadatas in my document item. However that triggers the event receiver a new time and you can imagine the infinate loop. Well! afeter googling i found that it is possible to diable the event firing just before the item.Update or the item.SystemUpdate. In first time i used this method but i didn't made my code in a try catch bloc. After doing that my workflow runs normally and it didn't fires the events in the event receiver. Here is the code : public static class SPListItemExtensions { /// /// Provides ability to update list item without firing event receiver. /// /// /// Disables firing  /// event receiver while updating item. public static void Update ( this SPListItem item , bool doNotFireEvents ) {     SPItemEventReceiverHandling rh = new SPItemEventReceiverHandling ();     if ( doNotFireEven...

Printing ASPX HTML Forms

Here is the way to print a part of a HTML, ASPX Form    This is the content in the page to print <script language=JavaScript> <!-- function printPartOfPage(elementId) {  var printContent = document.getElementById(elementId);  var windowUrl = 'about:blank';  var uniqueName = new Date();  var windowName = 'Print' + uniqueName.getTime();  var printWindow = window.open(windowUrl, windowName, 'left=50000,top=50000,width=0,height=0');  printWindow.document.write(printContent.innerHTML);  printWindow.document.close();  printWindow.focus();  printWindow.print();  printWindow.close(); } // --> </script> <div id="printDiv">  This is the content in the page to print </div> ////////////////////////// // To fire the event: ////////////////////////// <input type="button" value="Print" onclick="JavaScript:printPartOfPage('printDiv');" >

SharePoint Saturday France le 6 Nov. 2010

Rejoignez les architectes, les développeurs, les administrateurs, designers et autres professionnels qui travaillent avec SharePoint Server 2007 et SharePoint 2010 le 6 novembre 2010 pour un événement SharePoint exceptionnel. Les évènements SharePoint Saturday France sont des journées en libre accès, éducative, informative et animée, remplie de sessions de professionnels & MVPs reconnus pour leurs compétences et heureux de pouvoir partager leur expérience. Suivez-nous sur Twitter @clubsharepoint ou chacun des évènements sur le tag #SPSFrance. http://www.sharepointsaturday.com/france Facebook | SharePoint Saturday France