AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
16.10.19 - 18:41:19
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 9
| |-+  ND9: Entwicklung (Moderatoren: Axel, eknori, Thomas Schulte, koehlerbv, m3)
| | |-+  Kurios: Erster DBLookup auf persönliches Adressbuch gibt keine Daten
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Kurios: Erster DBLookup auf persönliches Adressbuch gibt keine Daten  (Gelesen 184 mal)
PromITheus
Junior Mitglied
**
Offline Offline

Beiträge: 62


« am: 07.10.19 - 09:48:57 »

Hallo zusammen,

wurde der Notesclient neu gestartet bringt ein @DBLookup auf das lokale names.nsf beim ersten Ausführen den Fehler:

FEHLER: Eintrag im Index nicht gefunden, oder der Index ist für die Ansicht nicht aufgebaut

Beim zweiten und weiteren Ausführen liefert er die gewünschten Daten. Sobald der Client neu gestartet wird, tritt der Fehler wieder einmal auf!


Details:
Der Benutzer drückt einen Button in einem Dokument. Per Agent öffnet sich zunächst eine @Picklist die Ansicht "People" aus dem names.nsf.
Der Benutzer wählt eine Person aus. Anschließend werden verschiedene Daten der ausgewählten Person per DBLookups abgefragt und in ein Dokument eingetragen.


Ausschnitte des Codes:
REM {Gewünschte Person auswählen};
_person := @PickList([Custom] : [Single];"":"names.nsf";"People";"Person auswählen";"Bitte wählen Sie die Person aus:";6);

REM {Die Daten auslesen};
_vorname := @DbLookup("Notes":"";"" : "names.nsf";"People";_person;"FirstName");
_nachname := @DbLookup("";"" : "names.nsf";"People";_person;"LastName");
_tel := @DbLookup("";"" : "names.nsf";"People";_person;"OfficePhoneNumber");
_mobil := @DbLookup("";"" : "names.nsf";"People";_person;"CellPhoneNumber");
_mail := @DbLookup("";"" : "names.nsf";"People";_person;"MailAddress");
_firma := @DbLookup("";"" : "names.nsf";"People";_person;"CompanyName");
_beruf := @DbLookup("";"" : "names.nsf";"People";_person;"JobTitle");
_dokid := @DbLookup("";"" : "names.nsf";"People";_person;1;[ReturnDocumentUniqueID] );

REM {Textstring zusammensetzen};
_daten := "##cVorname#" + _vorname + "||" +_
+ "##cNachname#" + _nachname + "||" +_
+ "##cName#" + _nachname +", " + _vorname  + "||" +_
+ "##cTel#" + _tel + "||" +_
+ "##cTelweitere#" + _mobil + "||" +_
+  "##cMail#" + _mail + "||" + _
+  "##cUnternehmen#" + _firma + "||" + _
+  "##cBemerkung#" + _beruf + "||"  + _
+  "##cDokID#" + @Text(_dokid) + "||";

FIELD cPersonDatenPAdress := _daten;

In das Feld "cPersonDatenPAdress" wird die Fehlermeldung geschrieben: "FEHLER: Eintrag im Index nicht gefunden, oder der Index ist für die Ansicht nicht aufgebaut"
Gespeichert

Gruß Marcel
Ralf_B
Junior Mitglied
**
Offline Offline

Geschlecht: Männlich
Beiträge: 58


« Antworten #1 am: 07.10.19 - 12:07:23 »

Erweitere mal die DBLookup's um den Parameter "NoCache".
Ev. hilft das.
Gespeichert
PromITheus
Junior Mitglied
**
Offline Offline

Beiträge: 62


« Antworten #2 am: 07.10.19 - 12:32:02 »

Ich habe jeden einzelnen DBLookup jetzt mit "Notes":"NoCache" versehen.
Leider keine Änderung.

Beispiel:
_vorname := @DbLookup("Notes":"NoCache";"" : "names.nsf";"People";_person;"FirstName");
Gespeichert

Gruß Marcel
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2617



« Antworten #3 am: 07.10.19 - 14:48:57 »

Der Fehler könnte theoretisch auch in der Picklist stecken. Ich würde nach Setzen von _person das mal ausgeben lassen. Ist _person richtig gefüllt, steckt das Problem in den nachfolgenden Lookups. Ist _person falsch gefüllt - z.B. leer - ist die Fehlermeldung der Lookups korrekt und Du kannst Dich auf die Picklist konzentrieren
Gespeichert
PromITheus
Junior Mitglied
**
Offline Offline

Beiträge: 62


« Antworten #4 am: 07.10.19 - 15:01:18 »

In der Richtung war ich schon unterwegs. Der Prompt von _person nach dem Picklist gibt immer die korrekte Person (einen Wert) zurück.

Der Fehler tritt also immer erst mit dem ersten DBLookup auf.

Ich habe bereits einen weiteren Prompt nach dem ersten DBLookup eingebaut.
Wenn der Fehler auftritt kann ich mir den Rückgabewert vom DBLookup aber nicht per Prompt anzeigen lassen. Der Prompt kommt dann erst gar nicht.

Gespeichert

Gruß Marcel
ghostmw
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 199



WWW
« Antworten #5 am: 07.10.19 - 15:11:55 »

... da der Fehler kein Text, sondern ein anderer Datentyp ist, solltest du  @Text (FELD) ausgeben lassen ... dann klappt's ;-)
Gespeichert

Grüße
Marco Weller
Lotus Domino / Lotus Notes seit 1996 (ab 4.5x)
Ralf_B
Junior Mitglied
**
Offline Offline

Geschlecht: Männlich
Beiträge: 58


« Antworten #6 am: 07.10.19 - 15:35:44 »

Ich hab das mal nachvollzogen.

Entweder die Picklist ändern :
_person := @PickList([Custom] : [Single];"":"names.nsf";"($PeopleGroupsFlat)";"Person auswählen";"Bitte wählen Sie die Person aus:";2);

Oder den Suchnamen aus der Picklist anpassen.
Bei Deinem Code wird nach ~Nachname. Vorname~ gesucht, es sollte aber ~Nachmane , Vorname~ sein (Leerstelle).
Gespeichert
Ralf_B
Junior Mitglied
**
Offline Offline

Geschlecht: Männlich
Beiträge: 58


« Antworten #7 am: 07.10.19 - 15:44:46 »

REM {Gewünschte Person auswählen};
_person := @PickList([Custom] : [Single];"":"names.nsf";"($PeopleGroupsFlat)";"Person auswählen";"Bitte wählen Sie die Person aus:";2);
@Prompt([Ok];"_person"; @Text(_person));

REM {Die Daten auslesen};
_vorname := @DbLookup("":"NoCache";"" : "names.nsf";"$PeopleGroupsFlat";_person;"FirstName");
_nachname := @DbLookup("";"" : "names.nsf";"$PeopleGroupsFlat";_person;"LastName");
_tel := @DbLookup("";"" : "names.nsf";"$PeopleGroupsFlat";_person;"OfficePhoneNumber");
_mobil := @DbLookup("";"" : "names.nsf";"$PeopleGroupsFlat";_person;"CellPhoneNumber");
_mail := @DbLookup("";"" : "names.nsf";"$PeopleGroupsFlat";_person;"MailAddress");
_firma := @DbLookup("";"" : "names.nsf";"$PeopleGroupsFlat";_person;"CompanyName");
_beruf := @DbLookup("";"" : "names.nsf";"$PeopleGroupsFlat";_person;"JobTitle");
_dokid := @DbLookup("";"" : "names.nsf";"$PeopleGroupsFlat";_person;1;[ReturnDocumentUniqueID] );

@Prompt([Ok];"_vorname"; @Text(_vorname));
@Prompt([Ok];"_nachname"; @Text(_nachname));
@Prompt([Ok];"_tel"; @Text(_tel));
@Prompt([Ok];"_mobil"; @Text(_mobil));
@Prompt([Ok];"_mail"; @Text(_mail));
@Prompt([Ok];"_firma"; @Text(_firma));
@Prompt([Ok];"_beruf"; @Text(_beruf));
@Prompt([Ok];"_dokid"; @Text(_dokid));


REM {Textstring zusammensetzen};
_daten := "##cVorname#" + _vorname + "||" +_
+ "##cNachname#" + _nachname + "||" +_
+ "##cName#" + _nachname +", " + _vorname  + "||" +_
+ "##cTel#" + _tel + "||" +_
+ "##cTelweitere#" + _mobil + "||" +_
+  "##cMail#" + _mail + "||" + _
+  "##cUnternehmen#" + _firma + "||" + _
+  "##cBemerkung#" + _beruf + "||"  + _
+  "##cDokID#" + @Text(_dokid) + "||";

FIELD cPersonDatenPAdress := _daten;
@True
Gespeichert
PromITheus
Junior Mitglied
**
Offline Offline

Beiträge: 62


« Antworten #8 am: 07.10.19 - 17:03:14 »

Du hast Recht Ralf_B, der Rückgabewert der Picklist war der Auslöser!
Trotzdem ist es für mich kurios, das Notes die Leerzeichen, mal so, mal so im gleichen Code interpretiert.

Ich habe nun verschiedene Varianten ausprobiert. Die Ansicht People ist für das Auswahlfenster mein Favorit (Optik und angezeigte Daten). Sie allein zu verwenden hat bei meinen Testläufen, trotz Übergabe anderer Spaltenwerte, zu Problemen geführt.

Ich habe nun eine Kombination aus der Ansicht "People" (für Auswahlfenster) und "($PeopleGroupsFlat)" (für DBLookup) verwendet. Das scheint zuverlässig die richtigen Ergebnisse zu liefern. Code, falls es interessiert, siehe unten.

Danke für eure Mithilfe, dieses Forum ist wie immer Gold wert!  Smiley


REM {Gewünschte Person auswählen};
_person := @PickList([Custom] : [Single];"":"names.nsf";"People";"Person auswählen";"Bitte wählen Sie die Person aus:";3);

REM {Die Daten auslesen};
_vorname := @DbLookup("Notes":"NoCache";"" : "names.nsf";"($PeopleGroupsFlat)";_person;"FirstName");
_nachname := @DbLookup("Notes":"NoCache";"" : "names.nsf";"($PeopleGroupsFlat)";_person;"LastName");
_tel := @DbLookup("Notes":"NoCache";"" : "names.nsf";"($PeopleGroupsFlat)";_person;"OfficePhoneNumber");
_mobil := @DbLookup("Notes":"NoCache";"" : "names.nsf";"($PeopleGroupsFlat)";_person;"CellPhoneNumber");
_mail := @DbLookup("Notes":"NoCache";"" : "names.nsf";"($PeopleGroupsFlat)";_person;"MailAddress");
_firma := @DbLookup("Notes":"NoCache";"" : "names.nsf";"($PeopleGroupsFlat)";_person;"CompanyName");
_beruf := @DbLookup("Notes":"NoCache";"" : "names.nsf";"($PeopleGroupsFlat)";_person;"JobTitle");
_dokid := @DbLookup("Notes":"NoCache";"" : "names.nsf";"($PeopleGroupsFlat)";_person;1;[ReturnDocumentUniqueID] );

REM {Textstring zusammensetzen};
_daten := "##cVorname#" + _vorname + "||" +_
+ "##cNachname#" + _nachname + "||" +_
+ "##cName#" + _nachname +", " + _vorname  + "||" +_
+ "##cTel#" + _tel + "||" +_
+ "##cTelweitere#" + _mobil + "||" +_
+  "##cMail#" + _mail + "||" + _
+  "##cUnternehmen#" + _firma + "||" + _
+  "##cBemerkung#" + _beruf + "||"  + _
+  "##cDokID#" + @Text(_dokid) + "||";

FIELD cPersonDatenPAdress := _daten;
« Letzte Änderung: 07.10.19 - 17:04:47 von PromITheus » Gespeichert

Gruß Marcel
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: