昨天在写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集合框架之LinkedList浅析

    Java集合框架之LinkedList浅析 一.LinkedList综述: 1.1LinkedList简介 同ArrayList一样,位于java.util包下的LinkedList是Java集合框架 ...

  2. Keras(三)backend 兼容 Regressor 回归 Classifier 分类 原理及实例

    backend 兼容 backend,即基于什么来做运算 Keras 可以基于两个Backend,一个是 Theano,一个是 Tensorflow 查看当前backend import keras ...

  3. 分层图 单调决策性DP

    easy 写法. #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt" ...

  4. The Suspects POJ1611

    The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 36417   Accepted: 17681 De ...

  5. codeforces 761 C. Dasha and Password(多维dp)

    题目链接:http://codeforces.com/contest/761/problem/C 题意:给出n行的字符串每一列都从第一个元素开始可以左右移动每一行字符串都是首位相连的. 最后问最少移动 ...

  6. CF995B Suit and Tie 贪心 第十三

    Suit and Tie time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  7. zookeeper的未授权访问漏洞解决

    zookeeper的基本情况 zookeeper是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务.zookeeper官网下载软件包,bin目录下有客户端脚本和服务端脚本.另外还有个工具 ...

  8. 玩转 SpringBoot 2 快速整合 | Thymeleaf 篇

    前言 Thymeleaf是一个适用于Web和独立环境的现代服务器端Java模板引擎. Thymeleaf的主要目标是为您的开发工作流程带来优雅的自然模板 - 可以在浏览器中正确显示的HTML,也可以用 ...

  9. SSM相关面试题(简答)

    1.springmvc的执行    流程: 2.mybstis的执行流程: 3.ioc和DI的理解: 4.对aop的理解: 5.spring中常见的设计模式: 6.spring中声明式事务处理的配置: ...

  10. Python:给定一个不超过5位的正整数,判断有几位

    方法一:作比较 [root@python markPy]# cat five.py #!/usr/bin/python3 a=int(input(">>>>" ...