• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Мелкие Вопросы Rtfm

  • Автор темы Автор темы serko
  • Дата начала Дата начала
На вскидку, исходя из того, как ты это представляешь, рисуешь вид с нужными доками и категорией ReadyMember.
Берёшь эту категорию по нужному юзеру навигатором и строишь коллекцию.
 
  • Нравится
Реакции: serko
Если в DatabaseScript запретить ставить документ на редактирование (ws.currentdocument.editmode = true), то получается, программно я тоже не смогу изменить данные в документе? например, чтобы поменять статус документа, я ставлю док на редактирование, меняю поле, сохраняю и потом ставлю в режим чтения обратно.
 
как выглядит процесс?
мну не нра изменение главного дока по "каждому чиху"
Ну, я решил так сделать...
Например, документ на регистрации.
регистратор нажимает "Зарегистрировать", выбирает нумератор, а затем...
генерируется номер дока, в поле главного дока ставится номер, в поле главного дока все указанные регистраторы заменяются зарегистрировавшим документ, а поле главного дока в поле ReadyMember добавляю текущего пользователя(т.к. после нажатия на кнопку он принял участие в обработке документа и для отображения поиска это поле нужно, наверно), в дочерний док ставится ФИО и нотес-имя регистратора, а также информация, когда документ был зарегистрирован, сохраняю все это дело...
Я решил сделать поиск таким:
Сначала нахожу все документы по критериям (включая всех пользователей), а затем формирую 2 коллекцию путем копирования в нее только тех доков, где автор документа совпадает с текущим и поле ReadyMember содержит имя текущего пользователя. Вторая коллекция получается результирующей, только меня смущает этап отсеивания. Боюсь, он громоздкий больно
 
Последнее редактирование:
Это UI.
Бери Doc (а не UIdoc) и делай что хошь.
Хм. Хотите сказать, что если пользователь держит в данный момент открытый документ, то для замены значения поля мне достаточно doc.replaceitemvalue прописать и doc.Save ? Пользователь увидит изменения в документе?
 
я не вижу необходимости менять основной док, для его видимости добавляются все участники процесса сразу
и каждый участник создает свои доки (по процессу), кот ссылаются на основной
 
  • Нравится
Реакции: serko
Хм. Хотите сказать, что если пользователь держит в данный момент открытый документ, то для замены значения поля мне достаточно doc.replaceitemvalue прописать и doc.Save ? Пользователь увидит изменения в документе?
Хочу сказать, что в бэкграунде можно изменять док полюбэ, и не важно, находится он щща на редактировании у кого-то или нет.
Для разруливания таких ситуаций (оббеспечения совместной работы с одним доком) существуют блокировки (флажки такие). Способ совсем не идеальный и не на все случаи жизни.
Можно совсем не давать юзеру редактировать САМ док в UI: работать с копией и писать изменения (или ВСЁ, если копия точная) в док в базе. Возможно с проверкой "а не изменился ли док во время редактирования" и реагировать соответственно.
Подходы от придуманной логики зависят.
 
  • Нравится
Реакции: serko
я не вижу необходимости менять основной док, для его видимости добавляются все участники процесса сразу
и каждый участник создает свои доки (по процессу), кот ссылаются на основной
не знаю к кому обращаться, но на форуме небольшой баг заметил. Захожу на 12 страницу этого топика. Пишу сообщение на 12 странице. Отправляю. В итоге обновляется список сообщений (прогружается из последней 14 страницы), а текущая страница указана 12 (старая).
 
doc.replaceitemvalue прописать и doc.Save ? Пользователь увидит изменения в документе?
Ничо пользователь не увидит, а может получить предупреждение при сохранении, что док был изменен и предложение сохранить док как "конфликтный документ". Дальше танцы с разруливанием конфликтов.
 
Хочу сказать, что в бэкграунде можно изменять док полюбэ, и не важно, находится он щща на редактировании у кого-то или нет.
Для разруливания таких ситуаций (оббеспечения совместной работы с одним доком) существуют блокировки (флажки такие). Способ совсем не идеальный и не на все случаи жизни.
Можно совсем не давать юзеру редактировать САМ док в UI: работать с копией и писать изменения (или ВСЁ, если копия точная) в док в базе. Возможно с проверкой "а не изменился ли док во время редактирования" и реагировать соответственно.
Подходы от придуманной логики зависят.
Только что сделать кнопку, поместил в к остальным Actions. Запускаю. Поле меняется только когда документ на редактировании. Версия 8.5
Код:
Dim ws As New NotesUIWorkspace
Call ws.CurrentDocument.Document.ReplaceItemValue("DocView", "1")
Call ws.CurrentDocument.Document.Save(True,True)

====

Каюсь. Изменения вносит, но у пользователя не обновились просто поля
Не получается обновить поля, пока документ на чтении. Пробовал через notesuidocument и notesuiworkspace. Ладно. Поиграюсь с DatabaseScript
 
Последнее редактирование:
замысленная визуализация, в классической нотусне - головняк
изучайте xPages
 
  • Нравится
Реакции: serko
Есть такая штука: notesUIDocument .Reload
Иногда может помочь.
Может быть на таймере.
Но что
замысленная визуализация, в классической нотусне - головняк
- эт точно.
Более-менее риалтаймно может быть только View. И то не всегда.
[DOUBLEPOST=1429796573,1429796277][/DOUBLEPOST]
Там тоже умудряются брать сам док (или даже несколько) на редактирование и получать конфликты (причём этому "учит" сама IBM ;))
 
  • Нравится
Реакции: serko
А можно ли как-то запретить "трогать" файл (удалять/добавлять/изменять) в richtext поле, пока не будет исполнено конкретное условие?
 
А можно ли как-то запретить "трогать" файл (удалять/добавлять/изменять) в richtext поле, пока не будет исполнено конкретное условие?
А что мешает сделать RTF computed и изменять его только программно (с кнопки), раз оно только для аттачей? Там и проверки делать.
 
  • Нравится
Реакции: serko
Создал View. Прописал формулу (View Selection): SELECT Form = "IncomingMail" & DocAuthorNotes = @V3UserName
Создал документ. Зашел за другого юзера - создал документ. Удивился. Что за user1, что за user2 везде оба дока видны. Поля заполнены корректно. Вырезал формулу, заново вставил. Заработало нормально(виден только док, который создал пользователь), но неприятный след оставило. Это как-то можно заранее пресечь?
 
В левом списке(список View) есть папка "Search".
После вызова поиска пытаюсь перейти к ней без открытия нового окна, но в итоге вообще ничего не происходит
Код:
Dim uidb As NotesUIDatabase
Set uidb = ws.Currentdatabase
Call uidb.Openview("Search", , False)
 
Создал View. Прописал формулу (View Selection): SELECT Form = "IncomingMail" & DocAuthorNotes = @V3UserName
Создал документ. Зашел за другого юзера - создал документ. Удивился. Что за user1, что за user2 везде оба дока видны. Поля заполнены корректно. Вырезал формулу, заново вставил. Заработало нормально(виден только док, который создал пользователь), но неприятный след оставило. Это как-то можно заранее пресечь?
есть у меня подозрение, что въюшка не приватная. Я прав?
 
  • Нравится
Реакции: serko
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы