Autor Thema: DocLink in Sub Querysave  (Gelesen 6494 mal)

Offline rento

  • Frischling
  • *
  • Beiträge: 26
  • Geschlecht: Männlich
  • Sehe nur lieb aus
DocLink in Sub Querysave
« am: 09.06.04 - 12:22:56 »
Hallo brauche mal wieder hilfe.

Ich möchte in der Sub Querysave einen DocLink per mail an der User senden.
Das Dokument ist auch schon gespeichert gewesen.

Dieses senden soll nur passieren, wenn an dem Dokument was geändert wurde. Warum kann ich hier keinen DocLink senden?

Danke für Infos
________________________
Warum das Rad neu erfinden?

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:DocLink in Sub Querysave
« Antwort #1 am: 09.06.04 - 19:38:39 »
Warum kann ich hier keinen DocLink senden?

Ich sehe jetzt auf Anhieb keinen Grund, warum das nicht gehen sollte.

Poste doch mal Deinen Code.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Glombi

  • Gast
Re:DocLink in Sub Querysave
« Antwort #2 am: 09.06.04 - 21:09:13 »
Ist eine Vorgabeansicht vorhanden?

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:DocLink in Sub Querysave
« Antwort #3 am: 09.06.04 - 21:20:05 »
Stimmt, vollkommen richtiger Einwand, Andreas. Daran könnte es natürlich auch liegen.

Wir sollten mal eine Liste must-have's in der Notes/Entwicklung erstellen:
- Option Declare
- Immer Vorgabeansicht definieren
- Code kommentieren
....
(to be continued)
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Glombi

  • Gast
Re:DocLink in Sub Querysave
« Antwort #4 am: 10.06.04 - 09:12:01 »
Du hast recht. Alleine die Frage mit Doclinks und die Lösung "fehlende Vorgabeansicht" kann so um die hundert mal hier.
Ist das was für Best Practices?

Andreas

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:DocLink in Sub Querysave
« Antwort #5 am: 10.06.04 - 19:13:43 »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline rento

  • Frischling
  • *
  • Beiträge: 26
  • Geschlecht: Männlich
  • Sehe nur lieb aus
Re:DocLink in Sub Querysave
« Antwort #6 am: 11.06.04 - 08:05:08 »
Hallo Hier mein komplettes skript

Sub Querysave(Source As Notesuidocument, Continue As Variant)
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim senddoc As NotesDocument
   Dim item As NotesItem   
   Dim rtitem As NotesRichTextItem
   Dim collection As NotesDocumentCollection
   Dim Teamlead As String
   
   Set db = session.CurrentDatabase
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   Set senddoc = New NotesDocument(db)
   Set collection = db.AllDocuments
   Set doc = collection.GetFirstDocument()
   
   While Not(doc Is Nothing)  
      If doc.HasItem ("TeamLeader") Then
         If doc.HasItem ("Form") Then
            Teamlead = Cstr (doc.Teamleader(0))
         End If
      End If
      Set doc = collection.GetNextDocument(doc)
   Wend
   
   DueDateStatus = uidoc.FieldGetText("DueDateStatus")
   OldDueDateStatus = uidoc.FieldGetText("OldDueDateStatus")
   
   If OldDueDateStatus = "" Then
      Call uidoc.FieldSetText("OldDueDateStatus", DueDateStatus)
      Goto ende
   End If
   
   
   If DueDateStatus <> OldDueDateStatus Then
      Call uidoc.FieldSetText("OldDueDateStatus", DueDateStatus)      
      senddoc.form = "Memo"
      senddoc.Subject = "Status Change" & " " & db.Title
      
'Anlegen und füllen des Richtextfeldes für die Aufgabenbeschreibung
      Set  rtitem = senddoc.CreateRichTextItem("Body" )
      Subject = uidoc.FieldGetText("Subject")
      Call rtitem.AppendText("The Status was changed in document "  &"/ " & Subject & " \" &" ")  
      Call rtitem.AppendDocLink(doc, db.Title) ' Documenten link anlegen
      Call senddoc.send (True,Teamlead)
   End If
ende:      
   
   
End Sub

Ich hoffe das euch das weiter hilft.
Weiterhin hoffe ich das ich nicht wieder aus dummheit was übersehen habe. ;D
________________________
Warum das Rad neu erfinden?

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:DocLink in Sub Querysave
« Antwort #7 am: 11.06.04 - 08:19:14 »
Bevor wir uns den Code ansehen:

Du hast noch nicht beantwortet ob eine Vorgabeansicht definiert ist.

Denn daran könnte es wie oben von Andreas erwähnt auch liegen.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline rento

  • Frischling
  • *
  • Beiträge: 26
  • Geschlecht: Männlich
  • Sehe nur lieb aus
Re:DocLink in Sub Querysave
« Antwort #8 am: 11.06.04 - 08:29:33 »
Ja es gibt eine Ansicht mit "Vorgabe beim ersten Öffnen der Datenbank".

Aber was hat das mit dem senden eines DocLink´s zu tun? Verstehe ich net.

Könnt ihr mir das bitte erklären?

Danke schonmal
________________________
Warum das Rad neu erfinden?

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:DocLink in Sub Querysave
« Antwort #9 am: 11.06.04 - 08:45:25 »
Aber was hat das mit dem senden eines DocLink´s zu tun?

Damit Doclinks funktionieren, muss bei einer Ansicht der DB "Default when database is first opened" ausgewählt sein.
Lotus Script benötigt diese Ansicht, um die Doclink-Lokation zu erstellen.

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:DocLink in Sub Querysave
« Antwort #10 am: 11.06.04 - 08:53:21 »
Wollte mir jetzt gerade Dein Script ansehen.

Dazu fehlen aber noch ein paar Infos:
- Wo genau hängt es? Du schreibst nur: "Warum kann ich hier keinen DocLink senden?"
- Falls es zu einem Script-Fehler kommt: Bei welcher Zeile entsteht der Fehler? (-> Debugger hilft da)

Beim überfliegen hab ich gesehen, dass Du da Anweisungen wie "Goto ende" drinhast. Damit überspringst Du übrigens Dein senddoc.send - vielleicht liegt es auch daran.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Glombi

  • Gast
Re:DocLink in Sub Querysave
« Antwort #11 am: 11.06.04 - 09:00:02 »
Mit
Call senddoc.send (True,Teamlead)
wird die Maske im Dokument gespeichert (1. Parameter = True). Das willst Du nicht wirklich (sonst hättest Du nicht zuvor Form = "Memo" gesetzt). Ersetze das mal durch ein False.

Evtl. gibt es in der Maske, die Du aktuell versendest, gar kein Body Feld.

Andreas

Offline rento

  • Frischling
  • *
  • Beiträge: 26
  • Geschlecht: Männlich
  • Sehe nur lieb aus
Re:DocLink in Sub Querysave
« Antwort #12 am: 11.06.04 - 09:27:55 »
Das Skirpt wird bei Querysave eingehangen und ausgeführt.

Mit Goto überspringe ich den teil nur wenn die bedingungen nicht zutreffen, die ich brauche, damit er ne Mail sendet.

Mit senddoc.send (False,Teamlead) habe ich auch schon probiert funktioniert auch net.

Wenn ich das senddoc.send auf True setzt kommt der Fehler vom debuger an der Stelle wo ich den DocLink einfügen möchte.
Das Bodyfeld ist vorhanden.
Habe das senddoc.send jetzt auf False stehen und nur der DocLink wir nicht angezeigt.

Achso noch ne Info Mails komme alle an nur der DocLink ist nicht vorhanden.
« Letzte Änderung: 11.06.04 - 09:30:44 von rento »
________________________
Warum das Rad neu erfinden?

Glombi

  • Gast
Re:DocLink in Sub Querysave
« Antwort #13 am: 11.06.04 - 09:33:00 »
Endlich die Info wo der Debugger zuschlägt  ;D

Es ist klar: Du referenzierst auf "doc", welches es gar nicht gibt. Vorher iterierst Du solange bis: doc is nothing
Also gibt es kein doc, auf das Du verlinken kannst.

Im ürbigen ist Deine Methode, den Teamleider zu ermitteln, äußerst unperformant: Du gehst über alle Dokumente der Datenbank und suchst solange, bis ein Teamleiter gefunden wurde.
Besser ist da eine Ansicht, die nur Dokumente anzeigt, in denen der Teamleiter vorhanden ist. Dann kann Du mit
set doc = view.GetFirstDocument
arbeiten...

Andreas
« Letzte Änderung: 11.06.04 - 09:35:31 von Glombi »

Offline rento

  • Frischling
  • *
  • Beiträge: 26
  • Geschlecht: Männlich
  • Sehe nur lieb aus
Re:DocLink in Sub Querysave
« Antwort #14 am: 11.06.04 - 09:47:29 »
Hey supper vielen und Großen danke.

Also war es doch mal wieder meine Eigene Dummheit, das das mit dem doc net gesehen hab  :-[ .

Das mit der Ansicht ist ne gute idee kann ich noch einbauen.

nochmal ganz viel dank.
________________________
Warum das Rad neu erfinden?

Glombi

  • Gast
Re:DocLink in Sub Querysave
« Antwort #15 am: 11.06.04 - 09:55:33 »
Schön dass es jetzt funktioniert.
Um den Doklink einzufügen, kannst Du

Call rtitem.AppendDocLink(uidoc.Document, db.Title)

verwenden.

BTW: Kannst Du den Thread noch auf "Erledigt" setzen. Es gibt da einen entsprechenden Button oben.

Andreas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz