Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: kdreier am 22.08.06 - 09:53:49

Titel: Antwortdokumente (Responsedocuments)
Beitrag von: kdreier am 22.08.06 - 09:53:49
Servus,
in einer LibraryDB verwende ich Responsedocs u.a. zur Versionskontrolle. So gibt es in einem Versionstrack ein jeweils gültiges Haupt- und u.U. mehrere veraltete Dokumente. Zusätzlich können weitere Dokumente noch im Entwurfstatus sein. Diese werden, solange sie im Status Entwurf stehen, als Antwortdokument zum gerade gültigen gezeigt.

Nun möchte ich ggf. ein beliebiges Dokument kopieren und als neues Dokument ablegen. Das Problem ist, führe ich ein
  Set NewDoc = doc.CopyToDatabase(db)
mit dem Hauptdokument durch, wird ein neues Hauptdokument ohne Antworten angelegt. Mache ich das mit einem Antwortdokument, so ist auch die Kopie wieder ein Antwortdokument zu dem bisherigen Hauptdokument.

 ??? Vielleicht ist es zu einfach um es zu sehen, aber wie löse ich ein Antwortdokument vom Hauptdokument ab?  ???

Ach ja, den Track Das Arbeiten mit Haupt- und Antwort-Dokumenten habe ich natürlich gelesen. Ist sehr hilfreich, davon steht aber leider nix drin.

Danke
Karsten

Titel: Re: Antwortdokumente (Responsedocuments)
Beitrag von: m3 am 22.08.06 - 09:58:28
Vielleicht ist es zu einfach um es zu sehen, aber wie löse ich ein Antwortdokument vom Hauptdokument ab?
Ich würde sagen, indem Du das Feld $REF löscht bzw. in das Feld die DocID des neuen Hauptdokumentes einträgst.

Oder hab ich was falsch verstanden?
Titel: Re: Antwortdokumente (Responsedocuments)
Beitrag von: ghost am 22.08.06 - 09:59:00
Hallo Karsten,

du kannst aus einem Antwortdokument ein Hauptdokument machen, in dem Du das Item $Ref löschst.

Viele Grüße
ghost
Titel: Re: Antwortdokumente (Responsedocuments)
Beitrag von: kdreier am 22.08.06 - 10:00:00
Ok,
vielleicht hab ichs ja schon. Mit der "brutalen" Methode:
Mit .RemoveItem("$REF") den Link zum Hauptdokument löschen. Dann wird es als eigenständiges Dokument angezeigt.

Sind irgendwelche Nebenwirkungen bekannt?

Gruß
Karsten
Titel: Re: Antwortdokumente (Responsedocuments)
Beitrag von: kdreier am 22.08.06 - 10:01:21
Äh ja,
sind wir wohl alle gleichzeitig draufgekommen. Naja, schön mal darüber gesprochen zu haben.

Trotzdem, Vielen Dank
Karsten
Titel: Re: Antwortdokumente (Responsedocuments)
Beitrag von: Glombi am 22.08.06 - 10:02:26
Hast Du eine eigene Maske für die Antworten (wegen des Maskentyps "Antwort")? Falls ja, musst Du auch noch einen Maskenwechsel machen.
Falls nicht (d.h. Du hast eine Maske für Haupt- und Antwortdokumente), nehme ich an, dass Du mit $VersionOpt arbeitest. Dann musst Du neben $REF auch noch
call doc.RemoveItem("$VersionOpt")
machen.

Andreas
Titel: Re: Antwortdokumente (Responsedocuments)
Beitrag von: kdreier am 22.08.06 - 10:06:41
Nein, ich verwende bei Haupt- und Antwortdokumenten die gleiche Maske. Mit $VersionOpt arbeite ich ebenfalls nicht, da mir die Noteseingebaute automatische Versionsverwaltung zu unflexibel ist.

Ich habe eine eigene Versionsverwaltung eingebaut, die auch mit Entwurfstatus, Promote, Demote usw. zurechtkommt. Die "Response"-Funktionalität wird nur zur einfachen Anzeige zusammengehöriger Dokumente genutzt.

Karsten
Titel: Re: Antwortdokumente (Responsedocuments)
Beitrag von: Glombi am 22.08.06 - 10:12:22
Wenn Du mit einer Maske arbeitest, dann darf aber auch niemand eine Antwort bearbeiten und speichern. Das muss programmtechnisch sichergestellt sein. Ansonsten wird nämlich die Antwort flugs wieder zum Hauptdokument (so wie bei einem Replizierkonflikt).

Verhindern kann man das bspw., wenn in den Maskeneigenschaften eine MANUELLE Versionshistorie eingestellt ist. Dann braucht man auch kein $VersionOpt.

Andreas
Titel: Re: Antwortdokumente (Responsedocuments)
Beitrag von: kdreier am 22.08.06 - 10:20:02
Das ist richtig.
grundsätzlich dürfen keine bereits gespeicherten Dokumente bearbeitet werden, es sei denn, sie sind noch im Entwurfsstatus. Dann ändert ein einfaches Speichern den Status  allerdings nicht.
Um einen Entwurf gültig zu schalten muß ein "Promote" ausgeführt werden. Dann wird aus dem bisherigen Antwortdokument das neue Hauptdokument mit dem gesamten Versionstrack als Antworten.

Abgefangen wird das Editieren in den Events "QueryOpen" und "QueryModeChange" abhängig vom Dokumentstatus.

Karsten