Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: TomLudwig am 19.02.07 - 09:27:24

Titel: Verhalten eines Felds "Berechnet beim anlegen"
Beitrag 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!

Titel: Re: Verhalten eines Felds "Berechnet beim anlegen"
Beitrag von: klaussal am 19.02.07 - 09:31:20
Ich denke mal, das gilt auch für im Hintergrund erstellte Docs.
Titel: Re: Verhalten eines Felds "Berechnet beim anlegen"
Beitrag von: TomLudwig am 19.02.07 - 09:33:35
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?

Titel: Re: Verhalten eines Felds "Berechnet beim anlegen"
Beitrag von: klaussal am 19.02.07 - 09:38:09
Ich würde das mal mit einer Mini-DB austesten. Die Notes-Bible sagt auch nix dazu....
Titel: Re: Verhalten eines Felds "Berechnet beim anlegen"
Beitrag von: TomLudwig am 19.02.07 - 09:39:07
Schade... dann eben Try and Error.
Aber zuverlässig ist das auch nicht :(
Titel: Re: Verhalten eines Felds "Berechnet beim anlegen"
Beitrag von: Otto am 19.02.07 - 09:50:30
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
Titel: Re: Verhalten eines Felds "Berechnet beim anlegen"
Beitrag von: koehlerbv am 19.02.07 - 17:03:33
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
Titel: Re: Verhalten eines Felds "Berechnet beim anlegen"
Beitrag von: Otto am 19.02.07 - 19:31:53
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
Zitat von: koehlerbv weiter
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
Titel: Re: Verhalten eines Felds "Berechnet beim anlegen"
Beitrag von: koehlerbv am 19.02.07 - 19:38:20
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
Titel: Re: Verhalten eines Felds "Berechnet beim anlegen"
Beitrag von: datenbanken24 am 19.02.07 - 22:42:50
Bernhard, das kommt zwar selten vor, aber ich glaube auch, hier liegst Du ausnahmsweise daneben.

Zitat
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
Titel: Re: Verhalten eines Felds "Berechnet beim anlegen"
Beitrag von: koehlerbv am 19.02.07 - 23:00:18
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
Titel: Re: Verhalten eines Felds "Berechnet beim anlegen"
Beitrag von: koehlerbv am 19.02.07 - 23:32:50
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