Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Eve am 26.02.07 - 14:25:10
-
Hallo Ihr,
ich bin neu hier und hoffe Ihr könnt mir helfen...
Habe folgendes Problem:
Ich habe in einem Agenten folgende Formel
Variable:= @DbLookup("" : "NoCache" ; server : "data\\sasd\\sasmemb.nsf"; "($Standorte3stellig)"; SasNameKürzel ; "SasPräfix") + @DbLookup("" : "NoCache" ; server : "data\\sasd\\sasmemb.nsf"; "($Standorte3stellig)"; SasNameKürzel ; "SasNameKürzel");
@SetField("SasNameKürzel"; Variable);
@SetField("StandortPerson"; SasNameKürzel);
SELECT @All);
SELECT @AllSELECT @All
Zurück bekomme ich immer den Fehler:
FEHLER: Eine Ansicht mit diesem Namen wurde in der angegebenen Datenbank nicht gefunden
Die Ansicht gibt es aber definitiv, ich habe auch schon den Index dieser DB gelöscht und neu erstellt (über die Datenbankeigenschaften), aber das nützt nichts.
Ich habe es auch schon ohne den zweiten @DBLookup versucht, gleiches Ergebnis.
Das Feld SasNameKürzel gibt es wirklich in beiden DB's, d. h. also dass der Agent auf eine andere DB zugreifen soll.
Ich bin mit meinem Latein am Ende, bin allerdings auch nicht sooooo fit, und ihr seid meine letzte Rettung...
Danke, Eve :-:
-
Geht der angegebene Pfad tatsächlich vom Data Directory ab? Es liest sich eher so, als sei das Data Directory eben das "data".
Die Pfadangabe muss immer relativ zum Data Directory angegeben werden.
Bernhard
-
hmmm, ich glaube ich verstehe die Frage nicht... An der Pfadangabe kann es eigentlich nicht liegen, die verwende ich so immer, auch in aktuell funktionierenden Formeln.
Unsere Struktur ist so dass DB's direkt unter 'data\sasd' liegen oder in Unterverzeichnissen.
Aber wie gesagt, die Pfadangabe ist immer 'data\sasd\....' und das funktioniert bis auf diesen Fall auch ohne Probleme.
-
noch ein Nachtrag, vielleicht hilft das ja.
Unser Notes-Server wurde vor einigen Wochen von Version 5 auf Version 7 gebracht, die bestehenden DB's wurden dabei auf den neuen Server kopiert.
Könnte es damit zusammenhängen?
Eve
-
Windows -> Linux?
-
nein, von einem VMWare-Server mit Windows 2003 Server auf einen neuen VMWare Server, auch mit Windows 2003 Server.
-
Was passiert, wenn Du den DB-Namen samt Pfad (natürlich mit einfachen Backslashes) im Datenbank-öffnen-Dialog Deines Clients für den entsprechenden Server direkt eingibst?
Bernhard
-
er öffnet die DB...
Und ich habe jetzt auch mal versucht diesen @DBLookup (ohne @Setfield) in der Maske direkt zu berechnen, das klappt auch ohne Probleme.
Nur im Agenten mag er nicht... Muss man das verstehen???? Habe auch extra nochmal in der Hilfe nachgeschaut, nicht dass man @DBLookup nicht in einem Agenten verwenden kann, aber das sollte funktionieren.
Immer noch :-:
-
Und wo und wie berechnest Du "server"?
-
Das ist ein gemeinsames Feld in der DB, in dem der Servername steht. Habe auch schon versucht das einfach mit "" anzugeben, da es ja der gleiche Server ist, aber das hat nichts an der Fehlermeldung geändert.
Könnte jetzt natürlich eine Aktualisierung über die DB laufen lassen, so dass das Feld gefüllt wird, und nur noch den Teil mit @Setfield über einen Agenten machen, aber das ist wirklich keine sehr elegante Lösung, die DB ist groß und es ist nicht die einzige...
-
Auf gemeinsame Felder kannst Du in der aus Agents nicht zugreifen, die kann man nur in Masken einbinden.
Bernhard
-
wie gesagt, hatte auch vermutet dass das eine mögliche Fehlerquelle sein könnte, aber mit "" statt "server" funktioniert es auch nicht, und zwar mit der gleichen Fehlermeldung.
-
Ein Agent? Unter welchem User läuft der denn? Darf der User, unter dem der Agent läuft, auf die andere DB und die View in der DB zugreifen?
-
Ich starte den Agenten von meinem Client aus und mit meiner ID, und ich habe auf allen DB's Managerrechte, daran kann es also nicht liegen.
Habe gerade festgestellt dass der @DBLookup aus dem Agenten, der dann in einem Feld in der Maske der DB ohne Probleme funktionierte, in einer anderen DB als Feld in einer Maske auch den Fehler zurückliefert dass es keine Ansicht in der DB gibt...
Ehrlich gesagt verstehe ich gerade garnichts mehr... ??? ???
-
Gehts, wenn der Feldname keinen Umlaut im Namen hat?
-
Irgendwas ist hier sowieso oberfaul: Agent als Feld ... ??
Weiters: Die angegebene Formel geht nie und nimmer durch den Designer - da sind insgesamt drei Fehler drin (Klammerfehler und insgessamt drei SELECT-Statements).
Bernhard
-
Hmm, das mit den Klammern und dreifachem @Select muss beim kopieren passiert sein, hier nochmal die komplette Formel im Agenten:
Variable:= @DbLookup("" : "NoCache" ; "" : "data\\sasd\\sasmemb.nsf"; "($Standorte3stellig)"; SasNameKürzel ; "SasPräfix");
Variable2:= Variable + SasNameKürzel;
@SetField("SasNameKürzel"; Variable2);
@SetField("StandortPerson"; SasNameKürzel);
SELECT @All
Ich habe natürlich keinen Agenten in ein Feld gepackt, ich habe den @DBLookup aus dem Agenten in ein Feld gepackt, und in der einen DB ging es, in der anderen wiederum nicht. Exakt die gleiche Formel! Und exakt die gleichen Feldeigenschaften!
-
nur mal so nebenbei: Die Formel, die hier steht, greift auf eine LOKALE Datenbank zurück, die sich innerhalb des Data- Verzeichnisses in einem Data- Verzeichnis befindet.
Ist Dein Client- Standardmässig installiert, dann sucht der also die Datenbank auf Deinem CLIENT
genau hier:
C:\Programme\Lotus\Notes\Data\data\sasd\sasmemb.nsf
Ich vermute mal einfach, dass Du die eine Datenbank als lokale Replik hast und die andere nicht...
Leerer Server + Leere Datenbank = aktuelle Datenbank auf aktuellem Server
Leerer Server + gefüllte Datenbank = Datenbank auf lokal...
@Subset( @DBName ; 1 ) + gefüllte Datenbank = Datenbank auf dem aktuellen Server...
Tode