Время в документе

  • Автор темы Guest_Den_*
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_Den_*

#1
Это кусок кода который выполняется при сохранении документа (формирование лога):
Set NewDoc = New notesdocument (db)
newdoc.form = "log"
newdoc.logaction = "Создание"
newdoc.logautor = session.CommonUserName
newdoc.logDate = Date$
newdoc.logTime = Time$
newdoc.logCategory = doc.Category
newdoc.logTitle = doc.FormName
newdoc.logAutorDoc = doc.Autor
newdoc.logDateDoc = doc.created

Хочу чтоб функция Date$ и Time$ возвращала дату с сервака. А то получается не красиво - берет с клиента! Возможно ли это?

Спасибо! :lol:
 
D

Domino6

#2
Выполняй код на сервере (агенты)

А в общем какая разница или у тебя времена разные на клиенте и на сервере?
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#3
Да, это принципиально. Я формирую лог на действия пользователя. И мне надо время точное, а то был прецендент неприятный. Как можно сделать?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#4
Код:
Dim servertime As Variant
servertime = Evaluate({@Now([SERVERTIME]; @ServerName)})
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#5
<!--QuoteBegin-Medevic+9:11:2005, 12:39 -->
<span class="vbquote">(Medevic @ 9:11:2005, 12:39 )</span><!--QuoteEBegin-->
Код:
Dim servertime As Variant
servertime = Evaluate({@Now([SERVERTIME]; @ServerName)})
[snapback]26825" rel="nofollow" target="_blank[/snapback]​
[/quote]

Вот такой результ:
Error in EVALUATE macro
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#6
Для: DNT
Параметры у функция @Now появились только с 6-ой версии. Если у тебя ниже, значит облом.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#7
Для: DNT
Не пойму, почему ты не хочешь агентом время устанавливать ?
 
D

Domino6

#8
<!--QuoteBegin-DNT+9:11:2005, 12:29 -->
<span class="vbquote">(DNT @ 9:11:2005, 12:29 )</span><!--QuoteEBegin-->И мне надо время точное, а то был прецендент неприятный. Как можно сделать?
[snapback]26823" rel="nofollow" target="_blank[/snapback]​
[/quote]

Как может быть точное время если его у тебя нет нигде точного. Возми просто синхронизируй сервер по премени а пользователи пусть автоматом синхронизируются с сервером(серверами) и все.

Все чаще получается что за огрехи организации ИТ-пространства приходится расплачиватся программистам и админам.
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#9
Спасибо. Я понял. Пробовать через агент буду. Просто прикольно получается формула @Date(@Created) тянет время серваковое, а аналог на скрипте Date$ - локальное. Почему?
 
D

Domino6

#10
<!--QuoteBegin-DNT+9:11:2005, 16:24 -->
<span class="vbquote">(DNT @ 9:11:2005, 16:24 )</span><!--QuoteEBegin-->@Date(@Created) тянет время серваковое, а аналог на скрипте Date$ - локальное. Почему?
[snapback]26847" rel="nofollow" target="_blank[/snapback]​
[/quote]

Формула срабатывае в объекте на сервере а объект из памяти сервера передается пользователю

а скрипт код который отрабатывает в памяти пользовательской машины вот и вся разница

если сделать вычисление на скриптах в постопене формы то тоже будет серверное время
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#11
Вопрос в тему: как из скриптов запустить существующий агент? (Я недавно в Лотусе работаю - поэтому вопрос комуто покажется наверно глупым)
 
D

Domino6

#13
<!--QuoteBegin-Medevic+9:11:2005, 16:32 -->
<span class="vbquote">(Medevic @ 9:11:2005, 16:32 )</span><!--QuoteEBegin-->Для: DNT
NotesAgent.RunOnServer
[snapback]26850" rel="nofollow" target="_blank[/snapback]​
[/quote]
А может ему просто надо перевети тип запуска на периодическое выполнение


Для: DNT - что именно надо
1- запустить агент который должен выполнять что-то периодически
2. агент написан не на скрипте просто его надо запустить

Ваш выбор
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#14
<!--QuoteBegin-Domino6+9:11:2005, 16:35 -->
<span class="vbquote">(Domino6 @ 9:11:2005, 16:35 )</span><!--QuoteEBegin-->А может ему просто надо перевети тип запуска на периодическое выполнение
Для: DNT - что именно надо
1- запустить агент который должен выполнять что-то периодически
2. агент написан не на скрипте просто его надо запустить

Ваш выбор
[snapback]26852" rel="nofollow" target="_blank[/snapback]​
[/quote]

2
 
D

Domino6

#15
Опции запуска агента какие?
На каких документахъ отрабатывет ?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#16
Для: Domino6
Я думаю, ему нужно установить серверное время с помощью агента.
 
D

Domino6

#17
<!--QuoteBegin-Medevic+9:11:2005, 16:41 -->
<span class="vbquote">(Medevic @ 9:11:2005, 16:41 )</span><!--QuoteEBegin-->Я думаю, ему нужно установить серверное время с помощью агента.
[snapback]26856" rel="nofollow" target="_blank[/snapback]​
[/quote]
Для: DNT

Если вернутся к протоколированию то вот вариант

Использовать класс NotesLog с типом протоколирования в базу.
Там будет дата записи протоколирования(от кода) + дата создания документа (от сервера) И все будет тип-топ

Для: DNT посмотри внимательнне этот класс
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#18
Интересно... Разобраться надо с этим класом. А в 5-ке он есть?

А по поводу агента сам хотел вопрос задать: какие параметры ему выставить если мне нужно его запускать из скрипта, и хочу чтоб он создал документ, куда вставит долгожданное серваковое время?
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#19
Кстати сейчас всё работает на событии ПОСТСЕЙВ формы и устраивает такая работа. Только вот со временем в создаваемом документе лога лажа!
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#20
<!--QuoteBegin-DNT+9:11:2005, 17:22 -->
<span class="vbquote">(DNT @ 9:11:2005, 17:22 )</span><!--QuoteEBegin-->А по поводу агента сам хотел вопрос задать: какие параметры ему выставить если мне нужно его запускать из скрипта, и хочу чтоб он создал документ, куда вставит долгожданное серваковое время?
[snapback]26861" rel="nofollow" target="_blank[/snapback]​
[/quote]
В качестве параметра можно указать NotesID существующего документа. Потом в агенте можно получить этот документ и произвести над ним действие - установить время в твоем случае.
 
Статус
Закрыто для дальнейших ответов.