Domino 9 und frühere Versionen > ND7: Entwicklung
Fehler weil Dokument nicht gefunden wird.
Lancelot:
Hallo Leute,
ich habe ein Problem und weiß mir keinen Rat mehr und würde es am liebsten.....!
Wir habe einen DB, die einige Masken enthält.
Alle Masken sind mit Lese und Autorenfelder belegt.
Aus einer Maske muß bei Bedarf eine neue Maske per Knopf in der Maske aufgerufen werden, die
Werte aus der alten Maske übernimmt und auch Userdaten aus einer DB zieht, die alle Userdaten enthält.
Der Schlüssel dafür ist die Personalnummer.
Ich schreibe den Wert per "@Environment" in die Notes.ini.
Beim öffnen der anderen Maske hole ich mir aus der notes.ini die Personalnummer wieder und befülle die neue Maske
mit den Werte aus der Userdatenbank.
Das läuft bei einigen super, bei anderen habe ich das Problem, dass es von 10 mal nur 5 mal klappt.
50% gehen mir also verloren.
Es kommt die Meldung "ungültiges oder nicht vorhandenes Dokument"
Ich weiß leider nicht mehr wo und nach was ich suchen muß.
Die User haben die Notes.ini in Ihren Home- Laufwerken liegen.
Die Laufwerke dürfen von allen bearbeitet werden.
Die Variable wurde auch in allen Notes.ini's angelegt.
Hier den Entwikcklungscode des Knopfes.
@Environment("doc_num";"XXX");
FIELD fi_vorhanden := "Ja";
@Environment("doc_num";persnum);
FIELD pfaction := "Versendet";
@Command([FileSave]);
FIELD SaveOptions := "0";
@Command([FileCloseWindow]);
REM {Schleife nur das für die User eine optische Verarbeitung läuft};
n := 1;
@DoWhile(n := n + 1; n <= 10);
@PostedCommand([Compose];"UB")
Hier das LS beim öffnen der Maske:
@If (@IsNewDoc ; @Success ; @Return(0));
FIELD ansprech := @Name([Abbreviate];@UserName);
@SetField("doc_num";@Environment("doc_num"));
REM {FIELD doc_num := Auswahl};
@Command([ToolsRunMacro];"UB Dokument befüllen");
Hier der Code vom Agent wo in der letzten Zeile der Fehler kommt.
Dim Session As New NotesSession
Dim db As New NotesDatabase("segds004", "Schuladr")
Dim ws As New NotesUIWorkspace
Dim view As Notesview
Dim doc As NotesDocument
Dim olddoc As NotesUIDocument
'Setzten der KonfigDB Ansicht "PersNr" in der sich alle Dokumente befinden
Set view = db.GetView( "Nach persnr" )
'Ist Notwendig für die Front End Klassen die sich auf die geöffneten Dokumente beziehen
Set olddoc = ws.CurrentDocument
'Setzen des Zeiger auf das Dokuemnte mit dem Schlüßel "key"
key = olddoc.FieldGetText("doc_num")
Ich weiß es ist viel Text, aber ich hoffe einer von Euch Profis kennt eine Lösung.
Danke schon mal.
Glombi:
Kann es sein, dass der Agent nicht für alle sichtbar ist?
Die Meldung
"ungültiges oder nicht vorhandenes Dokument"
besagt bspw. dass ein nicht vorhandenes Designelement (Agent) aufgerufen wird.
Hast Du schon mal daran gedacht, den ganzen Button mit Formelsprache zu programmieren und auf das Script zu verzichten?
Seit Notes 6 gibts @UpdateFormulaContext, und damit kannst Du eine Menge machen. Bspw. ein neues Dokument erstellen und den Rest der Formel mit dem o.g. Befehl auf das neue Dokument anwenden.
Andreas
Lancelot:
Hallo Glombi,
erst mal danke für die schnelle Antwort.
Wie mache ich den Agenten den öffentlich sichtbar?
Er ist als "Gemeinsam" angelegt. Alle dürfen lesen und hören.
Die Option "Benutzer mit öffentlichem Zugrif dürfen den Agent sehen und ausführen" ist deaktiviert.
Zum umprogrammieren sei gesagt, die DB gibt es seit Version 4.5 und
da diese DB voller Workflow steckt und so mächtig geworden ist, möchte ich an den sogenannten Grundmauern nicht mehr rütteln.
Aber vielen Dank für den Tip mit @UpdateFormulaContext werde ich mir für die Zukunft auf jedenfall merken. ;-))
Lancelot:
Das mit dem Sichtbar machen hatte in meinen Augenm damit nichts zu tun.
Habe den Agent auf "öffentlichen Zugriff" aber es kommt immer noch bei einigen die Meldung
"ungültiges oder nciht vorhandenes Dokument".
Bitte um Hilfe, denn ich weiß mir beim besten Willen nicht mehr zu helfen.
Bin echt für jede Idee dankbar!
Mit verzweifelndem Grusse Lancelot
koehlerbv:
Mir ist bisher nicht klar geworden, an welcher Stelle der Fehler nun tatsächlich kommt.
Daher schiesse ich einfach mal so in die Luft: Diese Fehlermeldung könnte genauso gut die Zeile
Set view = db.GetView( "Nach persnr" )
sein, wenn dort eine einschränkende View-ACL vorliegt.
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln