Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Eve am 26.02.07 - 14:25:10

Titel: Fehler bei @DBLookup
Beitrag 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 :-:
Titel: Re: Fehler bei @DBLookup
Beitrag von: koehlerbv am 26.02.07 - 14:27:54
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
Titel: Re: Fehler bei @DBLookup
Beitrag von: Eve am 26.02.07 - 14:33:18
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.
Titel: Re: Fehler bei @DBLookup
Beitrag von: Eve am 26.02.07 - 14:43:23
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
Titel: Re: Fehler bei @DBLookup
Beitrag von: m3 am 26.02.07 - 14:50:42
Windows -> Linux?
Titel: Re: Fehler bei @DBLookup
Beitrag von: Eve am 26.02.07 - 14:55:08
nein, von einem VMWare-Server mit Windows 2003 Server auf einen neuen VMWare Server, auch mit Windows 2003 Server.
Titel: Re: Fehler bei @DBLookup
Beitrag von: koehlerbv am 26.02.07 - 15:06:53
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
Titel: Re: Fehler bei @DBLookup
Beitrag von: Eve am 26.02.07 - 15:10:28
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  :-:
Titel: Re: Fehler bei @DBLookup
Beitrag von: koehlerbv am 26.02.07 - 15:14:51
Und wo und wie berechnest Du "server"?
Titel: Re: Fehler bei @DBLookup
Beitrag von: Eve am 26.02.07 - 15:18:35
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...
Titel: Re: Fehler bei @DBLookup
Beitrag von: koehlerbv am 26.02.07 - 15:20:57
Auf gemeinsame Felder kannst Du in der aus Agents nicht zugreifen, die kann man nur in Masken einbinden.

Bernhard
Titel: Re: Fehler bei @DBLookup
Beitrag von: Eve am 26.02.07 - 15:22:25
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.
Titel: Re: Fehler bei @DBLookup
Beitrag von: m3 am 26.02.07 - 15:28:25
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?
Titel: Re: Fehler bei @DBLookup
Beitrag von: Eve am 26.02.07 - 15:35:12
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... ??? ???
Titel: Re: Fehler bei @DBLookup
Beitrag von: m3 am 26.02.07 - 15:41:19
Gehts, wenn der Feldname keinen Umlaut im Namen hat?
Titel: Re: Fehler bei @DBLookup
Beitrag von: koehlerbv am 26.02.07 - 15:43:19
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
Titel: Re: Fehler bei @DBLookup
Beitrag von: Eve am 26.02.07 - 15:47:05
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!
Titel: Re: Fehler bei @DBLookup
Beitrag von: Tode am 26.02.07 - 18:49:12
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