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

Offline Tiger955

  • Frischling
  • *
  • Beiträge: 30
Hallo!

wir haben ein CRM, basierend auf Domino Datenbank und dort möchte ich aus einem GEÖFFNETEN Dokument Felder mittels VBA auslesen und in ein (geöffnetes) Access-Formular übertragen.

Gewünschter Workflow:
-Leeres Formular in Access
-ich öffne das Dokument in meiner CRM-Anwendung aus der ich bestimmte Feldinhalte brauche
-ich wechsle nach Access und klicke einen Button, der mir die Feldinhalte in mein Accessformular holt

Aus einem geöffneten Lotus Notes MAIL kann ich es
Set workspace = CreateObject("Notes.NotesUiWorkspace")

Set Form = workspace.CURRENTDOCUMENT

Me.Besteller = Form.FIELDGETTEXT("From")
Me.MailContent = Form.FIELDGETTEXT("DisplayDate") & vbCrLf & Form.FIELDGETTEXT("From") & vbCrLf & vbCrLf & Form.FIELDGETTEXT("Subject") & vbCrLf & vbCrLf & Form.FIELDGETTEXT("Body")

Aber aus einem geöffneten Dokument aus unserer Documents.nsf schaffe ich es nicht.

Warum nicht aus Notes nach Access übertragen?
1) kann ich kein Notes Script
2) kann und darf ich die CRM-Anwendung nicht angreifen

Danke für Eure Hilfe!!

Michael


Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #1 am: 24.06.15 - 10:45:57 »
Bekommst Du eine Fehlermeldung? Oder wie wirkt sich das "schaffe ich es nichtW" aus?

Innerhalb von Notes sollte es keinen Unterschied bzgl. des CurrentDocument in einer Mail- oder einer beliebigen anderen Datenbank geben.

Offline Tiger955

  • Frischling
  • *
  • Beiträge: 30
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #2 am: 24.06.15 - 10:54:49 »
Sorry für die unpräzise Beschreibung:
"Schaffe ich es nicht" bedeutet, ich weiß nicht, wie ich das geöffnete Dokument "anspreche" in VBA.
Wie komme ich auf die Felder dieses angezeigten Dokuments hin?

In den Eigenschaften des Notes-Doc sehe ich die Feldnamen und auch die Inhalte, aber wie hole ich mir diese mittels VBA.

Soweit, dass ich eine Fehlermeldung bekäme, bin ich noch gar nicht!

Danke für Deine Hilfe!!

Michael

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #3 am: 24.06.15 - 11:46:04 »
Du hast aber einen Code gepostet, der Felder einer Mail ausliest, und der soll angeblich funktionieren. Dann mache das gleiche doch mit den Feldern aus der CRM-Anwendung. Probiere z.B. das Feld "Form", das ist der Name der Maske. Die anderen Felder musst Du Dir in der Felderliste des auszulesenden Dokuments ansehen. Wie die heißen, kann Dir hier keiner sagen.

Offline Tiger955

  • Frischling
  • *
  • Beiträge: 30
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #4 am: 24.06.15 - 12:33:27 »
Irgendwie hatte ich wohl einen Denkfehler.

CURRENTDOCUMENT ist jenes Dokument im Workspace, welches den Fokus hat bzw. zuletzt geöffnet war.
Wie genau ein CURRENTDOCUMENT definiert ist, begreife ich nicht, denn ich habe z.B. ein Mail geöffnet und im CRM eine Opportunity.

Beide verlieren den Fokus, wenn ich nach Access gehe.

Warum dann die Opp. als CURRENTDOCUMENT interpretiert wird, ist mir nicht klar. Evt. darum, weil es das zuletzt angezeigte Notes-Dokument war.

Somit ist es scheinbar egal, ob das geöffnete Dokument ein Mail oder ein Doc eines CRM ist, es zählt wohl die letzte Anzeige.

Ich kann mir daher in einer messagebox aus Access heraus mit MsgBox uidoc.FIELDGETTEXT("OppPosItemPrice") den Feldinhalt des CRM-Dokument Feldes anzeigen lassen.
Soweit scheint dieses Problem gelöst.

Nunmehr stellt sich für mich aber die Frage, wie ich z. B. auf Feld eines Unterformulars (oder Subview - ich weiß nicht, ob das in Notes auch so genannt wird) hinkomme.

Das CurrentDocument zeigt mir eine Opportunity mit Kundennamen, Adresse, etc, also den Stammdaten. Alles Felder, die ich in den Eigenschaften des Doc anzeigen kann. Darunter hängt aber eine Ansicht der angebotenen Positionen, die scheinbar wieder eine View der Einzeldokumente "OppPositions" ist.

Obwohl ich sie im Currentdocument sehe, kann ich nicht mit uidoc.FIELDGETTEXT ("...") darauf zugreifen.
Scheinbar fallen diese Daten nicht unter  CurrentDocument .

Wie hole ich mir nun die Werte dieser View (variabel viele Positionszeilen)?

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #5 am: 24.06.15 - 12:58:14 »
Bei Deinem "Unterformular" wird es sich um eine eingebettete Ansicht handeln, in der zu dem Kunden zugehörige Dokumente angezeigt werden. An diese Dokumente kommst Du nicht direkt über das CurrentDocument.

Du musst mit dem Schlüssel (z.B. der Kundennummer) aus dem CurrentDocument dann in die Datenbank gehen und Dir z.B. aus dieser eingebetteten Ansicht (oder über ein NotesDatabase.Search) die zugehörigen Dokumente suchen und kannst die dann auswerten. Um zu sagen, wie Du das genau machen musst, fehlt mir allerdings die Kenntnis über Euer eingesetztes CRM.

Du wirst Dich auf jeden Fall mit den Möglichkeiten von LotusScript bzw. den Datenstrukturen von Notes auseinandersetzen müssen. VBA ist sprachlich nicht sehr weit weg von LotusScript, die Unterschiede liegen in den Klassen von Notes, die Du verwenden musst. Umgekehrt kann man mit LotusScript auch die Klassen von Access nutzen, muss dann aber wissen, wie Access tickt.

Offline Tiger955

  • Frischling
  • *
  • Beiträge: 30
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #6 am: 24.06.15 - 13:36:29 »
Danke für die Erklärung.

Ja, so eine eingebettete Ansicht habe ich vermutet.
Das Hauptproblem bei Notes ist ja diese extrem langsame Abarbeitung von Durchläufen um dann auf bestimmte Feldinhalte eines Dokuments hinzukommen.
Wenn man 2-3 Minuten braucht, um eine Notes-Datenbank zu durchlaufen, nur um aus Dokumenten bestimmte Feldinhalte zu holen, dann ist das im laufenden Betrieb nicht machbar.

Wenn nun mehrere User die Feldinhalte von Dokumenten über den Schlüssel suchen müssen, nur um diese Values in eine relationale Datenbank übernehmen zu können, dann geht auch der Domino-Server in die Knie und unsere IT ist nicht so schlecht bestückt.
Während der Multi-User Zugriff auf den SQL-Server diesen nicht einmal juckt!

Das ist das Drama, welches wir mit Domino haben. Wir brauchen Werte aus dem CRM in anderen Applikationen bzw. in anderen Systemen und können nicht annähernd in "Echtzeit" diese Daten aus dem CRM bekommen. Ganz klar eine absolut falsche Entscheidung ein CRM auf Domino-Basis zu nehmen, wenn der Rest der Applikationen auf relationalen DBs basiert. Aber diese Fehlentscheidung ist bereits vor Jahren gefallen, wir müssen damit leider klar kommen.
Und da auf unser CRM nur die Macher dieses Produkts hingreifen können und dürfen und die lieber ihre "Solutions" verkaufen als uns Daten in eine relationale DB zu schaufeln ist der Weg von Notes --> nach Access (oder andere Apps) so gut wie unmöglich.

Ich bin mir sicher, es wäre bedeutend schneller und leichter mit einem Script die Daten zu fassen, die am Bildschirm dargestellt sind und sie in eine Tabelle nach Access (Backend ist SQL-Server) zu übertragen als von Access aus (VBA) die ganze Datenbank zu durchlaufen.

Für einen Notes-Affinen wahrscheinlich leicht machbar, für mich aus genannten Gründen nicht.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #7 am: 24.06.15 - 13:53:16 »
Sorry, das kann ich so nicht stehen lassen. Niemand sagt, dass Ihr die ganze Notes-Datenbank durchlaufen müsst, um die Informationen herauszubekommen.

SQL ist genauso ein schlechtes System, wenn ich dort in die Tabellen gehe, und alle Datensätze durchsuche, um bestimmte Informationen zu finden. Dann dauert SQL auch lange.

Es liegt also nicht am System, sondern an der Art der Bedienung.

Wenn Du aus dem aktuellen Dokument die Kundennummer nimmst (die sei der Schlüssel zu den anderen Dokumenten), dann in die eingebettete Ansicht gehst und über die Kundennummer die zugehörigen Dokumente suchst, dauert das keine 2-3 Minuten.

Und wenn das mehrere User machen, geht davon auch nicht der Server in die Knie.

Also bitte nicht über Notes schimpfen und gleichzeitig ausdrücken, dass man davon keine Ahnung hat.

Offline Tiger955

  • Frischling
  • *
  • Beiträge: 30
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #8 am: 24.06.15 - 14:23:11 »
Dies Reaktion habe ich von einem Notes-Affinen auch erwartet  ;)

Nein, im Ernst.
Ich würde Dich wirklich bitten, mir zu schreiben, WIE ich mit einem Schlüssel aus dem Hauptdokument dann auf die verknüpften Dokumente komme.

Was mich verunsichert ist auch Deine Aussage " die sei der Schlüssel zu anderen Dokumenten".  Kann es denn auch ANDERE Schlüssel geben. Ich dachte alle NotesDokumente sind über die DocID verknüpft. Alles andere ist doch nicht unique.

Wie gesagt, wenn Du die Option kennst, wie ich einerseits feststellen kann, WAS der Schlüssel ist (bin mir aber fast sicher, dass in unserem CRM die DocID der Verknüpgungsschlüssel ist) und dann, wie ich in die anderen Dokumente programmatisch weitergeht.

Ich kenne nur die Möglichkeit, die entsprechende Datenbank auf die Form zu prüfen und dann den Schlüssel zu suchen. Und das dauert wirklich zu lange, um das andauernd (bei vielen Usern) zu machen.

Set db = session.GetDatabase("", "Test\Doc.nsf")
Set dc = db.AllDocuments
Set doc = dc.GetFirstDocument

While (doc Is Nothing) = False
   
    strItemString = doc.GetFirstItem("Form").Text
   
    If strItemString = "CustomerContract" Then
        strDocID = doc.GetFirstItem("DocID").Text
            If strDocID = strSearchDocID Then
           ......           
            End If
    End If
    Set doc = dc.GetNextDocument(doc)
Wend


Und ja, Du hast ja Recht, ich habe von Notes wenig Ahnung - daher suche ich hier ja Hilfe!!!
Und nein, ich habe nicht geschimpft, ich habe nur bemerkt, dass es nicht zu UNSERER IT-Landschaft passt.
Wenn Buchhaltung, Fakturierung, Lohnverrechnung, etc. alles über relationale DBs läuft (fast alle SQL-Server) nimmt man doch keine nicht-relationale Datenbank als äußerst wichtige Ergänzung.

Danke
Michael

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #9 am: 24.06.15 - 16:02:20 »
Ok, dann werden wir mal etwas fachlicher.

Natürlich ist die UniversalID der eindeutige Schlüssel zu einem Dokument in einer Notesdatenbank. Das heißt aber nicht, dass jede Datenbank diesen Schlüssel dazu verwendet, um Dokumente zuzuordnen. Ein ganz kleines Beispiel um das zu verdeutlichen.

In einer Datenbank (z.B. einem CRM) gibt es ein Kundendokument und viele zugehörige Auftragsdokumente. Die Auftragsdokumente werden im Kundendokument in einer eingebetten Ansicht angezeigt (das sollte Dir soweit bekannt vorkommen).

Nun kann die Anforderung bestehen, dass es eine Historisierung über die Inhalte der Kundendokumente gibt. Die Änderung eines Kundendokumentes produziert dann jeweils neue Kundendokumente mit einem zeitlichen Gültigkeitsbereich. Jedes dieser Kundendokumente ist ein eigenständiges Dokument in der Datenbank und hat selbstverständlich eine eigene UniversalID. Würde in den Auftragsdokumenten nur die UniversalID des (zum Zeitpunkt der Erstellung gültigen) Kundendokuments gespeichert werden, könnten im später aktuellen Kundendokument die alten Aufträge nicht zugeordnet werden.

Folglich wäre es günstiger, anstatt der technischen UniversalID die logische Kundennummer als Schlüssel zu verwenden. Eine Eindeutigkeit des Schlüssels ist nicht gefordert, da jedes Kundendokument den gleichen Schlüssel besitzen muss.

Soweit zur Theorie. Nun zur Praxis:

Du musst in der Datenbank die eingebettete Ansicht finden. Datenbank öffnen, STRG + SHIFT festhalten und im Menü Ansicht - Gehe zu gibt Dir eine Liste sämtlicher Ansichten der Datenbank, auch die verborgenen (zu erkennen an den Klammern um den Ansichtsnamen).

In der eingebetteten Ansicht wird es eine Kategorie geben, in der der Schlüssel steht (vermutlich die Kundennummer, aber natürlich auch möglich die UniversalID, glaube ich aber nicht -> Kundendokument löschen, neu erstellen -> neue UniversalID, keine Verbindung mehr zu den Aufträgen -> keine gute Struktur).

Dann musst Du im Kundendokument den Feldnamen des Feldes (konkret Item, aber wir wollen es nicht übertreiben mit der Genauigkeit) herausfinden, in dem der Schlüssel steht.

Ich nehme mal an, dass die Ansicht "auftraege" heißt, und das Feld mit dem Schlüssel "kundennummer". Dann würde folgendes Script (LotusScript, sinngemäß in VBA zu übersetzen) in etwa so aussehen. Das ganze natürlich ohne Fehlerhandling und ohne Gewähr auf Tippfehler.

Code
Dim workspace As New NotesUIWorkspace
Dim kundenuidoc As NotesUIDocument
Set kundenuidoc = workspace.CURRENTDOCUMENT
Dim kundendoc As NotesDocument
Set kundendoc = kundenuidoc.Document
Dim crmdb As NotesDatabase
Set crmdb = kundendoc.ParentDatabase
Dim auftragview As NotesView
Set auftragview = crmdb.GetView ("auftraege")
Dim auftragcol As NotesDocumentCollection
Set auftragcol = auftragview.GetAllDocumentsByKey (kundendoc.Kundennummer (0), True)
Set auftragdoc = auftragcol.GetFirstDocument
Do While Not auftragdoc Is Nothing
   'Hier verarbeitest Du die Auftragsdokumente
   Set auftragdoc = auftragdoc.GetNextDocument (auftragdoc)
Loop

Offline Tiger955

  • Frischling
  • *
  • Beiträge: 30
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #10 am: 25.06.15 - 09:17:00 »
Danke vielmals für die ausführliche Beschreibung, ich werde mal mein Glück versuchen, ob ich das umsetzen kann!  ;D

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #11 am: 25.06.15 - 09:54:07 »
Das kriegst Du hin, und wenn es irgendwo klemmt, poste hier Code und Fehlermeldung bzw. Fehlverhalten

Offline Tiger955

  • Frischling
  • *
  • Beiträge: 30
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #12 am: 07.07.15 - 09:32:43 »
Hallo Peter!

nach einer "künstlerischen Pause"  ;) kann ich mich wieder um das Thema kümmern und bitte nochmals um deine Hilfe, weil ich es nicht ganz verstanden habe - offensichtlich.

Habe deinen Code nunmehr in meine Anwendung eingebaut und es sieht so aus:

Set notesuiworkspace = CreateObject("Notes.Notesuiworkspace")  --> um das geöffnete Doc (die Opportunity) auszulesen
Set objNotes = GetObject("", "Notes.NotesSession")   -->  um dann die versteckte View ("LookupDocID") zu durchlaufen

Anm.: ich glaube in dieser View die Opp samt Opp Positionen gefunden zu haben. Jedenfalls werden mir zwei Docs angelistet, wenn ich nach dem Suchstring "2B46470BCE2FD25BC1257D20003E3134" suche. Eines zeigt genau diese DocID (es ist die Opportunity selbst), die andere hat den Eintrag in "OppID" und ist die Opportunity Position.
Somit denke ich, dass ich grundsätzlich die richtige View gefunden hätte.
 
Set dbname = objNotes.GetDatabase("", "CRM\Opp.nsf")  --> dort ist die versteckte View zu finden

Set uidoc = notesuiworkspace.CURRENTDOCUMENT

strDocID = uidoc.FIELDGETTEXT("DocID")  -->   bringt  meinen "Suchschlüssel" 2B46470BCE2FD25BC1257D20003E3134


'*********  adaptiert Peters Code
Dim auftragview As Object
Set auftragview = dbname.GetView("LookupDocID")  --> die versteckte View
Dim auftragcol As Object
Dim auftragdoc As Object
Set auftragcol = auftragview.GetAllDocumentsByKey("OppID", True)   --> muß ich hier das Feld durchsuchen, wo der Wert 2B46470BCE2FD25BC1257D20003E3134 zu finden ist?

Set auftragdoc = auftragcol.GetFirstDocument
Do While Not auftragdoc Is Nothing

   'Hier verarbeitest Du die Auftragsdokumente
          If auftragdoc.GetFirstItem("OppID") = strDocID Then     --> wenn ich die Opp.Position mit der OppID 2B46470BCE2FD25BC1257D20003E3134 gefunden habe, dann gibt mir testweise die OppPosItemNo  aus.

               'Hier verarbeitest Du die Auftragsdokumente
                MsgBox auftragdoc.GetFirstItem("OppPosItemNo")
          End If
     Set auftragdoc = auftragdoc.GetNextDocument(auftragdoc)
Loop

*************

Der Code läuft ohne Fehler durch (was noch nicht heißt, dass ich es richtig gemacht habe!), aber bringt nichts.

Bitte wo liegt mein Fehler?
O.a. Opportunity hat definitiv eine Opp.Position.

Danke
Michael

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #13 am: 07.07.15 - 09:46:29 »
Hallo,

Was bedeutet
Zitat
Der Code läuft ohne Fehler durch (was noch nicht heißt, dass ich es richtig gemacht habe!), aber bringt nichts.

Wass soll er denn bringen?


Andreas

Offline Tiger955

  • Frischling
  • *
  • Beiträge: 30
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #14 am: 07.07.15 - 10:14:06 »
Hallo!

Ich möchte testweise die "OppPositionItemNo" (die Artikelnummer) ausgeben lassen.

In einer Opportunity gibt es Opp-Positionen.
Jede Position ist eine Artikelnummer mit ihren Eigenschaften wie Preis, Einheit etc.
Somit hat jede Opportunity zumindest ein verknüpftes (Sub-)Dokument.

Ich komme auf die Opportunity (ist ja geöffnet) hin, nicht aber auf Werte der "verknüpften" Opp.Positionen.

Genau das ist mein Problem.
Wie bekomme ich bestimmte Feldinhalte aus den verknüpften Dokumenten (=Opp.Positionen) eines geöffneten Docs (=Opportunity)?

Danke
Michael

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #15 am: 07.07.15 - 10:54:14 »
Hallo,

Dazu musst du dir bewusst machen, das die Methode "NotesDocument.GetFirstItem" die keine Werte zurueckliefert.
Diese liefert dir nur ein weiteres Objekt der Klasse "NotesItem" zurueck.

Wenn du Werte aus den Items auslesen willst, dann brauchst du "NotesDocument.GetItemValue"
Und hier muss du dir bewusst machen, dass du auf jeden Fall einen Array zurueckbekommst.


Andreas

Mitch

  • Gast
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #16 am: 07.07.15 - 11:32:57 »
Huhu,

ich verstehe nicht ganz was du machst.

[...]
strDocID = uidoc.FIELDGETTEXT("DocID")
[...]
Set auftragcol = auftragview.GetAllDocumentsByKey("OppID", True)

Du ziehst dir eine ID, suchst in der Ansicht aber nach einem festen String "OppID". Das sieht seltsam aus. Sicher, dass du das möchtest? Ich hätte in der ersten Ansichtsspalte die ID erwartet und dann entsprechend nach der ID gesucht und alle zugehörigen Dokumente zu finden.

Der Code läuft ohne Fehler durch (was noch nicht heißt, dass ich es richtig gemacht habe!), aber bringt nichts.

Was sagt denn der Debugger deiner Wahl? Findet er Dokumente? Ich tippe ja auf "Nein", wegen oben genanntem Problem.

Gruß,

Mitch

Offline Tiger955

  • Frischling
  • *
  • Beiträge: 30
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #17 am: 07.07.15 - 11:54:34 »
Hallo Andreas!

Danke für Deine Rückmeldung, es wäre mir immens geholfen mit einem praktischen Beispiel, z.B. wie die Codezeile aussieht.

Ich habe folgendes versucht, leider ohne Erfolg (keine Fehlermeldung, aber obj="")

Set auftragcol = auftragview.GetAllDocumentsByKey(strDocID, True)  --> strDocID  ist die ID der Opportunity und steht im Feld OppID der Opp-Positionen
Set auftragdoc = auftragcol.GetFirstDocument
Do While Not auftragdoc Is Nothing
     obj = auftragdoc.GetItemValue("OppID")   --> in obj sollte der Schlüssel, der gleich ist mit strDocID zu finden sein. obj bleibt aber ""
    Debug.Print obj(0)
    If obj = strDocID Then   --> daher geht es hier nicht weiter
        'Hier verarbeitest Du die Auftragsdokumente
        Set objOppPosItemNo = auftragdoc.GetFirstItem("OppPosItemNo")
        strOppPosItemNo = objOppPosItemNo.Text
        MsgBox strOppPosItemNo
    End If
   Set auftragdoc = auftragdoc.GetNextDocument(auftragdoc)
Loop

Danke für Deine Hilfe.
Michael

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #18 am: 07.07.15 - 12:02:56 »
Hallo,

Wie hast du denn obj definiert? (als was ==> String, Variant, ...)

Und hier
Zitat
If obj = strDocID
willst du einen Array mit einem String vergleichen. Das wird or den Baum laufen.



Andreas

Mitch

  • Gast
Re: Geöffnetes Dokument aus Domino Datenbank auslesen
« Antwort #19 am: 07.07.15 - 12:04:54 »
Set auftragcol = auftragview.GetAllDocumentsByKey(strDocID, True)
Genauso stelle ich mir das vor. Das geht davon aus, dass a) in strDocID auch was drin steht und b) die erste Ansichtsspalte diesen Wert auch enthält.

Stelle das im Zweifelfall über deinen Debugger sicher, notfalls via Msgbox:
Code
Msgbox "Schlüssel: " & strDocID
Msgbox "Dokumente gefunden: " & auftragcol.Count

Set auftragdoc = auftragcol.GetFirstDocument
Do While Not auftragdoc Is Nothing
     obj = auftragdoc.GetItemValue("OppID")
    Debug.Print obj(0)
    If obj = strDocID Then
       [...]
    End If
   Set auftragdoc = auftragdoc.GetNextDocument(auftragdoc)
Loop
In obj ist jetzt ein Array drin. Den kannst du nicht (erfolgreich) mit einem String (strDocID ) vergleichen.
Versuche:
Code
If auftragdoc.OppID(0) = strDocID Then
     [...]
End If

Aber: Wofür machst du diese Prüfung? Du hast doch nur Dokumente gezogen, wo das der Falls ist. Oder nicht?

Gruß,

Mitch

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz