Archive

Posts Tagged ‘SPD’

How to replace the SharePoint date calendar control with more user friendly jQuery calendar control

April 26, 2014 1 comment

When you use the SharePoint date and time type for date of birth field, you will notice that the calendar control is extremely non-user-friendly. You can only navigate month by month as shown below. To resolve the issue, you can customize the list form page using SharePoint designer and replace the OOB calendar control with popular jQuery control. The solution works for both SharePoint 2010,2013 and office365.

Here are the steps for how to achieve this.

1. Open SharePoint designer and create a New List Form called customNew and set as default form for the selected type.

2. Open style library in file explorer and copy jQuery and jQuery UI files into the style library in SharePoint site.

You can download the jQuery and jQuery UI from the web and the content of the contactPersonCustomNewForm.js is as below. I use the dd/mm/yy format as my locale in Regional Settings is English(New Zealand). You need to change this if you live in another country with different date format

$(document).ready(function() {
    	$("img#ctl00_m_g_540b9a50_52dc_4400_a58d_1db99555fddf_ff41_ctl00_ctl00_DateTimeField_DateTimeFieldDateDatePickerImage").parent().hide();
 		$("img#ctl00_m_g_540b9a50_52dc_4400_a58d_1db99555fddf_ff41_ctl00_ctl00_DateTimeField_DateTimeFieldDateDatePickerImage").hide();
	    $("input#ctl00_m_g_540b9a50_52dc_4400_a58d_1db99555fddf_ff41_ctl00_ctl00_DateTimeField_DateTimeFieldDate").datepicker({
		    changeMonth:true,
		    changeYear:true,
		    showOn: "button",
			buttonImage: "/_layouts/images/calendar.gif",
			buttonImageOnly: true,
			defaultDate:"01/01/1970",
			yearRange: "c-20:c+20",
			dateFormat: "dd/mm/yy"
	    });
});

In order to get the image and textbox selector above , you can open IE developer toolbar(click F12) and find the control ID as below:

3. Open SharePoint designer and edit the newly created New List Form customNew.aspx in advance mode. Then copy and paste the following links in the PlaceHolderAdditionalPageHead.

	<SharePoint:CssRegistration name="<%$SPUrl:~SiteCollection/Style Library/themes/ui-lightness/jquery-ui.css%>" runat="server"/>
	<SharePoint:ScriptLink language="javascript" name="~sitecollection/Style Library/jquery-1.10.2.js" Defer="false" runat="server"/>
	<SharePoint:ScriptLink language="javascript" name="~sitecollection/Style Library/jquery-ui-1.10.4.custom.min.js" Defer="false" runat="server"/>
	<SharePoint:ScriptLink language="javascript" name="~sitecollection/Style Library/contactPersonCustomNewForm.js" Defer="false" runat="server"/>

 

4. Now go to the list and click add, you will see the new calendar control as shown below

Advertisements

This task is currently locked by a running workflow and cannot be edited. Limitation to both Nintex and SPD workflow

August 15, 2013 Leave a comment

Note, this post is from Nintex Forum here. These limitations apply to both SharePoint designer Workflow and Nintex Workflow as Nintex using the SharePoint workflow engine.

The common cause that I experience is that ‘parent’ workflow is generating more than one task at once. This is common as you can have multiple approvers for certain approval process. You could also have workflow running when the task is created, one of the common scenario is you would like to set a custom column value in your approval task. For me this is huge limitation, as Nintex lover I really hope Nintex could solve this problem with Microsoft going forward.

Introduction

“This task is currently locked by a running workflow and cannot be edited” is a common message that is seen when an error occurs while the SharePoint workflow engine is processing a task item associated with a workflow.

When a workflow processes a task normally, the following sequence of events is expected to occur:

1.       The process begins.

2.       The workflow places a ‘lock’ on the task so nothing else can change the values while the workflow is processing.

3.       The workflow processes the task.

4.       The lock is released when the task processing is finished.

When the message is encountered, it usually indicates that an error occurred between step 2 and 4. As a result, the lock is never released.

Therefore, the ‘task locked’ message is not an error itself, rather a symptom of another error – the ‘task locked’ message does not indicate what went wrong. In most cases, once this message is encountered, the workflow cannot be made to continue and must be terminated and started again.

The following is a guide that can help troubleshoot the cause of these messages.  Some initial observations to narrow down the potential causes are:

Is the error consistent or intermittent?

When the error is consistent, it will happen every time the workflow is run. When it is intermittent, it may happen regularly, but not every time.

Does the error occur the first time the user tries to respond to a task, or do they respond and notice the workflow does not continue, and when they respond again the error occurs?

If the message is present when the user first responds to the task, the issue would have occurred when the task was created. Otherwise, it would have occurred when the user attempted to respond to the task.

Causes

Modifying the task list

A cause of this error appearing consistently the first time a user tries to respond to a task is a modification to the default task list schema. For example, changing the ‘Assigned to’ field in a task list to be a multiple selection will cause the behaviour.

Deleting the workflow task then restoring it from the Recycle bin

If you start a workflow, delete the workflow task then restore it from the Recycle Bin in SharePoint, the workflow will fail with the ‘task locked’ error.  This is confirmed behaviour whether using a SharePoint Designer or a Nintex workflow.  You will need to terminate the workflow and start it again.

Parallel simultaneous responses

A cause of this error appearing inconsistently is multiple users responding to tasks in parallel at the same time. In this scenario, one task will complete correctly and the other will not process. When the user tries again, the ‘task locked’ message will display. Nintex included a workaround for this issue in build 11000. In build 11000 and later, one of the users will receive a message on the task form when they attempt to respond, stating that they need to try again in a few moments.

Additional processing on the task

A cause of this error appearing consistently and inconsistently is having an additional system running on the items in the task list. Some examples include: a workflow running on the task list, an event receiver running on the task list or another automated process querying and updating workflow tasks.

Note: This Microsoft help article (http://office.microsoft.com/en-us/sharepointdesigner/HA102376561033.aspx#5) explains creating a workflow that runs on the task list to update a field on the task. Our experience shows that this causes the ‘Task Locked’ issues when the ‘parent’ workflow is generating more than one task at once.

Isolated system error

If the error is a rare event, or a ‘one off’ event, then an isolated system error may have occurred.

For example, if there is a database connectivity issue while the workflow is processing the task response, the task will lock. In this case, the user will respond to a task but the workflow will not continue. When they respond again, the ‘task locked’ message will display. In this case, there will be an error in the SharePoint ULS Logs at the time that the user originally responded.

Temporary delay while workflow processes

If the workflow is taking a long time to process after a user submits a task, they may notice and try to respond to the task again. They will see the task locked error, but after a number of attempts (or after waiting some time) the task response page eventually indicates the task has been responded to. In this case, nothing actually went wrong, and the error message gives an accurate indication of what is happening – the workflow temporarily locked the task while it was processing. This scenario may occur in a very large workflow, or after the SharePoint application pool has just started.

Modifying the task via a web service with an invalid url

If the Nintex Workflow web service is used to respond to or delegate a task, the site context part of the url must be a valid alternative access mapping url. For example, if you access the web service via the IP address of the SharePoint server, and the IP address is not a valid AAM, the task can become locked.

The workflow has become stuck without any apparent errors

This behaviour can occur as a result of a bug in the SharePoint 2010 workflow engine.  If you do not have the August 2010 Cumulative Update (or later) for SharePoint, and your workflow uses delays, “Flexi-task”, State machine”, “Task Reminder” actions or variables, you could be affected. Check the SharePoint 2010 Updates site here: http://technet.microsoft.com/en-us/sharepoint/ff800847.  The October CU is recommended http://support.microsoft.com/kb/2553031.   The fix is described as “Consider the following scenario. You add a Delay activity to a workflow. Then, you set the duration for the Delay activity. You deploy the workflow in SharePoint Foundation 2010. In this scenario, the workflow is not resumed after the duration of the Delay activity”.

If you find this is occurring in your environment, install the October CU, terminate all the running workflows affected and run them afresh.

Investigative steps

The first step to isolate the issue is to create a new task list on the site and configure the workflow to use it.  Any customizations that were made to the original task list should not be made to the new task list. If the new task list eliminates the issue, then the cause can be attributed to the original task list or a change that was made to it.

To change the task list that the workflow uses:

In Workflow Designer select Settings -> Startup Options


Then configure the task list as required


If any of the scenarios above do not help, check the SharePoint logs for any messages with a category of ‘Workflow Infrastructure’.

Conclusion

The information in this article has been gathered from observations and investigations by Nintex. The sources of these issues are the underlying SharePoint workflow engine. This article will be updated if further causes are discovered.

From <http://connect.nintex.com/forums/thread/6503.aspx>

How to display workflow related tasks in the item display page where the workflow is currently running on in SharePoint2013

May 30, 2013 3 comments

In one of the project, I need to display workflow related tasks in the item display page where the workflow is currently running on. To achieve this, I’d like to add the tasks list view web part and using the connected web part to achieve this.(ID=workflowitemid)

However, to make it work I need to unhide the workflowitemid field in the task list, as it is hidden field and also cantogglehidden field is set to false. I need to use reflection to change the cantogglehidden field to true as it only has getter in the API and then I am able to unhide the field. You can download the script here. However, it is not ideal (make your environment not supported by Microsoft) to display tasks this way.

Another way to display the related task is to use SharePoint designer solution with List view web part and data source. Here are the steps.

1. Create a new list display form as below

2. Edit the custom display form in advanced mode.

3. Find the PlaceHolderMain contentplace hoder and insert the DataView by choosing the associated workflow tasks list as below

4. Go to the List View Tools >> OPTIONS

5. Create a Parameter called workflowitemId Parameter which retrieve the value from the ID querystring as below

6. Create a filter based on UIVersion = workflowitemId as below ,we are going to change the UIVersion to WorkflowItemId property later as WorkflowItemId is a hidden field and cannot be selected from the wizard.

7. Replace UIVersion with WorkflowItemId in the caml for the XsltListViewWebPart.

From:

TO

8. Go to the new custom display page at http://yourserver/Lists/aa/CustomDisplayPage.aspx?ID=414, you will see the associated tasks are showing in the page.

References:

http://office.microsoft.com/en-us/sharepoint-designer-help/watch-this-design-a-document-review-workflow-solution-HA010256417.aspx (Video 12 and 13)

What is new in SharePoint2013 Workflow

December 22, 2012 Leave a comment

In SharePoint 2013, Microsoft provides a new way for creating workflows while the existing SharePoint 2010 Workflow platform has been carried forward to SharePoint 2013. SharePoint 2013 workflows are powered by Windows Workflow Foundation 4, which was substantially redesigned from earlier versions. These changes bring a major advancement to workflow and make SharePoint workflows to handle much more complex scenarios.

Let’s first look at the high-level architecture of the workflow infrastructure. As you can see from the SharePoint2013 Architecture diagram below, SharePoint 2010 workflow execution was hosted in SharePoint itself, this has been retained in SharePoint 2013 to allow for backward compatibility while Windows Azure Workflow is external to SharePoint and communicates using common protocols over the Windows Azure service bus, mediated by OAuth. Windows Azure Workflow also can be installed on a separate server. This new workflow infrastructure combined with Windows Workflow Foundation 4 provides SharePoint2013 workflow with more capabilities, such as Service Bus messaging, elastic scalability, and managed service reliability.

                

SharePoint2013 Architecture

Next, let’s look at what is new in SharePoint 2013 workflow and how these changes will make it more appealing than SharePoint 2010 workflow.

1. Declarative authoring in both SharePoint Designer and Visual Studio

Workflow authoring is declarative only in SharePoint2013 Workflow. It simplified the way workflows are created and also provides a consistent experience for creating workflow in SharePoint designer and Visual Studio. Workflows are no longer compiled into managed assemblies and deployed to an assembly cache. Instead, XAML files define your workflows and frame their execution. You can see screenshot below on how you create the same workflow in Visual Studio and SharePoint Designer.

SPD Declarative workflow Authoring

Visual Studio Declarative workflow Authoring

Another great feature inside SharePoint Designer is called visual designer for workflow. This feature is enabled when you have installed Visio 2013. It provides a new way to design workflow alongside the traditional text-based workflow designer as shown below.


                

SPD Visual Designer view

2.Workflow stages to tackle more complex workflow scenarios

This is the major improvement made by Microsoft in SharePoint 2013 workflow as it allows you to create declarative state machine workflow using SharePoint. In SharePoint 2010, you can only create sequential workflow using SharePoint Designer. If you like to create state-machine workflow, you need to get a developer involved as it can only be created inside Visual Studio. Sequential workflow can only handle simple workflow as it executes in a predefined order, on the other hand, state machine workflow can model more complex workflow as it is event driven. Depending on different state, certain actions will take place.

3. New workflow actions and data type to enhance workflow capability

SharePoint 2013 adds several new SharePoint actions to extend the workflow capability. I will highlight some of the significant ones and for a complete list of the actions in SharePoint2013, you can check the MSDN.

  1. Call HTTP web service: This action enable no-code web service calls from inside a workflow. Organisation can utilize this action to have a better management of integrating external processing with workflow. As business analyst can model the actual business process inside workflow while developer can expose the external processing logic via web services.
  2. Loop: The ability to loop through a collection is missing in SharePoint2010 and having this capability will align SharePoint processing logic with what is expected from a workflow engine.
  3. Dynamic value / Dictionary type: These terms refer to the same data type, dynamic value is used in Visual Studio while dictionary type is used in SharePoint Designer. This new data type used in conjunction with HTTP web service request make it much easier to consume web services from within the workflow.
  4. Start SharePoint2010 workflow.
    There is full interoperability in SharePoint 2013 with SharePoint 2010 workflows, which is enabled by using the Workflow interop bridge.

4. Cloud ready

There is 100 percent parity in SharePoint 2013 between on-premises and Office 365 -based workflows as shown in the picture below; therefore you can easily move an on-premises workflow to the cloud. Office 365 has already got the Windows Azure Workflow installed and configured properly. You do not have to do anything if you’d like to take advantage of the new workflow capability in the Office 365.


                Office365 Architecture

As you can see, Microsoft made a big investment in SharePoint2013 workflow and these changes make the SharePoint2013 workflow more robust, easier to build and provide more capabilities to help you to streamline your business processes. We are looking forward to helping your business take advantage of these new capabilities.

References:

http://technet.microsoft.com/en-us/library/jj219638%28v=office.15%29.aspx

http://msdn.microsoft.com/en-us/library/jj163181%28v=office.15%29.aspx

http://geekswithblogs.net/KunaalKapoor/archive/2012/08/14/sharepoint-2013-ndash-workflows.aspx

http://msdn.microsoft.com/en-us/library/jj163177%28v=office.15%29.aspx

http://msdn.microsoft.com/en-us/library/jj163091%28v=office.15%29.aspx

http://msdn.microsoft.com/en-us/library/jj163181(v=office.15).aspx

http://msdn.microsoft.com/en-us/library/jj163272(v=office.15).aspx

http://www.sharepointpromag.com/article/sharepoint/sharepoint-2013-features-144003

http://weblogs.asp.net/scottgu/archive/2012/07/26/windows-azure-and-office-365.aspx

http://www.andrewconnell.com/blog/archive/2012/07.aspx