我已经产生了C#的SharePoint工作流顺序使用非常方便的项目STSDEV工具(这让我周围的要求,有机会获得所需要的其他工具,如VSeWSS的1.3 32位SharePoint安装).
我添加了一个简单的"修改标题"操作来测试我的基本设置:
public sealed partial class CopyWorkflow : SharePointSequentialWorkflowActivity
{
public CopyWorkflow()
{
InitializeComponent();
workflowProperties = new SPWorkflowActivationProperties();
}
public SPWorkflowActivationProperties workflowProperties;
private void onWorkflowActivated1_Invoked_1(object sender, ExternalDataEventArgs e)
{
workflowProperties.Item["Title"] = workflowProperties.Item["Title"].ToString() + ": Processed by Workflow";
workflowProperties.Item.Update();
}
}
Run Code Online (Sandbox Code Playgroud)
无论是谁,通过WSP安装我的工作流程到WSS 3.0的安装,激活功能,并配置工作流程以便在为特定列表创建新项目时启动,我在onWorkflowActivated1_Invoked_1点击中获取断点,但workflowProperties.Item是始终为NULL而不是表示刚刚添加的项的SPListItem.
在调用此回调时,我需要做什么才能填充Item?
更新:我注意到执行工作流程的线程是匿名运行而不是登录用户或系统用户,因此无法访问列表数据.此外,SharePoint日志文件显示以下异常:
Unexpected System.ArgumentNullException: Value cannot be null. Parameter name: uriString at System.Uri..ctor(String uriString) at Microsoft.SharePoint.SPSite..ctor(String requestUrl) at Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties.<get_Site>b__0() at Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper(Object state) at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass4.<RunWithElevatedPrivileges>b__2() at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated …