Lotus Notes / Domino Sonstiges > OLE/COM-Programmierung
OpenOffice Anbindung an Lotus Notes per OLE
flaite:
http://searchsoa.techtarget.com/tip/0,289483,sid26_gci1317058,00.html
Hier ist ein guter Artikel, der auch "Webscraping" als weniger Architektur-intensive Lösung für openOffice anspricht. In Open Office wäre das
Insert->Link to External Data
Dort könntest du eine URL auf einen Notes Agenten einfügen und den Agenten Daten zurückliefern lassen.
Daneben gibts noch ein offenbar fertig programmiertes Beispiel, um einen Yahoo Webservice einzubinden, der sich vermutlich auch für Domino Webservices ab Domino 7 verwenden läßt.
Müßte das ganze auch für lokale Notes-Datenbanken/Repliken funktionieren, so geht das wiederum nicht. Hab irgendwo mal gehört Notes 8 Eclipse Client hätte einen Webserver eingebunden (im Client). Bin mir aber nicht sicher. Dann ging sowas wieder für lokale Datenbanken/Repliken. Bin mir aber nicht sicher.
Eine Webservice Infrastruktur zu programmieren ist kein Hexenwerk, aber für nicht-Programmierer stehen da vermutlich doch zu viele Hürden im Weg.
LordKiri:
--- Zitat von: koehlerbv am 22.07.08 - 01:18:27 ---Entschuldige, aber: Du bist kein Programmierer (das wurde jetzt schon klar ...), und das gilt sowohl für IBM Lotus Notes als auch für OpenOffice. Wie stellst Du Dir dann aber vor, wie Du solch eine Programmieraufgabe lösen möchtest? Wir helfen ja gerne, aber hier würde das doch auf "andere machen Deinen Job" hinaus laufen. Diese Sache ist sowieso schon komplex, aber wenn das Null-Wissen dahinter steht ...
Bernhard
PS: Ich stand gerade vor der Entscheidung, unseren 11 Jahre alten und wohlgedienten Zweitwagen noch mal durch den TÜV zu bringen oder verschrotten zu lassen. Einer sagt: Schweller und Auspuff flicken wir selbst (Heimwerker-Szenario. Kosten ungewisss ...). Die freie Werkstatt sagt: Das kriegen wir schon hin. Am Schweller kann man ... und am Auspuff muss nur ... 400 EUR. Sicher durch den TÜV? Danach sicher fahren? (!!!) "Naja, das hält noch ein Jahr!". Hmm.
Die Fachwerkstatt, die den Wagen nun wirklich regelmässig betreut hat (viel gab es nicht zu tun): "Ja nicht wegschmeissen!! Für die Presse viel zu schade! Schweller, Auspuff, Radlager vorne rechts und noch ein paar Kleinigkeiten - der erste Aufwand für das Auto - und dann steht er auch noch die HU 2010 durch und läuft wirklich sicher!". Kosten: 900 EUR. Meine Entscheidung war sehr einfach.
--- Ende Zitat ---
Erstmal habe ich nicht die Möglichkeit eine Entscheidung zu treffen, ich muss es halt machen und zweitens hab ichs zumindest für mich und auch hoffentlich meine Firma ausreichend hinbekommen....
Und zwar habe ich die Tipps von BubbleBoy aufgenommen und hab mit dem Befehl:
--- Code: ---@Environment
--- Ende Code ---
Die Variablen in die ini-Datei geschrieben und diese dann mit OOo geöffnet nach dem Startpunkt gesucht und dann simpel über SearchAndReplace in die Vorlage reingeschmissen....
Danke für die kostruktive Hilfe an alle, die hilfreiche Beiträge geschrieben haben und hier ist mein OOo-Code für die Interessierten:
--- Code: ---Sub SearchAndDestroy
' Variablendeklaration:
'-----------------------
dim DateiNr as Integer 'Dateinummer für einen freien Dateikanal
dim Zeile as String 'Variable für die aktuell aus der Datei eingelesenen Zeile
dim Position as Integer 'Positionsangabe für die Suche nach Elementen zur Zeilenzerlegung
dim Werte(0,1) as String 'Array für die aus der Ini eingelesenen Werte (1. Element(0) = Name , 2. Element(1) = Wert)
dim W_Anzahl as Integer 'Zähler für die Werteanzahl, die eingelesen wurde
dim i as integer 'Zählvariable
'Initialiserung
'----------------------------------------
W_Anzahl = 0 'Die Anzahl der eingelesenen Werte auf 0 setzten
'ini-Datei öffnen:
'--------------------------------------------------------------------------------------------
DateiNr = freefile 'freie Dateinummer ermitteln
Open "c:\notes.ini" for input as DateiNr 'INI öffnen
'Nun muss die relevante Sektion gefunden werden:
'-----------------------------------------------
do
Line Input #DateiNr, Zeile
Position = Instr (Zeile, "$Start=Start")
loop until Position > 0
'Nun werden die Werte und Wertenamen extrahiert und in das Datenarray übernommen
'-------------------------------------------------------------------------------
do
Line Input #DateiNr, Zeile 'es wird die nächste Zeile eingelesen
Position = Instr (Zeile, "=") 'und die Position des Zeichens = ermittelt
if Position > 0 then 'dann wurde das Zeichen gefunden
Werte (W_Anzahl,0) = mid(Zeile, 1, Position - 1) 'und es kann der Parametername in das Array übernommen werden
Werte (W_Anzahl,1) = mid(Zeile, Position + 1, len(Zeile) 'dazu kommt jetzt noch der Parameterwert in´s Array
W_Anzahl = W_Anzahl + 1 'Wertezähler 1 hoch
ReDim Preserve Werte(W_Anzahl,1) 'Array vergrößern
else 'ansonsten könnte es sein, dass eine fehlerhafte Zeile vorgekommen ist
Position = Instr (Zeile, "[") + Instr (Zeile, "]")
if Position > 1 then exit Do 'dann beginnt vermutlich eine neue Sektion und das Einlesen ist beendet
end if
loop until EOF(DateiNr) 'wenn keine neue Sektion kommt, dann geht es bis zum Dateiende weiter
Close #DateiNr 'die Datei brauche ich jetzt nicht mehr, ich habe alles im Array
Uname = Werte(0,1) 'Variablen für die ausgelesenen Werte setzten
SHname = Werte(1,1)
Ophone = Werte(2,1)
Ofax = Werte(3,1)
Iadr = Werte(4,1)
'ab hier laufen die Suchen
'-------------------------------------------------
Dim oDoc As Object
Dim oSearch As Object, nTimes As Long
oDoc = ThisComponent
aSearch = oDoc.createReplaceDescriptor
with aSearch
.SearchString = "Fname"
.ReplaceString = Uname
.SearchWords = true
end with
nTimes = oDoc.replaceAll(aSearch)
bSearch = oDoc.createReplaceDescriptor
with bSearch
.SearchString = "FSHname"
.ReplaceString = SHname
.SearchWords = true
end with
nTimes = oDoc.replaceAll(bSearch)
cSearch = oDoc.createReplaceDescriptor
with cSearch
.SearchString = "Ftel"
.ReplaceString = Ophone
.SearchWords = true
end with
nTimes = oDoc.replaceAll(cSearch)
dSearch = oDoc.createReplaceDescriptor
with dSearch
.SearchString = "Ffax"
.ReplaceString = Ofax
.SearchWords = true
end with
nTimes = oDoc.replaceAll(dSearch)
eSearch = oDoc.createReplaceDescriptor
with eSearch
.SearchString = "Fadr"
.ReplaceString = Iadr
.SearchWords = true
end with
nTimes = oDoc.replaceAll(eSearch)
End Sub
--- Ende Code ---
koehlerbv:
Okay, Du hast mich widerlegt, was Programmierfähigkeiten angeht ;)
Zwei Probleme sehe ich aber nach wie vor:
Du erwartest die NOTES.INI immer an einer einzigen definierten Stelle. Das kann (und wird in grösseren Installationen) Ärger geben.
Vor allem aber gibt es nach wie vor keine automatische Verbindung von OO zu Notes. Die Aktion muss - wenn ich jetzt nichts übersehen habe - in beiden Applikationen separat angestossen werden.
Bernhard
LordKiri:
die notes.ini wird standardgemäß immer an der selben stelle abgelegt und da bei uns alle installation gleich ausgeführt werden sind auch alle verzeichnisse gleich....
koehlerbv:
Alle haben Schreibrechte in C:\ ? Wirklich?
Aber derartige Rechtevergabe, bevorstehende Probleme mit Vista oder plötzlich auftauchende mobile Benutzer sind ja gar nicht Thema dieses Threads.
LordBörnie
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln