Domino 9 und frühere Versionen > Entwicklung

Skriptproblem -> Absturz

(1/2) > >>

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