Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: TomLudwig am 19.02.07 - 09:27:24
-
Guten Morgen zusammen,
ich muss ein Dokument auf Basis einer Maske per Script im Hintergrund erstellen.
Nun sind einige Felder vom Typ "Berechnet beim anlegen" in der Maske hinterlegt.
In der Hilfe steht, dass diese Felder nur einmal berechnet werden, wenn der User ein Dokument erstellt. Gilt das auch für Dokumente die im Hintergrund erstellt werden? Oder werden die Felder erst dann berechnet, wenn der User (oder irgendein anderer User) das Dokument das erste mal öffnet und neu abspeichert?
Danke für eure Hilfe!
-
Ich denke mal, das gilt auch für im Hintergrund erstellte Docs.
-
Ich bin mir eben nicht sicher, da ein Dokument, das im Hintergrund erstellt wird diese Felder eventuell noch gar nicht beinhaltet.
Über ComputeWithForm kann ich die Felder berechnen lassen. Führt diese Berechnung dann der User aus, der die Dokumente im Hintergrund erstellt?
Und was passiert, wenn die Felder vom Typ "berechnet beim anlegen" sich auf weitere Felder beziehen, die noch gar nicht gefüllt sind? ComputeWithForm wird einen Fehler bringen. Aber werden die Felder dann erneut berechnet, wenn das Dokument das erste mal im FrontEnd abgespeichert wird?
-
Ich würde das mal mit einer Mini-DB austesten. Die Notes-Bible sagt auch nix dazu....
-
Schade... dann eben Try and Error.
Aber zuverlässig ist das auch nicht :(
-
Wenn Du im Backend einen Feldwert setzt, egal wie oder wann, dann wird der durch ein Feld "berechnet beim Anlegen" nicht mehr beeinflusst. Ist das Feld nicht vorhanden, wird es der Formel gemäß angezeigt und dementsprechend auch mit gespeichert.
Gruß
Otto
-
Wenn ein Dokument im Backend erzeugt wird, gilt dies im Fornt end nicht mehr als neu - auch, wenn es bis dato nicht gespeichert wurde!
Ergo: Hast Du in der Maske, mit der Du das neue Dokument dann öffnest, ein cwc-Feld, dann wird dies "beim ersten Mal" (was es ja schon nicht mehr ist) NICHT mehr angefasst - Du musst es also auch gleich bei der Erzeugung im Backend mit belegen.
Bernhard
-
Wenn ein Dokument im Backend erzeugt wird, gilt dies im Fornt end nicht mehr als neu - auch, wenn es bis dato nicht gespeichert wurde!
ACK
Ergo: Hast Du in der Maske, mit der Du das neue Dokument dann öffnest, ein cwc-Feld, dann wird dies "beim ersten Mal" (was es ja schon nicht mehr ist) NICHT mehr angefasst - Du musst es also auch gleich bei der Erzeugung im Backend mit belegen.
Bernhard
'berechnet beim Anlegen' bedeutet IMHO:
wenn's Feld angelegt wird.
Ergo: änderst Du das Feld im Backend, wird's auch so angezeigt, wird's im Backend gelöscht, wird's beim nächsten Öffnen im Frontend eben neu berechnet.
Gruß
Otto
-
Ergo: änderst Du das Feld im Backend, wird's auch so angezeigt, wird's im Backend gelöscht, wird's beim nächsten Öffnen im Frontend eben neu berechnet.
Nö. Du verwechselst mit dem "Default value". cwc-Felder werden wirklich nur beim Erstellen eines Dokuments berechnet, danach niemals wieder.
Bernhard
-
Bernhard, das kommt zwar selten vor, aber ich glaube auch, hier liegst Du ausnahmsweise daneben.
Wenn Du im Backend einen Feldwert setzt, egal wie oder wann, dann wird der durch ein Feld "berechnet beim Anlegen" nicht mehr beeinflusst. Ist das Feld nicht vorhanden, wird es der Formel gemäß angezeigt und dementsprechend auch mit gespeichert.
Gruß
Otto
Da hat Otto vollkommen recht.
Öffne irgend ein vorhandenes Dokument mit einer Maske, die nur ein cwc Feld enthält, welches es vorher in diesem Dokument noch nicht gibt. Schreib @Text(@Now) rein.
Da es das Feld noch nicht gibt, wird es beim Öffnen und Speichern des (bereits bestehenden) Dokuments neu angelegt und berechnet.
Gruß,
Uwe
-
Ist das heute nicht mein Tag? Ich bitte auf jeden Fall alle um Entschuldigen für die voreiligen Postings - ich habe mich ggf. wirklich zu schnell von bestimmten Dingen verabschiedet und mache sie nicht mehr (cwc fields verwende ich generell nur, wenn ich sie dann auch beim "composen" selber belege. Das kann aber keine Entschuldigung sein für vorschnelle Postings sein, die Allgemeingültigkeit vorgaukeln!).
Ich werde auch noch ein paar Tests machen und die Resultate dann veröffentlichen.
Bernhard
-
Uwe hat natürlich vollkommen Recht, und ich habe mir damit (wenn ich richtig zähle ...) heute drei "Fehlschüsse" erlaubt, um die ich herzlichst um Entschuldigung bitte!
"Computed when composed" bezieht sich tasächlich auf den Zeitpunkt, wenn ein Feld (Frontend!) erstmals dort auftaucht - ob das Dokument da schon lange exstiert oder nicht, ist vollkommen egal. Das hat damit irgendwie auch eine Gemeinsamkeit mit dem "Default value" der field properties ...
Es git da aber auch einige Nebenwirkungen (zum Beispiel: cwd-Feld nach Erstellung gelöscht, wird bei erneutem Aufruf auch im ReadMode neu berechnet, aber ohne explizite Anweisung nicht wieder gespeichert). Aber davon lasse ich heute die Finger.
Ich bin wohl urlaubsreif. Ab dem 15. März bin ich in der Wachau :)
Bernhard