Domino 9 und frühere Versionen > ND8: Entwicklung
[gelöst] verzwicktes Problem mit @Command([EditMakeDocLink])
Alexander 28:
Hallo zusammen. Ich habe ein auf den erstem Blick sehr einfaches Problem, konnte es aber dennoch bisher nicht lösen.
Situation:
Ich habe ein Hauptdokument aus dem heraus ich ein Tochterdokument (Typ: Antwort) erzeuge. Das Antwortdokument soll eine E-Mail werden und enthält sie klassichen Felder Subject, Body, CopyTo etc. und noch ein paar weitere, die aus dem Mutterdoc übernommen werden bei der Neuanlage. Deshalb trägt es auch das Kennzeichen "...übernimmt Werte des gewählten Doc ...". Im Body des Mails möchte ich nun aber einen DocLink zum Mutterdoc mitsenden und diesen bei der Neuanlage des Antwortdokumentes auch schon mal eintragen. Das Ganze funktioniert mit:
--- Code: ---@Command([EditMakeDocLink]) ;
@Command([Compose]; ""; "(Mail)");
@Command([EditGotoField] ; "Body" );
@Command([EditInsertText]; @NewLine + @NewLine );
@Command([EditInsertText]; "DocLink zum Dokument => " );
@Command([EditPaste]) ;
@Command([EditGotoField] ; "SendTo" )
--- Ende Code ---
auch einwandfrei.
Wenn das Mutterdoc aber noch nicht gespeichert (und reöffnet) wurde, bekomme ich den sinngemäßen Fehler: "... kein Dokument gewählt ...". Es reicht dann auch nicht aus, dass Mutterdoc zu speichern und es nochmal zu versuchen. Ich muss es speichern, schließen, öffnen und dann klappt es.
Hab es jetzt schon mit
--- Code: --- If uidoc.EditMode = True Then
Call uidoc.Refresh
Call uidoc.Save
Call uidoc.Close(True)
Set newuidoc=workspace.editdocument(True,doc)
Call workspace.ComposeDocument( "", "", "(Mail)" )
Else
Call workspace.ComposeDocument( "", "", "(Mail)" )
End If
--- Ende Code ---
gemacht; klappt! Habe aber da das riesen Problem, dass ich den DocLink nicht in den Body hineinbekomme, wie bei der Formel ... Sowas wie @Command([EditMakeDocLink]) gibt es offenbar nicht in Script. AppendDocLink klappt nicht
Also mir dampft inzwischen die Birne ....
Hat jemand eine Idee??
Vielen Dank im voraus
Alex
WildVirus:
Guten Morgen,
wo erzeugt Dein Script den Doclink ? Den sehe ich nicht.
In solchen Fällen erzeuge ich das Antwortdokument komplett in Script und fülle die relevanten Felder.
CU,
Axel
koehlerbv:
Schau Dir in der DesignerHelp NotesRichTextItem.AppendDocLink und das Beispiel dazu an.
Bernhard
Alexander 28:
ja, habe ich bereits getan, aber bisher keinen weg gefunden, den doclink im body des maildocs sichtbar zu machen, ohne dieses im vorfeld zu speichern. genau das möchte ich aber nicht, da der nutzer im zweifel die mailerstellung doch noch abbrechen möchte. das doc ist aber dann schon da, also müsste ich irgendwie löschen, das widerum erfordert löschrechte in der acl ... soll so auch nicht sein.
kann ich einen doclink im rt field sichtbar machen, ohne dieses zu speichern? meine mal irgendwo hier im forum eine anleitung dafür gesehen zu haben, kann das post aber bei besten willen nicht wiederfinden...
mein code bisher
--- Code: ---Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim newuidoc As NotesUIDocument
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim maildoc As NotesDocument
Dim rtitem As NotesRichTextItem
Set uidoc = workspace.CurrentDocument
Set db = session.CurrentDatabase
Set doc = uidoc.Document
Set maildoc = New NotesDocument( db )
Call maildoc.ReplaceItemValue( "Form", "(Mail)" )
Set rtitem = New NotesRichTextItem( maildoc, "Body" )
Call rtitem.AppendText("Link => ")
Call rtitem.AppendDocLink( doc, "Dokument" )
Call maildoc.MakeResponse(doc)
'muss Speichern wirklich sein ==== ???
Call maildoc.Save(True,False, True)
Set newuidoc = workspace.editdocument(True,maildoc)
Call newuidoc.GotoField("SendTo")
--- Ende Code ---
Peter Klett:
Du kannst mit einem versteckten, temporären Dokument arbeiten, dort das Richtextitem befüllen, das speichern und das Richtextitem in Dein neu erstelltes Dokument vor dem Öffnen kopieren. Das temporäre Dokument hebst Du pro User für spätere Verwendung auf (Löschen wirst Du es ja nicht können, denn die Benutzer werden dazu hoffentlich kein Recht haben).
Als Resultat hast Du dann die Möglichkeit, eine Mail als Antwortdokument zu einem Hauptdokument zu erstellen, das dann zu versenden und am Ende das Hauptdokument zu verlassen, ohne es zu speichern. Antwortdokument weg (bzw. ohne Bezug zum Elterndokument), Mail mit Link ins Leere. Willst Du das?
Was spricht denn dagegen, das Hauptdokument, wie im Ursprungspost erwähnt, zu speichern, und notfalls auch zu schließen und wieder zu öffnen (wenn es wirklich nicht anders geht)? Das kannst Du doch automatisiert per Script tun, der Benutzer bemerkt nur ein kurzes Flimmern, wenn überhaupt.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln