利用PowerShell和SharePoint Server 2007集成图像和XML数据

在现代企业中,数据的集中管理和访问是提高工作效率和决策质量的关键。本文将介绍如何使用WindowsPowerShell和Microsoft Office SharePoint Server 2007来集成来自不同设备(如OCR设备或成像器)的数据,这些设备连接到运行Windows Server 2003的服务器上。通过集成,可以将分布在多个设备上的数据通过一个集中的平台进行展示,任何配备有网络连接和Web浏览器的工作站都可以访问这个平台。

使用了Windows PowerShell,这是微软的可扩展命令行接口shell,以及一种与.NET框架集成的脚本语言,可以轻松地将信息插入到各种.NET可访问的基础设施中,如SQL Server、Exchange Server,以及本文案例中的Office 2007系统。将处理的数据形式是二进制图像,以及提供这些图像注释数据的XML文件。

Microsoft Office SharePoint Server 2007和Windows SharePoint Services 3.0帮助组织为每个员工提供智能能力,允许他们共享、管理和重用信息,以便团队更好地做出决策。在大多数组织中,这些信息以商业文档的形式存在,如Word文件或Excel电子表格。然而,组织数据也可以以图像、XML文件等非常规业务文档的形式存在。

Office SharePoint Server 2007平台提供了对发布的Microsoft Office数据文件的Web和程序访问,如Word文档、Excel电子表格等,使得数据可以被程序重用,并且可以轻松开发基于Web的仪表板,这些仪表板可以整合关键绩效指标、小部件和发布的Office数据文件。

使用代码

要使用以下代码,必须在同一台机器上安装有PowerShell1.0或2.0(可从Microsoft网站下载),并且该机器上安装了Microsoft Office SharePoint Server 2007。

此外,以下操作是必要的,以便通过PowerShell与SharePoint对象模型进行交互:

[System.Reflection.Assembly]::Load("Microsoft.SharePoint,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c");

将多个文件服务器映射为网络驱动器到SharePoint服务器,从而获得了图像文件以及与每个图像文件关联的XML文件的访问权限。为了本文的目的,图像文件是信息的大型地图。

下面的代码片段(每行以分号结尾)将用于一个foreach循环中,以实现以下目标:

  • 从XML文件中的XML树中提取数据。
  • 将相同的信息插入到用于记账的“自定义列表”中。
  • 创建带有每个XML文件信息的品牌团队网站。
  • 将图像文件插入到位于各个团队网站的文档库中。

使用了以下代码来解析XML文件(稍后将内容导入到Microsoft Office SharePoint Services团队网站):

[xml] $myxmldoc = get-content image123-header.xml; $sitetitle = $myxmldoc.tree.imagecategory.title; $maptype = $myxmldoc.tree.imagecategory.maptype;

使用了以下函数将XML数据插入到自定义列表中,该列表将用于记账目的:

$site = new-object microsoft.sharepoint.spsite("http://site-to-upload-to.org"); $web = $site.Openweb(); $entitychange = $web.lists["MAPS"].Items.Add(); $entitychange["Title"] = $sitetitle; $entitychange["Location"] ="http://site-to-upload-to.org/sites/"+ $sitetitle; $entitychange["Map Type"] = $maptype; $entitychange.Update(); $site.Dispose();

要在“sites”层次结构下创建一个新的团队网站,只需要以下操作:

$site = new-object microsoft.sharepoint.spsite("http://site-to-upload-to.org/sites/"); $site.Allwebs.Add("sites/"+$sitetitle, $sitetitle, $sitetitle, [int]1033, "STS", "", ""); $site.Dispose();

要在最近创建的团队网站下创建一个新的文档库(一种类型的Web文件夹),也称为列表,请按照以下步骤操作:

$site = new-object microsoft.sharepoint.spsite("http://site-to-upload-to.org/sites/" +$sitetitle); $website = $site.OpenWeb(); $listtemplate = $website.ListTemplates["Document Library"]; $listID = $website.Lists.Add("Map", "", $listtemplate); $list = $website.Lists.GetList($listID, $true); $list.Title = "Map"; $list.OnQuickLaunch = $true; $list.Update();

要在自定义列表中添加一个带有默认值的特殊自定义字段,请按照以下步骤操作(注意使用XML创建自定义字段;否则自定义字段的引入会比较困难):

$list.Fields.AddFieldAsXml(""); $list.Update(); $list.Fields["Annotation Type"].DefaultValue = "Annotated"; $list.Fields["Annotation Type"].Update();

最后,将从本地映射的网络驱动器(或本地文件夹)添加文件到最近生成的文档库:

$webclient = new-object System.Net.WebClient; $webclient.Credentials = [System.Net.CredentialCache]::DefaultCredentials; $webclient.UploadFile($uristring, "PUT", $filepath); $webclient.Dispose();
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485