Как поймать кодом время последней репликации?

N

nvyush

первый понятно, а второй откудава взять?

Поглядите внимательно код. Тип HIST_ENTRY определён в библиотеке ReplicationHistory ('custom type for storing individual replication history entries):
link removed

С точки зрения банальной эрудиции в этом параметре возвращается история репликации. Объявляется, судя по всему, так:
Dim entry() As HIST_ENTRY
 
D

deeeman

попробовал не получилось у меня после праздников ((

сделал агента:


Код:
Option Public
Option Declare

Use "ReplicationHistory"

Sub Initialize
On Error GoTo ErrMsg

Dim session As New NotesSession
Dim db As NotesDatabase

'Set db = session.Getdatabase(session.Currentdatabase.Server, "const\requr.nsf")
Set db = session.Getdatabase(session.Currentdatabase.Server, "const\plans2.nsf")

Dim entry() As HIST_ENTRY


MsgBox GetReplHistory(db,entry())


EndSub:
Exit Sub
ErrMsg:
MessageBox " Error in GetHistoryRepl " & CStr(Err) & ": " & Error$ &" in str: "& CStr(Erl)	,17, " Error " 
Resume EndSub
End Sub

строка "MsgBox GetReplHistory(db,entry())" выдает мне числовой код ошибки - 259..
что не так делаю?
 
N

nvyush

Попробуйте
Код:
	MsgBox Cstr(GetReplHistory(db, entry))
 
D

deeeman

тоже самое ((

выдает 259 - скорее всего код ошибки, чтото неправильно передаем...
 
D

deeeman

не пустая...
взял другую базу, с непустой историей репликации.
запускаю как серверный агент
в лог выдает это:

Код:
Agent message: Error in AgentGetHistoryRepl 201: ReplicationHistory.GetReplHistory(20): Operation is disallowed in this session in str: 13


что это за ошибка?
оошибка выскакивает в методе ReplicationHistory.GetReplHistory(20)
строка:

Код:
OSPathNetConstruct "", db.Server, db.FilePath, sPath$
 
N

nvyush

deeeman
Насколько я помню, ошибка 201: Operation is disallowed in this session выскакивает, когда к-либо операция не разрешена в окне оповещения защиты. Похоже, проблема с правами доступа.
Скопипастил все либы и агента, изменил в агенте только путь/имя базы. Для базы с историей репликации возвращает код 0 и массив записей истории, для базы без истории возвращает 578.
 
D

deeeman

ну вот не могу я его на печать никак выпустить:

как этот параметр в агенте увдеть?

Msgbox join(entry)
или
MsgBox join(entry.RepTime)

не дает
 
N

nvyush

deeeman
Я в отладчике смотрел. Для проверки, что entry не пуст можно вывести максимальный индекс:
Код:
MsgBox Cstr(Ubound(entry)
Или же так:
Код:
Dim msg As String
msg = ""
Forall e In entry
msg = msg + Cstr(e.Нужное_поле) + {
}
End Forall
MsgBox msg
 
D

deeeman

Код:
Dim msg1 As String
ForAll e In entry

msg1 = msg1 + Join(e.RepTime)

End ForAll

валиться на строке "msg1 = msg1 + Join(e.RepTime)"

вот строку: "msg1 = msg1 + Join(e.FilePath)" - показывает.
а RepTime не хочет.

что делать?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
471
странный подход :)
ни указания ошибки ничё...
есть подозрение, что join работает со строками...:)
а кто вам сказал, что даты будут в строчном виде?
 
H

hosm

deeeman вообще-то странный подход, вам же правильно выше всё написали...
это же либа с открытым кодом, можно же глянуть типы, вполне себе нормальным лотусиным языком написано:
Set entry(nLoop%).RepTime = New NotesDateTime(Left$(sRepTime$, cbReturn%))
а вы его под джойн хотите... :)
 
N

nvyush

OKEN
Оно NotesDateTime оказывается. Мне, честно говоря, лень было в коде копаться, подумал, что это датный вариант. Тогда брать e.RepTime.LocalTime и не париться :) .
 
D

deeeman

получилось так:

Код:
ForAll e In entry

Dim dt As NotesDateTime
Set dt = e.RepTime
MsgBox dt.Dateonly

End ForAll

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

всем спасибо!


ага, и так тоже канает: e.RepTime.LocalTime
 
W

wowa

Большое спасибо за библиотеки.

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

Receive Replication Time: 01.03.1981 10:47:07

Из-за чего это может быть? локальные пользовательские настройки? Неужто у него 1981 год на компе
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Вон нарыл .. историю репликаций возвращает, но с датами репликаций как-то не ладится....
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!