Domino 9 und frühere Versionen > Entwicklung
Neue Dokumente werden nicht in Ansicht angezeigt
Axel:
Hi,
ich will auch mal ein Problem haben. Vielleicht hab ich ja auch nur ein Bit vorm Kopf.
Ich will Mails in eine Vorgangs-Datenbank "importieren". Dazu hole ich mir mit PicklistCollection die gewünschten Dokumente aus der Eingangsbox bzw. aus Gesendet. Mit Backend-Funktionen wird das Maildokument in die Datenbank kopiert und dann die Maske umgebogen. Anschließend fülle ich die restlichen Felder und speichere das Dokument. Soweit so gut. Nur kann es passieren, und es passiert ziemlich häufig, dass diese generierten Dokumente in keiner Ansicht der DB vorhanden sind.
Erst wenn ich sie über "Ungelesene Dokumente suchen", gefunden habe, sie einmal geöffnet und gespeichert habe, sehe ich sie in der Ansicht.
An was liegt das? Wie krieg ich die im Backend angelegten Doks dazu in der Ansicht zu erscheinen?
Codeauszug:
--- Zitat --- Set collection = workspace.PickListCollection(1, True, dbMail.Server, dbMail.FilePath, "($Sent)","Ansicht Gesendet", "Markieren Sie die gewünschten Mails.")
If collection.Count = 0 Then Exit Sub
If Messagebox("Sollen eventuell vorhandene Dateianhänge mit übernommen werden?", 36, "Vorgänge") = 6 Then
intAttachment = 1 'Anhänge werden übernommen
Else
intAttachment = 0 'Anhäge werden nicht übernommen
End If 'If Messagebox("Sollen eventuell vorhandene Dateianhänge...
Set docMail = collection.GetFirstDocument 'Maildokument
While Not (docMail Is Nothing)
Set docNew = docMail.CopyToDatabase(dbCurrent)
docNew.Form = "frmVorgangMail"
Call docNew.ComputeWithForm(True, False)
docNew.xDeleteReason = "gültig"
docNew.VorgangsTyp = "E-Mail"
...
' Call docNew.ComputeWithForm(True, False)
Call docNew.Save(True,False)
Set docMail = collection.GetNextDocument(docMail)
Wend 'While Not (docMail Is Nothing)
--- Ende Zitat ---
Axel
Tode:
Schau Dir doch mal die Selektions- Formel(n) Deiner Ansicht(en) an: Worauf wird dort zugegriffen ?
Jetzt überprüf mal in Deinem generierten Dokumenten, ob nach dem Computewithform die in den Ansichten abgefragten Felder tatsächlich vorhanden sind.
Ich vermute folgendes: Relativ weit oben in Deiner Maske ist ein Feld, was bei "Computewithform" mit einem Fehler reagiert... dadurch wird das Compute abgebrochen und die restlichen Felder werden NICHT gesetzt.
Die Validierung "von Hand" ist meist wesentlich stabiler als ein ComputewithForm und übergeht den Fehler vermutlich, deshalb sind die Dokumente nach dem manuellen Speichern dann auch in der Ansicht.
MERKE: Wenn man ComputeWithForm verwenden will, muss man immer sicher sein, dass alle kritischen Felder vorher gefüllt sind, sonst läuft der ins Nirvana.
Solltest Du das falsche Feld nicht finden, dann melde Dich noch mal, dann beschreib ich Dir kurz, wie man ein ComputeWithForm "Debuggt"...
HTH
Tode
Driri:
Ist in den Select-Statements der Ansichten denn irgendwas dabei, was evtl. bei den so erzeugten Dokumenten nicht gesetzt wird ?
Glombi:
Das ComputeWithForm ist ja herauskommentiert, das wird evtl. die Ursache sein.
Ich verwende immer computeWihtForm(false,false).
Weiterhin empfiehlt es sich, die aktuelle Ansicht nach dem Einfügen zu aktualisieren. Das geht so:
dim ws as NotesUIWorkspace
set ws = New NotesUIWorkspace
call ws.ViewRefresh 'am Ende des Code
Andreas
Axel:
Hi,
vielen Dank für die schnellen Reaktionen.
@Glombi
Ich habe weiter oben testhalber noch ein ComputeWithForm drin gehabt, deswegen hatte ich das mal auskommentiert. Auch der View - Refresh am ende bringt nicht den gewünschten Erfolg. Die Dokumente bleiben unsichtbar.
@Diri
An den Select-Statements liegt es nicht. Hab ich x-mal geprüft. Ausserdem manchmal werden die Doks ja angezeigt.
@Tode
In den Selektionsformeln wird auf den Maskennamen und das Feld xDeleteReason geprüft und beides wird im Code ordnungsgemäß gesetzt. Daran kann es nicht liegen.
In der Maske gibt es keine kritischen Felder.
--- Zitat ---Solltest Du das falsche Feld nicht finden, dann melde Dich noch mal, dann beschreib ich Dir kurz, wie man ein ComputeWithForm "Debuggt"...
--- Ende Zitat ---
Würde mich aber auf jeden Fall interessieren, wer weiss wie man so was mal brauchen kann.
Im Moment stehe ich vor einem Rätsel. :-\
Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln