P
PavelT100
В результате длительных исследований написал примерно вот такой агент:
[codebox]Sub Initialize
On Error Goto ErrGlobal
Print "BEGIN SINCHRONISATION"
Dim session As New NotesSession
Set db = session.CurrentDatabase
Dim CountError As Integer
CountError = 0
Dim CntErr As Integer
CntErr = 0
Set WShell = Nothing
Set FSO = Nothing
M5:
If WShell Is Nothing Then
On Error Resume Next
Print "Attempt get WShell"
Set WShell = GetObject( ,"WScript.Shell")
On Error Goto Err208
If WShell Is Nothing Then
Print "Error in get WShell"
Set WShell = CreateObject("WScript.Shell") 'номер этой строки в агенте - 31
Print "WShell - OK1"
End If
End If
.......................
Exit Sub
Err208:
Print "208 ERROR INITIALIZE " & Cstr(Err) & ": " & Error$ & " on Line " & Cstr(Erl) & " CntErr = " & CntErr
If CntErr < 10 Then
CntErr = CntErr +1
Goto M5
Else
exit sub
End If
End Sub[/codebox]
Как правило все работает, но достаточно часто случается что-то мне непонятное - вот что оказывается в лотусовской базе Notes Log:
Agent printing: BEGIN SINCHRONISATION
Agent printing: Attempt get Wshell
Agent printing: Error in get WShell
Agent printing: 208 ERROR INITIALIZE 208: Cantot create automation object on Line 31 CntErr = 0
Agent printing: Attempt get Wshell
Agent 'Synchronisation Convertions ALF & Lotus' error: Cantot create automation object
после этого аент видимо вылетает.
Непоняток две: первое - почему на втором цикле не срабатывает On Error Resume Next и агент вылетает и второе самое главное - почему иногда все работает с WScript.Shell без замечаний, а иногда все падает ?
[codebox]Sub Initialize
On Error Goto ErrGlobal
Print "BEGIN SINCHRONISATION"
Dim session As New NotesSession
Set db = session.CurrentDatabase
Dim CountError As Integer
CountError = 0
Dim CntErr As Integer
CntErr = 0
Set WShell = Nothing
Set FSO = Nothing
M5:
If WShell Is Nothing Then
On Error Resume Next
Print "Attempt get WShell"
Set WShell = GetObject( ,"WScript.Shell")
On Error Goto Err208
If WShell Is Nothing Then
Print "Error in get WShell"
Set WShell = CreateObject("WScript.Shell") 'номер этой строки в агенте - 31
Print "WShell - OK1"
End If
End If
.......................
Exit Sub
Err208:
Print "208 ERROR INITIALIZE " & Cstr(Err) & ": " & Error$ & " on Line " & Cstr(Erl) & " CntErr = " & CntErr
If CntErr < 10 Then
CntErr = CntErr +1
Goto M5
Else
exit sub
End If
End Sub[/codebox]
Как правило все работает, но достаточно часто случается что-то мне непонятное - вот что оказывается в лотусовской базе Notes Log:
Agent printing: BEGIN SINCHRONISATION
Agent printing: Attempt get Wshell
Agent printing: Error in get WShell
Agent printing: 208 ERROR INITIALIZE 208: Cantot create automation object on Line 31 CntErr = 0
Agent printing: Attempt get Wshell
Agent 'Synchronisation Convertions ALF & Lotus' error: Cantot create automation object
после этого аент видимо вылетает.
Непоняток две: первое - почему на втором цикле не срабатывает On Error Resume Next и агент вылетает и второе самое главное - почему иногда все работает с WScript.Shell без замечаний, а иногда все падает ?