Autor Thema: Skriptproblem -> Absturz  (Gelesen 1895 mal)

Offline DominoAndy

  • Frischling
  • *
  • Beiträge: 36
  • Geschlecht: Männlich
Skriptproblem -> Absturz
« am: 03.03.03 - 18:35:38 »
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




Offline doliman

  • Senior Mitglied
  • ****
  • Beiträge: 332
  • Geschlecht: Männlich
    • www.doleschel.de
Re:Skriptproblem -> Absturz
« Antwort #1 am: 03.03.03 - 20:36:52 »
Hi,

schick' mir mal die DB damit ich reinschauen kann.
Grüßle
                           _///_
                          (o~o)
-------------oOOO--(_)--OOOo-------------
Frank Doleschel

----------------------
Ein Berufsleben ohne Notes ist zwar möglich aber die Alternativen sind erschreckend ;-)

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Skriptproblem -> Absturz
« Antwort #2 am: 03.03.03 - 22:43:11 »
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
Grüßle Toni :)

Offline DominoAndy

  • Frischling
  • *
  • Beiträge: 36
  • Geschlecht: Männlich
Re:Skriptproblem -> Absturz
« Antwort #3 am: 03.03.03 - 23:22:49 »
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

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Skriptproblem -> Absturz
« Antwort #4 am: 03.03.03 - 23:28:37 »
@DominoAndy

... hast du es mit meiner Variante des EditDocument versucht - ich vermute den Unruhestifter im dritten Parameter...

ata
Grüßle Toni :)

Offline DominoAndy

  • Frischling
  • *
  • Beiträge: 36
  • Geschlecht: Männlich
Re:Skriptproblem -> Absturz
« Antwort #5 am: 03.03.03 - 23:43:30 »
@ata

...werde es morgen so versuchen, danke Dir erstmal !!!

Andy

Offline DominoAndy

  • Frischling
  • *
  • Beiträge: 36
  • Geschlecht: Männlich
Re:Skriptproblem -> Absturz
« Antwort #6 am: 04.03.03 - 09:33:18 »
@ata
habe nun bei EditDocument den dritten Paramter weggelassen

@doliman
Die Fehlerroutine habe ich auch eingebaut.

Also erstmal Danke an euch. Scheint allerdings nicht wirklich besser
zu werden. Hab es jetzt im Moment natürlich nur bei mir getestet.
Wenn das Teil nicht direkt wie erwähnt Abstürzt, tut Notes das spät.
beim Beenden von Notes. Es kommt dann die gleich Meldung...Speicher verweist auf blabla.....

Ehrlich gesagt bin ich ratlos  ???


Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Skriptproblem -> Absturz
« Antwort #7 am: 04.03.03 - 11:12:00 »
... mir fällt nochmal was auf...

... du verwendest ein DlgDoc, daß du für die Dialogbox verwendest. Nach der Dialogbox machst du einen dlgDoc.remove - wurde das dlgDoc denn gespeichert? erst dann lässt es sich löschen?

... ich denke du gibst dem dlgDoc ein SaveOptions = "0" mit auf den Weg und sparst dir den Remove...

ata  ;)
Grüßle Toni :)

Offline DominoAndy

  • Frischling
  • *
  • Beiträge: 36
  • Geschlecht: Männlich
Re:Skriptproblem -> Absturz
« Antwort #8 am: 04.03.03 - 15:06:51 »
Hi !

@ata
habe jetzt auch Deinen zweiten Tip versucht - leider ohne Erfolg.
Den Eintrag "DlgDoc.Remove" hatte ich auch erst gestern hinzugefügt, da ich dachte, es liegt daran, dass irgendwas am Speicher volläuft, bzw. eben unnötig hängen bleibt.

Spätestens wenn ich nach dem Erstellen eines Serienbriefs Notes schieße, bekomme ich diesen Fehler.

Vielleicht doch noch eine Idee ?

Andy


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz