Office: (Office 2003) Daten aus maxdb SAP Datenbank lesen

Helfe beim Thema Daten aus maxdb SAP Datenbank lesen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, vorweg: SAP, RFC und was ich so probiert hab, wird von der Suche "ignoriert" .. *frown.gif* Was ich möchte ist mittels ACC2003 auf bestimmte... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Alexandra, die zweite, 18. Februar 2006.

  1. Daten aus maxdb SAP Datenbank lesen


    Hallo,

    vorweg: SAP, RFC und was ich so probiert hab, wird von der Suche "ignoriert" .. *frown.gif*

    Was ich möchte ist mittels ACC2003 auf bestimmte Tabellen lesend unseres SAP Systems (maxDB) zuzugreifen. Nun suche ich Tipps, Beispiele u.ä. wie ich das bewerkstelligen könnte.

    Was ich entdeckt habe, ist der Hinweis darauf, eine RFC Verbindung aufzubauen. Ist nur die interessante Frage .. wie?!

    Vielleicht habt ihr das schonmal gemacht und habt einen Tipp für mich!

    Danke,
    Alex

    :)
     
    Alexandra, die zweite, 18. Februar 2006
    #1
  2. Auf MAXDB wird ausschließlich per ODBC zugegriffen. Den Treiber gibt's unter http://dev.mysql.com/downloads/maxdb...ml#ODBC_Driver .
    Wenn installiert, dann neue ODBC-Datenquelle einrichten. Aus den Dialogen des Treibers geht eigentlich alles hervor. (Wesentlich ist v.a. die IP des Servers).
    Danach Tabellen in Access-DB verknüpfen über diese ODBC-Datenquelle.

    Ciao, Sascha
     
    Sascha Trowitzsch, 20. Februar 2006
    #2
  3. Hallo zusammen,

    also ich arbeite zwar nur mit AC2K, aber hier denke ich, dürfte das keine großen Unterschiede machen.

    Zum Zugriff auf SAP-Daten über vba gibt es drei Möglichkeiten:

    - Zugriff über ODBC auf die dem SAP zugrundeliegende Datenbank:
    Halte ich für sehr problematisch, weil man da einiges durcheinander und das SAP so aus dem Tritt bringen kann. Da lasse ich die Finger von.

    - Zugriff über RFC
    RFC-Fähige Funktionsbausteine lassen sich von VBA aus aufrufen. Entsprechende Objekte (OCXe) werden mit der SAP Gui installiert (wenn das nicht deaktiviert ist) Zum Abruf von Tabellendaten bietet sich hier der SAP-Funktionsbaustein RFC_READ_TABLE an. Ich habe hier mal ein paar Codingzeilen aus meinen Projekten zusammenkopiert:
    Code:
    Analog können auch andere RFC-Fähige SAP-Funktionsbausteine aufgerufen werden.


    - Zugriff über SAP-GUI Scripting
    Hierbei wird nicht auf das SAP-System direkt zugegriffen, sondern es wird die Steuerung der SAP-GUI übernommen. Dadurch sieht der Anwender auf seinem Bildschirm, was passiert (wenns nicht zu schnell geht ...)
    Hier kann ich leider kein Beispielcoding einstellen, weil das ganze ziemlich komplex und umfangreich ist. Aber ein paar Stichworte kann ich hier auch geben:
    Die notwendigen Objekte bekommt man über einen Verweis auf [SAP-Gui Installationspfad]\Controls\sapctrl32.dll
    Wichtig für den Anfang sind GuiApplication (SAP-Gui an sich), GuiConnection (Verbindung der SAP-Gui zu einem System), sowie GuiSession (der eigentliche SAP-Modus). Dann gibts für verschiedene Bereiche der Anzeige eigene Objekte und natürlich wieder Text, Button, etc. Hier gibt es von SAP recht viele Details in einem Dokument "sap gui scripting api.pdf", von dem ich dir aber leider keine genaue URL geben kann.

    Gruß
    Thomas
     
    Thomas E, 20. Februar 2006
    #3
  4. Daten aus maxdb SAP Datenbank lesen

    Hallo,

    danke für eure Antworten! Der Weg über ODBC wäre natürlich auch eine Möglichkeit. Allerdings weigert sich der Vertreter unseres Datenbank-Admins einen Benutzer anzulegen (vielleicht kann er es aber auch nur einfach nicht...)

    @Thomas
    - Ich hab gerade probiert mich damit überhaupt mal am SAP System anzumelden..

    Code:
    Allerdings funktioniert das nicht ("Anmeldung fehlgeschlagen") :-(

    Bei der SAPGui (6.40 für Windows) Installation gab's nur einen Punkt unter Developer, der mit RFC zu tun hatte; den hab ich mitinstalliert.

    Kannst du mir zumindest erstmal soweit behilflich sein, dass ich mich mittels Access am SAP System anmelden kann?

    Danke,
    Alex
     
    Alexandra, die zweite, 20. Februar 2006
    #4
  5. Hallo Alex,

    das du keinen DB-Benutzer bekommst könnte sich mit dem ersten Punkt aus meinem vorigen Beitrag erklären lassen.

    Bei deinem Coding fällt mir auf den ersten Blick auf, dass du die Mandantenangabe (conn.Client) auskommentiert hast. Das führt sicherlich zu einem Problem.
    Außerdem hast du als SystemId (conn.System) nochmal die Systemnummer angegeben. Hier sollte die drei Zeichen lange SAP-SystemId des Systems stehen.
    Wenn das nicht hilft, suche auf diesem Rechner mal nach einer Datei "dev_rfc.trc" mit recht aktuellem Änderungsdatum. Diese wird bei
    Fehlern häufig angelegt, teilweise im SAP-GUI-Verzeichnis, teilweise im Verzeichnis in dem die Datenbank liegt und bei mir verschiedentlich auch in anderen Verzeichnissen.
    Dort stehen teilweise detailliertere Informationen zum Fehler.

    Gruß Thomas
     
    Thomas E, 21. Februar 2006
    #5
  6. BTW: Dachte, es ginge um reine MAXDB. Wenn's das komplette SAP-Paket ist, dann ist natürlich ODBC nicht die erste Wahl... Prima Code von Thomas!
    Ciao, Sascha
     
    Sascha Trowitzsch, 21. Februar 2006
    #6
  7. hi,

    danke, mit Angabe des Mandaten bekomme ich zumindest nicht mehr die Meldung "anmelden fehlgeschlagen" :-)

    Das Trace-File hab ich gefunden, tauchen allerdings keine Fehler mehr auf. Aber wenn ich auf dem SAP System mittels Transaktion SM04 schaue, ist der User nicht angemeldet!?

    Danke,
    Alex
     
    Alexandra, die zweite, 21. Februar 2006
    #7
  8. Daten aus maxdb SAP Datenbank lesen

    Hallo Alex,

    wenn du dein "Anmelden fehlgeschlagen" nicht bekommst ist doch alles in Butter, dann kannst du nun die Verbindung verwenden um RFC-Funktionen auszuführen.
    Das die Anmeldung in der SM04 nicht angezeigt wird, kann damit zusammenhängen, dass du alle Variablen in deiner Funktion definiert hast... und die wird ja bei erfolgreicher Anmeldung direkt wieder verlassen, die Variablen werden ungültig und ggf. die Verbindung wieder geschlossen. Probier mal ein "Stop" vor dem End Sub und schau mal in die SM04, wenn VBA auf dem Stop steht.

    Gruß
    Thomas
     
    Thomas E, 21. Februar 2006
    #8
  9. hi,

    jo, mit dem Breakpoint taucht der User dann auch in der SM04 auf; Erklärung ist auch logisch. Ich danke dir!

    Gruß,
    Alex
     
    Alexandra, die zweite, 21. Februar 2006
    #9
  10. hi nochmal,

    das anmelden klappt jetzt, wie gesagt. Nur wie kriege ich es hin, dass ich z.B. einen Report ausführe und die dort rauskommenden Daten in eine Access Tabelle bringe?

    Ich muss/will einfach SAP Daten in Access bringen um dort damit weiterarbeiten zu können :-). Wobei der Weg anders rum dann sicherlich auch in Frage kommen könnte...

    Gruß,
    Alex
     
    Alexandra, die zweite, 21. Februar 2006
    #10
  11. Hallo Alex,

    auf diese Weise kannst du nur RFC-fähige FuBaus ausführen. Du musst also deinen Report eventuell in einen FuBau setzen, das Selektionsbild zu den Importing-Parametern und das Ergebnis zu den Exporting-/Table-Parametern des FuBau machen. Der FuBau muss die Ablaufart "Remote fähiger Baustein" haben. Dann kannst du den FuBau über VBA aufrufen und wie in meinem Beispiel Variablen Exportieren und nach dem Abarbeiten des FuBau die Ergebnisvariablen auslesen und verarbeiten.

    Reports kannst du nur über SAP-GUI-Scripting ausführen. Es ist jedoch vergleichsweise Aufwändig, die Selektionsparameter über das GUI-Scripting zu setzen. Ergebnisse auslesen geht schwer bis garnicht (z. B. bei reiner Textausgabe oder ALV-Listenausgabe). Außerdem sieht in dem Moment der Benutzer, was du machst (wobei das auch gewollt sein kann!)

    Gruß
    Thomas

    Nachtrag:
    Wenn du RFC_READ_TABLE nutzt, um Tabellen auszulesen, erhältst du unter anderem eine Tabelle mit den Feldern und Feldeingenschaften zurück. Die kannst du nutzen, um dir daraus ein Recordset-Objekt zu bauen, dass du anschließend mit den Daten aus der zurückgelieferten Datentabelle füllst
     
    Thomas E, 21. Februar 2006
    #11
  12. Guten Morgen,

    irgendwie stand ich gestern auf dem Schlauch. Hab mir dein Beispiel nochmal genauer angesehen und passt doch quasi *hand an den Kopf hau*

    Nur wenn ich das z.B. mal mit der Tabelle MARA probiere, erhalte ich die Meldung..

    Hast du 'ne Idee wie ich das umgehen kann? Und hast du zufällig noch ein Beispiel, wie ich mir mittels "SapFieldTable" bzw. "SapDataTable" die Access Tabelle basteln und mit Daten füllen kann?

    Tausend Dank!

    Gruß,
    Alex
     
    Alexandra, die zweite, 21. Februar 2006
    #12
  13. Daten aus maxdb SAP Datenbank lesen

    Hallo Alex,

    hier wirft der SAP-FuBau mit einer Exception um sich. Warum er das konkret macht, müsstest du ggf. im SAP mal prüfen. Ruf den Fubau mal über die SE37 mit deinen Parametern auf. Probleme gibts in der Regel, wenn du zu viele Daten abrufen willst.
    Die Tabelle "Fields" kannst du auch vor der Ausführung des FuBau mit den Feldern bestücken, die du abrufen willst, dann werden nicht alle Felder zurückgeliefert.

    Ein Beispiel zum Umwandeln der zurückgelieferten Daten in ein Recordset-Objekt habe ich leider gerade nicht greifbar.

    Gruß
    Thomas
     
    Thomas E, 21. Februar 2006
    #13
  14. hi nochmal,

    danke abermals. Dann schau ich mal, wie ich da entsprechend weiterkomme..

    Gruß,
    Alex
     
    Alexandra, die zweite, 22. Februar 2006
    #14
  15. Zum Thema RFC_READ_TABLE habe ich noch eine Frage, die ihr mir vieleicht beantworten könnt. Wie kann ich die Optionen Dynamisch angeben bei mehr als 72 Zeichen. Irgendwie schein ich dazu zu dumm zu sein. Ich habe die Bedingungen in einem array und folgenden Ansatz:

    For z = 1 to 800
    'Für Einschränkungen > 72 Zeichen mussen mehrere Zeilen eingefügt werden!
    tOPTIONS.AppendRow
    tOPTIONS(z, "TEXT") = "KNUMH IN " & arrNachrichten(z, 7) & "'"
    Next z

    Genau das funktioniert aber nicht. Mit weniger als 72 Zeichen und einer Zeile ist es kein Problem.

    Es wäre super wenn mir jemand erklären könnte was hier schief läuft.

    Danke und Gruß Michael
     
Thema:

Daten aus maxdb SAP Datenbank lesen

Die Seite wird geladen...
  1. Daten aus maxdb SAP Datenbank lesen - Similar Threads - Daten maxdb SAP

  2. Daten Einlesen aus mehre Zellen in Verbindung einer Verbundene Zelle

    in Microsoft Excel Hilfe
    Daten Einlesen aus mehre Zellen in Verbindung einer Verbundene Zelle: Moin Allerseits, mit Verlaub ich bin seit 5 Jahren aus der Materie raus, fange somit von Vorne an. Frage: Anpassung eines bereits Geschrieben Codes. Verwendete Elemente: Quelle> Tabelle "wsLK",...
  3. Excel icon fehlt

    in Microsoft Excel Hilfe
    Excel icon fehlt: Hallo zusammen ich habe das Icon aus Datei nicht um Daten abzurufen [ATTACH] was kann ich tun? bei Daten zusammenführen ist es vorhanden - ich möchte eigentlich alle Tabellenblätter in eine...
  4. Excel Zusammenführen

    in Microsoft Excel Hilfe
    Excel Zusammenführen: Guten Tag Sub Tabelle_zusammenführen() Dim i As Integer Dim Zusammenfassung As Worksheet Dim BereichZielTab As Range Set Zusammenfassung = Worksheets("Zusammenfassung") For i = 2...
  5. Arr sind Null obwohl Daten vorhanden sind

    in Microsoft Excel Hilfe
    Arr sind Null obwohl Daten vorhanden sind: Hallo zusammen Erst mal frohe Festtage ;-) Ich hab ein Problemchen... In einer Abfrage eröffne ich mit einem "Connection.Open..:" eine Query Anschliessend mit rs.Open,(vobei mein RS ein...
  6. Datum markieren und Daten ausblenden

    in Microsoft Excel Hilfe
    Datum markieren und Daten ausblenden: Hallo zusammen Ist es möglich, in der angehängten Tabelle, jeweils Ende Monat einen Datumsstrich einzufügen, wie jetzt der roter, der manuell eingefügt ist? Und wenn ja: wenn in der Spalte A eine...
  7. Daten-Import inkl. Primärschlüssel

    in Microsoft Access Hilfe
    Daten-Import inkl. Primärschlüssel: Hallo! Ich habe eine Accesstabelle, die ich in Sharepoint importieren möchte, brauche jedoch auch die - gleichen - IDs, die zugleich auch als Primärschlüssel fungieren und ich diese als...
  8. Daten in anderes Tabellenblatt übertragen

    in Microsoft Excel Hilfe
    Daten in anderes Tabellenblatt übertragen: Hallo, ich stelle mir folgendes vor: Ich trage in das Tabellenblatt 1 in die Felder A1 - A8 Werte ein. Diese Werte sollen dann in das Tabellenblatt 2 in die nächste freie Zeile übertragen werden....
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden