2013年6月24日,星期一

SP2013 托管网络应用:设置字段和内容类型

继续转移到SharePoint“host web apps” or “Full Control apps”(例如,提供给主机网络的应用)是我关于应用的较大系列文章中的内容,今天,我想看看供应字段(网站列)和内容类型–而是将其设置到宿主网站而不是应用网站中。只是为了解释我们在整个系列中的位置,在这里’不断变化的目录:

  1. SharePoint 2013应用–架构,功能和UX注意事项
  2. 入门–在SharePoint应用程序中创建列表,内容类型,字段等(配置)
  3. 在应用程序网络中使用数据以及为什么要这样做
  4. 从SharePoint 2013应用访问最终用户数据(在宿主网站中)
  5. 将SharePoint 2013应用推广到企业-租户范围和PowerShell安装
  6. Azure是新的SharePoint‘_layouts’ directory
  7. “Host web apps” –将文件(例如母版页)设置到主机网站
  8. “Host web apps” –设置字段和内容类型 [本文]
  9. 将SP2013提供程序托管的应用程序/远程事件接收器部署到Azure网站(用于Office 365应用程序)
  10. 在SharePoint应用程序中使用Web部件

The idea of设置字段和内容类型 to the host web are important techniques for 托管网络应用 - since if we can have an app which creates fields/content types AND can provision files to the host web (using the techniques in 我以前的文章),那么我们可以使用一个应用来交付典型SharePoint协作解决方案的构建基块。

与以往一样,只有在以下情况下才有可能:

  • 应用程序请求(并被授予)“Full Control”主机网站的许可
  • CSOM代码用于配置,而不是标准功能XML

N.B.在这一点上,您可能对“Should you do this? Deciding between 托管网络应用/sandbox/farm..”上一篇文章的第二部分。

向主机网站配置字段和内容类型时面临的挑战

我想如果我们’重新构建这样的应用程序,那么我们’d可能需要一些辅助方法,这些方法可以:

  • 设置字段(作为网站栏)
  • 供应内容类型
  • 将字段添加到内容类型

和以前一样’m在我的SharePoint托管应用程序的默认页面中使用JSOM代码–如果需要,可以将其调整为其他内容。我注意到的一些挑战是:

  • 它没有’似乎可以使用CSOM创建具有特定内容类型ID的内容类型–也许我忽略了一些东西,但是无论如何似乎确实有可能 获得 再打个电话
  • 似乎您必须在初始配置后重新获取任何字段和内容类型才能使用它们–您不能使用从CSOM / JSOM方法返回的对象。如果您尝试这样做,CSOM似乎会为您提供切勿’没有一些成员,这会导致如下错误:

    必须重新获取ctype

如何:向主机网站配置字段和内容类型

下面的代码有些杂乱无章,因为它需要一连串CSOM命令–一种改进是将代码移至使用 诺言 和jQuery’s 推迟 目的。实际上,某些方法需要在成功回调中调用,因为例如在将字段添加到内容类型之前,我们需要两者都存在。

我还花了一段时间才意识到,我需要引用实际的SP.Field才能使用SP.FieldLinkCreationInformation,而在我 可以 可能获得我的内容类型’创建后的ID,然后使用该ID进行获取,只需迭代所有内容类型并查找我的ID,即可获得相同数量的CSOM调用。反正这里’s the code I used:

** N.B.我较新的代码示例未在RSS阅读器中显示- 点击这里查看全文 **

运行应用

构建我们的应用并将其添加到网站后,添加人员必须接受“完全控制”权限请求:

完全控制应用程序权限要求

..就像上次一样,我的应用程序具有一些示例UI,用于确认已采取的步骤:

 结果

结果

现在,当我们返回到宿主网站时,我们看到我们的字段和内容类型确实已配置:

预设栏位 预配内容类型

..,并且该字段已添加到内容类型中,因此可以使用:

字段已添加到内容类型

下载代码

您可以从此处下载使用这两篇​​文章中使用的代码的完整Visual Studio项目– 下载代码.

2013年6月23日,星期日

6月29日在荷兰,星期六,SharePoint上发表演讲

只需快速提及我’我期待着在 SharePoint周六荷兰 下个周末。它’总是有幸被要求在这些事情上讲话,而且与其他演讲者一起参加的活动看起来很棒 斯潘斯·哈伯, 沃尔德·马斯提卡兹(Waldek Mastykarz), 韦斯·哈克特(Wes Hackett), 伍特·范·沃格特 以及其他许多荷兰SharePoint人才。

我的课程是:

使用JavaScript模板来自定义SharePoint 2013用户界面

开发人员经常需要修改SharePoint的HTML呈现,尤其是在列表和列表表单周围,但是在SharePoint的早期版本中,这并不总是那么容易。即使页面可能不可靠且不受支持,许多开发人员还是使用JavaScript来在页面加载后对其进行操作。 SharePoint 2013通过提供为多个用户界面元素指定JavaScript“显示模板”的能力来解决此问题。本次会议研究了关键的开发人员方案,例如为SharePoint列表实现自定义呈现(包括条件格式),自定义Content Search Web部件的显示以及为特定项目提供增强的搜索“悬停面板”。快来学习如何以支持的方式转换SharePoint界面!

期待在那里见到人们!