vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ActiveX-Programmierung
ActiveX 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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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