微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SharePoint Online,导出SharePoint列表

如何解决SharePoint Online,导出SharePoint列表

tl; dr-不要使用SharePoint列表存储可能需要以自动方式导出的任何数据,并且电源自动化甚至还没有完成。以下内容可能对做我尝试过的相同事情的人有所帮助,但前提是SharePoint列表中存储的数据非常少。

我的用例很简单,请定期提取SharePoint列表的内容,以将其上载到Azure数据库。简单的正确,事实证明它离它还很遥远。

这似乎是SSIS的一个好用例,这是第一个痛苦点。您会看到ssis没有用于共享点列表的连接器,因此它必须是脚本源,这使其非常脆弱。因此,这看起来像是电源自动化的工作。它在sharepoint在线上进行广告宣传,具有用于SharePoint列表的内置“获取项目”功能,看起来不错,也很容易。

面对您的下一个问题是您想要的目标位置,最初我想在本地文件夹中创建一个平面文件,这样我就可以使用SSIS导入数据,作为使用该数据的较大作业的一部分。但是,您需要在网络内部安装本地网关,然后在检查软件要求后直接从我的IT支持人员处报价为“ No,Hell No”。我无法将文件拖放到SharePoint上,因为我仍然无法从SharePoint自动获取文件。在简要考虑了FTP之后,我决定只使用sql insert选项,这是一项高级功能,每月花费15美元。剧透,它一个月不值15美元,很显然在早期开发中。

我花了些力气才能完成此设置,因为在锅炉板MS文档之外几乎没有关于电源自动化的文档。事实证明,插入步骤甚至无法进行很小的转换,因此我不得不更改表以匹配SharePoint中的数据类型,并且不了解任何数据类型存在一些尝试和错误,才能获取sql表数据类型匹配SharePoint的。但是,每当基础sql表发生更改时,都必须删除并重新创建插入行小部件,因为无法更新存储的架构信息。这没有记录在任何地方,而是通过反复试验找出来的。

最终,我第一次成功运行了该流程。太好了,我检查了Azure数据库中的表,只有100行。奇怪的是,列表中大约有5万行。原来,获取项目小部件的隐藏认值为100,在任何地方都没有说明,您没有得到任何警告,因此我不得不用Google搜索它。要解决此问题,您必须启用分页并将行限制设置为大于您认为列表可以达到的值。

现在意识到有很多数据,我尝试设置一个过滤器,这样我就只能提取上个月的数据。事实证明,您不能在filter子句中使用表达式(猜测是tbd功能),而必须使用固定值,这使上个月不再是必需品,因为此作业需要按计划运行。

接下来,我尝试使用“创建的”列上的排序选项(请注意读者,这是区分大小写的,这很烦人,但易于管理)和顶部过滤器来获取几千行最新数据。原来,如果您的列表中有超过5000行,则“获取项目”步骤将失败。您可以通过在计划进行排序的列上创建索引来解决此问题,注意22,您不能在行数超过2万的表上创建索引。由于我有5万行,因此这种方法对我来说完全不起作用。

在绳子的尽头,我想,“好吧,我要抓住所有的行”。事实证明,获取项目小部件很慢,超级慢。我们的目标是在非工作时间运行此程序,因此它本身并不会破坏交易,但是流程中每个步骤的超时时间都是10分钟。这是一个只有5万行的小型数据集,需要花费超过10分钟的时间才能自动执行数据提取工作。

因此,请从我的痛苦中学习,避免使用SharePoint列表,并避免像半熟现金抢购一样实现自动化。如果您发现我做错了什么,我很想听听。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。