Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: gfunkus am 04.09.03 - 15:05:45
-
hallo,
wer kann mir helfen? wie kann ich auf das aktuell geöffnete Dokument in einer Mail verweisen... habe ein skript welches einene link für die datenbank ghenereirt aber wie öffne ich das geöffnete dokument???
Dim session As New NotesSession
Dim db As NotesDatabase
Dim newDoc As NotesDocument
Dim rtitem As NotesRichTextItem
Set db = session.CurrentDatabase
Set newDoc = New NotesDocument( db )
Set rtitem = New NotesRichTextItem( newDoc, "Body" )
Call rtitem.AppendDocLink( db, db.Title )
newDoc.Subject = "Here is a link to the database"
newDoc.SendTo = "Lauri Nodwell"
newDoc.Send( False )
-
Guckst Du in Designer-Hilfe ...
Was Du versendest (bzw. dieses Beispiel aus der Designer-Hilfe), ist ein Link auf die DB.
Für das Dokument übergibst Du das entsprechende Dokument, das Du natürlich vorher instantiieren mußt.
Mit ein bißchen Zusatzinfo können wir da vielleicht auch helfen.
Bernhard
-
Denke nicht weiter schwierig:
Dim session As New NotesSession
Dim ws as New NotesUiWorkspace
Dim db As NotesDatabase
Dim newDoc As NotesDocument
Dim rtitem As NotesRichTextItem
Set db = session.CurrentDatabase
Set newDoc = New NotesDocument( db )
Set rtitem = New NotesRichTextItem( newDoc, "Body" )
Call rtitem.AppendDocLink( ws.currentDocument.Document, "Dokument" )
newDoc.Subject = "Here is a link to the database"
newDoc.SendTo = "Lauri Nodwell"
newDoc.Send( False )
Ich denke das funktioniert.
Grüße
Ralf
-
wie gesagt das skript befindet sich in einem speichern button... habe versucht das instanzierte "uidoc" statt doc zu nehmen aber das geht nicht???
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim doc As NotesDocument
Dim ReItm As NotesItem
Dim vw As notesview
Dim db As NotesDatabase
' hole information der leser welche ins leserfeld eingetragen werden
Set db = session.CurrentDatabase
Set vw = db.GetView ("VS033_ModAuLe" )
Set doc = vw.GetDocumentByKey ("KON")
tmpLeser = doc.FS033NLeser
' Document abspeichern
Set uidoc = ws.CurrentDocument
Call uidoc.Refresh
Set udoc = uidoc.Document
' Set db = sess.CurrentDatabase
' doc.Form = ("FW009_Task")
'Auslesen der nötigen Informationen zu Mailgenerierung
DlgEmpf = session.UserName
Aufziel = udoc.FW009NTaskTgt(0)
TskAut = udoc.Autoren
If udoc.FW009NStatus(0)="1" Then udoc.Leser = tmpLeser
'generiere mail
Dim sess As New NotesSession
Dim newDoc As NotesDocument
Dim rtitem As NotesRichTextItem
Set db = sess.CurrentDatabase
Set newDoc = New NotesDocument( db )
Set rtitem = New NotesRichTextItem( newDoc, "Body" )
Call rtitem.AppendDocLink ( db ,Link)
newDoc.Subject = "Aufgabe " + " von " + Cstr(DlgEmpf)
newDoc.SendTo = TskAut
Call newDoc.Send( False )
Call udoc.save(True, False)
Call uidoc.close
Call ws.CurrentDocument.Close()
-
@ralf habe ich auch schon versucht aber der meint could nt find default view id oder so??? woran liegt das?
Gfunkus
-
Was funktioniert denn konkret nicht bzw. welche Fehlermeldungen gibt es ?
Und Du verweist ja wieder auf die db statt auf udoc . Parameter 2 (Link) ist eine Variable, die Du nicht deklariert oder belegt hast.
-
Wenn Du Mails aus einer DB heraus versenden willst, brauchst Du zwingend eine Vorgabe-Ansicht - genau das besagt auch die Fehlermeldung.
-
kann ich den 2ten parameter auch weglassen???
-
Sorry, aber
was denn eine vorgabe ansicht???
-
Ich denke das ist am zweiten Reiter im Ansicht Konfigurieren Dialog die erste Checkbox. Einfach bei irgendeiner View anhaken.
Grüße
Ralf
P. S. Bitte neben Notes Forum gehört auch die Designer Hilfe zu den unentbehrlichen Hiflsmitteln. Was eine Vorgabeansicht ist, bekommt man nämlich auch durch Suchen nach Vorgabeansicht in der Designer Hilfe heraus. Einfach mal probieren es lohnt sich.
-
danke! aber ich habe die designer hilfe in english und da hatte ich irgendiwe nix richtige darüber gefunden.. hat wer nen link wo ich die mal in german ziehen kann????
thx
Gfunkus
-
Verträgst Du ein Mail mit einem 5,6 MB grossen Attachment ? Dann schicke ich Dir ein Zip-File ;-)
Hierzu bitte Mailadresse bekannt geben (Forumspost).
Die deutsche Designer-Hilfe ist aber auch in grossen Teilen englisch, aber die allgemeinen Beiträge sind eingedeutscht.
Bernhard
-
Bevor jetzt jemand fragt, was für einen tollen Packer ich habe - ich blinde Nuß habe nicht gesehen, daß Gfunkus auf R6 ist.
Dann kämen also genau 5 MB dazu ...
-
öhm ( Stimme aus dem OFF ) Aber ermittelt man nicht das zum uidoc gehörende doc über
Set doc = uidoc.document ??
eknori
-
Worauf in diesem langsam unübersichtlich werdenden Thread beziehst Du Dich ?
Set NotesDocument = NotesUIWorkspace.CurrentDocument.Document
geht (logischerweise), und eine andere Stelle habe ich jetzt nicht gefunden.
Sach ma an, Meister der API,
Bernhard
-
Sorry, möglicherweise habe ich was übersehen, aber in den letzten Postings ging es doch um die leidige Frage der Default View.
Abgesehen davon, daß man das ruhig einstellen sollte, ist der weg über uidoc.document doch einfacher, als erst in einem (extra ) zu erstellendem View anhand der DocID das BackendDoc zu suchen.
-
Hi, Ulrich,
ich hoffe, wir mißverstehen uns jetzt nicht ...
Set uidoc = ws.CurrentDocument
set doc = uidoc.Document
ist doch das gleiche wie
set doc = ws.CurrentDocument.Document.
Massa Gfunkus holt aus doc doch nur einen Wert, den er für später braucht, und auf seinem uidoc basiert dann udoc. Sicherlich noch recht wirr, aber er scheitn ja auch (noch) vollkommener Anfänger zu sein.
Sein doc hat jedenfall mit dem ws.CurrentDocument nix zu tun, das sind zwei Paar Stiefel.
Oder ich bin blind, kann ja auch sein ;-)
Ciao,
Bernhard
-
Set uidoc = ws.CurrentDocument
Call uidoc.Refresh
Set udoc = uidoc.Document
ja, ja, das leidige Problem der Variablenbenennung; da kann man schnell schon mal ein i übersehen ;D
Oder war es doch die türkische Sonne.... ??
-
Call rtitem.AppendDocLink ( db ,Link)
wollte gfunkus nicht auf das DOCUMENT verweisen ?? und welchen Wert nimmt die Varialble Link an ??
-
Besser die türkische Sonne auf'n Kopf als 'n Kopfschuss in Israel ;-)
Da wir hier auch den ganzen Tag knalligen Sonnenschein hatten, habe ich natürlich auch Dein erstes Mail mißdeutet ...
Häff ä neiss iewening,
Bernhard
-
Ich möchte mal eines dazu sagen, ich hoffe mir ist niemand hier böse, aber ich helfe in Zukunft Leuten die hier scripts erstellen wollen und Lotus script nicht können nicht mehr bei der Erstellung von scripts. Sehr wohl helfe ich noch Leuten, die script erlernen wollen. Vielen Dank für euer Verständnis.
Grüße
Ralf
-
@Ralf_M_Petter
Klaro versteht das jeder. Aber wenn Du das in diesem Thread postest, dann kann das gfunkus doch nur auf sich beziehen.
Gewollt ?
Ciao
Don Pasquale
-
halb halb, aber wenn ich mir das script das in dem Thread gepostet wurde so anschaue, frage ich mich, warum ich einen Lotus script Kurs besucht habe. Versteht mich nicht falsch, aber ich finde viel Kritik an Notes/Domino entsteht genau durch die Vorgehendsweise, ich kann ja ein bisschen VBA dann kann ich ja Lotus script auch. Weiss nicht, ob es in dem Fall so gelaufen ist, aber sieht ein wenig danach aus. Was meint ihr?
Grüße
Ralf
-
Nun gut auf dem LS sektor bin ich in der tat ein newbie aber ich gebe mir mühe... :-)
Dann nochmal vielen Dank für Hilfe. Mein Skript funktioniert jetzt einwandfrei.
Mfg
Gfunkus
-
Ich kann nur empfehlen, Programmiersprachen nicht autodidaktisch zu lernen, weil man sich dann Fehler einlernt, die man nur schwer wieder ausbügeln kann. Also Kurs Lotus script für Domino buchen und gut ist.
Grüße
Ralf
-
Erzähl das mal meinem Chef.... :-(
-
@Ralf: ich denke auch, daß du dich hinsichtlich der Bereitschaft deines Arbeitgebers, in den Aufbau deiner Fähigkeiten zu investieren, in einer privilegierten Stellung bist.
Dies ist auf dem deutschen (Käufer-) Arbeitsmarkt nicht mehr so. Es gibt dafür verschiedene Ursachen:
- Unternehmen, die während des Booms bereit waren in die IT-Ausbildung ihrer Mitarbeiter zu investieren, wurden damit konfrontiert, daß die Besten sich eine neue, besserbezahlte Stellung suchten.
- In den letzten Jahren wurden sehr viele gut ausgebildete Leute (Berufsakademien, Universitäten, FHs, ehrgeizige Autodidakten + Azubis in sogenannten Neuen Berufen) in den Markt gepumpt.
- Die Öffnung Ost-Europas setzt eine Menge fähiger, ehrgeiziger und intelligenter Leute aus diesen Länder in die Lage, hier auf dem Arbeitsmarkt mitzumischen (sei es hier zu arbeiten oder near shore-Produktion).
- Netztechnologie verbessert die Möglichkeiten, Dinge in anderen Orten zu entwickeln, wo es sehr fähige, ehrgeizige und intelligente Leute gibt, die allgemeinen Lebenshaltungskosten aber richtig gering sind (Indien, Bangladesh, Pakistan und China arbeitet dran).
Ich arbeite jetzt in Projekten konkret mit SOAP, XML, Java, Swing, Servlet-Applet socket connections, RMI, Tomcat, Servlet, JSP, Axis, MS SOAP Toolkit 3.0, Lotus Domino und IBM-Portal Server. Außer für LotusDomino habe ich für keine dieser Technologien jemals eine formale Schulung erhalten. Wenn ich da für alles in eine Schulung rennen würde, käme ich aus dem Schulungsraum gar nicht mehr raus (sicher für ein paar Wochen eine verlockende Vorstellung, auf die Dauer aber wohl doch eher langweilig). Ich war z.B. von der letzten 5 tägigen IBM-Schulung, die ich besucht habe (Enterprise Java Beans) eher enttäuscht.
... und ich bin relativ optimistisch, daß das funktioniert, obwohl es sicher eine ernste Herausforderung darstellt. Alles eben auch eine Frage der Kompetenz der Kollegen, mit denen man schwierige Punkte besprechen kann und eines professionellen Projektmanagements (Kollege Nico und ich, muß also gut sein ;D) .
Autodidaktentum ist möglich, erfordert nun aber eben einen relativ hohen Grad an Disziplin und auch an einer jahrelang geschulten Fähigkeit zu lernen. Kompetente Kollegen helfen auch eine Menge (hier bei IMG zum Beispiel) oder im legendären Inkompetenzcenter von Kasten Consulting mit Klassikern der Notes-Programmierung wie dem Harkpabst.
Die Fähigkeit, seine Arbeit zu beherrschen, hat nicht unbedingt was mit formalen IT-Schulungen zu tun. Die mögen sicherlich helfen. Dies gilt vermutlich in einem höheren Grade für Leute, die sich nicht eine langjährige Uni-Ausbildung von den Steuerzahlern haben finanzieren lassen.
Stimme aber mit Ralf absolut darin überein, daß es wichtig ist, wirklich die Grundlagen zu verstehen und es nicht darum gehen kann, etwas irgendwie ans Laufen zu bringen.
Wer sich für sowas hergibt, baut selbst kein Fundament auf und hilft eigentlich mehr seinem Manager als sich selbst. Der Manager erzielt für einen begrenzten Zeitraum einen (scheinbar) guten Kosten-Nutzen Quotienten. Die Technologien wandeln sich sowieso, jedoch wesentlich stärker auf der Oberfläche als in einer darunter liegenden Schicht. Deshalb macht es IMHO auch Sinn da etwas dickere Bretter zu bohren. Wer Transaktionen in RDBMS versteht, versteht auch Transaktionen in SOAP schneller.
Gruß Axel