Ich habe sehr gute Erfahrungen mit LEI gemacht. Damit konnten sicher und stabil Daten zw. den beiden Systemen ausgetauscht werden.
Ansonsten gibt es von SAP eine kostenlose Java Klasse mit der auch auf SAP zugegriffen werden kann. Also mit ND6 LS2J geht das auch ganz gut, aber leider muss da eben programmiert werden.Zu LS2J wurden eine Menge Memory Leaks gemeldet.
... und Java auf Notes sowie Java auf JBoss/Bea Weblogic/Websphere ist das gleiche, deiner Meinung nach?
Da wir nicht täglich neue WFs bauen, habe ich gegen ne Programmierung nichts einzuwenden, die man jeweils aktuell auf seine Bedürfnisse anpasst.
Aber gibt es keine kleinen, schlanken einfachen Tools ?http://www.springframework.org
Websphere (kein Witz)
Ich denke wir werden mal den SAP JCo testen, kennt einer ne gute Anleitung wie ich das in Lotus einbinden? (Ideal wäre ne Beispieldatenbank :-* )
Nochmal: Du kannst meines Wissens sowas wie JCo nicht in Notes einbinden, weil da einfach die Voraussetzungen fehlen. Das ist für Applikationsserver (Websphere und so).
Auf der anderen Seite ist Websphere Express auch ziemlich mächtig. Und im Grunde benötigst du dann WSAD --> kostet Geld (es sei denn, du bist wirklich hart drauf und bekommst es mit Eclipse hin).
- ihr kauft euch einen Java-Appserver von IBM, Oracle oder JBoss und fuchst euch da rein.
stürzt der Agent-Manager von Domino ab
Um das abzufangen habe ich serverseitig JCo im Einsatz. Hier hast du gleich ein Beispiel, wie JCo mit Domino-Server genutzt werden kann. Das Beispiel baut auf der Datenbank AgentRunner von jNotes aufCool. Ich dachte JCo hätte was mit Java Connector Architecture zu tun. Man sollte halt seine Klappe halten, wenn man keine Ahnung von der Sache hat.
also mit der LSX ist das gar kein Problem und sollte für deine einfachen Anforderungen auch ausreichend sein. Funktioniert auf der Zentralinstanz oder über einen Appl.-Server. No Problem.
Die nötigen Befehle sind in einer ScriptLib gewrapped.
Und ab PatchLevel 42 ( oder so ) wird die nötige DLL auch schon bei der Installation der SAPGUI auf dem Rechner registriert.
Wir verwenden zur Zeit die SAP Version 4.7 und damit funktioniert das problemlos. Auch wenn es da keinen Support mehr gibt kannst du das bei deinen Anforderungen einsetzen, ohne zu befürchten, daß dein SAP plötzlich explodiert.
Dim oServer As New RFCServer
oServer.HostName = "192.168.xx.xxx"
oServer.System = 0
oServer.Client = "800"
oServer.user = "xxxxxxxxxxx"
oServer.Password = "xxxxxxxxxxxxxx"
oServer.Language = "D"
Dim ErrMsg As String
Dim CompName As String
Dim CompCode As String
' Logon gibt NICHT false zurück, wenn Pw oder Username etc. falsch war!!! Nur physische Fehler werden erkannt!
If oServer.Logon = False Then
Msgbox "Logon Error!", 0, oServer.Message
Exit Sub
End If
'--------------------------------------------------------------------
'---- allg. Liste:
Dim fnc_CompanyCodeList As New RFCfunction(oServer, "BAPI_COMPANYCODE_GETLIST")
If fnc_CompanyCodeList.call() = False Then
Msgbox "Aufruf erfolglos!"
Exit Sub
End If
CompCode = fnc_CompanyCodeList.tables("COMPANYCODE_LIST").rows(5).GetCell("COMP_CODE") 'Hart codiert: Erste Zeile = 1. Firma auslesen
Msgbox CompCode
'---- Details
Dim fnc_GetDetail As New RFCFunction (oServer, "BAPI_COMPANYCODE_GETDETAIL")
fnc_GetDetail.Exports("COMPANYCODEID").value = CompCode
If fnc_GetDetail.call() = False Then
Msgbox "Aufruf erfolglos!"
Exit Sub
End If
CompName = fnc_GetDetail.imports("COMPANYCODE_ADDRESS").GetValue("NAME")
Msgbox "Name of the company is " & CompName
oServer.LogOff
Und ab PatchLevel 42 ( oder so ) wird die nötige DLL auch schon bei der Installation der SAPGUI auf dem Rechner registriert.
Hallo Ulrich welche GUI Version (6.20 ??)
nlsxrfc.dll mindestens die Produktversion 2.0b3 ist (Build 142).Also ich habe gesehen, das es nen LSX Toolkit in Version 3.1 gibt, komme ich im Moment aber nicht dran, schaue mal heute abend nach welche Version.
Gibt es eigentlich noch eine höhere Version?
Noch ein Tip zur Implementierung: Da meistens mehrere Datenbanken auf SAP zugreifen sollten die Anmeldedaten für die SAP-Systeme in zentralen Konfigurationen gespeichert werdenDanke für den Tip, ich denke das ist eh der vernüftigste Weg. Hat einer ne Ahnung, ob man für LSX nen SAP Dialoguser benötigt oder funzt das auch mit nem CPIC User ??
Man benötigt nlsxrfc.dll, dcrfclib.dll und einige Einträge in system32\drivers\etc\services. Der lsx_installer erledigt das alles, beim SAP-Gui ist das aber auch dabei. Wichtig ist aber, dass die Version der nlsxrfc.dll mindestens die Produktversion 2.0b3 ist (Build 142).
Gibt es eigentlich noch eine höhere Version?
Noch ein Tip zur Implementierung: Da meistens mehrere Datenbanken auf SAP zugreifen sollten die Anmeldedaten für die SAP-Systeme in zentralen Konfigurationen gespeichert werden
Hier noch einige Links zum Download / zur Doku:Danke für die Links.
Download
http://www.lotus.com/ldd/notesua.nsf/find/lsx
Dokumentation
http://www-128.ibm.com/developerworks/lotus/toolkits/
http://www.e-promag.com/epLotusDocFinder/all/lsxtoolkit.cfm
Der Code von Bernhard ist LotusScript und kann überall da eingebunden, wo LotusScript verwendet werden kann, bspw. Buttons oder Agent.
Man muss natürlich einige SAP Kenntnisse haben, damit die Richtigen RFCs / BAPIs und Tabellen aufgerufen werden können.
Andreas
Wenn LSX installiert ist benötist du
Uselsx "*RFC"
im Code um die RFC-Objekte nutzen zu können.
Die LSX ist wirklich die einfachste Möglichkeit und sie ist halt kostenlos. Bei uns gibt es nur einen Haken: Wenn man serverseitige Aufrufe macht und das SAP-System nicht antwortet stürzt der Agent-Manager von Domino ab. Ob das auch bei anderen auftritt weiss ich nicht. Beim Notes-Client stürzt derselbige ebenfalls ab, da die LSX-Schnittstelle einen Timeout nicht abfängt.
Um das abzufangen habe ich serverseitig JCo im Einsatz. Hier hast du gleich ein Beispiel, wie JCo mit Domino-Server genutzt werden kann. Das Beispiel baut auf der Datenbank AgentRunner von jNotes auf http://www.jnotes.de/JNotes/jnotes_webware.nsf/0/C23C4FD8E6E9DD1AC1256E16003006FF?openDocument (http://www.jnotes.de/JNotes/jnotes_webware.nsf/0/C23C4FD8E6E9DD1AC1256E16003006FF?openDocument)
Die habe ich zweckentfremdet und führe mit einem Runjava-Task in Domino ein RFC in SAP aus und schreibe das Ergebnis in ein Profildokument in einer Notes-Datenbank. Der Java-Code ist angehängt. Auf dem Domino-Server muss JCo installiert sein und die Java-Klassen über JavaUserClasses dem Server bekannt sein.
Noch eine Anmerkung zu LSX: Am sinnvollsten ist es, mit der LSX BAPIs oder selbst geschriebene RFCs zu nutzen.