Powershell + Lotus: работа над ошибками, часть 2

Продолжение работы над ошибками, начатой в предыдущей записи. Запись даты изменения в документ.

У любого документа есть атрибут Modified, в котором прописана дата последнего изменения документа. Однако, нам может оказаться полезным хранить отдельно информацию о том, когда документ был изменён при помощи скрипта.

Для этого в форму документа нужно добавить поле ModifiedByScript, и изменить его тип на Date/Time. Но после этого, в это поле можно будет записать только данные типа NotesDate. Чтобы получить объект NotesDate, содержащий дату и время, понадобится получить текущую дату, и преобразовать её в нужный тип при помощи метода объекта NotesSession:

$date = Get-Date -Format "yyyy-MM-dd HH:mm"
$notesDate = $notesSession.CreateDateTime($date)
$result = $Document.AppendItemValue("ModifiedByScript", $notesDate)

Однако, иногда в документ загадочным образом записывалась дата, где день и месяц были перепутаны. Отследить эту ошибку не удалось, так как она была плавающая и повторялась редко. В результате я переделал процедуру получения даты следующим образом:

# получение текущей даты в объекте NotesDateTime
$notesDate = $notesSession.CreateDateTime("Today")
$notesDate.SetNow()
$result = $Document.AppendItemValue("ModifiedByScript", $notesDate)

После этого, подобная проблема с датой больше не повторялась.

Добавить комментарий