2009-07-23 98 views
1

我正在修改一些现有的SPD WF,并与一些概念结合起来,包括为什么两个看似相似的WF不会产生相同的输出。SharePoint Designer工作流程 - 技巧和资源?

有没有人与SharePoint Designer/Workflows合作过,并且知道任何优质资源(比MSDN简介更详细)或有关此问题的提示。例如。调试和如何检查设置以及如何将信息从多个工作流连接...

换句话说:拿出你最好的SPD WF链接&提示:O)

我不能选择目前另一种解决方案,所以任何提示都是值得欢迎的。我有关于SharePoint Designer工作流程的USPJ特刊。它不错,但必须有更多的好东西:o)

回答

1

从您的问题看来,您遇到了SharePoint Designer旨在解决的解决方案限制。

确实没有调试支持,因为向导方法不应该要求它,但实际上我们知道这真的会有所帮助!同样,连接工作流正在推动边界,我会考虑转移到Visual Studio。如果合适,您可以考虑开发自定义操作作为变通方法或搭建一个完整的Visual Studio工作流程的桥梁(这里是examples with source code)。

我首先看的网络资源是SharePoint Designer Team Blog(显然)和workflow articles on EndUserSharePoint.com

此外,图书具有的SharePoint设计工作流程内容的合理量:

1

我从编程工作流中学习了以下内容,并使用SPD进行了部署。

1.不要依赖在工作流程标注中传递所需的所有字段:定义看似合理的内容,但请记住,一旦您访问了SPList项目,就可以从内部绕过对象模型您的工作流程无需重复更改界面并重新部署。

即一旦你已经在你的.actions文件中定义的这三样东西,并将其传递给您的工作流程

public static DependencyProperty __ContextProperty = DependencyProperty.Register("__Context", typeof(WorkflowContext), typeof(YourWorkflowClass)); 
public static DependencyProperty __ListIdProperty = DependencyProperty.Register("__ListId", typeof(string), typeof(YourWorkflowClass)); 
public static DependencyProperty __ListItemProperty = DependencyProperty.Register("__ListItem", typeof(int), typeof(YourWorkflowClass)); 

你设置访问任何你可能已经忘记了部署时明确地传递。

2.使用上下文直接创建您想要的SharePoint项目的实例时注销,因为您可能会不知不觉地传递调用该​​工作流程的人的权限。即为此

SPWeb tmpweb = __Context.Web; 
SPSite site = new SPSite(tmpweb.Url); 
SPWeb web = site.OpenWeb(); 

,而不是这样的:

SPWeb web = __Context.Web; 

3.Debugging是难以成立,如果你不碰巧有安装在同一台机器包括SharePoint视觉工作室。