Temat: Zdublowane maile

Witam.

z powodu pewnych zawirowań w programie lotus notes 8.5.1 ;) powstało mi kopie maili w różnych katalogach. Jest może jakiś sposób żeby usunąć zdublowane maile? Bo ręcznie przeglądać kilka tysięcy maili mnie rozłoży na łopatki ;-).
Tomasz Frydryk

Tomasz Frydryk Właściciel, Domino
Solutions

Temat: Zdublowane maile

Jak każdy programista zrobiłbym sobie agenta. Jak chcesz, podeślę Ci kawałek kodu przeglądając widok i wyłapujący kolejne dokumenty z tym samym polem kluczowym. Potem już łatwo....

Temat: Zdublowane maile

Z miłą chęcią przestudiuję kod, jeśli można, tylko ostrzegam, że nie lubię jak kod mi działa "samopas" i mogę mieć pytania ;)
Tomasz Frydryk

Tomasz Frydryk Właściciel, Domino
Solutions

Temat: Zdublowane maile

Przepraszam za zwłokę, miałem ostatnio trochę zaległości.
Ja bym to zrobił mniej więcej tak: Na wszelki wypadek utworzył dodatkowy folder, do którego wrzuciłbym agentem połowę powtarzających się dokumentów. Po ew. przejrzeniu dokumentów usunął je ręcznie (ctr-A, del). Tak tylko po to, żeby mieć odrobinę więcej kontroli.
Kod agenta wyszukującego jest mniej więcej taki:
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim myView As NotesView
Dim doc1 As NotesDocument, doc2 As NotesDocument

Set myView =db.Getview("Inbox")
set doc1=myView.Getfirstdocument()
Set doc2=myView.Getnextdocument(doc1)
While Not doc2 Is Nothing
If doc1.Subject(0)=doc2.subject(0) And doc1.From(0)=doc2.From(0) Then
Call doc1.PutInFolder("Double")
End If
Set doc1=doc2
Set doc2=myView.GetNextDocument(doc2)
Wend
End Sub
Jeśli zdublowane dokumenty w Inboxie z jakiegoś powodu są porozrzucane, musisz użyć innego widoku, może specjalnie o tego zrobionego.
Możesz też poprawić pola sprawdzane przy ustalaniu które dokumenty są takie same, przykładowo sprawdzany jest temat i nadawca.

Temat: Zdublowane maile

Dzięki bardzo. To teraz pierwsze pytania ;)

Co to za język? Bo wygląda podobnie do VBA.

I gdzie w lotusie się wrzuca skrypty?
EDIT: Ok znalazłem tego Agenta ;-).

EDIT2.
Hmm ciekawie to wygląda.
Dodałem do warunków warunek na datę stworzenia:
And doc1.Created(0) = doc2.Created(0) 

(właśnie, co znaczy to 0? czyżby każdy parametr maila był jako tablica i musimy pierwszy element pobierać?)
Tylko, że jeszcze za mało warunków, bo mam wiele maili jako odpowiedzi, gdzie autor i temat są identyczne (bo lotus RE jedno zawsze dodawał), a musiałbym sprawdzić po zawartości.

Jednak nie znalazłem parametru "BODY" :(.

Jak mogę zrobić, aby porównać np 3 pierwsze wersy maili?

PS. I jak się uruchamia taką procedurę? :D I jest coś takiego jak w excelu, czyli puszczenie procedury krokowo?Maciej Popławski edytował(a) ten post dnia 26.11.10 o godzinie 08:54
Tomasz Frydryk

Tomasz Frydryk Właściciel, Domino
Solutions

Temat: Zdublowane maile

Oj, ale rzuciłeś pytaniami:)
1) Język to Lotus Script, praktycznie jest to VB.
2) Można uruchomić krokowo. Do tego służy Debugger, w nowszych wersjach Tools/Debug Lotus Script, w starszych File/Tools/Debug Lotus Script. Włączas i uruchamiasz kod.
3) Uruchamia się najczęściej z menu Actions.
4) Wartości pola w LN praktycznie zawsze są w LS traktowane jako tablica. Pola mogą być wielowartościowe, wówczas ma to sens.
5) Nie wiedząć co i jak Ci te maile zdublowało trudno powiedzieć co musisz porównywać.
6) Pole Body jest polem RichText i ma odrobinę inne właściwości. Można się do niego dobrać wstawiając np coś takiego: Na początek deklarację zmiennych
Dim rt1 As NotesRichTextItem, rt2 As NotesRichTextItem
potem w odpowiednim miejscu
While Not doc2 Is Nothing
Set rt1=doc1.Getfirstitem("Body")
Set rt1=doc1.Getfirstitem("Body")
If Left(rt1.Text, 100)= Left(rt2.text, 100) Then
I tak dalej. W ten sposób porównasz pierwsze 100 znaków każdego maila.

7. Created(0) chyba zwróci błąd, Created to nie pole, ale właściwość dokumentu. I raczej będą różne dla zdublowanych dokumentów. Spróbuj użyć DeliveredDate albo PostedDate.

Mam nadzieję, że nie zaśmiecamy forum....

Temat: Zdublowane maile

Dzięki wielkie.

Dziś już nie dam rady się pobawić, ale w przyszłym tygodniu pogmeram.
Jak coś to się założy nowy temat o Lotus Script, aby nie zaśmiecać ;).
Jacek Szałęga

Jacek Szałęga Specjalista ds.
informatyki, GANT
Development SA

Temat: Zdublowane maile

Miałem podobny problem, z niewiadomych przyczyn miałem po około 1000 kopii niektórych maili. W moim przypadku wszystkie kopie miały ten sam UniversalID który powinien być unikalny. Mój agent wyszukiwał więc dokumentów o takim samym UniversalID
Tomasz Frydryk

Tomasz Frydryk Właściciel, Domino
Solutions

Temat: Zdublowane maile

Jacek Szałęga:
Miałem podobny problem, z niewiadomych przyczyn miałem po około 1000 kopii niektórych maili. W moim przypadku wszystkie kopie miały ten sam UniversalID który powinien być unikalny. Mój agent wyszukiwał więc dokumentów o takim samym UniversalID
Wg mojej najepszej wiedzy nie ma możliwości utworzenia w bazie dwóch dokumentów o takim samym UniversalID.
Czy mógłbyś powiedzieć jak to wyglądało? Tak z ciekawości, zawsze się cieszę, jak mogę się czegoś nauczyć.
Jacek Szałęga

Jacek Szałęga Specjalista ds.
informatyki, GANT
Development SA

Temat: Zdublowane maile

No tak. Oczywiście musiało mi się coś machnąć :) Chodziło o $MessageID i wyglądało to tak:


Obrazek


Czy ktoś wie co może powodować takie coś ? Mam serwer 8.5.2.1 , to samo działo się na 8.5.1.3. Template w wersji StdR85Mail/pl version 8.5.2 (2010-07-27)Jacek Szałęga edytował(a) ten post dnia 27.12.10 o godzinie 10:28

Następna dyskusja:

Reply-to podczas odpowiadan...




Wyślij zaproszenie do