Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: MadMetzger am 05.05.03 - 08:49:08

Titel: Nicht funktionierende Formel
Beitrag von: MadMetzger am 05.05.03 - 08:49:08
Ich habe hier eine Formel, die ein Feld in einem anderen Dokument ändern soll und dies aber nicht tut. Woran kann das liegen?

Formel:


rest:=@GetDocField(@DbLookup("":"NoCache";"";"(Restanpassung)";ANTPersNrTX;5 );"DATRestNO");
neu:=rest - ANTTageINT;


@SetDocField(@DbLookup("":"NoCache";"";"(Restanpassung)";ANTPersNrTX;5 );"DATRestNO"; neu   ) ;

@Command([FileSave]);
@Command([FileCloseWindow])
Titel: Re:Nicht funktionierende Formel
Beitrag von: Rob Green am 05.05.03 - 09:38:32
wo funktioniert es genau nicht..zerleg mal in Einzelteile...

erst die erste Zeile checken, wenns klappt, nächste Zeile ergänzen...

dann die zweite...

etc..
Titel: Re:Nicht funktionierende Formel
Beitrag von: MadMetzger am 05.05.03 - 10:18:10
wenn ich mir das ergebnis von getdocfield anschauen will mit prompt, dann bleibt das fenster leer.

Code:
rest:=@GetDocField...
@Prompt ( [OK] ; "Info" ; rest )

was mache ich falsch?
Titel: Re:Nicht funktionierende Formel
Beitrag von: Jörg P. am 05.05.03 - 10:30:32
Hi,

versuche noch Fehler bei DBLookup abzufangen:

@If(@IsError(DBLookup... ; "Fehler aufgetreten" ; DBLookup... )


Versuch nochmal folgendes:

@Prompt ( [OK] ; "Info" ; @Text(rest) )
Titel: Re:Nicht funktionierende Formel
Beitrag von: Rob Green am 05.05.03 - 10:36:53
(@DbLookup("":"NoCache";"";"(Restanpassung)";ANTPersNrTX;5)

was sein kann, daß ANTPersNrTX ein Feld ist und keine Variable. Wenn es das ist, dann muß es in Anführungszeichen gesetzt werden.

Die View muß natürlich 1:1 so heissen: "(Restanpassung)".

Die Spalte 5 sollte natürlich auch einen Wert enthalten. Kann ja sein, daß DbLookUp ein passendes Doc findet, nur der Wert in der 5. Spalte leer ist. Das vermute ich stark, weil sonst bei Dir der Fehler "Eintrag im Index nicht gefunden" kommen würde. Stattdessen ist der Prompt leer. ODER, es ist eine Zahl, wie es Harvey mit @text berücksichtigt hat bei der prompt Ausgabe

Titel: Re:Nicht funktionierende Formel
Beitrag von: MadMetzger am 05.05.03 - 10:42:13
Zitat
was sein kann, daß ANTPersNrTX ein Feld ist und keine Variable. Wenn es das ist, dann muß es in Anführungszeichen gesetzt werden.
Das war das Problem... Hab es in Anführungszeichen gesetzt und schon funktionierte es...
Danke!
Titel: Re:Nicht funktionierende Formel
Beitrag von: MadMetzger am 06.05.03 - 17:55:03
Klappt doch so nicht!

Habe "ANTPersNrTX" in Anführungszeichen gesetzt, hat nichts bewirkt. Der Ansichtsname ist richtig geschrieben, in der Spalte 5 befindet sich die UniqueID der Dokumente in denen geschrieben werden soll.

Ich versteh es einfach nicht. Vor allem hat es erst funktioniert...
Titel: Re:Nicht funktionierende Formel
Beitrag von: ata am 06.05.03 - 22:24:50
... nimm die DocID mit @Text() - vielleicht hilft das...

ata
Titel: Re:Nicht funktionierende Formel
Beitrag von: MadMetzger am 07.05.03 - 07:52:32
So steht sie in dem Feld drin.

Habe noch mal getestet, wenn ich nur den DbLookup mache, kommt Eintrag im Index nicht gefunden als Fehlermeldung.
Die Ansicht ist aber sortiert, ein passendes Dokument ist auch vorhanden.
Titel: Re:Nicht funktionierende Formel
Beitrag von: MadMetzger am 07.05.03 - 08:33:13
ANTPersNrTX in Anführungszeichen war falsch, jedoch bleibt das @Prompt leer, wenn ich mir GetDocField ausgeben lassen will. Wenn ich dabei @GetDocField mit @Text ausgeben lassen will, kommt eine Fehlermeldung, ohne bleibt der Prompt leer.
Titel: Re:Nicht funktionierende Formel
Beitrag von: Rob Green am 07.05.03 - 09:00:09
rofl...weißte was...schmeiß das Teil gezipped mal hier rein...entschlackt soweit um die Maske, um die es geht, die View und einige Testdocs. Irgendwas muß es sein.
Titel: Re:Nicht funktionierende Formel
Beitrag von: MadMetzger am 07.05.03 - 10:09:36
hier die Datenbank...

ich versteh nicht, warum es nicht funktioniert...

EDIT: Sorry!
In der Maske UrlaubsAntrag die Aktion Genehmigung durch Vorgesetzten.
Da sollte ein Feld in der Maske Stammdaten verändert werden.
Titel: Re:Nicht funktionierende Formel
Beitrag von: Rob Green am 07.05.03 - 10:39:59
ähem..wärest Du bitte so nett und sagst auch in welcher Form und in welchem Feld das Problem auftritt  ::)
Titel: Re:Nicht funktionierende Formel
Beitrag von: MadMetzger am 07.05.03 - 11:26:26
Sorry!
In der Maske UrlaubsAntrag die Aktion Genehmigung durch Vorgesetzten.
Da sollte ein Feld in der Maske Stammdaten verändert werden.
Titel: Re:Nicht funktionierende Formel
Beitrag von: Axel am 07.05.03 - 12:11:46
Hi,

ich hab' mal ein bisschen probiert:

Bei der TEST-Aktion im Urlaubsantrag wird der Resturlaub dann angezeigt wenn die Formel so aussieht:

@Prompt([OK];"TEST";@Text(@GetDocField(@Text(@DbLookup("":"NoCache";"";"(Restanpassung)";ANTPersNrTX;5 ));"DATResturlaubNO")))

Ändere deine Formel mal so ab, das bei @SetDocField und @GetDocField überall @Text vor dem @DbLookup steht.

Dann sollte es gehen.

Axel
 
Titel: Re:Nicht funktionierende Formel
Beitrag von: MadMetzger am 07.05.03 - 12:42:22
Hat es bei dir funktioniert?

Bei mir funktioniert es nämlich nicht... ich drehe gleich durch...

Woran kann es denn hapern?
Titel: Re:Nicht funktionierende Formel
Beitrag von: Axel am 07.05.03 - 12:48:36
Hi,

yoo, hat funktioniert. Ich hab mir die Test-Aktion vorgenommen.
Der Resturlaub wurde mir angezeigt.

Ich hab' allerdings mit 'nem 5er Client getestet, da mir kein 4.x mehr zur Verfügung steht. Sollte aber damit nichts zu tun haben.


Axel
Titel: Re:Nicht funktionierende Formel
Beitrag von: MadMetzger am 07.05.03 - 13:10:55
Habe sowohl als auch getestet, hat bei beiden nicht funktioniert.

An R4<=>R5-Probleme hatte ich gar nicht gedacht, da es in der Formelsprache ja keine oder kaum Unterschiede gibt...

Hast du dir mal die Aktion als Script-Variante angeschaut? Ist testweise in dem Urlaubsantrag drinnen, funktioniert aber nicht ganz. Das heißt der dann geöffnete Antrag ändert sich nicht, nur der Zugriff auf Stammdaten funktioniert. Kann man das nicht noch soweit anpassen, dass es damit geht? Bzw. was müßte man ändern oder einfügen?
Titel: Re:Nicht funktionierende Formel
Beitrag von: Axel am 07.05.03 - 13:27:36
Hi,

die Anpassungen sind abhängig davon, was sich ändern soll.

Eigentlich brauchst du nur die entsprechenen Felder mit Werten zu füllen, z.B. neu berechneter Resturlaub usw. und dann ein Refresh auslösen (aus Klasse NotesUIdocument).


Axel
 
Titel: Re:Nicht funktionierende Formel
Beitrag von: MadMetzger am 07.05.03 - 13:46:37
Also die Felder ändere ich im Backend, mit dem Objekt doc und speichere dieses.
Und dann nur uidoc.Refresh? Oder wie?

Andere Frage, wie schließt man in Script Fenster (analog FileCloseWindow)?
Titel: Re:Nicht funktionierende Formel
Beitrag von: Axel am 07.05.03 - 13:52:11
Hi,

Zitat
Also die Felder ändere ich im Backend, mit dem Objekt doc und speichere dieses.
Und dann nur uidoc.Refresh? Oder wie?

Genau so.

Zitat
Andere Frage, wie schließt man in Script Fenster (analog FileCloseWindow)?

Call uidoc.close

Axel
Titel: Re:Nicht funktionierende Formel
Beitrag von: MadMetzger am 07.05.03 - 13:58:26
klappt ja fast, nur merkt er sich nicht die Werte die ich im Backend geschrieben habe...

Wann muss ich den am optimalsten den Refresh auslösen?
Titel: Re:Nicht funktionierende Formel
Beitrag von: Axel am 07.05.03 - 14:17:29
Hi,

eigentlich nach dem du die Felder gefüllt hast und vor dem Speichern.

Axel
Titel: Re:Nicht funktionierende Formel
Beitrag von: MadMetzger am 15.05.03 - 17:45:52
Hab das ganze dann doch mit Script gelöst, das funktioniert auf jedenfall!

Danke nochmal für die Hilfe!