Domino 9 und frühere Versionen > ND8: Entwicklung

[gelöst] verzwicktes Problem mit @Command([EditMakeDocLink])

<< < (2/3) > >>

Alexander 28:

--- Zitat von: Peter Klett am 04.02.13 - 12:04:40 ---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.

--- Ende Zitat ---

so würde ich es gern machen, aber wenn das schließen und reöffnen mache ich mit script, das mail erstelle ich mit fs, eben wegen @Command([EditMakeDocLink]). würde das mail ja auch mit script erstellen, dann sind wir aber wieder dort wo wir am anfang waren weil ich den doclink nicht setzen kann ohne speicherung. ich bräuchte also idealerweise eine kombination aus script fürs reopen und anlegen des mails und dann fs zu setzen des doclinks. habe schon zwei agenten (einen script und den 2. in fs) erstellt, aber wenn ich versuche den 2. agenten aus dem ersten per Call agent.run zu starten klappt es nicht. kriege einen fehler bzgl. ui funktionen nicht möglich !?!?!?!

koehlerbv:
Für den Fall, dass das Mail nicht gespeichert / versendet wird oder - vor allem - das Hauptdokument nicht gespeichert wird: Wie willst Du dann den Ablauf der Funktion synchron halten?
Mit Deinem bisherighen Konstrukt wäre es ja auch möglich, das Mail zu versenden, aber das Hauptdokument zu verwerfen ...

Bernhard

Peter Klett:
Ungetestet, könnte aber gehen:

Agent 1 in Script, speichert das aktuelle Dokument, schließt und öffnet es

Agent 2 in Formel, erstellt die Mail

Im Dokument eine Schaltfläche in Formel, die mit @Command ([ToolsRunMacro]) erst Agent 1 und dann Agtent 2 ausführt.

Alternativ, wenn es garnicht zu kombinieren geht, erstelle eine Schaltfläche, um das Hauptdokument anzulegen (Agent 1) und erst danach zeigst Du eine zweite Schaltfläche für Agent 2.

Bin aber sicher, dass es auch mit einer hinzubekommen ist ...

Alexander 28:
@bernhard
ich würde vor dem erstellen des mails das hauptdoc natürlich zwingend speichern, dann reopen und dann das maildoc erzeugen damit die mama im vorhanden ist.

@peter
ja, 2 x @Command([ToolsRunMacro]; ... nacheinander über einen button hatte ich schon probiert, aber das speichern und reopen des mamadocs im ersten agenten klappte damit irgendwie nicht. kann aber auch ein flüchtigkeitsgehler gewesen sein. ich probier das gleich nochmal und melde mich zurück.

pram:
Mit @Formeln in dem Kontext habe ich zu wenig Erfahrung, aber es gäbe noch den (undokumentierten) LS-Befehl

--- Code: ---notesRichTextItem.AddLinkByIds( dbReplicaID$, serverHint$, viewUNID$, documentUNID$, comment$ [, HotSpotText$ ])

--- Ende Code ---
Dieser prüft nicht auf die Existenz des Dokuments/View/Datenbank sondern fügt den Link "einfach so" hinzu.

Natürlich musst du irgendwie sicherstellen, dass man die Mail dann nur versenden kann, wenn das Dok gespeichert wurde.
Weiterhin muss man wissen, dass man Richtext über Die Backend-LS-Klassen nur ändern kannies nur funktioniert wenn das Dokument noch nicht offen ist.
(z.B. im QueryOpen).
Sobald UI beteiligt ist, muss andere Wege gehen, z.B auf die (ebenfalls undokumentierte) Methode "importItem" zurückgreifen oder über den Zwischenablage-Trick.

Gruß
Roland

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln