Domino 9 und frühere Versionen > Entwicklung
Skriptproblem -> Absturz
DominoAndy:
Hallo Leute,
habe ein Problem mit einem Skript von mir. Dies soll aus einer anderen Datenbank eine Vorlage zum auswählen bereitstellen und dann ein neues Dokument auf Basis dieser Vorlage erstellen. Leider stürzt in unregelmäßigen Abständen (mind. jeder 3. Versuch scheitert) der Notes-Client dabei ab. Dies ist auch an unterschiedlichen Rechnern so.
Hier der Code:
If ws.Dialogbox(DLG_OPT_NAME, True, True, False, False, False, False, DLG_OPT_TITLE, DlgDoc, True, False) Then
Print "Options..."
' hier werden ein paar Flags gesetzt.
Else
Exit Sub
End If
' Serienmail-Vorlage auswählen
Set coll = ws.PickListCollection( PICKLIST_CUSTOM, False, db.Server, TemplateDb.FilePath, PICK_VIEW, PICK_TITLE, PICK_PROMPT)
If coll.Count = 1 Then
Set TemplateDoc = coll.GetFirstDocument
Set SerialDoc = New NotesDocument( db )
Call TemplateDoc.CopyAllItems( SerialDoc , True )
SerialDoc.form = "SerialMemo"
Call SerialDoc.Save( True, True )
' ### ABSTURZ !!!! : ???
Set SerialUIDoc = ws.EditDocument(True, SerialDoc, False)
End If
Mach ich hier etwas falsch ???
Hoffe, mir kann jemand helfen und schonmal vielen Dank.
Andy
doliman:
Hi,
schick' mir mal die DB damit ich reinschauen kann.
ata:
kannst du den Code mit den Deklarationen ins Netz hängen, das ist so ein halbes Gebilde...
...zum Erzeugen eines Dokumentes gehe ich einen anderen Weg...
Set doc = db.CreateDocument
... den dritten Parameter bei...
Set uidoc = ws.EditDocument( True , doc)
... lasse ich in der Regel weg - du sagst ja bereits, daß du im Bearbeitungsmodus sein möchtest - da braucht es kein ReadOnly=False - den verwendest du für EditMode = False, damit nicht zusätzlich in den EditMode gewechselt werden kann...
ata
DominoAndy:
O.K. - hier der gesamte Code, er wird in einer Aktion aufgerufen.
'Serienbrief: Optionen und Vorlage
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim session As New NotesSession
Dim coll As NotesDocumentCollection
Dim TemplateDb As NotesDatabase
Dim TemplateDoc As NotesDocument
Dim SerialDoc As NotesDocument
Dim SerialUIDoc As NotesUIDocument
Dim MailingDb As NotesDatabase
Const PICK_VIEW = "LookupTemplatesSerial"
Const PICK_TITLE = "Dokumentvorlagen"
Const PICK_PROMPT = "Wählen Sie eine Dokumentvorlage für diese Seriensendung aus..."
Const DLG_OPT_NAME = "dlgMailingOptions"
Const DLG_OPT_TITLE = "Mailing: Optionen"
Set db = session.CurrentDatabase
Set TemplateDb = session.GetDatabase( db.Server, "b_templates.nsf", False)
' ### Serienbrief: Optionen ###
Dim DlgDoc As NotesDocument
Set DlgDoc = db.CreateDocument
If ws.Dialogbox(DLG_OPT_NAME, True, True, False, False, False, False, DLG_OPT_TITLE, DlgDoc, True, False) Then
Print "Option: Adressauswahl " & DlgDoc.SerialBase(0)
Print "Option: In Adresse protokollieren: " & DlgDoc.SerialLogging(0)
' hier müssen dann FLAGS gesetzt werden....
Else
Exit Sub
End If
DlgDoc.Remove( True )
' ### Serienbrief: Vorlage ###
Set coll = ws.PickListCollection( PICKLIST_CUSTOM, False, db.Server, TemplateDb.FilePath, PICK_VIEW, PICK_TITLE, PICK_PROMPT)
If coll.Count = 1 Then
Set TemplateDoc = coll.GetFirstDocument
Set SerialDoc = New NotesDocument( db )
Call TemplateDoc.CopyAllItems( SerialDoc , True )
SerialDoc.form = "SerialMemo"
Call SerialDoc.Save( True, True )
Set SerialUIDoc = ws.EditDocument(True, SerialDoc, False)
End If
Andy
ata:
@DominoAndy
... hast du es mit meiner Variante des EditDocument versucht - ich vermute den Unruhestifter im dritten Parameter...
ata
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln