从SSIS works(但不是从代理作业)填充Sharepoint Online列表
我需要每日通过SQL Server 2017的一个表,在Sharepoint Online的列表中提供大量数据 我选择通过SQL Server Integration Services 2017来实现这一点,而且它工作正常 为此,我创建了一个名为包的从SSIS works(但不是从代理作业)填充Sharepoint Online列表,ssis,sharepoint-online,sql-server-agent,Ssis,Sharepoint Online,Sql Server Agent,我需要每日通过SQL Server 2017的一个表,在Sharepoint Online的列表中提供大量数据 我选择通过SQL Server Integration Services 2017来实现这一点,而且它工作正常 为此,我创建了一个名为包的数据流任务: 在数据流任务中,我连接到数据库(DB)以获取数据 然后,我有一个名为Script的组件脚本,用于与Sharepoint Online建立连接 然后将数据插入Sharepoint列表中: 要与sharepoint Online建立连接
数据流任务
:
在数据流任务
中,我连接到数据库(DB)以获取数据
然后,我有一个名为Script的组件脚本
,用于与Sharepoint Online建立连接
然后将数据插入Sharepoint列表中:
要与sharepoint Online建立连接并在sharepoint列表中插入数据,我创建了一些参数:
在组件脚本中,我有以下代码:
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
// Starting with ClientContext, the constructor requires a URL to the
// server running SharePoint
string siteUrl = Variables.siteUrl.ToString();
ClientContext clientContext = new ClientContext(siteUrl);
// Retrieve Login
string login = Variables.login.ToString();
// Retrieve Password
string password = Variables.password.ToString();
// Credentials
clientContext.Credentials = SignIn.Login(login, password);
// Retrieve List Items
List myList = clientContext.Web.Lists.GetByTitle(Variables.list.ToString());
// Create a new ListItemCreationInformation object
ListItemCreationInformation itemCreateInfo = new ListItemCreationInformation();
// Create a new List Item
ListItem myListItem = myList.AddItem(itemCreateInfo);
myListItem["Title"] = Row.Name;
// Note that the web.Update() doesn't trigger a request to the server
// Requests are only sent to the server from the client library when
// the ExecuteQuery() method is called
myListItem.Update();
// Execute the query to the server
clientContext.ExecuteQuery();
}
登录课程:
使用此包通过SQL Server代理运行作业时,出现以下错误:
以用户身份执行:INSTANCE\SQLAgentService。Microsoft(R)SQL Server
为64位版权(C)执行软件包实用程序版本12.0.4100.1
微软公司。版权所有。开始时间:14:56:49
错误:2020-09-01 14:58:52.51代码:0x00000001来源:软件包
描述:调用的目标已引发异常。
结束错误DTExec:包执行返回DTSER_SUCCESS(0)。
开始时间:14:56:49结束时间:14:58:52经过时间:122.735秒。
包已成功执行。步骤成功。
疑问:
SQLAgentService是否需要访问Sharepoint Online的权限
是否需要在SQLAgentService服务器上安装Microsoft.SharePoint.Client.Runtime.dll和Microsoft.SharePoint.Client.dlldll
对我来说,身份验证是通过nameless@test.onmicrosoft.com帐户(具有在Sharepoint Online上协作的权限)
如何通过SQL Server代理填充Sharepoint Online列表
class SignIn
{
public static SharePointOnlineCredentials Login(string login, string password)
{
SecureString securePassword = new SecureString();
foreach (char c in password)
{
securePassword.AppendChar(c);
}
return new SharePointOnlineCredentials(login, securePassword);
}
}