Autor Thema: computewithform - "debuggen"!?  (Gelesen 7090 mal)

Offline schneie

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Männlich
computewithform - "debuggen"!?
« am: 09.12.08 - 08:43:00 »
Hi,
hab jetzt zwei Tage das Forum bezüglich "computewithform" durchforstet, aber keine Lösung bzw. Hilfe finden können...  :'(

(Notes Server und Client 7.02)

Also ich habe Haupt- und Antwortdokumente. In den Hauptdokumenten gibt es ein berechnetes Feld (Text) 'Status', das sich aus einem Feld (Text) in den jeweiligen Antwortdokumenten berechnen soll.
Dazu werden die Werte der Antwortdokumente bei Änderung in "versteckte" Felder im Hauptdokument übertragen => das funktioniert perfekt.
Mein Problem:

Ich bekomme das berechnete Feld im Hauptdokument nicht aktualisiert. Öffne ich das entsprechende Dokument funktioniert es wie es soll. Ich möchte aber gerne das Dokument bzw. das Feld 'Status' im Backend bei Änderung eines Antwortdokumentes über computewithform automatisch aktualisieren.

Hab dazu ein Script geschrieben, das auch alles wie gewünscht ausführt, bis auf die Neu-Berechnung des berechneten Feldes...

Code
....
Dim docB As NotesDocument
Set docB = db.GetDocumentByUNID(docA.ParentDocumentUNID)
Call docB.ComputeWithForm(True,False)
Call docB.Save(True,True)

Ich Forum liest man immer wieder dass computewithform Fehler verursacht, aber kann man die Funktionsweise auch irgendwie debuggen? Denn was mich etwas iritiert ist, dass wenn ich das Script im Debugger verfolge, ist nichts zu erkennen.

Gibt es mittlerweile vielleicht eine alternative zu computewithform oder @Command([ToolsRefreshSelectedDocs]) bzw. gibts es vielleicht Anhaltspunkte an was computewithform scheitert?

Danke und Gruß
MF
VG Markus

- Erfahrung ist dass was man glaubt zu besitzen bevor man neues Wissen erwirbt! - (H. Lesch)

Driri

  • Gast
Re: computewithform - "debuggen"!?
« Antwort #1 am: 09.12.08 - 08:44:59 »
Warum berechnest Du das Feld nicht einfach immer neu, wenn ein Wert aus einem Antwortdokument übergeben wird ?

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: computewithform - "debuggen"!?
« Antwort #2 am: 09.12.08 - 08:46:32 »
berechnet wird halt nur, wenn das Dokument 'refresht' wird. Und das passiert nicht, wenn es im Backend schlummert. Du musst das Feld dann explizit setzen.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline schneie

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Männlich
Re: computewithform - "debuggen"!?
« Antwort #3 am: 09.12.08 - 08:48:29 »
@Dau-in: Ich dachte genau das übernimmt doch computewithform!?

@Driri: Vielleicht seh ich den Wald vor lauter bäumen nicht mehr, aber wie meinst du dass?
VG Markus

- Erfahrung ist dass was man glaubt zu besitzen bevor man neues Wissen erwirbt! - (H. Lesch)

Driri

  • Gast
Re: computewithform - "debuggen"!?
« Antwort #4 am: 09.12.08 - 08:57:58 »
Ich gehe davon aus, daß das ein "Berechnet zur Anzeige"-Feld ist. Dazu solltest Du dir diesen Artikel mal durchlesen :

http://www.dominopower.com/issues/issue200812/00002287001.html


Du änderst ja das Hauptdokument sowieso, wenn sich in den Antwortdokumenten ein Wert ändert. In dem Zuge könntest Du doch einfach das Feld neu berechnen. Dafür sollte es dann allerdings vom Typ "Berechnet" sein.

Offline schneie

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Männlich
Re: computewithform - "debuggen"!?
« Antwort #5 am: 09.12.08 - 09:00:19 »
Nein das Feld ist ja bereits vom Typ "Berechnet".
Wie kann ich denn die Neu-Berechnung ohne computewithform im Backend anstoßen?
VG Markus

- Erfahrung ist dass was man glaubt zu besitzen bevor man neues Wissen erwirbt! - (H. Lesch)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: computewithform - "debuggen"!?
« Antwort #6 am: 09.12.08 - 09:01:35 »
@Dau-in: Ich dachte genau das übernimmt doch computewithform!?


Validates a document by executing the default value, translation, and validation formulas, if any are defined in the document form.

Da machst du wirtklich alles einmal durch, und wenn da auf einen Wert zugegriffen wird, der nur im Frontend vorhanden ist, kanllt es. Wenn es sich nur um ein Feld handelt, würde ich das immer explizit setzen und gut ist.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: computewithform - "debuggen"!?
« Antwort #7 am: 09.12.08 - 09:02:34 »
Nein das Feld ist ja bereits vom Typ "Berechnet".
Wie kann ich denn die Neu-Berechnung ohne computewithform im Backend anstoßen?

Gar nicht.
Deshalb ja explizit setzen.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline schneie

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Männlich
Re: computewithform - "debuggen"!?
« Antwort #8 am: 09.12.08 - 09:40:30 »
Sorry aber das Hilft mir nicht wirklich weiter bzw. ist das keine Lösung des Problems.
Die entsprechenden Felder haben auch nicht mit 'Berechnet zur Anzeige' zu tun.
Ich hätte gerne eine Möglichkeit, z.B. aus dem Queryclose des Antwortdokumentes automatisch ein 'Refresh' des Hauptdokumentes durchzuführen, oder zumindest das Feld Status neu berechnen zu lassen und dann speichern. Ich war der Meinung, dass dies über computewithform angestoßen würde!?
Wenn ich das Feld über die Hilfe von Herrn 'Manuell' setzen würde, wäre das ganze nicht sauber und sehr umständlich (=> hängt noch ein bisschen was hintendran...).
Ein [ToolsRefreshAllDocs] funktioniert ja auch.
VG Markus

- Erfahrung ist dass was man glaubt zu besitzen bevor man neues Wissen erwirbt! - (H. Lesch)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: computewithform - "debuggen"!?
« Antwort #9 am: 09.12.08 - 09:50:21 »
Wenn ich das Feld über die Hilfe von Herrn 'Manuell' setzen würde, wäre das ganze nicht sauber und sehr umständlich (=> hängt noch ein bisschen was hintendran...).


Was hängt da noch dran?
deine Aufgabenstellung:
In den Hauptdokumenten gibt es ein berechnetes Feld (Text) 'Status', das sich aus einem Feld (Text) in den jeweiligen Antwortdokumenten berechnen soll.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: computewithform - "debuggen"!?
« Antwort #10 am: 09.12.08 - 09:54:32 »
Es gibt einige Funktionen, die von ComputeWithForm nicht ausgeführt werden (@dbxxxxxx zum Beispiel).

Berechne das Feld explizit und vergiss in diesem Zusammenhang ComputeWithForm.

Bernhard

Offline schneie

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Männlich
Re: computewithform - "debuggen"!?
« Antwort #11 am: 09.12.08 - 09:56:00 »
(Theoretisch) => 50 Antwort-Dokumente => 50 verschiedene (einzelene) Felder die zur berechung beitragen.
Die liegen aber ja KORREKT im Hauptdokument und das Feld Status bräuchte "nur" seine Wert zu aktualisieren...

So einfach und doch so schwer  ;)
:-:
 
VG Markus

- Erfahrung ist dass was man glaubt zu besitzen bevor man neues Wissen erwirbt! - (H. Lesch)

Offline schneie

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Männlich
Re: computewithform - "debuggen"!?
« Antwort #12 am: 09.12.08 - 09:57:38 »
das steht in dem berechneten feld:

Code
@Unique(@Trim(ChargebackStatus:ControllingStatus:DatenserviceStatus:HausmeistereiStatus:InformatikStatus:InstitusserviceStatus:....))
VG Markus

- Erfahrung ist dass was man glaubt zu besitzen bevor man neues Wissen erwirbt! - (H. Lesch)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: computewithform - "debuggen"!?
« Antwort #13 am: 09.12.08 - 10:08:20 »
dann schmeiss alles aus der Maske, was im Backend nicht geht.
Oder leg dir eine 2. Maske an, die du zum Berechnen hernimmst und in die du dann aber alles reinpackst, was berechnet werden muss.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Hardcore-Hoschie

  • Frischling
  • *
  • Beiträge: 16
  • Geschlecht: Männlich
Re: computewithform - "debuggen"!?
« Antwort #14 am: 09.12.08 - 12:27:20 »
Hi,

versuch mal das betroffene Feld vor dem ComputeWithForm aus dem zu berechnenden Dokument rauszuschmeißen (z.B. mittels RemoveItem)...

Offline schneie

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Männlich
Re: computewithform - "debuggen"!?
« Antwort #15 am: 09.12.08 - 12:51:33 »
Ich versteh nicht ganz was diese Aktion bewirken soll: Wenn ich das entsprechende Feld lösche, dann ist es nach dem Speichern auch nicht mehr vorhanden...???
VG Markus

- Erfahrung ist dass was man glaubt zu besitzen bevor man neues Wissen erwirbt! - (H. Lesch)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: computewithform - "debuggen"!?
« Antwort #16 am: 09.12.08 - 12:56:33 »
Ich versteh nicht ganz was diese Aktion bewirken soll: Wenn ich das entsprechende Feld lösche, dann ist es nach dem Speichern auch nicht mehr vorhanden...???

Validates a document by executing the default value, translation, and validation formulas, if any are defined in the document form.

When you create a new document, however, no form item exists in the back-end. To avoid having ComputeWithForm fall back to the default form, put a Form field on your form when you create it. That way, you start with something in the back-end, and you get the expected results from your new document. Otherwise, you can get results from fields that exist only in the default form, but not the document you create.
Hast du es ausprobiert?
Mit einer Maske, die keinen Fehler wirft?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Hardcore-Hoschie

  • Frischling
  • *
  • Beiträge: 16
  • Geschlecht: Männlich
Re: computewithform - "debuggen"!?
« Antwort #17 am: 09.12.08 - 13:00:34 »
Ich versteh nicht ganz was diese Aktion bewirken soll: Wenn ich das entsprechende Feld lösche, dann ist es nach dem Speichern auch nicht mehr vorhanden...???

Ich habe die Erfahrung gemacht, dass ComputeWithForm Felder (häufig) nur dann berechnet, wenn die (noch) nicht vorhanden sind.
Wenn Du das Feld aus dem Dokument rausschmeißt und anschließend ein ComputeWithForm 'drüber jagst, dann wird das Feld dabei neu berechnet (ist ja in der entsprechenden Maske definiert) und ist somit wieder im Dokument vorhanden - zumindest, wenn das ComputeWithForm sauber gelaufen ist...

Offline schneie

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Männlich
Re: computewithform - "debuggen"!?
« Antwort #18 am: 09.12.08 - 13:06:21 »
He das mit dem Feld löschen vor dem computewithform, ruft einen sehr interessanten Effekt hervor: In einer Ansicht ist die entsprechende zeile (in der das Feld Status angezeigt werden soll) leer und wenn ich mir die Eigenschaften des Dokumentes ansehe gibt es auch kein Feld Status.
Öffne ich aber das Dokument ist das Feld Status vorhanden und korrekt berechnet!?
Speichere ich nun das Dokuemnt wieder passt es!

Verrückt, oder?
VG Markus

- Erfahrung ist dass was man glaubt zu besitzen bevor man neues Wissen erwirbt! - (H. Lesch)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: computewithform - "debuggen"!?
« Antwort #19 am: 09.12.08 - 13:13:04 »
Öffne ich aber das Dokument ist das Feld Status vorhanden und korrekt berechnet!?
Speichere ich nun das Dokuemnt wieder passt es!


sorry, aber das tut doch genau das, was es soll:
In der Maske ist ein berechnetes Feld enthalten, das beim Öffnen des Dokumentes berechnet wird. Wenn es noch kein Item mit diesem Namen gibt, wird beim Speichern des Frontenddokumentes ein entsprechendes Item im Backend erzeugt.

Was ist daran verrückt?
Oder verstehe ich deine Ausssage verkehrt?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz