Domino 9 und frühere Versionen > ND8: Entwicklung
Sichere Alternative für ComputeWithForm
Tode:
Natürlich wird das Dokument nicht gespeichert... Dafür rufst Du ja nach dem rdoc.ComputeWithForm ein rdoc.Save auf...
WENN die Ergebnisse nicht gespeichert werden, dann läuft das ComputeWithForm nicht durch... gründe habe ich Dir genannt, das Debugging des "Warum" ist allerdings ziemlich zeitaufwändig..
basile:
Hallo Tode,
natürlich wird erst beim doc.save gespeichert. Das ist klar. Das habe ich auch aufgerufen. das Problem ist nur, dass eben der Wert, der durch ComputeWithForm in das Feld rein soll, nicht drin ist. Daher ist meine Vermutung, dass das Ergebnis der Viewabfrage im Client zu lange dauert. Inzwischen ist das LotusScript, das ComputeWithForm aufgerufen hat schon weiter und hat das Dokument schon gespeichert (Multithreading). Das ist aber nur eine Vermutung von mir im Ergebnis kommt nix an und das ist ärgerlich.
viele Grüße und ein sonniges Wochenende
Udo
koehlerbv:
Udo, ein Timing-Problem ist das garantiert nicht. ComputeWithForm kann eben einige Dinge nicht und je nach Parameter wird sowas übergangen oder die ganze Veranstaltung mit Gemecker abgebrochen. ComputeWithForm taugt für garantiert simpelste Forms, sonst ist es Russisches Roulett.
Fazit: Solche Konstrukte für Arme und simpel Gestrickte nimmt man nicht, sondern behält den Prozess selbst in der Hand.
HTH,
Bernhard
Tode:
LotusScript ist nicht MultiThreading- Fähig und läuft erst weiter, wenn das ComputeWithForm durch ist.
Insofern sind Deine Vermutungen schlicht Humbug... Den Grund dafür, das die Felder nicht gefüllt sind, habe ich Dir schon genannt.
Falls mal jemand über diesen Thread läuft, der das WIRKLICH braucht (obwohl ich voll mit Bernhard übereinstimme: ComputeWithForm ist eine viel zu unsichere Sache, als dass man sich drauf verlassen kann), hier noch ein Tipp (und leider die einzig mir bekannte Art), wie man rausfindet, in welchem Feld das ComputeWithForm den Schluckauf kriegt:
Man baut ein temp- Feld in die Maske ein, berechnet, Formel: @Now. Dieses Feld verschiebt man so lange nach unten in der Maske, bis es nach dem ComputeWithForm NICHT einen aktuelleren Wert hat... Dann ist das Feld unmittelbar darüber das, was den Fehler verursacht...
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln