Das Notes Forum
Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: thomas_k am 12.09.17 - 15:17:40
-
Hallo miteinander,
zurzeit lässt mich ein Problem ziemlich verzweifeln und im Internet finde ich auch keine Lösung zu meinem Problem :-:
In einer XPage verwende ich den Befehl "window.open(...)", um mithilfe der URL von Notesdokumenten eben eines dieser Dokumente im Notesclient öffnen zu können. Dieses Dokument wurde davor von mir in einer SSJS-Funktion erstellt und einige Felder automatisch mit Werten befüllt.
Das heißt, der User klickt auf einen Button, im Hintergrund wird das Dokument in einer anderen Datenbank erstellt und öffnet sich im NotesClient in der alten Notesmaske.
Jedoch werden so alle Dokumente mit der Vorgabemaske der jeweiligen Notesdatenbank geöffnet. Blöderweise gibt's in vielen Datenbanken mehrere Masken und jedes Dokument soll natürlich in der passenden Maske angezeigt werden.
Daher meine Frage: Habe ich mit window.open die Möglichkeit, eine Maske mitzugeben, in welcher das Dokument geöffnet werden muss?
Wenn nein, fällt hier irgendjemanden eine andere Lösung ein?
Vielen Dank schon mal im Voraus!
LG Thomas
-
Ist in den erstellten Dokumenten das Feld "Form" gefüllt?
-
Ja, das Feld Form hätte ich hier immer mit dem Namen der Notesmaske befüllt. Jedoch werden die Dokumente trotzdem mit der Vorgabemaske geöffnet
-
Wenn es VIELE Masken gibt wäre es keine Lösung, aber wenn es nur wenige gibt kannst du es vielleicht über einen Ansicht mit Masken formel machen.
Sprich den Notes:// url mit den Ansicht zusammen erstellen, und damit über den Ansicht das versuchen.
-
Danke für den Vorschlag, aber leider verstehe ich das nicht ganz.
Kannst du mir das genauer oder anhand eines Beispiels erklären?
-
in dein URL der du mit window.open und notes url öffnest steht doch neben den Datenbank und das dokument auch ein verweiss auf einen Ansicht.
Wahrscheinlich /0/, wenn du dort den Ansicht rein machst, dann könnte dort den Maskenformel in den Ansicht verwenden.
Der "Normale" URL wäre es ja notes://Server/pfad/Datenbank/Ansicht/Dokument
beim lokale Datenbank damit notes:///pfad/Datenbank/Ansicht/Dokument
-
WENN Du das Feld "Form" korrekt befüllt hast, dann musst Du solche Stunts nicht machen... Bitte poste uns mal den Code, mit dem Du das Dokument erstellst (inklusive der Form- Zuweisung) und dann einen Screenshot Deiner Masken- Übersicht, der die fragliche Maske zeigt.
-
Das ganze soll bei einem Klick auf einem Button passieren.
Also führe ich beim onClick-Event des Buttons folgendes aus:
var doc = createMaildoc()
view.postScript("window.open('notes:///Datenbank/Ansicht/"+doc.getUniversalID()+"?EditDocument')")
createMaildoc ist eine selbsterstellte Funktion in einem Server-Javascript-Library:
function createMaildoc()
{
var db:NotesDatabase = session.getDatabase(...);
var doc = db.createDocument();
doc.Doc_Name = "Mail";
doc.Form = "Mail";
setfields(doc);
doc.save();
return doc;
}
In der Funktion setfields werden einige versteckte Felder automatisch befüllt
-
Manchmal denkt man wohl bei einer Fehlersuche zu kompliziert ;D :P
Der Fehler war wohl zu einfach und offensichtlich, um ihn selbst zu finden...
Ich muss natürlich die Felder(und auch das Feld "Form) mit appendItemValue befüllen, dann funktionierts.
Das ist mir jetzt zwar ein bisschen peinlich, aber ich bedanke mich trotzdem bei euch allen für eure Hilfe ;)
LG
-
Hmm, das bedeutet also das den erstellen Dokument (vorher) den feld Form überhaupt nicht hatte ?
Und deshalb mit den Vorgabemaske gezeigt würde ?
-
Genauso würd ich mir das auch erklären, ja.