繁体   English   中英

PowerShell 更新脚本 SharePoint 在线列表项不保存所有列值

[英]PowerShell script to update SharePoint Online list items does not save all column values

我正在处理一个 CSV 文件以创建 SharePoint 在线列表项并将元数据保存为其自定义内容类型中的字段。 起初,我认为这将是与列类型相关的问题,但我未能保存一些简单的文本字段值。 令人费解的是,我能够保存一些字段但不能保存其他字段 - 即使我使用相同的方法来执行此操作 - 不知何故列表项并没有保留我为列表项更新发送的所有值。

我使用以下代码创建一个新项目:

$newFile = $targetfolderObj.Files.Add($FileCreationInfo)
$targetContext.Load($newFile)
$spContext.ExecuteQuery()

然后我得到列表项并开始设置字段值

$newFileListItem = $newFile.ListItemAllFields

$newFileListItem.Properties["ColumnNameA"] = $_.CustomValue1 # saves
$newFileListItem.Properties["ColumnNameB"] = $_.CustomValue2 # not saving !!!
$newFileListItem.Properties["ColumnNameC"] = $_.CustomValue3 # saves

使用值设置属性后,我调用更新和执行函数。

$newFileListItem.Update()
$spContext.ExecuteQuery()

$ .CustomValue1 $ .CustomValue2$_.CustomValue3在打印时都读作“Hello”,例如,这里没有特殊字符或符号 - 即使将字段值硬编码为简单字符串也无法更新字段 2,但适用于 1 和3.

我用我的代码给出了这个例子,以表明它不是顺序的 - 例如,字段 2 数据未保存,但字段 1 和 3 数据已保存。

它总是在相同的列上失败,我验证了这些列存在,我使用的是内部字段名称,字符串长度在范围内,并且没有对这些列应用其他验证。 我可以做些什么来解决这个问题?

经过大量调试后,我看到 SharePoint 正在玩笑话......

虽然内容类型在那里,并且内容类型内部字段名称为“ColumnNameA”,但库实例中一定有什么东西发生了变化,导致列名称现在为“ColumnNameA0”是的,在列名称末尾添加了一个零. 每个未更新的列现在都以某种方式在内部列名的末尾有一个“零”。

解决方案 1:添加零 解决方案 2:重新创建库并将其与站点内容类型重新关联

我使用解决方案 1 来测试我的更新是否有效,然后重建库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM