Как проверить, существует ли файл в формуле лотоса? - PullRequest
0 голосов
/ 26 октября 2009

Сценарий: У меня есть план, где у меня есть ссылки для моего меню. Каждая ссылка указывает на файл, хранящийся на FTP-сервере в DMZ. Нажав на каждую ссылку, я запускаю агент, который загружает файл локально и доставляет URL-адрес для конечного пользователя.

Я хотел бы скрыть элемент структуры, когда файл не существует. Очевидно, что у меня нет этой информации, прежде чем я пытаюсь получить доступ к файлу, и я не могу запустить агент domino, чтобы проверить, могу ли я показать этот элемент или нет, и использовать его в окне формулы HideWhen. Также невозможно запустить агент и проверить все файлы, если они существуют, сохранить эту информацию в ln db, потому что просто это слишком много файлов.

Есть еще идеи?

Ответы [ 2 ]

2 голосов
/ 26 октября 2009

Если у вас нет информации, доступной в «Области действия», чтобы определить, какие ссылки скрыть и показать, то вам придется найти способ изящно завершиться с ошибкой, когда файл не существует. Используйте некоторую проверку ошибок в вашем агенте и, если файл не существует, убедитесь, что пользователь получает дружеское сообщение с объяснением того, что произошло.

Вы говорите, что не можете проверить, существуют ли все файлы, потому что их слишком много, но о каком количестве мы говорим? Возможно, вы не сможете проверить их во время открытия базы данных, потому что вы заставите пользователя ждать слишком долго, но, возможно, вы могли бы где-то кешировать результаты. Агент, который запускается при открытии базы данных, может проверить кэшированный список существующих файлов и использовать его, чтобы выяснить, что скрывать. Если кэшированный файл не существует, агент может запустить фоновый агент, чтобы обновить кэш и сохранить его на сервере или в базе данных.

Если у вас есть доступ к серверу, вы также можете написать программу, которая возвращает список существующих файлов, и использовать ее для подачи в базу данных Notes. Там много вариантов, но, например, у вас может быть страница PHP или ASP.NET, которая возвращает XML-список файлов, которые существуют на сервере, когда вы его вызываете (или даже что-то более простое, чем XML). Опять же, когда вы открываете базу данных Notes, ваш агент может вызвать этот URL-адрес, получить результаты и просмотреть список существующих файлов, чтобы определить, какие ссылки скрыть.

Надеюсь, это поможет!

0 голосов
/ 28 декабря 2009

вдохновение из контуров bookmark.nsf - @ IsAppInstalled

...