昨天在写SharePoint EventReceiver的时候遇到一个问题,创建了一个local farm SharePoint solution,添加了一个ItemAdded(SPItemEventProperties properties)事件,更新field name为Workflow的value。

public override void ItemAdded(SPItemEventProperties properties)
{
base.ItemAdded(properties);
if (properties.AfterProperties["Workflow"] != null)
{
string value = properties.AfterProperties["Workflow"].ToString();
if (!string.IsNullOrEmpty(value))
{
properties.ListItem["Workflow"] = string.Empty;
properties.ListItem.SystemUpdate();
}
}
}

上传已包含custom field为Workflow的office file,发现properties.AfterProperties["Workflow"]这个field value一直是空。百思不得其解,向大神求教。

大神还是很热心的,下面是回复的内容:

I did a test and found that the property will be added when the file saved to the document library, here is our steps and some codes, please point out if we have some settings different from your enviroment:

1、Create 2 Document libraries(LibA and LibB),both of  them contain one column field name "SyncType"

2、Create a Document in office Client, upload it to LibA ,and set the SyncType to 1

3、Now web download the file, open it in office client, click File->Show All Properties in the right bottom, we can see this property

4、Now we created a project, I used sandboxed solution, add an Event Receiver,and I used the following codes to proceed the action(get value and reset it):

 

public override void ItemAdded(SPItemEventProperties properties)
{
base.ItemAdded(properties);
try
{
var value = properties.AfterProperties["SyncType"].ToString();
if (!string.IsNullOrEmpty(value))
{
properties.ListItem["SyncType"] = string.Empty;
properties.ListItem.SystemUpdate();
}
}
catch (Exception)
{
throw;
}
}

  5、Then I click the document I uploaded to LibA, then select open it in office client, then File->Save As, save it to the LibB,and seems everything works fine.

please let us know if we missed something.

以上是大神回复的大部分内容,瞬间被大脸,怎么回事,为什么在我这里不好用,大神确认证成功。经过昨天一下午不懈努力,终于发现了问题所在,原来是solution type的原因,sandbox solution确实可以,但是local farm solution 存在这个问题。

下面是我重现的步骤,本人也是第一次创建sandbox solution,记录了一下过程

1、创建一个sandbox solution,添加如上代码

2、Deployee solution,Site Setting->Web Designer Galleries ->Solution, check the Status is Actived

3、Attach process,if the solution endpoint is not trigger, please End process SPUCWorkerProcess.exe then retry.

果然,验证成功!

SharePoint 2013 Sandbox Solution的更多相关文章

  1. VS2012 开发SharePoint 2013 声明式workflow action(activity)之 HelloWorld

    本文讲述VS2012 开发SharePoint 2013 声明式workflow action 之 HelloWorld. 使用VS2012开发客户化的workflow action是SharePoi ...

  2. 使用VS2012 开发SharePoint 2013 声明式的action(activity) 综合实例

    本文讲述使用VS2012 开发SharePoint 2013 声明式的action 综合实例. 需求同: http://blog.csdn.net/abrahamcheng/article/detai ...

  3. SharePoint 2010升级到sharePoint 2013后,人员失去对网站的权限的原因及解决方法。The reason and solution for permission lost after the upgrading

    昨天碰到了一个问题,一个网站在从SharePoint 2010升级到SharePoint 2013后,人员都不能登录了,必须重加赋权,人员才能登录,这样非常麻烦. 原因:是认证方式的问题.在Share ...

  4. 实现一个基于 SharePoint 2013 的 Timecard 应用(上)

    在 SharePoint 2013 上面实现一个 Timecard 应用的想法来自一个真实的需求,而实现的方案在我脑海里面盘旋已经很久了,终于这几天准备安排点儿时间将它实现出来. “ We start ...

  5. 实现一个基于 SharePoint 2013 的 Timecard 应用(中)

    门户视图 随着 Timecard 列表的增多,如何查找和管理这许多的 Timecard 也就成了问题.尤其对于团队经理而言,他除了自己填写的 Timecard,还要审核团队成员的 Timecard 任 ...

  6. Integrating SharePoint 2013 with ADFS and Shibboleth

    Time again to attempt to implement that exciting technology, Federation Services (Web Single Sign On ...

  7. [转]安装SharePoint 2013时安装AppFabric失败(错误码:1603)

    转自:http://blogs.technet.com/b/praveenh/archive/2013/02/22/sharepoint-2013-prerequisites-fails-with-m ...

  8. 使用C#代码部署SharePoint 2013开发包简单总结(一)

    这篇文章将总结下如何将自己开发的列表.Web部件.事件接收器等元素部署到SharePoint的服务器.因水平有限,我的做法未必是最佳实践,会有些错误理解和疏漏,欢迎各位高手批评指正——但一定要能给出更 ...

  9. SharePoint 2013 为用户组自定义EventReceiver

    前 言 在SharePoint的开发中,EventReceiver是很重要的一个部分,但是,常常遇到有些需要事件的时候,却没有相应的模板,因为EventReceiver创建时的模板只有那几个,除此之外 ...

随机推荐

  1. 《Java 编写基于 Netty 的 RPC 框架》

    一 简单概念 RPC: ( Remote Procedure Call),远程调用过程,是通过网络调用远程计算机的进程中某个方法,从而获取到想要的数据,过程如同调用本地的方法一样. 阻塞IO :当阻塞 ...

  2. MSIL实用指南-类相关生成

    一.创建class用MethodBuilder的DefineType方法,可以指定父类,得到一个TypeBuilder对象. 二.实现继承接口用TypeBuilder的AddInterfaceImpl ...

  3. 牛客-小a的旅行计划 + 数学推导

    小a的旅行计划 题意: 小a终于放假了,它想在假期中去一些地方游玩,现在有N个景点,编号为,同时小b也想出去游玩.由于一些特殊♂原因,他们的旅行计划必须满足一些条件 首先,他们可以从这N个景点中任意选 ...

  4. Codefroces 920F SUM and REPLACE(线段树)

    SUM and REPLACE 题意:给你n个数,进行m次操作,分别是将区间[l,r]内的所有数替换成自己的因子数 和 对区间[l,r]进行求和. 题解:可以发现2的因子个数还是2,1的因子个数还是1 ...

  5. lightoj 1068 - Investigation(数位dp)

    An integer is divisible by 3 if the sum of its digits is also divisible by 3. For example, 3702 is d ...

  6. WebStorm调节控制台字体

    File --> Settings --> Editor --> Colors & Fonts --> Console Font

  7. 自定义属性,innerHTML,outerHTML,dom节点的获取,className,tagName,更改或者是获取css属性

    01.自定义属性 1.自定义属性: 作用:保存数据 通用的自定义属性的前缀 data-属性="属性值" 注:自定义的属性不能通过 元素.属性 取属性值 ,需使用getAttribu ...

  8. mysql5.7指定字符集

    在这个配置下面加上下面这行就可以 [mysqld] character_set_server=utf8 重启后: mysql> show variables like 'char%';+---- ...

  9. git 中文乱码-一次被坑经历

    git log和gitcommit中文出现乱码,花了大半天的时间试了网上的各种方法,还是搞不定. 只好放大招. 卸载软件后重装,还是不行.然后git config --list 发现一些奇怪的配置信息 ...

  10. 〈二〉ElasticSearch的认识:索引、类型、文档

    目录 上节回顾 本节前言 索引index 创建索引 查看索引 查看单个索引 查看所有索引 删除索引 修改索引 修改副本分片数量 关闭索引 索引别名 增加索引别名: 查看索引别名: 删除索引别名: 补充 ...