Yes, if you have a workflow that is supposed to capture live changes
such as a record being created or a field or status change, then you can
miss some. On-demand workflows would be unavailable to users so this may
be less of a problem, but might annoy people.
A couple of good practices to help with this:
Publish workflows as a template so you can easily create a new copy,
change that and then publish this and unpublish the previous one within
seconds of each other and minimise the gap (especially if you do the
switch out of hours).
If you did not already do this, you can quickly unpublish your workflow,
change it to a workflow template, republish, create a new workflow from
it, don't waste time editing it, just get it published. Now you can
create a new one to edit and take your time.
Of course, sometimes you realise a workflow is badly broken, doing
something it should not, so it may not be a bad thing that some records
get missed. Often it might be doing one bad thing and nine good things
though, and you want to be able to keep the good stuff.
If you have time (ie the bad thing is not FATAL and you can leave it
running for 2 more minutes):
- pick an unused atribute, ideally a simple bit field. Or add a new one
to the entity and form (and republish the entity).
- create and publish a very simple new workflow with the same trigger as
your "bad" one, and all it does is flag the records by switching the bit
field on
- now you can unpublish, fix the problem, take your time. Before you
republish tick the box so it can be called "on-demand" as well as by the
trigger*.
- unpublish your other temporary workflow
- Use advanced find to get the records which were flagged while you were
working. If necessary, filter out any that were processed by both during
the overlap period. (you can do this by first finding which flagged ones
have a "regarding" system job of type "workflow" with the right name,
then use multi-edit to reset the flag on these as you don't want them,
then take out the extra clause in the advanced find)
- use your on-demand workflow to re-run against those records
*talking of on-demand, I sometimes do this:
- create a workflow template
- create a workflow from this with whatever triggers are needed, and a
scope as appropriate
- create a second workflow which has no triggers, but is available
on-demand but only has a scope of "user" ie me!
So, users do stuff and the workflow runs automatically, if for some
reason something is missed or needs rerunning, I can do this
immediately, but users can't and they don't see confusing options
offering to run workflows they don't need.
Hope all this helps!
Adam Vero
MCT, MBMSS: Dynamics CRM 4
http://www.meteorit.co.uk/dynamics
Post by MarkIf you have to unpublish a workflow to edit it, won't the system miss lots of
activities while you are doing the editing - or does the workflow still keep
processing?
Go to Settings> Workflows.
This will list all of your workflows by default, and should show a
column for "status" (draft or published).
You can change the view to show all workflows, or all published
workflows from the top right drop0down as with all views.
Note that you can't edit a published workflow without first unpublishing
it, for additional confirmation that it is in fact published.
Hope this helps.
Adam
Post by DynamicDhirajHi All ,
How to publish workflow and see published workflow.
I just want to confirm my self that my workflow is published.
I am new to in this CRM 4.0 .Please help me ASAP
.