教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

工作流开发sharepoint(VS2008)(6)

来源:网络收集 时间:2026-07-22
导读: 图7-112 表单效果 Step8 发布表单。确认表单的安全级别为“完全信息”,将表单发布到项目所在目录,发布文件名为“AssociationForm.xsn”。 2.修改配置文件 接下来需要修改配置文件,将AssociationForm.xsn跟工作

图7-112 表单效果

Step8 发布表单。确认表单的安全级别为“完全信息”,将表单发布到项目所在目录,发布文件名为“AssociationForm.xsn”。

2.修改配置文件

接下来需要修改配置文件,将AssociationForm.xsn跟工作流模板进行关联。

Step1 修改feature.xml。在ElementManifests节点下添加如下代码。

Step2 修改workflow.xml文件。在Workflow节点下添加如下属性。 AssociationUrl=\

在MetaData节点下添加如下属性。

urn:schemas-microsoft-com:office:infopath:AssociationForm: -myXSD-2008-10-04T07-45-17

FormURN可以通过infopath属性窗口获得。

3.修改工作流代码

下面修改工作流代码,在创建任务的时候从关联表单数据中获取审批用户,并给相应的用户发送邮件。关联表单数据的访问有两种方法。

(1)直接通过XML对象模型访问,示例代码如下。

private void createTask1_MethodInvoking(object sender, EventArgs e) {

this.task1Id = Guid.NewGuid(); this.task1Properties.Title = \文档审批\ XmlDocument doc = new XmlDocument(); //加载关联表单的XML数据

doc.LoadXml(workflowProperties. AssociationData); //设置名称空间

XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); nsmgr.AddNamespace(\ //查询审批人账号

string aprovalUserAccount =

doc.DocumentElement.SelectSingleNode(\ AccountId\

//将任务分配给审批人

this.task1Properties.AssignedTo = aprovalUserAccount; this.task1Properties.TaskType = 0;

this.task1Properties.ExtendedProperties[\请在此输入您的审批意见\ this.specialPermissions1.Add(this.task1Properties.AssignedTo,

SPRoleType.Contributor);

}

以上代码采用XmlDocument从关联表单数据中获取到审批人账号,然后分配审批任务。

(2)由表单的schema生成对应的类,直接将关联表单数据反序列化为这个类,通过这个类来访问。

Step1 通过InfoPath的文件菜单,将表单另存为源文件,如图7-113所示。

图7-113 另存为源文件

Step2 打开Visual Studio 2008命令提示。

(选择“开始”菜单中的“Microsoft Visual Studio 2008”→“Visual Studio Tools”→“Visual Studio 2008 Command Prompt”) Step3 在命令行窗体中使用cd命令转向Step1中保存的源文件路径。 Step4 输入“xsd myschema.xsd/c”命令,并到源文件路径找到生成的myschema.cs文件,改名为“ConfigurationData.cs”,将

ConfigurationData.cs复制到工作流项目中。为了方便关联表单数据的访问,在工作流中声明以下属性。

private ConfigurationData _ConfigurationData; ///

///配置数据 ///

public ConfigurationData ConfigurationData { get {

if (_ConfigurationData == null)

{ //将关联表单数据反序列化为相应的对象

XmlSerializer serializer = new XmlSerializer(typeof(ConfigurationData)); XmlTextReader reader = new XmlTextReader(new System.IO.StringReader(

this.workflowProperties.AssociationData));

_ConfigurationData = (ConfigurationData)serializer.Deserialize(

reader);

}

return _ConfigurationData; } }

相应的createTask1_MethodInvoking方法可以修改如下。

private void createTask1_MethodInvoking(object sender, EventArgs e) {

this.task1Id = Guid.NewGuid(); this.task1Properties.Title = \文档审批\ //通过反序列化后的类获取审批人账号

this.task1Properties.AssignedTo = this.ConfigurationData.ApprovalUser[0].

AccountId;

this.task1Properties.TaskType = 0;

this.task1Properties.ExtendedProperties[\请在此输入您的审批意见\ this.specialPermissions1.Add(this.task1Properties.AssignedTo,

SPRoleType.Contributor);

}

邮件发送逻辑的实现需要采用sendEmail活动实现,并且收件人是非必填字段,需要采用IfElse活动来判断是否需要执行sendEmail活动。

Step1 拖曳IfElse活动到工作流设计器中,如图7-114所示。

图7-114 添加IfElse活动

Step2 指定ifElseBranchActivity1的条件类型为“Code Condition”,条件函数为“NeedSendMail”,双击“Condition”输入框,如图7-115所示。

图7-115 指定Condition

Step3 在自动生成的Condition方法中添加如下代码。

///

///判断是否需要发送邮件 ///

///

private void NeedSendMail(object sender, ConditionalEventArgs e) { //如果配置了邮件地址则需要发送邮件

e.Result = this.ConfigurationData.MailTo != null && this.ConfigurationData.MailTo.Length > 0 ; }

Step4 拖曳sendEmail活动到ifElseBranchActivity1,并设置其CorrelationToken为task1Token,如图7-116所示。

图7-116 添加sendEmail活动

Step5 处理sendEmail活动的MethodInvoking方法,代码如下。

private void sendEmail1_MethodInvoking(object sender, EventArgs e) {

string to = \

foreach (Person p in this.ConfigurationData.MailTo) {

Contact contact = Contact.FromName(p.AccountId,

this.workflowProperties.Web);

if (to != \ to += contact.EmailAddress; }

this.sendEmail1.To = to;

this.sendEmail1.Subject = this.ConfigurationData.MailSubject; this.sendEmail1.Body = this.ConfigurationData.MailBody; }

以上代码遍历配置类中的账号,采用Contact.FromName方法转换成Contact对象,通过Contact对象的EmailAddress取到用户的邮件。

4.测试关联表单

采用Visual Studio 2008部署工作流时,关联表单不会出现,要测试关联表单,必须手工将工作流模板关联 …… 此处隐藏:1941字,全部文档内容请下载后查看。喜欢就下载吧 ……

工作流开发sharepoint(VS2008)(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/413329.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)