Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: botschi am 14.05.08 - 12:59:54

Titel: Aus einem Dok ein anderes erstellen und Werte übergeben
Beitrag von: botschi am 14.05.08 - 12:59:54
Hallo,

aus DocA heraus erstelle ich per Maskenaktion DocB und schreibe in DocB einige Werte aus DocA.
Alles kein Problem.

Wie bekomme ich jetzt aber aus DocB Werte in DocA (bereits im Frontend geöffnet) geschrieben?

Matthias
Titel: Re: Aus einem Dok ein anderes erstellen und Werte übergeben
Beitrag von: ata am 14.05.08 - 13:35:49
... du musst die DocID von DocA in DocB übernehmen - und dann mit @SetDocField( ... )

Toni
Titel: Re: Aus einem Dok ein anderes erstellen und Werte übergeben
Beitrag von: botschi am 14.05.08 - 13:42:40
Kannst Du da noch einen Satz zusagen?
So kann ich damit nix anfangen...

Matthias
Titel: Re: Aus einem Dok ein anderes erstellen und Werte übergeben
Beitrag von: koehlerbv am 14.05.08 - 13:50:04
Das steht doch in der Hilfe von @SetDocField ...

Bernhard
Titel: Re: Aus einem Dok ein anderes erstellen und Werte übergeben
Beitrag von: klaussal am 14.05.08 - 13:51:31
Zitat
SetDocField( Dokument-ID ; Feldname ; neuerWert )
Parameter
Dokument-UNID
Text. Die eindeutige ID (UNID) eines Dokuments. @DocumentUniqueID gibt die eindeutige ID (UNID) des aktuellen Dokuments an.
Titel: Re: Aus einem Dok ein anderes erstellen und Werte übergeben
Beitrag von: botschi am 14.05.08 - 14:00:39
Ja, alles klar! Danke sehr.

Ein kleines Problem gibt es noch: wenn DocA bereits Bearbeitbar, muss man es erst schließen, um den neuen Eintrag zu sehen...
Aber ich denke, dass es anders nicht geht?

Matthias
Titel: Re: Aus einem Dok ein anderes erstellen und Werte übergeben
Beitrag von: ata am 14.05.08 - 15:04:39
... das sollte tunlichst vorher geschlossen werden, da du sonst Speicherkonflikte herausforderst...

Toni
Titel: Re: Aus einem Dok ein anderes erstellen und Werte übergeben
Beitrag von: Werner Götz am 15.05.08 - 11:47:17
Man kann im Dokument DocA beim Öffnen von DocB ein "on event PostSave from uiDocB Call ..." absetzen und so im Dokument DocA darauf reagieren, wenn das Dokument DocB gespeichert wird und sich dann die entsprechenden Werte holen. Bei dieser Vorgehensweise sollte man dann aber abfangen, dass das Dokument DocA geschlossen wird, solange DocB geöffnet ist.

Alternativ kann man im DocB beim Öffnen im Initialize der Maske das aktuell geöffnete uidoc (dies ist an dieser Stelle noch das öffnende DocA) holen und kann so auch Werte setzen.

Beide Vorgehensweisen verursachen keinen Speicherkonflikt - sind aber technisch etwas anspruchsvoller umzusetzen.

-Werner
Titel: Re: Aus einem Dok ein anderes erstellen und Werte übergeben
Beitrag von: botschi am 16.05.08 - 10:56:46
Also, man kann den Maskenbutton nur drücken, wenn DocA nicht bearbeitbar ist. Das hilft mir noch nicht so richtig weiter, ich würde DocA gerne schließen.
Meine Maskenaktion sieht so aus:
Code
@If(@IsNewDoc;@Prompt([Ok];"Bitte erst speichern";"Das Ticket muss erst gespeichert werden, bevor die Ticketnummer in das neue TPR-Ticket übernommen werden kann.");
@Do(@SetEnvironment("TPR";"1");
@SetEnvironment("Ticketnummer";@Text(ticketnr));
@SetEnvironment("Umgebung";umgebungschema);
@SetEnvironment("ID";@Text(@DocumentUniqueID));
@Command([Compose];"";"Ticket")))
Kann ich mit Formelsprache irgendwie das Dokument schließen? Dann könnte ich in den Ereignissen in DocB das DocA wieder öffnen und die übergebenen Werte werden angezeigt...

Kann mir noch einer folgen?

Matthias
Titel: Re: Aus einem Dok ein anderes erstellen und Werte übergeben
Beitrag von: Kadlec am 16.05.08 - 11:09:34
Also, man kann den Maskenbutton nur drücken, ...
Dann solltest Du die entsprechende HideWhen Formel entsprechend ändern, oder habe ich das falsch verstanden??

Boris
Titel: Re: Aus einem Dok ein anderes erstellen und Werte übergeben
Beitrag von: Driri am 16.05.08 - 11:09:48
Theoretisch könntest Du vor dem Compose ein @Command([CloseWindow]) absetzen. Damit würde das aktuell im Fokus befindliche Fenster geschlossen.

Ehrlich gesagt würde ich mir aber überlegen, das ganze in Script abzufackeln. Du hast damit einfach viel mehr Möglichkeiten, die betroffenen Dokumente sauber anzusprechen, zu verändern, etc.
Titel: Re: Aus einem Dok ein anderes erstellen und Werte übergeben
Beitrag von: botschi am 16.05.08 - 11:25:01
Wollte ich auch, aber ich hab das @setdocfield nicht evaluieren können... Und das ist schon die einfachste/schnellste Methode ein Feldwert in einem Dok zu ändern.

Aber das @Command([CloseWindow]) ist doch genau das, was ich suchte...
Ich probiers gleich mal aus.
Danke!

Matthias
Titel: Re: Aus einem Dok ein anderes erstellen und Werte übergeben
Beitrag von: botschi am 16.05.08 - 11:45:10
OK, viele Wege führen nach Rom und meiner tuts auch.
Danke für die Hilfe, irgendwann werde ich das sicher nochmal besser machen  ;)

Matthias