Sharepoint 通过事件处理程序更新签入时的列
我编写了以下事件处理程序代码来更新 文档库,在签入文档时:Sharepoint 通过事件处理程序更新签入时的列,sharepoint,events,event-handling,Sharepoint,Events,Event Handling,我编写了以下事件处理程序代码来更新 文档库,在签入文档时: Select Case listEvent.Type Case SPListEventType.CheckIn sLog = sLog + "Newest Item is Checked-out" + vbCrLf Dim ApproveStatusBoolean As Boolean = True For Each oField In oItem.Fields If (oItem("ApproveStatus
Select Case listEvent.Type
Case SPListEventType.CheckIn
sLog = sLog + "Newest Item is Checked-out" + vbCrLf
Dim ApproveStatusBoolean As Boolean = True
For Each oField In oItem.Fields
If (oItem("ApproveStatus") = "Rejected") Then
ApproveStatusBoolean = False ' Old document for re-review
Exit For
End If
Next
If (ApproveStatusBoolean = False) Then
oItem("ApproveStatus") = "Submitted"
oItem.Update()
SmtpMail.Send(objMailMesg)
End If
End Select
如果我签入,我发现ApproverStatus列正在更新
文档库中的文档,但如果我签入
当word document提示“其他用户不能”时,从word document中删除文档
在您签入之前查看您的更改。是否签入?“
你能帮我知道出了什么问题吗?如何得到这个专栏
如果我也从内部签入,则更新
或者是否有任何方法可以关闭提示本身。您应该做的第一件事是在两种情况下都触发相同的事件。我会通过向日志文件中写入一些调试语句来实现这一点,但我也有点像老派。如果要调试该代码,我会对大多数代码(如SMTP邮件语句)进行注释,以提高信噪比
一旦处理好了,您就可以深入研究根本原因了。您应该做的第一件事是确定在这两种情况下都触发了相同的事件。我会通过向日志文件中写入一些调试语句来实现这一点,但我也有点像老派。如果要调试该代码,我会对大多数代码(如SMTP邮件语句)进行注释,以提高信噪比
一旦处理完毕,您就可以深入研究根本原因了,您的代码也可能存在问题。试试下面的
Select Case listEvent.Type
Case SPListEventType.CheckIn
sLog = sLog + "Newest Item is Checked-out" + vbCrLf
If (oItem("ApproveStatus") != "Rejected") Then
oItem("ApproveStatus") = "Submitted"
oItem.Update()
sLog = sLog + "Item has set to ApproveStatus:Submitted" + vbCrLf
SmtpMail.Send(objMailMesg)
End If
End Select
如果使用非office文档或office 2003文档,也会得到不同的结果。您还必须测试这些。请注意,对Office 2007文档使用同步事件可能会导致调用事件,但随后会调用事件本身。您的代码也可能存在问题。试试下面的
Select Case listEvent.Type
Case SPListEventType.CheckIn
sLog = sLog + "Newest Item is Checked-out" + vbCrLf
If (oItem("ApproveStatus") != "Rejected") Then
oItem("ApproveStatus") = "Submitted"
oItem.Update()
sLog = sLog + "Item has set to ApproveStatus:Submitted" + vbCrLf
SmtpMail.Send(objMailMesg)
End If
End Select
如果使用非office文档或office 2003文档,也会得到不同的结果。您还必须测试这些。请注意,对Office 2007文档使用同步事件可能会导致调用事件,但随后会调用事件本身。是的,您使用的是什么事件?问题是“SmtpMail.Send(objMailMesg)”调用在这两种情况下都有效。所以我们可以假设调用“oItem(“ApproveStatus”)=“Submitted”oItem.Update()”正在被调用。所以我们可以排除逻辑错误的情况。是的,您使用的是什么事件?问题是“SmtpMail.Send(objMailMesg)”调用在这两种情况下都有效。所以我们可以假设调用“oItem(“ApproveStatus”)=“Submitted”oItem.Update()”正在被调用。所以我们可以排除逻辑错误的情况。