| |
ActiveX-ProgrammierungActiveX Control und SAP Dataprovider | | | Autor: ewx | Datum: 01.12.09 23:20 |
| Hallo zusammen!
ich bastele gerade ActiveX-Controls, um diese in SAP einzubinden. Nachdem ich nach langer Recherche die Gewissheit habe, dass dies tatsächlich nur mit Visual Basic Version 5 oder 6 geht, bin ich nun auf ein neues Problem gestossen:
In SAP kann man "eigentlich" nur Daten per "String" oder "Integer" übergeben. tabellen können nicht übergeben werden. Dafür hat SAP einen "Dataprovider" gebaut, der das "irgendwie" kann.
Hier ist die Doku dazu, die ich gefunden habe:
http://help.sap.com/printdocu/core/print46c/en/data/pdf/BCCIDATAPROV/BCCIDATAPROV.pdf
Ich habe nun allerdings überhaupt keine Ahnung, wie ich diese funktionen in VB nutze.
Hat irgendjemand vielleicht hiermit schon Erfahrungen oder kann mit der "Technical Reference" etwas anfangen???
Ich könnte mir vorstellen, dass es in etwa so aussehen könnte:
DIM dp as object
DIM table as object
DIM line as object
DIM field as string
Set dp = Createobject ("SAP.Dataprovider")
Set table = dp.get_table_as_stream
line = table.getline( 1 )
set field = line.get_field_value("FIELD_1") oder so ähnlich
Aber es steht in der Technical reference ja nur der Methodenname und sonst nix.
Mit Shift-F9 kann ich mir zwar Variablen ansehen, aber keine "Objekte", oder?
Oder gibt es da einen Unterschied zwischen Version 5 und Version 6?
Aus Geiz habe ich nämlich nur Version 5...
Vielen Dank!
Enno
Beitrag wurde zuletzt am 01.12.09 um 23:23:32 editiert. | |
Re: ActiveX Control und SAP Dataprovider | | | Autor: Peter71 | Datum: 15.03.10 07:40 |
| Hallo,
ich weis nicht genau, was Du vorhast, aber mit folgendem Beispiel kannst Du über den
Funktionsbaustein RFC_READ_TABLE komplette Tabellen auslesen. Um Daten zu schreiben,
musst Du nur den Vorgang umdrehen und natürlich an einen Funktionsbaustein adressieren,
der die Daten aufnehmen kann.
Für die Anmeldung am SAP System:
Global connect, func As Object
Global result As Boolean
Global myfunc As Object
Global data As Object
Global fields As Object
Private Sub anmelden()
Set func = CreateObject("SAP.Functions")
Set connect = func.Connection
If func.Connection.logon <> True Then
func.RemoveAll
MsgBox prompt:="Anmeldung fehlgeschlagen! Bitte verständigen Sie den _
Administrator (Datei wdtfuncs.ocx registriert?)!"
Exit Sub
End If
End sub Um nun Tabellen auszulesen:
Public Sub daten_lesen()
call anmelden
On Error GoTo errhandler
Set myfunc = func.Add("RFC_READ_TABLE")
myfunc.exports("QUERY_TABLE") = "T003"
myfunc.exports("DELIMITER") = ","
result = myfunc.Call
Set fields = myfunc.tables.Item("FIELDS")
Set data = myfunc.tables.Item("DATA")
GoTo ende
errhandler:
msgbox prompt:="Bei der Verarbeitung ist ein Fehler aufgetreten!"
ende:
call create_table
End Sub Und um die Daten in eine ADO Tabelle zu bringen:
Public mytab As ADODB.Recordset
Dim fnameAs String
Dim flangAs Integer
Dim ftypeAs String
Dim sa As Long
Dim cc As Long
Public Sub create_table()
Set mytab = New ADODB.Recordset
For sa = 1 To fields.RowCount
fname = fields(sa, 1)
flang = fields(sa, 3)
With mytab
Select Case fields(sa, 4)
Case "C"
.fields.Append fname, adChar, flang
Case "N"
.fields.Append fname, adNumeric, flang
Case "D"
.fields.Append fname, adDate, flang
Case "P"
.fields.Append fname, adDouble, flang
End Select
End With
Next sa
mytab.Open
For sa = 1 To data.RowCount
For cc = 0 To (UBound(Split(data(1, 1), ",")))
With mytab
.AddNew
.fields.Item(cc).Value = Split(data(sa, 1), ",")(cc)
.Update
End With
Next cc
Next sa
Set func = Nothing
Set connect = Nothing
End Sub Gruss
Peter71 | |
Re: ActiveX Control und SAP Dataprovider | | | Autor: ewx | Datum: 16.03.10 22:36 |
| Hi Peter71,
danke, aber das ist ein komplett anderes Thema... Der Data Provider ist Bestandteil des SAP-Systems und des GUI. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevWizard für VB5/6
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|