发布InfoPath模板以及用VS创建的Workflow取InfoPath中的数据.docx
《发布InfoPath模板以及用VS创建的Workflow取InfoPath中的数据.docx》由会员分享,可在线阅读,更多相关《发布InfoPath模板以及用VS创建的Workflow取InfoPath中的数据.docx(27页珍藏版)》请在冰豆网上搜索。
![发布InfoPath模板以及用VS创建的Workflow取InfoPath中的数据.docx](https://file1.bdocx.com/fileroot1/2022-12/12/e4e1e69d-d5a2-4506-be65-4d794050c665/e4e1e69d-d5a2-4506-be65-4d794050c6651.gif)
发布InfoPath模板以及用VS创建的Workflow取InfoPath中的数据
目次
(一)文档主要内容2
I.发布InfoPath到站点中2
II.用VS结合发布的InfoPath创建Workflow。
2
(二)介绍用到的案例:
2
(三)该案例中用到的知识点:
2
1.记录成绩的Form文件是用InfoPath发布到站点中的。
2
2.该Form文件中,总分数的获得的通过为Table赋值的方式得到的。
2
3.用VS去取得Form中的值,并触发用VS创建的Workflow2
(四)需要的环境信息:
2
1.安装了SharePoint20102
2.安装了Office20102
3.安装了VS20102
4.安装了EditPlus(非必须安装)2
(五)一步一步介绍如何完成该案例:
2
I.创建InfoPath2
1.进入InfoPathDesigner2
2.NewaBlankForm3
3.创建一个Form4
4.保存Form6
5.更改该Form的SecurityLevel为FullTrust,并引用证书。
6
6.发布到SharePoint的SiteCollection中。
8
7.到站点中查看创建的FormLibrary12
II.用VS创建Workflow12
1.首先需要将该InfoPathForm保存为.xsd文件,并将其转成.cs文件以备后用。
12
2.在VS中创建WorkflowProject17
3.用VS编辑Workflow22
4.验证Workflow是否好用。
27
(一)文档主要内容
I.发布InfoPath到站点中
II.用VS结合发布的InfoPath创建Workflow。
(二)介绍用到的案例:
这是一个记录学生成绩的Library,每个Form中记录了“数学”“语文”“英语”的成绩,并且会自动将三个分数相加计算出总分数,用总分数触发workflow。
当总分数超过200时,workflow状态为被录取,否则,workflow状态显示为落榜。
(三)该案例中用到的知识点:
1.记录成绩的Form文件是用InfoPath发布到站点中的。
2.该Form文件中,总分数的获得的通过为Table赋值的方式得到的。
当然也可以在InfoPath中用代码实现,从QA的角度出发本次暂不介绍如何用代码实现。
3.用VS去取得Form中的值,并触发用VS创建的Workflow
(四)需要的环境信息:
1.安装了SharePoint2010
2.安装了Office2010
3.安装了VS2010
4.安装了EditPlus(非必须安装)
(五)一步一步介绍如何完成该案例:
I.创建InfoPath
1.进入InfoPathDesigner
点击StartMicrosoftOfficeMicrosoftInfoPathDesigner2010
2.NewaBlankForm
3.创建一个Form
注:
以该Form为例,在上面的Controls中添加TextBox作为StudentName,添加TextBox作为TotalPoint,添加拥有三列的RepeatBox作为Score。
其中,我们需要把右边标注的FieldName更改一下,并将它们的DataType改成我们想要的。
以TotalPoint为例:
1在右侧选中最后一个Field,点击下拉菜单,选中Properties。
2更改Name为我们想要的,此处为Total_Point(Name不能包含空格以及一些特殊符号,所以我们中间用“_”代替)
3更改Datatype为Decimal(double).
4在Value处为其赋值,可以点击后面的“
”按钮,添加上“Chinese+English+Maths”.
4.保存Form
5.更改该Form的SecurityLevel为FullTrust,并引用证书。
(如果此处不更改,在Library中创建Form的时候会因权限不足而无法完成)
1进入FormOptions
2选择SecurityandTrust,并选中Domain
3选中“Signthisformtemplate”,并点击CreateCertificate。
这样就会自动创建证书了。
6.发布到SharePoint的SiteCollection中。
1进入Publish界面
2填写SiteCollectionURL
3勾掉Enable前面的Checkbox,然后选中FormLibrary。
4可以选中创建一个新的FormLibrary上,也可以选中Update原有的FormLibrary。
此处我们选中新建一个Formlibrary
5填写Library的Name。
6将Form中的两个Field设为该Library的两个Column(此处操作可以根据自己需要添加Column)。
7Publish
8发布成功
7.到站点中查看创建的FormLibrary
该Library中有三个Column是取自Form中的两个Field。
这个时候我们就可以添加Document来创建Form了。
接下来就是用VS创建Workflow了。
II.用VS创建Workflow
1.首先需要将该InfoPathForm保存为.xsd文件,并将其转成.cs文件以备后用。
1ExportSourceFiles
2保存在本地路径下:
3这样该路径下就会生成下面文件:
4接下来将myschema.xsd文件copy到“C:
\ProgramFiles(x86)\MicrosoftVisualStudio10.0\VC”路径下。
5用Runasadministrator的方式打开VisualStudioCommandPrompt这个Tool。
(用来把上面的xsd文件转成CS文件)
6按照如下图所示加载路径,并执行转换文件格式的命令。
7这样VC路径下面就生成了myschema.cs文件
8用EditPlus打开myschema.cs文件
之后我们会在VS中用到该文件中的代码。
2.在VS中创建WorkflowProject
1进入VS2010
2点击NewProject
3选择SharePoint2010,选择SequentialWorkflow(这个是Workflow中的一种),然后将workflowname改名为“Exam”。
4选择目标SiteCollectionURL
5我们这次创建的是ListWorkflow,更改Workflow的Name为Exam
6在“Thelibraryorlisttoassociateyourworkflowwith”处选择我们创建的FormLibrary——ExamResult
7选择Workflow开启的条件,然后点击Finish。
8这样就可以开始编辑Workflow了。
SequentialWorkflow默认拥有下面的机构,我们可以给其添加内容。
3.用VS编辑Workflow
1选择该Project,右键AddExistingItem
2将“C:
\ProgramFiles(x86)\MicrosoftVisualStudio10.0\VC”C路径下的myschema.cs文件添加进去。
3将myschema.cs改名为Exam.cs
4修改Exam.cs的命名空间,如下图所示,添加”namespaceExam{}”:
5为Workflow添加操作,在这里我们选择AddCode,其实有很多种操作。
6这样就变成了下图所示的workflow
7提示需要执行codeActivity1,点击实现。
8接下来就是用VS定义该CodeActivity的内部实现。
我把本例子的源代码给大家看一下,大家可以照葫芦画瓢写自己想要的操作:
注意:
这个代码的意思是,如果说Total_Point>300,Result这一列就显示Passed,否则显示Failed。
当然,Result这个Column是我们自己添加的。
9然后我们将编写好的Workflow发布到SharePoint上,点击Rebuild&Deploy.
4.验证Workflow是否好用。
1进入ExamResult这个FormList,创建一个总分超过300分的Form,填写相应的内容并点击Save
2Close之后,返回到Library界面。
如图所示,Result显示Passed,Workflow状态显示Completed。
3进入ExamResult这个FormList,创建一个总分少于300分的Form,填写相应的内容并点击Save
4Close之后,返回到Library界面。
如图所示,Result显示Passed,Workflow状态显示Completed。