Domino 9 und frühere Versionen > ND9: Entwicklung
Geöffnetes Dokument aus Domino Datenbank auslesen
Tiger955:
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
Peter Klett:
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.
Tiger955:
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
Peter Klett:
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.
Tiger955:
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)?
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln