[53753] in SAPr3-news
Re: Dokumentation?
daemon@ATHENA.MIT.EDU (Roger Kober)
Thu Mar 10 05:14:54 2005
To: sapr3-news@mit.edu
Date: Thu, 10 Mar 2005 11:14:42 +0100
From: Roger Kober <no_mail@example.com>
Message-ID: <39al0kF5vqkrsU1@individual.net>
Christian Zalto schrieb:
> "Roger Kober" <no_mail@example.com> schrieb:
>
>>Gibt es eine Dokumentation der Eigenschaften und Methoden des
>>Objekt "SAP.Functions"?
>>
>
> Die Dokumentation der Attribute und Methoden im OCX selbst
> ist ganz okay, schau Dir einfach mit einem Objektbrowser, z.B.
> dem im Excel VBA, das "SAP Remote Function Call Control"
> (Dateiname "wdtfuncs.ocx") an.
Danke, schau ich mir mal an.
>
>
>>Gibt es von Dokumentation zum Thema VBA und R/3?
>>
>
> Es gibt ein sehr gutes Buch zu dem Thema von Patrick Theobald:
> "SAP R/3 Kommunikation mit RFC und Visual Basic"
Sind dort die Eigenschaften und Methoden der SAP Objekte beschrieben?
> Der alternative Ansatz für Lotus Notes wäre die Verwendung des
> SAP R/3 Connectors, einer Lotusscript-Extension (LSX). Dazu
> mehr auf http://www-10.lotus.com/ldd/eiforum.nsf oder, wenn
> es auch Java im Backend sein darf, könnte man den SAP Java
> Connector "JCo" einsetzen.
IMHO setzt das DECS voraus. Dies scheint mir 'Oversized' für das, was
ich vorhabe. JCo muesste ich mir noch anschauen.
> Die Aufrufe eines SAP Remote Function Call sind in allen Varianten
> zum Verwechseln ähnlich, denn überall steckt die librfc32.dll dahinter.
> Diese ließe sich auch direkt programmieren, allerdings ist mir das
> bislang nur in VBA geglückt, in Lotusscript (noch) nicht. Falls
> jemand eine funktionierende Lotusscript-Lösung hat - würde
> mich interessieren!
>
Gibt es für die librfc32.dll ein Doku (ähnlich der Lotus C++ API)? Wie
schon geschrieben, der Aufruf von "RFC_CUSTOMER_GET" funktioniert. Was
mir fehlt ist eine Doku der Objekte. Gemäss dem untenstehenden Beispiel:
Welche Eigenschaften und Methoden hat "functionCtrl", "sapConnection",
"theFunc" und "Customers"?
Sub GetCustomer()
' Umgeschriebenes VBA Beispiel für Lotusscript
'
http://help.sap.com/saphelp_470/helpdata/de/40/b297f3c32711d194ac00a0c94260a5/content.htm
Const SEARCH_NAME = "*"
Const SEARCH_KUNR = "*"
Dim functionCtrl As Variant
Dim sapConnection As Variant
Dim theFunc As Variant
Dim Customers As Variant
Dim returnFunc As Boolean
Dim start_Char As Variant
Dim die_exception As Variant
Dim tableData As Variant
Dim idxCustomer As Integer
' SAP Objekte referenzieren
Set functionCtrl = CreateObject("SAP.Functions")
Set sapConnection = functionCtrl.Connection
' Anmelden am R/3
sapConnection.Client = "XXX"
sapConnection.User = "XXX"
sapConnection.Password = "XXX"
sapConnection.Language = "XXX"
sapConnection.Destination = "XXX"
sapConnection.HostName = "XXX"
If sapConnection.Logon(0, True) <> True Then
Msgbox "Keine Verbindung zum R/3"
Exit Sub
End If
' Referenz zur Funktion übergeben
Set theFunc = functionCtrl.Add("RFC_CUSTOMER_GET")
' Suchbegriffe an die Funktion übergeben
theFunc.exports("NAME1") = SEARCH_NAME
theFunc.exports("KUNNR") = SEARCH_KUNR
' Funktion aufrufen
returnFunc = theFunc.Call()
die_exception = theFunc.Exception
If returnFunc = True Then
Set Customers = theFunc.tables.Item("CUSTOMER_T")
For idxCustomer = 1 To Customers.RowCount ' Index startet mit 1
tableData = Customers.Rows(idxCustomer).Data
Print idxCustomer & " Kundennr.:" & tableData(1,1)
Print idxCustomer & " Anrede:" & tableData(1,2)
Print idxCustomer & " Name:" & tableData(1,3)
Print idxCustomer & " Postfach:" & tableData(1,4)
Print idxCustomer & " Straße:" & tableData(1,5)
Print idxCustomer & " PLZ:" & tableData(1,6)
Print idxCustomer & " Ort: " & tableData(1,7)
Print idxCustomer & " Fon:" & tableData(1,8)
Print idxCustomer & " Fax:" & tableData(1,9)
Next idxCustomer
Set Customers = Nothing
Else
If die_exception = "NO_RECORD_FOUND" Then
Msgbox "Keine Werte vorhanden für " + SEARCH_NAME
Else
Msgbox "Fehler beim Zugriff auf Funktion im R/3!"
Exit Sub
End If
End If
' Logoff from SAP
functionCtrl.Connection.Logoff
' SAP objekte dereferenzieren
Set sapConnection = Nothing
Set functionCtrl = Nothing
End Sub