Autor Thema: nicht speichern unter lotus script??  (Gelesen 4696 mal)

Offline sperri

  • Frischling
  • *
  • Beiträge: 13
nicht speichern unter lotus script??
« am: 09.08.05 - 11:55:56 »
Hallo,

ich will im error handle festlegen das das dokument nicht gespeichert werden soll.

Weiß jemand wie unter lotus script die anweisung aussieht?

Danke

Driri

  • Gast
Re: nicht speichern unter lotus script??
« Antwort #1 am: 09.08.05 - 11:59:59 »
An welcher Stelle denn genau ? Im Querysave-Event z.B. mit Continue=False.

Wenn das in einer Sub ist, kannst Du mit Exit Sub aussteigen.


Bißchen mehr Infos und Code wären schon praktisch.


Driri

  • Gast
Re: nicht speichern unter lotus script??
« Antwort #3 am: 09.08.05 - 12:07:31 »
 >:(

Offline sperri

  • Frischling
  • *
  • Beiträge: 13
Re: nicht speichern unter lotus script??
« Antwort #4 am: 09.08.05 - 12:10:30 »
Aslo der Code sieht so aus

Sub Submit
     REM Subroutine to sign new BMT Order and to send it to accountant
   
   Dim uiwork As New Notesuiworkspace
   Dim maildoc As Notesdocument
   Dim rtitem As NotesRichTextItem
   Dim answer As Integer
   On Error Goto ErrorHandle
   
   Set uidoc=uiwork.CurrentDocument 
   Set doc=uidoc.Document     
   If Not OrderIsReady(uidoc) Then Exit Sub
   
   answer=Messagebox("Are you sure that you want to sign this document?",36, dbtitle)
   If answer<>6 Then Exit Sub     
   
   uidoc.EditMode=True   
   
   If(doc.accountant(0) <> "" ) Then
      Call doc.ReplaceItemValue("StageG",10)
   End If
   If(doc.accountant2(0) <> "" ) Then
      Call doc.ReplaceItemValue("StageG",20)
   End If
   
   Set maildoc=doc.Parentdatabase.CreateDocument
   
   maildoc.SendTo=doc.AccountantEMail
   maildoc.SendTo= Arrayappend(maildoc.SendTo, doc.AccountantEMail2)
   maildoc.SendTo= Arrayappend(maildoc.SendTo, doc.AccountantEMail3)
   maildoc.SendTo= Arrayappend(maildoc.SendTo, doc.AccountantEMail4)
   maildoc.SendTo= Arrayappend(maildoc.SendTo, doc.AccountantEMail5)
   maildoc.SendTo= Arrayappend(maildoc.SendTo, doc.AccountantEMail6)
   maildoc.SendTo= Arrayappend(maildoc.SendTo, doc.AccountantEMail7)
   maildoc.SendTo= Arrayappend(maildoc.SendTo, doc.AccountantEMail8)
   maildoc.SendTo= Arrayappend(maildoc.SendTo, doc.AccountantEMail9)
   maildoc.SendTo= Arrayappend(maildoc.SendTo, doc.FachlichEMail)
   maildoc.SendTo=Arrayappend(maildoc.SendTo, doc.ManagerEMail)
   maildoc.SendTo=Arrayappend(maildoc.SendTo, doc.ManagerEMail1)
   maildoc.SendTo=Arrayappend(maildoc.SendTo, doc.FachlichEMail1)
   
   
   Set rtitem=New NotesRichTextItem(maildoc,"Body")
   Call rtitem.AppendText("The following PCN order needs your approval. "+_
   "Click on the icon below to review this document."+Chr$(13)+Chr$(13)+"- > ")
   Call rtitem.AppendDocLink(doc,"")
   
   Call doc.ReplaceItemValue("Stage",10)   
   
   'AssignReqNum   
   Call uidoc.refresh
   Call doc.ReplaceItemValue("RDate", Date)
   Call uidoc.save
   Print "Sending notification to accountant...  Please wait"
   maildoc.Subject="Process Change Notice: "+doc.LFD_Num(0)
'   maildoc.Subject="BMT order "+doc.BMTnumber(0)
   Call maildoc.Send(False)
   Print " "
   Call uidoc.close
ErrorHandle:
   Dim status As String
   status$ = "Fehler! " & ": " & Error()
   Messagebox(status$)
   hier nicht speichern   
Exit Sub
End Sub

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: nicht speichern unter lotus script??
« Antwort #5 am: 09.08.05 - 12:17:16 »
wo wird den dass aufgerufen?
Was soll nicht gespeichert werden? UIdoc oder Maildoc?

evtl. hilft hier das saveoptions feld

gruss umi
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline sperri

  • Frischling
  • *
  • Beiträge: 13
Re: nicht speichern unter lotus script??
« Antwort #6 am: 09.08.05 - 12:18:50 »
das uidoc soll bei einem fehler nicht gespeichert werden.

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: nicht speichern unter lotus script??
« Antwort #7 am: 09.08.05 - 12:22:55 »
Meine Kugel verrät mir, dass Submit durch einen Button ausgelöst wird und nicht im QuerySave. Dann würde das UIDOC ja nur gespeichert, beim Aufruf von uidoc.save().
D.h. wenn es zu einem Fehler vor uidoc.save() kommt, springt er in den Errorhandler, bringt die Meldung und das wars. UIdoc wird dann ja nicht mehr gespeichert.

Wenn der Code im QuerySave aufgerufen würde, müsste nur die Variable Continue des QuerySave events auf false gesetzt werden.

gruss umi
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: nicht speichern unter lotus script??
« Antwort #8 am: 09.08.05 - 12:24:43 »
Ja und, da du das in einem eigenen Submit programmiert hast wird das doch auch nicht gespeichert, da du die Sub nach einem Error mit Exit Sub verlässt und damit call uidoc.save nicht mehr zieht.
Was ganz anderes ist die Tatsache das es unter Umständen möglich sein kann das ich das Dokument trotzdem speichere wenn ich ganz normal über den QuerySave Event, der für solche Stunts eigentlich da ist gehe.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline sperri

  • Frischling
  • *
  • Beiträge: 13
Re: nicht speichern unter lotus script??
« Antwort #9 am: 09.08.05 - 12:25:32 »
das is richtig aber was passiert wenn der fehler nach dem speichern auftritt. z.b wenn die mail adresse falsch ist?

dann soll das uidoc nicht gespeichert werden

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: nicht speichern unter lotus script??
« Antwort #10 am: 09.08.05 - 12:26:45 »
Wenn der Code im QuerySave aufgerufen würde, müsste nur die Variable Continue des QuerySave events auf false gesetzt werden.
Und wenn er das haben will dann muss die Submit keine Sub mehr sein sondern eine Function und einen Error zurückliefern wenn sie nicht richtig funktioniert hat.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: nicht speichern unter lotus script??
« Antwort #11 am: 09.08.05 - 12:28:16 »
das is richtig aber was passiert wenn der fehler nach dem speichern auftritt. z.b wenn die mail adresse falsch ist?

dann soll das uidoc nicht gespeichert werden
HÄH? Wie soll das denn gehen. Nach dem Speichern nicht speichern. Das wäre dann konzeptionell und logisch kompletter Humbug.
Entweder hast du deine Prüfungen durchlaufen dann darf er das Speichern oder eben nicht, dann nicht.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline sperri

  • Frischling
  • *
  • Beiträge: 13
Re: nicht speichern unter lotus script??
« Antwort #12 am: 09.08.05 - 12:29:48 »
wenn die mail adresse von notes nicht gefunden werden kann oder nicht stimmt, dann wird das doc gespeichert.

das will ich mit dem error handle verhindern. ich weiß jetzt nur nicht genau wie ich die anweisung doc nicht speichern definieren soll.

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: nicht speichern unter lotus script??
« Antwort #13 am: 09.08.05 - 12:36:38 »
Da wirst Du kein glück haben denke ich mal...
Da müsstest Du ja warten bis die Fehlermeldung vom Mailrouter retour kommt.

Sonst musst Du halt vorher prüfen ob es eine gültige Emailadresse ist
z.B. mit @ValidateInternetAddress
oder ob die Adresse in irgendeinem Adressbuch auftaucht.

oder aber das uidoc.save nach dem maildoc.send aufrufen?
gruss umi
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline sperri

  • Frischling
  • *
  • Beiträge: 13
Re: nicht speichern unter lotus script??
« Antwort #14 am: 09.08.05 - 12:38:10 »
ok danke ich probier mal aus

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: nicht speichern unter lotus script??
« Antwort #15 am: 09.08.05 - 12:43:49 »
Mal völlig abgesehen davon: Ein maildoc.Form = "Memo" sollte auch noch in den Code mit hinein.

Bernhard

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: nicht speichern unter lotus script??
« Antwort #16 am: 09.08.05 - 12:56:31 »
Umi hat recht, da hast du so kein Glück. Du kannst wie er gesagt hat höchstens noch die Gültigkeit deiner Email Adresse vorher überprüfen.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline sperri

  • Frischling
  • *
  • Beiträge: 13
Re: nicht speichern unter lotus script??
« Antwort #17 am: 09.08.05 - 13:34:02 »
Hey @ all,

ich habe jetzt den call uidoc.save einfach hinter den mail sende teil gesetzt. das klappt auch soweit wenn die mail adresse falsch sein sollte.

das doc wird erst mal nicht gespeichet. wenn ich allerdings das doc schließe und bei der frage speichern ja/nein, nein sage, wird es trotzdem gespeichert!!

ich weiß nicht warum

   Call uidoc.refresh
   Call doc.ReplaceItemValue("RDate", Date)
   
   Print "Sending notification to accountant...  Please wait"
   maildoc.Subject="Process Change Notice: "+doc.LFD_Num(0)
'   maildoc.Subject="BMT order "+doc.BMTnumber(0)
   Call maildoc.Send(False)
   Print " "
   Call uidoc.save
   Call uidoc.close

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: nicht speichern unter lotus script??
« Antwort #18 am: 09.08.05 - 13:39:03 »
Weil wenn das Dokument bearbeitet wurde und Du es schliessen willst, Notes automatische danach fragt.

Damit das auch noch abgefangen wird müsstest Du in deinem Dokument ein Saveoptions Feld einfügen (Textfeld mit Namen SaveOptions).
In deinem Errorhandler müsstest Du dann das Feld auf "0" setzen, d.h. es wird nicht automatisch gespeichert und Notes sollte auch nicht nachfragen.

gruss umi

PS: Control - S hast Du auch noch nicht abgefangen :-)
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline sperri

  • Frischling
  • *
  • Beiträge: 13
Re: nicht speichern unter lotus script??
« Antwort #19 am: 09.08.05 - 14:05:50 »
Hab folgendes gemacht:

   Call uidoc.refresh
   Call doc.ReplaceItemValue("RDate", Date)
   
   Print "Sending notification to accountant...  Please wait"
   maildoc.Subject="Process Change Notice: "+doc.LFD_Num(0)
'   maildoc.Subject="BMT order "+doc.BMTnumber(0)
   Call maildoc.Send(False)
   Print " "
   Call uidoc.save
   Call uidoc.close
ErrorHandle:
   'nicht speichern
   Dim status As String
   status$ = "Fehler! "  & Error()
   Messagebox(status$)
   Call  uidoc.fieldsettext( "SaveOptions" , "0")
   
   Exit Sub


jetzt wird zwar nicht mehr nach speichern gefragt aber es werden jetzt 2 dokumente gespeichert

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz