Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: kfarin am 29.06.06 - 13:17:10
-
Hallo Forumsmitglieder!
Ich bin will mich kurz vorstellen. Ich heiße Kay, bin seit Mai mit meinem Studium fertig und nun in einer Firma als Praktikant am Werkeln. Natürlich ist meine erste Aufgabe, eine auf Domino/Notes basierende Projektdatenbank mit zu erstellen.
Da ich seit genau einer Woche mit Notes 7.0.1 arbeite (Mail, ToDo usw.) bzw. entwickle (Designer 7.0.1), könnt Ihr Euch sicher vorstellen, wie ich mich fühle. LotusScript hier, Formelsprache da (bin bisher mehr mit Java beschäftigt gewesen und daher wohl etwas verwöhnt, was IDE und Programmiesprache angeht - sorry), bin alleine mit der Materie beschäftigt und kann keinen so richtig fragen, weil die alle zu tun haben. Aber die Aufgabe soll trotzdem fertig werden, es hängt ein zukünftiger Job dran. Ich arbeite zusammen mit einer erfahrenen Entwicklerin (die woanders zu tun hat) und einer weiteren Praktikantin an der Sache und bin für Masken und deren interne Dinge zuständig.
Also schildere ich erst einmal kurz mein Problem:
es gibt eine Maske "Projekt" (Name: projectNotes) als Hauptdokument. Diese enthält das Feld "docid", das beim Anlegen des Dokumentes mit "@Unique" gefüllt wird.
Die Maske "Teilprojekt" (Name: projectPartNotes) ist als Antwortdokument gedacht. Per Aktion kann man aus einem Projekt heraus ein neues Teilprojekt erstellen. Das klappt soweit. Auch aus einem Teilprojekt heraus kann ich ein weiteres Teilprojekt, das dann in der Hierarchie unter dem jeweiligen Teilprojekt hängt, anlegen.
Die Teilprojektmaske enthält folgende Felder: "parent_docid", das übernimmt "docid" vom Elterndokument. "docid" der Teilmaske wird wieder mit "@Unique" gefüllt. Außerdem gibt es ein Feld "all_parent_docid", welches mit "all_parent_docid:parent_docid" gefüllt wird.
"Projekt" und "Teilprojekt" verwenden in einer Tabelle (Format: Tabs) eine Teilmaske als gemeinsame Ressource. In dieser Teilmaske ist eine Ansicht eingebettet. Diese soll jeweils alle Antwortdokumente des jeweiligen geöffneten Dokumentes anzeigen. Das wären bei einem bereits gespeicherten Hauptdokument alle Teilprojekte und deren Unterteilprojekte und bei einem Teilprojekt eben wieder alle deren untergeordneten Teilprojekte.
Ich habe mir die eingebettete View "allProjectParts" (der Name war schon vergeben, würde ihn ändern) wie folgt eingestellt:
Ansichtsauswahl: SELECT Form = "projectPartNotes" | @AllDescendants
anzuzeigende Spalten: "Name des Teilprojektes", "Projektleiter", "Mitarbeiter"
Das Problem ist, dass, wenn ich die Ansicht in einem Hauptdokument mit Unterdokumenten durch Klick auf den Tabellen-Tab starte, nichts angezeigt wird.
Außerdem hapert es noch mit dem Verständnis über einige Notes-Prinzipien, aber das gibt sich sicher erst mit der Erfahrung. Woher soll die auch kommen, wenn man alleine an einem neuen (umfangreichen) Thema (wie Notes) sitzt?
Es wäre schön, wenn Ihr mir mit Eurer Erfahrung etwas auf die Sprünge helfen und mir einen kleinen Anstupser zur Lösung des Problemes geben könntet. Es ist echt frustrierend, wenn man stundenlang sucht und nichts findet. Die Hilfe hat mir bisher nur mehr Verdruss bereitet.
Danke im Voraus, Kay
-
Du hast DocumentIDs und Antwortdocumente noch nicht richtig verstanden. Lies nochmal die entsprechenden Kapitel in der Designer-Hilfe sowie den Best Practices Artikel http://atnotes.de/index.php?topic=13984.0 dazu.
Kurz gesagt, dein docid, parent_docid Kosntrukt ist unnötig. Du willst Dich mit $REF und @DocumentID beschäftigen. Du steckst noch zu sehr in der relationale Denke einer SQL-DB und Java drinnen.
-
Hallo,
Kurz gesagt, dein docid, parent_docid Kosntrukt ist unnötig. Du willst Dich mit $REF und @DocumentID beschäftigen.
Ich weiß schon ungefähr, wie es sich mit $REF und @DocumentID verhält. Das Problem ist, dass es mit meinen docid und parent_docic gemacht werden muss. Das ist eine Vorgabe vom Projekt her...
Gruß, Kay
-
In der ersten Spalte deiner eingebetteten Ansicht das Feld parent_docid verwenden und diese Spalte als Kategorie aufsteigend sortieren.
Dann in deiner Teilmaske noch die DocUnid als Schlüssel für die Embedded View Verwenden und das war es dann.
-
es gibt eine Maske "Projekt" (Name: projectNotes) als Hauptdokument. Diese enthält das Feld "docid", das beim Anlegen des Dokumentes mit "@Unique" gefüllt wird.
...
"docid" der Teilmaske wird wieder mit "@Unique" gefüllt.
...
Das funktioniert aber so auch nicht. In die Felder docid gehört die DocumentUniqueID. Du musst die Felder mit @Text(@DocumentUniqueID) füllen.
Ich würde aber auch auf $Ref bei den Antworten gehen. Die Verwaltung macht Notes. Da brauchst du dich um nichts zu kümmern.
Hallo,
Kurz gesagt, dein docid, parent_docid Kosntrukt ist unnötig. Du willst Dich mit $REF und @DocumentID beschäftigen.
Ich weiß schon ungefähr, wie es sich mit $REF und @DocumentID verhält. Das Problem ist, dass es mit meinen docid und parent_docic gemacht werden muss. Das ist eine Vorgabe vom Projekt her...
Gruß, Kay
Was sind denn das für Vorgaben?
Axel
-
Axel du hast falsch gelesen. Er geht nicht über die Unique ID sondern über eine selbst erstellte @unique ID. Und damit ist seine Konstruktion durchaus richtig.
-
Yoo, stimmt.
Ich hatte nicht berücksichtigt, dass @Unique ohne Parameter einen Zufallswert zurückliefert.
Axel
-
Hallo,
Kurz gesagt, dein docid, parent_docid Kosntrukt ist unnötig. Du willst Dich mit $REF und @DocumentID beschäftigen.
Ich weiß schon ungefähr, wie es sich mit $REF und @DocumentID verhält. Das Problem ist, dass es mit meinen docid und parent_docic gemacht werden muss. Das ist eine Vorgabe vom Projekt her...
Gruß, Kay
Was sind denn das für Vorgaben?
Ich würde sagen: Von jemandem, der von Notes keine Ahnung hat. Armer Kay.
-
@Axel:
Was sind denn das für Vorgaben?
Der Projektleiter sagt: "Das wird so gemacht." Was soll ich da sagen, wenn ich keine Erfahrung habe und nicht einschätzen kann, was das für Vor-/Nachteile und Konsequenzen hat? Habe es hingenommen und muss erst einmal herausfinden, wie das alles zusammenhängt.
-
Martin das seh ich jetzt nicht so.
Die Struktur kann man durchaus so aufbauen und es gibt genug Beispiele im professionellen Umfeld, wo das auch so gemacht worden ist.
Je nach dem Ansatz den ich bei der Entwicklung verfolge, kann ich die Parent/ChildDoc Beziehung von Domino verwenden, oder durchaus auch über die von Kai kurz angedeuten Mechanismen eigenständige Beziehungsgeflechte knüpfen. Wenn man das zweite tut, dann verwendet man aber in der Regel keine Antwortdokumente, sondern erstellt jedes Dokument als Parent.
Derjenige der die Vorgaben so gemacht hat muss also nicht notwendigerweise von Notes nichts verstehen.
Wenn die Vorgabe aber eigene DocID mit eigener Verknüpfung UND die Verwendung von Parent/Child Dokumenten ist, dann steigt die Warscheinlichkeit für ein zumindest gravierenderes Missverständnis des Verantwortlichen über die Funktionsweise von Domino/Notes Datenbanken.
-
Wenn man das zweite tut, dann verwendet man aber in der Regel keine Antwortdokumente, sondern erstellt jedes Dokument als Parent.
ACK.
Wenn die Vorgabe aber eigene DocID mit eigener Verknüpfung UND die Verwendung von Parent/Child Dokumenten ist, dann steigt die Warscheinlichkeit für ein zumindest gravierenderes Missverständnis des Verantwortlichen über die Funktionsweise von Domino/Notes Datenbanken.
ACK.
-
@m3 und Martin Schulte:
die Variante, auch Teilprojekte als Hauptdokumente zu erstellen, hat ein anderer Kollege bereits erwähnt. Dies sei besser. Ich frage meine Chefin interessehalber einmal, wenn ich sie wieder sehe. Im Moment muß ich mich aber erst einmal mit der Situation, so wie sie jetzt ist, abfinden und die Aufgabe trotzdem lösen.
Das mit der Ansicht klappt. Ich habe in der Ansicht als kategorisierte Spalte "all_parent_docid" als Feld verwendet und als Ansichtsauswahl weiterhin "SELECT Form = "projectPart" | @AllDescendants". Nun zeigt mir Notes an, was ich will. Wie lange es das noch tut, ist eine andere Geschichte :) ...
Ich danke Euch trotzdem erst einmal. War sicher nicht das letzte Mal, dass ich Euch um Rat fragen muss :o .
Viele dankende Grüße, Kay