Question 88
You have a Microsoft .NET Framework console application that uses the SharePoint client object model.
The application contains the following code segment. (Line numbers are included for reference only.)
01 ClientContext cCtx = new ClientContext("http://intranet/hr");
02 List sharedDocList = cCtx.Web.Lists.GetByTitle("Shared Documents");
03 CamlQuery camlQuery = new CamlQuery();
04 camlQuery.ViewXml =
05 @"<View>
06     <Query>
07       <Where>
08         <Eq>
09          
10           <Value Type='Text'>Doc1.docx</Value>
11         </Eq>
12       </Where>
13     </Query>
14   </View>";
15 ListItemCollection docLibItems = sharedDocList.GetItems(camlQuery);
16 cCtx.Load(sharedDocList);
17 cCtx.Load(docLibItems);
18 cCtx.ExecuteQuery();
You need to ensure that the application queries Shared Documents for a document named Doc1.docx.
Which code element should you add at line 09?
A. <FieldRef Name='FileDirRef'/>
B. <FieldRef Name='FileLeafRef'/>
C. <FieldRef Name='FileRef'/>
D. <FieldRef Name='File_x0020_Type'/>

解析:
 这道题是想考关于列表视图的相关知识点。它试图通过在客户端使用CAML定义一个List的View,然后传递给服务器端,获取满足条件的结果。
   在本题的视图中使用了<FieldRef>元素,此元素的作用是:提供了此字段所引用的内部名(Internal Name)。
   Sharepoint有许多内建字段,可参考资料:
 http://www.cnblogs.com/wsdj-ITtech/archive/2013/05/22/3092045.html
在此资料中的第一列就是内建字段的Internal Name(内部名)。
我们知道,当我们需要扩展一个SharePoint列表/文档库的数据结构时,就会为列表/文档库创建新的字段(栏)。不管是直接为列表/文档库新建字段,还是在网站集里面创建网站栏,作为管理员,最好使用一些“最佳实践”来为字段命名。使用正确的字段名,在未来的配置、管理、开发过程中,都可以节省很多的时间和精力。
每个SharePoint字段实际上有两个名称,一个是“标题”(Title,有时候也把它叫做“显示名称”),一个是“内部名称”(Internal Name)。平时用户在列表视图界面上看到的,都是字段的标题。
字段的内部名称可以看作是字段的唯一标识。如果你曾经使用SharePoint对象模型,通过代码从列表中获取数据,那么对“内部名称”这个概念一定很熟悉。基本上,SharePoint对“内部名称”的格式有非常严格的要求,它只能由英文字母、数字和下划线字组成,且不能包含空格。但是“标题”则没有这么多限制,通常我们会使用中文作为字段的“标题”,而且“标题”中很可能会包含空格。当一个字段被创建之后,它的“内部名称”就被固定下来了,但是“标题”则可以在之后被随时修改。
  当我们使用SPQuery构建CAML查询的时候, 一定要用field的internal name, 否则就会报出如下的错误:
“Exception caught Microsoft.SharePoint.SPException: One or more field types are not installed properly. Go to the list settings page to delete these fields. --->System.Runtime.InteropServices.COMException (0x81020014): One or more field types are not installed properly. Go to the list settings page to delete these fields.”
  本题是想针对一个File,通过而下面的各选项:
选项A. <FieldRef Name='FileDirRef'/> 针对的是文件目录
选项B. <FieldRef Name='FileLeafRef'/>针对的是文件
选项C. <FieldRef Name='FileRef'/>针对的是特定的Windows SharePoint Services object
选项D. <FieldRef Name='File_x0020_Type'/>针对的是特定的Windows SharePoint Services object的版本相关的文件所属的文件类型信息。
 
所以本题目正确选项应该是B
参考:
http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.spbuiltinfieldid_members.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spbuiltinfieldid.fileleafref.aspx

Question 89
You have a document library named MyDocs. MyDocs has a column named Column1. Column1 is a required column.
You discover that many documents are checked out because users fail to enter a value for Column1.
You need to create a Web Part to delete the documents.
Which code segment should you include in the Web Part?
A. foreach (SPCheckedOutFile file in ((SPDocumentLibrary)SPContext.Current.Web.Lists["MyDocs"]).CheckedOutFiles)
{
  file.Delete();
}
B. foreach (SPItem file in SPContext.Current.Web.Lists["MyDocs"].Items)
{
  if ((file("CheckOutStatus") == "CheckOut"))
  {
    file.Delete();
  }
}
C. foreach (SPListItem file in ((SPDocumentLibrary)SPContext.Current.Web.Lists["MyDocs"]).Items)
{
  if ((file("CheckOutStatus") == "CheckOut"))
  {
    file.Delete();
  }
}
D. foreach (SPCheckedOutFile file in ((SPDocumentLibrary)SPContext.Current.Web.Lists["MyDocs"]).CheckedOutFiles)
{
  file.TakeOverCheckOut();
}

