Domino 9 und frühere Versionen > ND8: Entwicklung
Problem mit "nlsxrfc" RFC-Zugriff auf SAP mit UNICODE
jkunze:
Hallo liebe Forumsmitglieder,
seit der Umstellung auf die neueste SAP-Version mit UNICODE funktioniert die RFC-Schnittstelle über nlsrfc leider nicht mehr. Die Spaltenbreiten werden nicht mehr richtig getrennt, hier ein Beispiel SAP Liefernatendaten im Notes Debugger:
ORT02 " 000000000000 HITE0"
ORT01 "45ELECTRONIC COMPONENTS DIS FOSTER CITY"
NAME2 " FOSTER CITY"
NAME1 "nents Distributor"
LAND1 " Compo"
LIEFNR "0000002US Electronic"
Ich weiss, dass die nlsxrfc.dll schon lange nicht mehr supportet wird. Bisher war das auch nicht nötig, das hat wunderbar funktioniert. Gibt es hier einen Lösungsansatz mit der nlsxrfc? Oder kann mir jemand ein Tool empfehlen, mit dem der SAP-RFC-Zugriff über Script realisiert werden kann?
Vielen Dank für alle Tipps und Anregungen,
Gruß Jochen
MaxMuster:
nlsxrfc.dll kenn ich nicht.
Ich benutze die librfc32.dll aus der GUI (ist auch nicht supportet). Diese habe ich im System registriert.
Anschließend läuft folgendes (auf einem nicht UNICODE System)
--- Code: ---Sub Initialize()
Dim FunctionCtrl As Variant
Dim SAPConnection As Variant
' ### Init SAP Objekte
Set FunctionCtrl = CreateObject("SAP.Functions")
Set SAPConnection = FunctionCtrl.Connection
Dim rfc As Variant ' der BAPI
Dim rfcExport ' Exportparameter des RFCs
Dim strResult As string
' Anmeldeinformationen
SAPConnection.Client = "930"
SAPConnection.User = "USER_NAME"
SAPConnection.Password = "******"
SAPConnection.Language = "DE"
SAPConnection.Destination = "x1c"
SAPConnection.HostName = "x1c.example.com"
SAPConnection.SystemNumber = "00"
SAPConnection.ApplicationServer = "x1c.example.com"
SAPConnection.System = "X1C"
SAPConnection.UseSAPRFCIni = False
' Am SAP anmelden
If Not SAPConnection.logon(0, True) Then
Error 1000, "Anmeldung fehlgeschlagen"
End If
' RFC init
Set rfc = FunctionCtrl.Add("RFC_SYSTEM_INFO")
' Objekt zum Export des BAPIs vorbereiten
Set rfcExport = rfc.Imports("RFCSI_EXPORT")
' RFC aufrufen
If Not rfc.Call() Then
Error 1000, rfc.Exception
End If
' Result ausgeben
MsgBox "RFCPROTO :" & rfcExport("RFCPROTO") & Chr(10) & _
"RFCCHARTYP:" & rfcExport("RFCCHARTYP") & Chr(10) & _
"RFCINTTYP :" & rfcExport("RFCINTTYP") & Chr(10) & _
"RFCFLOTYP :" & rfcExport("RFCFLOTYP") & Chr(10) & _
"RFCDEST :" & rfcExport("RFCDEST") & Chr(10) & _
"RFCHOST :" & rfcExport("RFCHOST") & Chr(10) & _
"SYSYSID :" & rfcExport("RFCSYSID") & Chr(10) & _
"RFCDATABS :" & rfcExport("RFCDATABS") & Chr(10) & _
"RFCDBHOST :" & rfcExport("RFCDBHOST") & Chr(10) & _
"SYDBSYS :" & rfcExport("RFCDBSYS") & Chr(10) & _
"SYSAPRL :" & rfcExport("RFCSAPRL") & Chr(10) & _
"RFCMACH :" & rfcExport("RFCMACH") & Chr(10) & _
"RFCOPSYS :" & rfcExport("RFCOPSYS") & Chr(10) & _
"RFCTZONE :" & rfcExport("RFCTZONE") & Chr(10) & _
"SYDAYST :" & rfcExport("RFCDAYST") & Chr(10) & _
"RFCIPADDR :" & rfcExport("RFCIPADDR") & Chr(10) & _
"RFCOPSYS :" & rfcExport("RFCOPSYS") & Chr(10) & _
"RFCHOST2 :" & rfcExport("RFCHOST2") & Chr(10) & _
"RFCSI_RESV:" & rfcExport("RFCSI_RESV") & Chr(10)
End Sub
--- Ende Code ---
Eine Weitere Alternative ist der SAP Java Connector (JCo). IMHO müsste der aber ausserhalb von Notes laufen. Die von IBM ausgelieferte VM passt nicht in jedem Release zum JCo.
Hth, Roger
jkunze:
Hi Roger,
Danke, sieht ja erst mal gut aus, würde ich gerne mal probieren.
Die dll habe ich auch auf meiner Kiste, aber wie und wo hast du die registiriert? Ein normales Einbinden über die Options ist leider nicht möglich,
Gruß Jochen
MaxMuster:
Hallo Jochen,
wenn Du den GUI instaliert hast sind die DLLs auch registriert und das Coding sollte funktionieren.
Ich habe die Dateien "dbghelp.dll", "librfc32.dll", "WDTAOCX.OCX", "wdtfuncs.ocx", "wdtlog.OCX" auf den Domino Server (7.0.2 FP?) kopiert und mit c:\windows\system32\regsvr32.exe dem Windows bekannt gemacht. Anschließend konnte ich auf das SAP zugreifen.
Eine Installation des GUIs auf dem Server sollte den gleichen Effekt haben.
Hth, Roger
jkunze:
Hallo Roger,
bei mir klappt nicht mal der Login zu SAP, :(.
Die Objekte bleiben auch leer im Debugger.
Ich habe die gleichen Logindaten verwendet wie mit dem LSX-Zugriff, der ja zumindest soweit gut funktioniert.
Trotzdem Danke und viele Grüße, Jochen
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln