hyperv 发表于 2015-9-27 07:59:11

深入浅出SharePoint——包含关联字段列表模板使用问题

  测试环境:
  SharePoint2007和SharePoint2010。
  应用场景:
  列表Province:用来存储省份信息。主要包含省份地段。
  列表Region:用来存储地区信息。主要包含省份和辖属的地信息,其中省份字段信息来源来自列表Province的Title(即省份)字段。
  一句话,两个列表是相关联的。
  问题描述:
  我们在跟客户提供解决方案的时候,常常现在DEV环境开发和测试完毕后,然后迁移到PROD环境。为了提高迁移的效率,我们常常把列表存储为模板来达到重复使用和快速建站的目的。而在上述应用场景中,使用包含关联字段的列表模板创建列表,我们常常发现关联的字段的关联关系失效,常常需要删除并重新创建。
  如下图所示:Get information from显示为空。真杯具!

  原理剖析:
  1、*.stp模板文件是一个包含名称manifest.xml文件的cab包。
  我们使用7-zip工具解压缩地区列表模板文件Region.stp后得到manifest.xml。使用记事本(Notepad)查看代码,发现Lookup字段使用目标SharePoint网站上要查阅的列表的GUID来定义List属性的,因为每次创建新的列表的时候会自动分配的唯一GUID。
  2、列表使用唯一的GUID来标示。
  解决办法:
  1、从站点A导出ProvinceA.stp和RegionA.stp。
  2、先导入ProvinceA.stp到站点B,并使用ProvinceA.stp在站点B上创建新的列表Province。
  3、导出站点B上列表Province的模板ProvinceB.stp,解压查看其GUID。

  4、修改站点A中导出的列表模板RegionA.stp中Lookup字段定义的列表Province的GUID,设置其值为站点B中创建的Province列表的GUID。

  5、使用makecab命令生成新的Region.stp,用来导入站点B中的list模板库来使用。

  6、大功告成的,如心所料!

  下文:后续我会专门整理个工具来处理SharePoint bug的工具集。
  
页: [1]
查看完整版本: 深入浅出SharePoint——包含关联字段列表模板使用问题