解析:
 本题题意是:你有一个文档库(MyDocs),此文档库有一列名为Column1,此列要求必须有值。但是你发现在此文档库中有许多文档都被“签出”了,并且这些文档的Column1字段都未被赋值,于是,你得通过代码来删除此类文档。
 所以你的代码逻辑应该包括两步:1: 遍历正确的文档库。 2. 正确判断有待删除的文档。
 我们来分别分析各选项:
选项A. foreach (SPCheckedOutFile file in ((SPDocumentLibrary)SPContext.Current.Web.Lists["MyDocs"]).CheckedOutFiles)  //找到名为”MyDocs”的List,强制转换成SPDocumentLibrary对象,然后使用SPDocumentLibrary对象CheckedOutFiles属性获取此List中被CheckedOut的文档集,然后再遍历此文档集中的文档
{
  file.Delete();  //使用SPCheckedOutFile类的Delete方法来删除对应文档
}
  所以选项A是本题的答案

选项B. foreach (SPItem file in SPContext.Current.Web.Lists["MyDocs"].Items) //找到名为”MyDocs”的List,获取其所有的Items,但问题是SPItem是抽象类,所以不能这样用
{
  if ((file("CheckOutStatus") == "CheckOut"))  {
    file.Delete();
  }
}
选项C. foreach (SPListItem file in ((SPDocumentLibrary)SPContext.Current.Web.Lists["MyDocs"]).Items) //与选项B类似,找到名为”MyDocs”的List,获取其所有的SPItems
{
  if ((file("CheckOutStatus") == "CheckOut")) //这句是想检查每一个SPItem中字段名为” CheckOutStatus”的这列其值是否为”CheckOut”。但file("CheckOutStatus")这种表达是错误的,通过列名引用某列应该用file["CheckOutStatus"]。但即使表达正确,也不是本题想要的逻辑。

{
    file.Delete();
  }
}
选项D. foreach (SPCheckedOutFile file in ((SPDocumentLibrary)SPContext.Current.Web.Lists["MyDocs"]).CheckedOutFiles)  //此句与选项A一样,没有错误
{
  file.TakeOverCheckOut(); // SPCheckedOutFile类的TakeOverCheckOut方法用来指示网站,现在由另一个用户来接管当前“签出”的文档。显然此方法并不是用来删除文档的。
}
所以本题目正确选项应该是A

参考:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spcheckedoutfile_members.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spcheckedoutfile.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spcheckedoutfile.takeovercheckout.aspx

12 }
You need to ensure that all users can see the document.
Which code segment should you add at line 11?
A. file.CanOpenFile(true);
B. file.Publish(string.Empty);
C. file.ReleaseLock(string.Empty);
D. file.Update();

解析:
 本题的题意是:你有一个赋予了版本控制能力的文档库,现在你想通过一段代码实现向此文档库中新增一个文件,并且保证所有用户都能看到此文件。
 本题题干部分完成的就是添加一个文件到此文档库的工作并CheckIn了此文档,关键是最后一步,如何实现:用户能看到此文件。
  所有需要大致了解一下Sharepoint的文档库:
  Sharepoint的文档库是与其他网站用户共享的 Windows SharePoint Services 3.0 上的文件集合。大多数 Windows SharePoint Services 3.0 文档管理功能都是通过文档库来传送的。作为文档管理规划的一部分,应确定最能满足组织需求的文档库。Sharepiont文档库主要分成两类:
1.文档库 使用文档库可实现文档存储、文档协作和内容轻松共享。
2.图片库 使用图片库可共享、管理和重用数字图片。
   有文档就有修改维护,有修改维护就有版本控制。Sharepoint的文档库提供三个版本控制选项:
1. 无:指定不保存早期版本的文档。在未使用版本控制时,早期版本的文档是不可检索的,并且还会丢失文档历史记录,原因是不会保存随文档的每个迭代附带的注释。在包含不重要的内容或绝不会变化的内容的文档库上使用此选项。
2.仅主要版本 指定使用简单的版本控制方案(1、2、3 等)来保留编号的文档版本。
3.主要和次要版本 指定通过使用主要和次要版本控制方案(1.0、1.1、1.2、2.0、2.1 等)来保留编号的文档版本。以 .0 结束的版本是主要版本,而以非零扩展名结束的版本是次要版本。
   有了版本控制,接下来就是文档库的文档审批:
Sharepoint文档的内容审批是具有审批者权限的网站成员在控制内容发布时所使用的方法。等待内容审批的文档草稿处于等待审批状态。在审批者审阅文档并批准内容之后,该文档就可供具有读取权限的网站用户查看。【这就是本题的答案:只有经过审批后发布的文档才能由最终的用户查看】
 下面分析各选项:
选项A. file.CanOpenFile(true); 此方法用于设置是否允许当前用户查看此文档的内容。注意:是文档里面的内容,也即用户首先要能在界面上看到此文档[这也是本题要达到的目标],然后才是使用此权限去打开文档查看里面的内容。
选项B. file.Publish(string.Empty);以附带的审批批注信息提交并发布此文档 。这正是本题需要的答案:完成审批发布步骤,以供最终用户在文档库界面上查看到本文档。
选项C. file.ReleaseLock(string.Empty);对特定的文档进行解锁。一般当要对特定的文档进行修改编辑时就需要你锁定这个文档,而当完成修改编辑后就需要解锁以供其它用户进一步对文档进行相关操作。
选项D. file.Update();保存对此文档进行的修改。
所以本题目正确选项应该是B
参考:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfile.publish.aspx
http://technet.microsoft.com/zh-cn/library/cc288641(v=office.12).aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfile.releaselock.aspx

Sharepoint学习笔记—习题系列--70-573习题解析 -(Q88-Q90)的更多相关文章

  1. Sharepoint学习笔记—ECM系列—文档列表的Metedata Navigation与Key Filter功能的实现

    如果一个文档列表中存放了成百上千的文档,想要快速的找到你想要的还真不是件容易的事,Sharepoint提供了Metedata Navigation与Key Filter功能可以帮助我们快速的过滤和定位 ...

  2. Sharepoint学习笔记—ECM系列--文档集(Document Set)的实现

    文档集是 SharePoint Server 2010 中的一项新功能,它使组织能够管理单个可交付文档或工作产品(可包含多个文档或文件).文档集是特殊类型的文件夹,它合并了唯一的文档集属性以及文件夹和 ...

  3. Sharepoint学习笔记—习题系列--70-576习题解析 --索引目录

        Sharepoint学习笔记—习题系列--70-576习题解析  为便于查阅,这里整理并列出了70-576习题解析系列的所有问题,有些内容可能会在以后更新. 需要事先申明的是:     1. ...

  4. Sharepoint学习笔记—习题系列--70-573习题解析 --索引目录

                  Sharepoint学习笔记—习题系列--70-573习题解析 为便于查阅,这里整理并列出了我前面播客中的关于70-573习题解析系列的所有问题,有些内容可能会在以后更新, ...

  5. Deep Learning(深度学习)学习笔记整理系列之(五)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  6. Deep Learning(深度学习)学习笔记整理系列之(八)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  7. Deep Learning(深度学习)学习笔记整理系列之(七)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  8. Deep Learning(深度学习)学习笔记整理系列之(六)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  9. Deep Learning(深度学习)学习笔记整理系列之(四)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  10. Deep Learning(深度学习)学习笔记整理系列之(三)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

随机推荐

  1. Java框架篇---Mybatis 构建SqlSessionFactory

    从 XML 中构建 SqlSessionFactory 基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的.SqlSessionFactory 的实例可以通过 ...

  2. tcp为什要三次握手

    准备知识: 单工:信息只能单向传递.发送-->接收,单向,不能返回响应. 双工:指的是信息可双向发送. 全双工:信息可同时双向传递. 半双工:不能同时,单行道,一边传输完了,另一边才能发起传输. ...

  3. zoj 3261 Connections in Galaxy War

    点击打开链接zoj 3261 思路: 带权并查集 分析: 1 题目说的是有n个星球0~n-1,每个星球都有一个战斗值.n个星球之间有一些联系,并且n个星球之间会有互相伤害 2 根本没有思路的题,看了网 ...

  4. gcview使用

    1.下载适用的版本 https://github.com/chewiebug/GCViewer Supported verbose:gc formats are: Oracle JDK 1.8 -Xl ...

  5. 【转载】SHELL字符串处理技巧(${}、##、%%)

    转载自:http://www.cnblogs.com/pmars/archive/2013/02/17/2914444.html 在SHELL编程中,经常要处理一些字符串变量.比如,计算长度啊.截取子 ...

  6. UliPad 初体验----python 开发利器

    学习python 有段时间,最近博客更新比较慢了,空闲时间在零零碎碎的学python ,难成文,也就没整理成博客. 学习python 最苦恼的就是没有趁手IDE ,之前学java 时 Eclipse  ...

  7. 初遇sql server

    今天初始接触sql server 和mysql的语法有一些不同 sql server中使用[] 或双引号来表示数据库.字段名.表名等,而字符串使用单引号来表示 mysql中数据库名,表名,字段名不需要 ...

  8. SQL Server 2014里的IO资源调控器

    在本文中,我们将来看看SQL Server 2014在资源调控器方面增加了哪些新的功能.资源调控器(Resource Governor)是从SQL Server 2008开始出现的一项功能.它是用于管 ...

  9. 连接不上mysqlworkbench问题解决方法

    连接mysqlworkbench出现如下提示:     查看ip     加入host的范围 mysql> select user,host from mysql.user;+--------- ...

  10. Spring总结——AOP、JDBC和事务的总结

    1.上一次总结了 Spring 的核心三大组件(Core,Beans,Context),今天总结的 AOP.JDBC和事务都可以看成是核心三大组件的应用. 其中 Spring 的事务管理又以 AOP ...