Autor Thema: Geöffnetes Dokument aus Domino Datenbank auslesen  (Gelesen 8898 mal)

Offline Tiger955

  • Frischling
  • *
  • Beiträge: 30
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #20 am: 07.07.15 - 13:39:31 »
@Mitch:

Ich weiß nun bald nicht mehr, wie es mich ausdrücken soll.

Ich habe ein GEÖFFNETES Doc (eine Opportunity) mit der DocID 2B46470BCE2FD25BC1257D20003E3134.
Dieses Doc hat eine Opp.Position mit der DocID F7834DFFE9D7B8DDC1257D20003E3CD8  und stellt die Verknüpfung zu seinem "Parent-doc" der o.a. Opportunity durch einen Wert in seinem Feld OppID (dort steht wieder 2B46470BCE2FD25BC1257D20003E3134) her.

So, nun hat mit Peter mit den versteckten Views (Gehe..zu + Strg+Shift) geschrieben, wie die beiden Dokumente quasi aus einer View auszulesen sind (zumindest habe ich es so verstanden).

Ich habe aber keine View gefunden, die ZWEIMAL den Eintrag 2B46470BCE2FD25BC1257D20003E3134 in EINER Spalte enthält.
Ich finde nur eine View (siehe beigefügtes Bild), die einmal die DocID der Opportunity enthält und einmal die DocID der Opp.Position.
Wenn ich allerdings aus dieser View (LookupDocID) die Opp.Position öffne, finde ich in OppID die DocID der Opportunity.

Ich brauche Feldinhalte aus den Opp.Positions Dokument, DASS ist die Aufgabe.
Vielleicht fehlt uns auch eine View, z.B. mit einer weiteren Spalte, die die OppID's zeigt, um zuerst die DocID des Hauptdokuemnts zu finden und dann in der Spalte zu suchen, wo genau dieser Wert als OppID vorkommt. LookupDocID hat aber nur EINE Spalte.

Aber wie funktioniert dann die Verknüpfung in der Opportunity sel bst, wenn quasi oben die Daten der Opp stehen (Kunde, Nummer, etc.) und unten dann die Positionen dran hängen?

Oder ich habe das Ganze, was mir Peter schrieb, schlichtweg falsch verstanden.

Ich komme nicht weiter, weil ich die Art und Weise, wie Notes Dokumente ablegt, einfach nicht verstehen. Sorry!!

Set auftragcol = auftragview.GetAllDocumentsByKey(strDocID, True)  --> strDocID zeigt mir auch den gesuchten Wert der Opportunity, also 2B46470BCE2.....

Somit habe ich verstanden, dass das einem Filter gleichkommt
mit Debug.Print strDocID; vbTab; auftragcol.Count  bekomme ich auch  2B46470BCE2FD25BC1257D20003E3134      1    (1 steht für die DocID des Hauptdokuments), was stimmen würde.

Ich komme einfach nicht auf die Opp.Positionen hin, dass ist es.

Ich hoffe, dass ich nunmehr mein Problem nochmals darlegen konnte und freue mich auf die weitere Hilfestellung.

Michael

Mitch

  • Gast
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #21 am: 07.07.15 - 13:56:24 »
Huhu,

also du willst diese drei Dinge:

1) Kennung aus geöffnetem Dokument A ziehen
2) Zugehöriges Dokument B mit Hilfe der Kennung aus Dokument A ziehen
3) Feldwert aus Dokument B auslesen

Richtig?

Zu 1)
Du musst in dem Dokument eine eindeutige Kennung finden, mit der du Dokument B finden kannst. Ob das die ID ist, die du genannt hast, weiß ich nicht. Die Kennung ist nicht zwingend etwas "notesspezifisches", das kommt drauf an wie die Anwendung entwickelt wurde. Falls Antwortdokumente verwendet werden, haben die Antworten ein Feld $REF in dem die UniversalID des Elterndokumentes steht. Falls keine Antwortdokumente verwendet werden, gibt es hoffentlich eine andere Kennung. Aber die können wir nicht kennen, die musst du raus finden.

Zu 2)
Wenn du nun eine Kennung aus A hast und weißt, wo (in welchem Item) diese Kennung in Dokument B steht, dann hast du mehrere Möglichkeiten Dokument B zu finden. Z.B. über eine Ansicht mit allen Dokument Bs, in der diese Kennung in der ersten Spalte steht. Oder über eine Suche in der Datenbank (NotesDatabase.Search). Oder, falls du die Antwort als NotesDocument im Zugriff hast, so hat diese eine ParentDocumentUnid - dann kannst du über NotesDatabase.getDocumentByUnid arbeiten. Auch hier gilt: Es kommt halt auf deine Anwendung an.

Zu 3)
Wenn du Dokument B hast, dann kannst du auf die Items zugreifen. GetItemValue liefert immer einen Array zurück. Wenn es sich um ein einfaches, einwertiges Textitem handelt, kannst du also einfach auf die Position 0 zugreifen und deinen Wert holen.

Gruß,

Mitch

Offline Tiger955

  • Frischling
  • *
  • Beiträge: 30
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #22 am: 07.07.15 - 14:56:07 »
Danke für deine Antwort.

Zu 1)
in $Ref steht im Dokument B (also in der Opp.Position) nicht die ID des übergeordneten Docs (also der Opportunity), sondern die EIGENE DocID, nur mit : dargestellt:    F2B46470B:CE2FD25B-NC1257D20:003E3134
Korrektur: OJA, es steht die OppID, aber nur irgendwie mit Trennzeichen versehen, aber die versuche ich zu bereinigen!!!!
Woher kann so eine Veränderung der DocID kommen??

Aus der original DocID 
2B46470BCE2FD25BC1257D20003E3134 wird
F2B46470B:CE2FD25B-NC1257D20:003E3134

in der $REF des Dokument B ????


daher zu 2)
Ja, die Kennung aus Dok A habe ich, das ist die DocID 2B46470BCE2FD25BC1257D20003E3134, welche ich im Dok B im Feld OppID finde. Da ich keine View habe, welche nur Dok Bs mit den OppID zeigt, wo ich u.a. die Nr. 2B46470BC....   finden würde, bleibt nur der Versuch mit NotesDatabse.Search.

In meinem Doc B (Opp.Position) finde ich kein Feld ParentDocumentUnid, die DocID des Doc A kommt nur im Feld OppID des Dok B vor.

Ich versuchs mal mit NotesDatabse.Search etwas anderes sehe ich momentan nicht aus den von dir aufgezeigten Optionen.
Wenn das nicht das Ergebnis bringt, dann müßten wir eben irgendwie eine View dazubasteln, welche die OppID der Dokumente B als erste Spalte hat.

Hoffe Dich richtig verstanden zu haben.

Danke
Michael

« Letzte Änderung: 07.07.15 - 15:02:05 von Tiger955 »

Mitch

  • Gast
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #23 am: 07.07.15 - 15:01:55 »
In meinem Doc B (Opp.Position) finde ich kein Feld ParentDocumentUnid, die DocID des Doc A kommt nur im Feld OppID des Dok B vor.

Code
Set NotesDocumentCollection = NotesDatabase.Search({DocID = "} & NotesDocumentA.UniveralID & {"}, Nothing, 0)

Das findet alle Dokumente in der Datenbank, die ein Feld DocID haben in welchem die DocumentUniqueID von Dokument A steht.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz