Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Alois am 15.10.04 - 09:36:13

Titel: warten auf das Speichern
Beitrag von: Alois am 15.10.04 - 09:36:13
wieder ein Problem mit wem ich nicht alein fertig wird und eure Hilfe brauche  ;D

Für ein Dokument Doc1 aus db1 soll ein Wiedervorlage Doc2 in der db2 generiert werden.
Mit ComposeDocument erstelle ich das Dokument in db2 und setze ein Link in Doc2 zu Doc1... bisher kein Problem
Diese Agent wäre mit sein Arbeit fertig wenn mein Chef nicht andere Wünsche hätte.
Er will dass in Doc1 ein Link zu Doc2 steht. Allerdings zur Laufzeit ist Doc2 noch nicht gespeichert, dann kein ID, dann kein Speichern

Wie kann ich mein Agent "warten lassen" bis Doc2 gespeichert wurde bzw. abgebrochen wurde???

Wenn jemand ein Idee hätte, wäre ich sehr dankbar  :D
Titel: Re: warten auf das Speichern
Beitrag von: Axel am 15.10.04 - 09:47:47
Hi,

meines Wissens gibt's dafür keine Lösung. Ich stand vor einem ähnlichen Problem und hab keine Lösung gefunden.


Axel
Titel: Re: warten auf das Speichern
Beitrag von: Alois am 15.10.04 - 11:44:16
ok ich habe mich entschieden in db2 beim Speichern der Dokument ein Flag zu setzen in Doc1 von db1. Ich dachte eigentlich dass es nicht schwierig wäre allerdings komme ich an die Infos von Doc1 nicht dran...

Ich habe ein Feld "Link" vom Type RichText wo mein Link eingefügt wurde mit Value "" und ValueLength 328??? komisch!

Ich habe ein andere Feld "$Links" (automatisch von Notes eingefügt) vom Type NoteLinks mit Value "" und ValueLength 44???

ich finde nicht wie ich die ID von db1 und Doc1 rauslesen kann...

ist da jemand der sowas schon gemacht hat?
Titel: Re: warten auf das Speichern
Beitrag von: Axel am 15.10.04 - 12:13:42
Hi,

ich weiss nicht wie du über einen Doclink an die ID kommst. Wenn du aber das Doc2 aus dem Doc1 heraus generierst, dann hast du doch die ID und kannst sie beim Anlegen mit in das Dokument einfügen. Oder sehe ich das was falsch.

Ein paar mehr Infos, wo du was wie machst wären schon nicht schlecht.

Axel
Titel: Re: warten auf das Speichern
Beitrag von: Alois am 15.10.04 - 12:34:31
Hallo Axel,

hier in mein Doc1:
Zitat
   Set uidocWV = uiwsCurrent.ComposeDocument( server, file, "WVDoc")
   Set docWV = uidocWV.Document   
   docWV.Subject = docSource.Subject(0) + "  [Auftragsverwaltung]"
   
   Call uidocWV.GotoField( "Link" )
   Call uidocWV.Paste   
   
   Set AAdb =    docSource.parentdatabase
   
   Call uidocWV.Refresh

damit wir ein Doc2 in db2 erstellt. Nach dem Refresh wollte ich warten... aber wir haben gesehen dass es nicht geht.

Wenn mein Link in Feld "Link" eingefügt ist, wollte ich beim Speichern der Doc2 wiederum Doc1 öffnen und ein Link einfügen zu Doc2. Blos ich kann keine Wert aus diese Feld(er) lesen (siehe oben)

Titel: Re: warten auf das Speichern
Beitrag von: klaussal am 15.10.04 - 12:43:32
Warum nicht folgende Vorgehensweise:

In DOK1 eine Schaltfläche: generiere DOK2, speichere es ab, etc. So hab ich doch die IDs von DOK1 + 2 und kann dann alles damit machen....
Ich halte den Weg per Agent nicht für elegant.

klaus
Titel: Re: warten auf das Speichern
Beitrag von: Axel am 15.10.04 - 12:46:30
Hi,

Du braucht in der Maske von Doc2 ein Textfeld mit Namen ParentID (kannst du aber auch anders benennen).

Deinen Code erweiterst du wie unten dargestellt.
 
Code
Set uidocWV = uiwsCurrent.ComposeDocument( server, file, "WVDoc") 
   Set docWV = uidocWV.Document   
   docWV.Subject = docSource.Subject(0) + "  [Auftragsverwaltung]"

'Einfügen der ID
   docWV.ParentID = docSource.UniversalID

   Call uidocWV.GotoField( "Link" )
   Call uidocWV.Paste   
   
   Set AAdb =    docSource.parentdatabase
   
   Call uidocWV.Refresh


Damit hast du die ID und kannst dann darüber auf des Dokument zugreifen.


Axel
Titel: Re: warten auf das Speichern
Beitrag von: Alois am 15.10.04 - 13:56:42
@klauss

Du hast im Prinzip Recht aber ich möchte dass mein Anwender die Möglichkeit hat diese Dokument zu bearbeiten bzw. die Aktion abzubrechen.

@Axel

Ich danke dir aber wie kann ich auf ein Document zugreifen der in ein andere db liegt? Sehe ich das richtig dass ich auch server und file brauche bzw. ReplikaID?
das schlimmste ist dass zur Laufzeit alles noch offen ist und ich sehe kein Möglichkeit auf das Dokument zu zugreifen der schon in ein andere Fenster offen ist
Titel: Re: warten auf das Speichern
Beitrag von: Axel am 15.10.04 - 14:18:44
Hi,

in ganz allgemeiner Form skizziert kannst du so auf ein Dokument in einer andere Datenbank zugreifen.

Code
Dim db As Notesdatabase
Dim docThis As NotesDocument
Dim parent As NotesDocument

Set db = New NotesDatabase("Name des Servers", "Name der Datenbank")
Set parent = db.GetDocumentByUNID( docThis.ParentID )
...



Weitere Infos findest du auch in der Designer-Hilfe


Axel