问题标签 [workflow-activity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
validation - 从 ActivityDesigner 中验证 Activity?
我想从一个子活动的设计器中验证设计图面(在本例中为 Visual Studio)内的工作流。我想阻止用户继续前进,直到其他错误得到纠正,以简化以后的设计体验。
天真的实现不起作用:
问题是 ActivityBuilder (它不是Activity 并且不能传递给)包含在工作流的根上定义的Validate
任何和所有变量和参数。因此,当您尝试验证根 ( Implementation
) 的第一个子节点时,您会收到无效错误,因为对这些子节点的任何绑定都会失败。
我已经看到建议的黑客攻击,您可以将 Activity 添加Implementation
到运营商 Activity(例如,序列),然后将 ActivityBuilder 中的所有变量和参数添加到运营商。
这很臭。
有没有更好的办法?
.net - 在 TFS 2010 构建期间删除 app_offline
我的 Web 应用程序项目有一个自定义 TFS 构建过程,它也进行发布。为了实现这一点,我尝试在从构建中复制已编译的源之前删除当前的发布位置。
这有效(大部分时间),除非文件被锁定,因为有人访问该站点,这通常不是问题,因为大多数时候构建发生在没有人访问它们的情况下(因为这些纯粹是开发和 QA 构建) .
为了尝试修复无法删除发布目录的边缘情况,我将 app_offline.htm 文件复制到该目录并等待 4 秒,然后再尝试删除站点的其余部分。这可行,但是,当我在发布完成后尝试删除 app_offline.htm 时,这一步我没有收到任何错误。我收到以下错误:
无法取消工作流。代理需要重新启动。详细信息:无法执行操作,因为 WorkflowApplication f670d4fb-d9e3-4f33-bc3d-925faa925e04 已中止。
删除是使用自定义 CodeActivity 创建的(因为 TFS 工作流没有删除)。
稍后我添加了“Tries”参数以尝试捕获导致此错误的原因。
不过需要注意的是,查看日志时,上面的错误并没有放在DeleteFile活动下,而只是在日志的顶部,并没有其他错误或警告。
最后,我们的 tfsbuild 用户对发布目录具有删除权限(删除目录的其余部分没有问题,只是 app_offline.htm
workflow-foundation-4 - 覆盖工作流中的活动?
我有一个复杂的工作流程来向客户发送营销电子邮件。有 20 种活动决定谁会收到什么样的电子邮件。
我 95% 的活动是在二进制活动库中定义的。我在视觉工作室组装了我的主要活动。
对于某些类型的客户,我希望(例如)步骤 25a 中的活动的行为与我在构建它时定义的行为不同。我们可以从托管在数据库中的 xaml 加载活动。
一种选择是为这些客户克隆整个工作流程,但这是很多代码重复。
是否可以覆盖运行时用于定位和编组活动的任何内容,以便如果我的客户是左撇子,则替换工作流中的一个活动而不是我在 IDE 中定义的活动?
我正在考虑如何覆盖 mvc 中的 ViewEngine 以动态加载 ipad 视图或其他任何内容。加载活动是否有类似的东西?
sharepoint - SharePoint Designer 2010 工作流错误:无法反序列化对象。类型无法解析
在开发环境中,我在 SharePoint Designer 中创建了 SharePoint 工作流。此工作流使用在 Visual Studio 中创建的自定义活动。在生产中部署 web (Import-SPWeb Export-SPWeb) 后,在 Designer 中打开我的工作流时出现错误。
我正在尝试重新安装解决方案并清除应用程序数据中的 SharePoint Designer 缓存。在工作流的 xoml 中,我使用自定义活动指定了我的程序集的正确完整命名空间,并且该程序集存在于 GAC 中。
workflow - 如何暂停工作流程和恢复工作流程?
我有长期运行的工作流程;我想给用户选项来暂停工作流程并在他准备好时恢复它......
我怎样才能在 wf4 中实现这一点?
workflow - 以编程方式在流程图工作流中创建分配
我需要以编程方式定义一个可序列化的流程图 Windows 工作流,它接受输入参数并返回结果。我了解如何使用设计器创建这些工作流,但我需要在代码中完成并且让流程图工作流可序列化(因此没有 lambda 表达式)。
我无法获取分配的“收件人”字段。下面的代码创建了一个 WriteLine 后跟一个 Assign 的流程图工作流。
当我尝试从 ActivityBuilder 转换为 Activity 说“无法从文本'再见'创建'OutArgument'”时,上面的代码失败。如果我不使用 OutArgument 并且只是传递东西,这很好用。
我的问题是在 To 属性中放什么?如何引用我添加到 ActivityBuilder.Properties 的 OutArgument?VisualBasicReference 不是 OutArgument。我是否让这变得比需要的更困难?
感谢您的任何提示!
编辑:我想以编程方式创建工作流。工作流需要有输入参数和返回结果(输出参数)。
我了解如何创建工作流以及如何声明和使用输入参数。我正在使用 ActivityBuilder 创建工作流并通过 ActivityBuilder 的属性设置 InArgument。我通过序列化为 XAML,然后使用 ActivityXamlServices.Load 反序列化,从 ActivityBuilder 创建工作流。
我不明白的是如何从工作流程中获得结果。我认为它涉及 OutArgument。如何/在哪里将 OutArgument 添加到工作流程?我认为我提供的代码片段会为 OutArgument 分配一个值,但是对 ActivityXamlServices.Load 的调用失败,并抱怨它无法创建 OutArgument。
- 使用 ActivityBuilder 的方法是否正确?
- 分配操作的“收件人”字段是否正确引用了 OutArgument?
- 如何让 ActivityBuilder 知道 OutArgument 并且仍然能够转换为 Activity / 工作流?
希望这能澄清我的问题。
.net - 在我的 WF 应用程序中使用哪个 Activity 来表示长时间等待文档?
基本上,我的工作流程中有一个要点,即在发送文档后,将会/可能发生许多事情。
- 客户有 10 天的时间发送回复
- 在 10 天内的任何时间收到客户的回复后,等待结束,回复应进入工作流程的下一步
- 在第 8 天或第 9 天,如果没有回复,应发送电子邮件给客户
- 在第 11 天,应向客户发送一封电子邮件,说明回复晚了
- 之后,应每 3 或 5 天向客户发送一封电子邮件,直到收到回复
我不确定我是否应该或可以在工作流程中使用 While 活动,或者在代码隐藏中使用带有 While 循环的代码活动。我将跟踪文件发送的日期、截止日期以及收到回复的时间。我只是不确定这样做的最佳实践/方法。
workflow-foundation - 本地活动的执行方法中的持久性
我需要弄清楚是否有可能,或者是否有更好的解决方案来解决我的问题。下面是我的一个场景。在活动的 Execute 方法中,我需要能够运行 3 种不同的方法。第一个将呈现一个 UI(HTML 或 VXML)并等待用户输入。在这个阶段,我预计工作流程会持续存在(如果可能的话)。第二种方法将获取用户输入的数据并对其进行验证。如果输入有效,将运行下一个方法,该方法将处理数据。如果输入无效,则需要再次呈现 UI。这是在执行方法中可能发生的事情,还是有更好的解决方案来解决这种情况?
asp.net - X 天后哪个活动发送警告,然后是“你迟到了电子邮件?
完整的解释。我目前有一个有 3 个分支的聆听活动。第一个分支是文档是否按时返回。其次,如果 X 天过去后,用户收到一封电子邮件,警告他们不要迟到。第三个分支是在 Y 天后文档迟到,并且用户收到一封电子邮件,说明文档迟到了。监听活动在一个 while 循环内。现在我设置它的方式,我知道工作流将每 X 天执行第二个分支。我不太确定如何设置工作流以便它执行第二个分支,然后如果仍然没有返回文档,它将执行第三个分支。
有任何想法吗?
workflow - 自定义Activity中的动态参数?
我们正在我们自己的应用程序中重新托管 WF-4 设计器。我们有一个叫做过滤器的东西。现在我们需要一个活动,让您运行此过滤器并在 ForEach 中处理结果。很简单。但是这些过滤器有一个参数列表(用于运行过滤器),需要在工作流主机中填写。过滤器参数列表可以是从 0 到 N 的任何值。
在用户设置 FilterId 后,我们有没有办法创建该 Filter 的实例,检查其参数列表并将这些参数添加到 Activity 中?参数基本上只是Name、Type,需要用户填写其Value。
另一件事,我们不想在运行时创建过滤器的实例,那会太昂贵。在运行时,我们只需要过滤器 id 和参数值列表。
如果有一种方法可以在 FilterId 更改时更新它并验证此列表中的所有参数是否具有值,我会很高兴拥有参数的静态属性。