Michał Telega

Michał Telega programista .NET,
MCTS

Temat: Odświeżanie dokumentu w trybie Reader

Witam

Użytkownik ma uprawnienia czytelnika do dokumentów w tej bazie. Uruchamia on agenta (na prawach managera), który zmienia wartość jednego pola. Mam teraz problem z odświeżeniem wyświetlanego dokumentu użytkownikowi, ponieważ metody Refresh i Reload działają tylko w trybie edycji.

Jak wyświetlić użytkownikowi zaktualizowany dokument?

Pozdrawiam Michał
Krzysztof G.

Krzysztof G. Java Developer

Temat: Odświeżanie dokumentu w trybie Reader

Michał Telega:
Witam

Użytkownik ma uprawnienia czytelnika do dokumentów w tej bazie. Uruchamia on agenta (na prawach managera), który zmienia wartość jednego pola. Mam teraz problem z odświeżeniem wyświetlanego dokumentu użytkownikowi, ponieważ metody Refresh i Reload działają tylko w trybie edycji.

Jak wyświetlić użytkownikowi zaktualizowany dokument?

Pozdrawiam Michał

Wg mnie jeśli użytkownik może tylko czytać dokumenty i nie może przejść w tryb edycji w żaden sposób to zamykając i otwierając dokument powinien zobaczyć zmiany.
Wg mnie jeśli użytkownik chce wprowadzać zmiany w dokumencie powinien mieć prawa edycji do dokumentu co nie jest równoznaczne z edycją pól (pola mogą być obliczalne)Krzysztof G. edytował(a) ten post dnia 31.03.10 o godzinie 16:29
Tomasz Frydryk

Tomasz Frydryk Właściciel, Domino
Solutions

Temat: Odświeżanie dokumentu w trybie Reader

1. Zamknąć i otworzyć dokument.
2. Pola obliczane jako metoda ograniczania dostępu do dokumentu są dość słabym zabezpieczeniem. Można pozmieniać zawartość dokumentu agentem.
Krzysztof G.

Krzysztof G. Java Developer

Temat: Odświeżanie dokumentu w trybie Reader

Tomasz Frydryk:
1. Zamknąć i otworzyć dokument.
2. Pola obliczane jako metoda ograniczania dostępu do dokumentu są dość słabym zabezpieczeniem. Można pozmieniać zawartość dokumentu agentem.

Myślałem tutaj o polach obliczalnych jako ograniczenie do edycji pól a nie ograniczenie dostępu do dokumentu.

W każdym bądź razie żeby zobaczyć zmiany on-line na dokumencie do odczytu trzeba go zamknąć i otworzyć.

Pozdrawiam
Michał Telega

Michał Telega programista .NET,
MCTS

Temat: Odświeżanie dokumentu w trybie Reader

Tomasz Frydryk:
1. Zamknąć i otworzyć dokument.

Dziękuję za pomoc w moim problemie.
Jak zatem programistycznie (w Lotus Scripcie) zamknąć i otworzyć ponownie taki dokument?
Tomasz Frydryk

Tomasz Frydryk Właściciel, Domino
Solutions

Temat: Odświeżanie dokumentu w trybie Reader

Piszę z pamięci, bez deklaracji itd.:
Set uiws As New NotesUIWorkspace
set uidoc=uiws.CurrentDocument
Set doc = uidoc.Document

doc.SaveOptions = "0"
Call uidoc.Close
Set uidocNew = uiws.EditDocument(True, doc, , , , True)
Delete uidoc
uidocNew.Document.RemoveItem("SaveOptions")
Michał Telega

Michał Telega programista .NET,
MCTS

Temat: Odświeżanie dokumentu w trybie Reader

Tomasz Frydryk:
Piszę z pamięci, bez deklaracji itd.:
Set uiws As New NotesUIWorkspace
set uidoc=uiws.CurrentDocument
Set doc = uidoc.Document

doc.SaveOptions = "0"
Call uidoc.Close
Set uidocNew = uiws.EditDocument(True, doc, , , , True)
Delete uidoc
uidocNew.Document.RemoveItem("SaveOptions")

Przepraszam, że odpisuję po tak długim czasie.
Miałem dopiero teraz chwilę czasu by przetestować Twój kawałek kodu.

Otwiera on faktycznie nowy dokument i zamyka stary, ale nie widzi zmian. Tzn. w uiws.CurrentDocument.Document są dane bez zmiany, która została wykonana przez agenta. Czy można jakoś zaktualizować te dane?
Tomasz Frydryk

Tomasz Frydryk Właściciel, Domino
Solutions

Temat: Odświeżanie dokumentu w trybie Reader

Zakładając, że agent się już uruchomił to chyba wystarczy zrobić coś takiego:
Set uiws As New NotesUIWorkspace
set uidoc=uiws.CurrentDocument
id= uidoc.Document.UniversalID
set db = doc.ParentDatabase

Call uidoc.Close
Delete uidoc
set doc=db.getDocumentByUNID(id)
Set uidocNew = uiws.EditDocument(True, doc, , , , True)
Michał Telega

Michał Telega programista .NET,
MCTS

Temat: Odświeżanie dokumentu w trybie Reader

Niestety nadal dokument zawiera nieaktualne dane. Może trzeba odświeżyć też bazę danych (doc.ParentDatabase)?
Krzysztof G.

Krzysztof G. Java Developer

Temat: Odświeżanie dokumentu w trybie Reader

Michał Telega:
Niestety nadal dokument zawiera nieaktualne dane. Może trzeba odświeżyć też bazę danych (doc.ParentDatabase)?

Opisz może całą sytuację ...
Czy użytkownik jest w trybie odczytu w dokumencie ?
Agent zmienia coś w polach i po zamknięciu i otwarciu dokumentu nie działają zmiany ?

W jakim polu agent wprowadza zmiany w polu tekstowym czy innym ?

Pozdrawiam



Wyślij zaproszenie do