Solved

Dynamics CRM Workflow updating closed letter after Mail Merge

Posted on 2009-07-03
8
923 Views
Last Modified: 2013-11-24
I have created a new entity (Fund Member) to create a many to many relationship between Contact and a new entity called Fund. Users will be running mail merges from this entity either via Advanced find, or associated views from  the Contact or Fund entity. When the activity is created, the default regarding is the Fund Member record, and the recipient is blank. We need recipient to be populated with the contact and the regarding to be populated with the fund. To do this I have created a workflow described below.

The workflow changes the recipient and regarding for a Letter Activity after the activity has been created. To do this, the workflow has to change the activity status to Open, update the activity, then reclose it.

This works when a letter is created for a single contact, but when applied to multiple contacts, some of the instances complete, but most of them get stuck in the 'Wait' status, and on further investigation they have failed after opening the activity with a with  "SQL error has occured" message.

I improved the success rate to only the occasional error by including a wait timout of 1 minute between the status change and the update, but this isn't a totally risk free solution.

HAs anyone else experienced this issue and developed a better solution?
0
Comment
Question by:swakyn
  • 4
  • 2
  • 2
8 Comments
 
LVL 29

Expert Comment

by:feridun
Comment Utility
What is the trigger for the workflow?
0
 
LVL 8

Expert Comment

by:Aftab_Khateeb
Comment Utility
Can you try enabling the Trace feature using CRMDiagTool4
http://blogs.msdn.com/benlec/archive/2008/03/04/crmdiagtool4-for-microsoft-crm-4-0-has-been-released.aspx
This would help in finding out more information.
Once you have enabled tracing - you could find the file in <install drive:>\Program Files\Microsoft Dynamics CRM\Trace locaiton and the file name would be have "CrmAsyncService" (which is a trace file for workflow).

Have you tried restarting the CRM Asynchronous processing service? Does it make any difference in sending those waiting letters?

Let me know how u go
0
 
LVL 1

Author Comment

by:swakyn
Comment Utility
I have tried restarting the async process but still have the issue.

I have turned tracing on, and reproduced the issue, but can't find any clues in the trace (not really sure what I am looking for). The trace is attached.
VDEVGF1-CrmAsyncService-bin-2009.log
0
 
LVL 8

Expert Comment

by:Aftab_Khateeb
Comment Utility
Hi Swakyn,

May I know if you have added any rollups to CRM 4.0?
Please refer to this http://support.microsoft.com/kb/952858. There is one hotfix 957701  that addresses workflow waiting issue.

0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 1

Author Comment

by:swakyn
Comment Utility
We are on Rollup 3, so this hotfix has already been applied.
0
 
LVL 1

Author Comment

by:swakyn
Comment Utility
Further investigation with SQL Server Profiler has found that deadlocks are causing the problem.See message below:-
Transaction (Process ID 108) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
0
 
LVL 29

Expert Comment

by:feridun
Comment Utility
It sounds as if you have workflows competing with each other. Reading your original post again, I notice that you say: "To do this, the workflow has to change the activity status to Open, update the activity, then reclose it. "

Could this be triggering the workflow again?

Perhaps you need to include a test at the beginning of the workflow to prevent it running more than once.
0
 
LVL 1

Accepted Solution

by:
swakyn earned 0 total points
Comment Utility
The solution is to set the read committed snapshot isolation level  on. Perform iisreset and restart the SQL service after applying change.
-- Check the snapshot and read committed snapshot isolation states before setting them

SELECT      [name]

            ,snapshot_isolation_state

            ,is_read_committed_snapshot_on

FROM sys.databases

WHERE [name] = '<database name>'
 

-- Switch on allow snapshot isolation

ALTER DATABASE <database name> SET ALLOW_SNAPSHOT_ISOLATION ON

GO
 

-- Switch on read committed snapshot isolation

ALTER DATABASE <database name> SET READ_COMMITTED_SNAPSHOT ON

GO
 

-- Check the snapshot and read committed snapshot isolation states after setting them - they should both be 1

SELECT      [name]

            ,snapshot_isolation_state

            ,is_read_committed_snapshot_on

FROM sys.databases

WHERE [name] = '<database name>'

Open in new window

0

Featured Post

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

Salesforce.com is a cloud-based customer relationship management (CRM) system. In this article, you will learn how to add and map custom lead and contact fields to your Salesforce instance.
Messaging apps are amazing tools with the power to do a lot of good, but the truth is the process of collaborating with coworkers requires relationships established through meaningful communication - the kind of communication that only happens face-…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now