标签: workflow-foundation-4

Workflow Foundation 4.0中的设计时验证模式是什么?

我不清楚何时以及如何在WF 4.0中的自定义活动/自定义活动工厂/自定义设计器中进行验证.

我的活动中唯一似乎提供验证错误支持的地方是在CacheMetadata方法中(我相信在设计过程中会多次调用它).这是我应该进行验证的地方吗?ActivityDesigner中是否支持验证?

validation designer workflow-foundation-4

7
推荐指数
1
解决办法
1701
查看次数

工作流基础的思考和经验4

既然Microsoft已经在Windows Workflow Foundation 4中修改了他们的工作流框架,那么您对这个新框架的想法和经验是什么?

我已经和WF4合作了几个月了,我遇到了一些陷阱:

  • 无法使用Workflow Services(Xamlx)强制实施接口.
  • 当工作流中发生错误时,无论是通信,关联,持久性还是工作流中的某些未处理的异常,几乎不可能分辨出错误,因为跟踪日志告诉您没有任何相关性.例如,我有一个Entity Framework对象作为工作流变量,工作流持久性在序列化时遇到了一些麻烦.不幸的是,跟踪文件中没有错误表明这是问题所在.在我弄清楚出了什么问题之前,我经历了数小时的反复试验.
  • 一些提供的活动不足.例如,我不得不扩展Send活动以支持动态端点.不幸的是,我无法使其完全动态化,例如,界面名称不能是动态的.
  • 如果工作流程太大,设计师会变得非常慢.一个超过100KB的工作流程需要超过一分钟的加载时间!而忘记调试这个大小的工作流程.
  • 没有Oracle的持久性提供程序.

尽管存在缺陷,但我对数据库的持久性功能,设计器中易于捕获活动以及将WCF服务设置为工作流服务的难易程度印象深刻.

我很好奇使用Workflow Foundation 4的其他开发人员的经验.

编辑:

我能够解决大型工作流程设计极其缓慢的问题.事实证明,有无法解决的进口,这显然会给设计师带来很大的压力.

我在MSDN论坛上发布了有关此问题的信息.

更新

现在我们正在生产中运行,AppFabric面临着一系列问题.我很清楚,截至目前,AppFabric Workflow Services还没有准备好使用.在新版本发布之前,我会远离这个.

.net-4.0 workflow-foundation-4

7
推荐指数
1
解决办法
1772
查看次数

Workflow Foundation - Literal仅支持值类型和不可变类型System.String

我对名为MyCodeActivity的WF代码活动进行了以下单元测试:

[ExpectedException(typeof(ArgumentException))]
[TestMethod]
public void ShouldRequireParam()
{
    //arrange
    var invoker = new WorkflowInvoker(new MyCodeActivity()
    {
        MyInt = 2,
        MyComplexObject = _complexObject
    });

    //act
    invoker.Invoke();

    //assert
    Assert.Fail("Expected ArgumentException");
}
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,我得到以下异常

'Literal <MyComplexObject>':Literal仅支持值类型和不可变类型System.String.MyComplexObject类型不能用作文字.

workflow-foundation-4 c#-4.0

7
推荐指数
1
解决办法
2088
查看次数

Windows Workflow中的拦截/装饰活动

Windows Workflow Foundation是否提供了一种拦截或装饰活动的方法,例如记录?例如,为每个活动入口和出口点创建日志(理想情况下包括活动名称),而不修改所有现有项目代码.

例如,我有一个工作流程,其中包含一个打印"Hello world"的活动.在不修改XAML文件的情况下,我想捕获活动的进入和退出.我想在进入活动之前打印"输入Hello World活动",在活动打印出"Hello World"之后,我想打印"已完成的Hello World活动".

Windows Workflow是否提供了挂钩进入和退出活动的机制?


@ Richard210363已经在评论中添加了Windows Workflow Foundation支持此功能 - 请选择关闭此问题的用户是否可以考虑撤销他们的决定,因为问题显然有一个非常具体的答案使用相关框架?

.net c# aop workflow-foundation-4

7
推荐指数
2
解决办法
411
查看次数

插件注册中未显示自定义工作流活动

有谁能在这里暗示我做错了什么?

我使用此示例创建了自定义工作流活动创建自定义工作流活动.但这并没有在插件注册工具中显示为插件/活动类型.见下图:

在此输入图像描述

我的活动示例代码如下:

代码更新

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Activities;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Workflow;

namespace TestCustomWorkflowActivity
{
    public class SampleCustomActivity : CodeActivity
    {
        protected override void Execute(CodeActivityContext executionContext)
        {
            //Create the tracing service
            ITracingService tracingService = executionContext.GetExtension<ITracingService>();

            //Create the context
            IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>();
            IOrganizationServiceFactory serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>();
            IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Platform
Dynamics CRM 2013 On Premises v 6.1.2.112(已安装SP1 UR2)
Dynamics CRM 2015 Online

.NET Framework
4.0

c# dynamics-crm workflow-foundation workflow-foundation-4 dynamics-crm-online

7
推荐指数
2
解决办法
3164
查看次数

WF 4.0资源集合

虽然发布了WF 4.0 beta1,但我们在网上没有足够的资源来理解这些概念.我知道很多博主都在继续提供一些关于WF 4.0的资料.如果我们在这里分享所有资源,那将是很棒的..

在我身边,

链接列表全部WF 4.0 Collection ...

http://www.codeproject.com/KB/WF/WF4Services.aspx
http://msmvps.com/blogs/theproblemsolver/default.aspx
http://bloggersguides.net/media/p/188.aspx
http://blogs.msdn.com/endpoint/default.aspx
http://blogs.msdn.com/rjacobs/default.aspx
http://www.theworkflowelement.com/
http://blogs.msdn.com/mwinkle/default.aspx
Run Code Online (Sandbox Code Playgroud)

workflow workflow-foundation workflow-foundation-4

6
推荐指数
1
解决办法
640
查看次数

如何安排Windows Workflow的执行?

我想将我的计划任务转移到工作流程中,以便我可以更好地监控他们的执行情况.目前我正在使用Window的计划任务来调用启动该进程的Web服务.是否有一个工具用于安排序列的执行,以便每N分钟发生一次?

我的最佳解决方案是:

  • 易于配置
  • 提供有关错误的有用反馈
  • '开火,忘记'

PS - 如果添加任何选项,请尝试使用适用于Windows Server的AppFabric.

workflow schedule scheduled-tasks workflow-foundation-4

6
推荐指数
1
解决办法
2834
查看次数

Workflow Foundation 4中的用户定义的动态工作流程?

我已经详尽地查看了WF4的示例,并且不确定它是否适用于我的项目.否则我需要被说服.我正在努力实现一个使用WF4的系统,以便用户能够定义工作流程.您似乎需要VS2010经验来设计和实施WF4工作流程.我喜欢它可以提供的小麦,但是对于非技术用户来说这可能太复杂了.

我们是否只定义了大量用户可以移动到工作流程中的自定义活动?我们如何才能让用户尽可能轻松地构建工作流程?

我们有想要允许的应用程序,Joe/Jane用户可以为特定项目创建自己的工作流程.例如,Request For Information项目.RFI具有由用户定义的特定状态.应允许他们根据这些状态控制流量.应用程序将根据决策/条件定义一些基本项目.因此,诸如通知(当某些内容发生变化时会收到通知),时间范围(某些事情可以在其他事情发生之前保持某种状态)以及可能的其他条件之类的事情.目前,条件/决策类型将受到应用程序的限制.但想象一下,他们可以构建工作流程并在没有任何编码知识的情况下添加这些决策/条

我只是不知道如何以这种方式利用WF4.也许我正在以错误的方式看待WF4?

c# asp.net workflow-foundation-4

6
推荐指数
1
解决办法
4111
查看次数

恢复工作流服务的书签

我正在使用WF4并且有一个工作流服务,我在其中创建了一个自定义活动,该活动创建一个书签以等待其他用户输入.当使用WorkflowApplication托管工作流程时,我可以简单地调用ResumeBookmark来处理我停止的处理,但是当工作流程作为工作流程服务托管时,我似乎无法弄清楚如何恢复书签.

任何指导都会非常感激.

workflow-foundation-4

6
推荐指数
1
解决办法
2584
查看次数

SqlWorkflowInstanceStore WaitForEvents返回HasRunnableWorkflowEvent但LoadRunnableInstance失败

亲爱

请帮我恢复延迟(和持久)的工作流程.

我正在尝试检查自托管工作流程存储是否存在任何延迟且可以恢复的实例.出于测试目的,我创建了延迟的虚拟活动,并且在延迟时间内持续存在.

一般恢复过程看起来像:

get WF definition
configure sql instance store 
call WaitForEvents
is there event with HasRunnableWorkflowEvent.Value name and if it is
create WorkflowApplication object and execute LoadRunnableInstance  method
Run Code Online (Sandbox Code Playgroud)

如果商店被称为商店关闭created|initialized,它的工作正常WaitForEvents.在这种情况下,存储从持久数据库中读取所有可用的工作流,如果没有workflows可用的恢复,则抛出超时异常.

如果创建了存储并且仅为WaitForEvents(同样的事情发生BeginWaitForEvents)启动循环,则会出现问题.在这种情况下,它会workflowsDB(使用适当的ID)读取所有可用的内容,但之后timeout exception它将再读取一个实例(我确切地知道有多少实例workflows可以恢复,因为使用了单独的测试database).但没有阅读和throws InstanceNotReadyException.在catch我正在检查workflowApplication.Id,但它之前没有保存我的测试.

我试图在新的(空)持久数据库上运行,结果是一样的:(

此代码失败:

using (var storeWrapper = new StoreWrapper(wf, connStr))
    for (int q = 0; q < 5; q++)
    {
        var …
Run Code Online (Sandbox Code Playgroud)

c# workflow-foundation-4

6
推荐指数
1
解决办法
350
查看次数