excel - 如何在 SharePoint 上“签入”上传的文档?
问题描述
我有在 SharePoint 上上传新文档的 VBA 代码。
它在 SharePoint 上上传新行,但不会为新项目启动工作流,因为它需要“签入”。
当我手动执行此操作时,我单击上传,选择一个文件,填写必填字段,然后按“签入”添加新项目并自动启动工作流程。
当我通过 VBA 执行此操作时,它会添加带有描述字段的新项目,但它不会启动工作流,因为它需要“签入”。
我尝试使用 Microsoft 官方文档中的代码
Sub CheckInOut(strWkbCheckIn As String)
' Determine if workbook can be checked in.
If Workbooks(strWkbCheckIn).CanCheckIn = True Then
Workbooks(strWkbCheckIn).CheckIn
MsgBox strWkbCheckIn & " has been checked in."
Else
MsgBox "This file cannot be checked in " & _
"at this time. Please try again later."
End If
End Sub
当我打开工作簿时,它处于只读模式,因此我无法使用“签入”方法。
解决方案
您可以尝试以下方法来上传和签入文件:
Dim oWebsite As Web = clientContext.Web
Dim folder As Folder = web.GetFolderByServerRelativeUrl("/sites/michael/Shared%20Documents")
Dim fileCreateInfo As FileCreationInformation = New FileCreationInformation()
fileCreateInfo.Overwrite = True
fileCreateInfo.Url = folder.ServerRelativeUrl & "/" & fileName
fileCreateInfo.Content = System.IO.File.ReadAllBytes(filePath)
Dim uploadFile As File = folder.Files.Add(fileCreateInfo)
If uploadFile.CheckOutType <> CheckOutType.None Then
uploadFile.CheckIn("Initial Upload", CheckinType.MajorCheckIn)
End If
clientContext.Load(uploadFile)
clientContext.ExecuteQuery()
推荐阅读
- reactjs - Internet Explorer 11 上的 SCRIPT5017 错误,使用 webpack 4、babel 7 并做出反应
- javascript - 有没有办法优化这个 Promise 循环,这样我就不会出现 FATAL JavaScript heap out of memory 错误了?
- python - 试图从另一个函数中捕获异常
- java - 如何更改单击的按钮的颜色,但使其只能同时更改一个按钮的颜色?
- django - 以 HTML 格式发送电子邮件不显示上下文
- graphics - 如何计算图形和方程中带有 x 的值的值?
- python - 如何使用 PyGame 制作“退出”按钮单击事件以关闭程序
- javascript - (猫鼬)如何在帖子和评论模型之间进行双向引用
- sql - 将员工登录数据与用户登录数据混合在一起,还是有两个不同的表?
- unity3d - Unity 3D:如何只面对卡一半