Я пишу агента, который проверяет каждое поле в списке, если оно пустое или нет. Поля могут быть любого типа, включая RichText. Поля расширенного текста могут содержать текст или вложение. Агент должен быть запущен в UIDocument, поскольку пользователю не разрешено сохранять, если обязательное поле пусто.
У нас есть существующий агент, но он иногда возвращает (5 или 6 раз в день) ошибки "4602: L ' Операция DOM Parser a échoué "(я думаю, что это должно быть что-то вроде" Операция DOM Parser fail "в engli sh) в этой строке:
Call DXLExporter.process
На Inte rnet я обнаружил, что это сервер проблема у меня нет руки на это. Я нахожу что-то интересное, чтобы заменить существующий агент:
' source is the NotesUIDocument, send to the agent in parameter
' champSource is a string : the name of the field
On Error GoTo ErrorHandler
Call source.GoToField(ChampSource)
Call source.SelectAll
Call source.DeselectAll
Exit Function
ErrorHandler:
Select Case Err
Case 4407 ' empty field
Print "champ vide : " & ChampSource
Case 4412 ' non-existent field
Print "champ non trouvé : " & ChampSource
Case Else
Print LSI_Info(2) & " - " & Error & " - " & Err & " - " & Erl
End Select
Exit Function
И это работает, «source.DeselectAll» генерирует ошибку 4407, если поле пустое, и никакой ошибки, если оно содержит что-либо.
Проблема в том, что это форма с полями "когда скрыто". Когда одно из этих полей проверяется, если оно скрыто, я получаю всплывающее окно Notes «Impossible de localiser ce champ» (это должно быть что-то вроде «невозможно найти это поле» в engli sh) в этой строке:
Call source.GoToField(ChampSource)
И только после этого всплывающего окна скрипт переходит к ErrorHandler.
Я пытаюсь добавить условие до:
If source.Document.HasItem(ChampSource) Then
Call source.GoToField(ChampSource)
Call source.SelectAll
Call source.DeselectAll
End If
Но элемент существует в документ, несмотря на то, что поле не существует в пользовательском интерфейсе.
Я ищу решение, чтобы скрыть всплывающее окно Notes и позволить моему ErrorHandler выполнить свою работу или проверить, существует ли поле в Пользовательский интерфейс.
Заранее спасибо за ответ.
PS: извините за мой бедный английский sh, я француз.