обновление столбца при регистрации через обработчик событий - PullRequest
1 голос
/ 14 апреля 2009

я написал следующий код обработчика событий для обновления столбца в библиотека документов, при возврате документа:

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 обновляется, если я отмечаю документ из библиотеки документов, но это не происходит, если я проверяю документ изнутри слово документ, когда он запрашивает "другие пользователи не могут увидеть ваши изменения до регистрации. Вы хотите зарегистрироваться? ".

Не могли бы вы помочь мне узнать, что идет не так, как получить столбец обновляется, если я регистрируюсь изнутри.

или есть какой-нибудь способ, которым я могу отключить эту подсказку.

Ответы [ 2 ]

1 голос
/ 15 апреля 2009

Первое, что вы должны сделать, это изменить, что в обоих случаях происходит одно и то же событие. Я бы сделал это, записав некоторые отладочные операторы в файл журнала, но я тоже немного староват. Если бы мне пришлось отлаживать этот код, я бы закомментировал большую часть кода, такого как почтовый оператор SMTP, чтобы повысить отношение сигнал / шум.

Как только это будет обработано, вы сможете найти причину

0 голосов
/ 15 апреля 2009

Также может быть проблема с вашим кодом. Попробуйте следующее ...

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

Вы также получите другие результаты, если будете использовать документ не для офиса или документ для офиса 2003. Вы должны будете также проверить это. Помните, что использование синхронного события с документами Office 2007 может привести к вызову события, но впоследствии оно будет перезаписано старым значением, сохраненным в самом документе Office .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...