AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Kommunikation mit SAP GUI ohne BAPI oder RFC
Thema durchsuchen
Ansicht
Themen-Optionen

Kommunikation mit SAP GUI ohne BAPI oder RFC

Ein Thema von Snaky · begonnen am 8. Mai 2011 · letzter Beitrag vom 11. Mai 2011
Antwort Antwort
BlackbirdBerlin

Registriert seit: 15. Okt 2009
Ort: 10318 Berlin
91 Beiträge
 
Delphi 7 Architect
 
#1

AW: Kommunikation mit SAP GUI ohne BAPI oder RFC

  Alt 9. Mai 2011, 14:23
...
Ziel ist es diverse Transaktionen durchzuführen und Daten auomatisiert in lokale Dateien zu extrahieren. (z.B. den Export der Daten aus RSPARAM (Transakion SA38))...
Hi Snaky,
die RSPARAM ist nur eine Struktur, die im Gegensatz zu einer transparenten Tabelle keine Daten enthält. Zumindest nicht in tabellarischer Form.
Welche Programme ( SAP-Standard? ) willst Du denn mit SA38 ausführen, um deren Ergebnis zu extrahieren?
Kannst Du ggf. mit deinem User bestehende RFC-Bausteine aufrufen ( z.B. rfc_get_table_entries )?

Außerdem gibt es eine Komponente, mit der man die SAP-GUI fernsteuern kann / konnte.
Damit kann man direkt Eingabefelder per Namen anspringen, dort Wert eintragen und auslesen...

Delphi-Quellcode:
    Sap := TSapEvent.Create( Application.MainForm );
    bOK := Sap.Connect( frmHaupt.edHost.Text, frmHaupt.edHostID.Text, 2050);   // SapGuiMerlin or SapGuiFullMenu
    OKCheck(bOK, 'Verbindung erstellen');

    Sap.RowDimension := 24;
    Sap.RowListDimension := 24;
    Sap.ColumnDimension := 80;
    Sap.ColumnListDimension := 80;
    Sap.SetSizeFlag := True;
    OKCheck(bOK, 'Verbindung einstellen');

    Application.ProcessMessages;
    
    iCtrl := Sap.FindByField('RSYST-MANDT', 0, 2);   // Mandant (index 1);
    bOK := Sap.SetControlValue(iCtrl, frmHaupt.edMandant.Text);
    OKCheck(bOK, 'Mandant einstellen');

    Application.ProcessMessages;
    
    iCtrl := Sap.FindByField('RSYST-BNAME', 0, 2);   // Benutzer (index 3);
    bOK := Sap.SetControlValue(iCtrl, frmHaupt.edBenutzer.Text );
    OKCheck(bOK, 'Benuter einstellen');

    Application.ProcessMessages;
    
    iCtrl := Sap.FindByField('RSYST-BCODE', 0, 3);   // Kennwort (index 5);
    bOK := Sap.SetControlValue(iCtrl, frmHaupt.edPasswort.Text);
    OKCheck(bOK, 'Passwort einstellen');

    Application.ProcessMessages;
    
    iCtrl := Sap.FindByField('RSYST-LANGU', 0, 2);   // Sprache (index 7);
    bOK := Sap.SetControlValue(iCtrl, 'd');
    OKCheck(bOK, 'Sprache einstellen');

    bOK := Sap.SetCursorByControl(iCtrl);
    OKCheck(bOK, 'Cursor positionieren');
Die Unit/das Control hieß SapAutoGuiOcx_TLB glaube ich aus meinem alten Code zu entnehmen.
Damit kannst Du fast beliebige Aktionen in der SAP-Gui durchführen, inkl. der Auswertung, was jeweil nach einem "Tastendruck" passiert ist...

Habe ich vor vielen Jahren mal verwendet, um Massendaten automatisiert aus lokalen Datenbanken in SAP zu erfassen und dabei das Laufzeitverhalten auszuwerten...

HTH,
Tim
Tim
  Mit Zitat antworten Zitat
Snaky

Registriert seit: 9. Feb 2005
26 Beiträge
 
#2

AW: Kommunikation mit SAP GUI ohne BAPI oder RFC

  Alt 9. Mai 2011, 16:21
Hallo Tim,

hast du die Komponente und könntest mir die per Mail schicken oder mir einen Link schicken wo ich sie herunterladen kann? Ich bin mir nicht sicher ob ich RFC Calls bei jedem Mandanten durchführen kann (hinsichtlich Berechtigungen).

RSPARAM ist nur ein Beispiel. In diesem Zusammenhang exportiere ich die RSPARAM in eine XLS Datei und prüfe diverse Einstellungen die darin enthalten sind. (z.B. Passworteinstellungen, RECCLIENT etc.) Ich prüfe allerdings diverse Tabellen (u.a. T000, T001, USR40...usw.) Grundsätzlich möchte ich das was ich jetzt händisch aus dem System ziehe durch mein Programm sequentiell machen, sodass ich am Ende des Tages die exportierten Daten in XLS, Html, txt Form im Programmordner habe.

Grüße
  Mit Zitat antworten Zitat
BlackbirdBerlin

Registriert seit: 15. Okt 2009
Ort: 10318 Berlin
91 Beiträge
 
Delphi 7 Architect
 
#3

AW: Kommunikation mit SAP GUI ohne BAPI oder RFC

  Alt 9. Mai 2011, 17:02
Hi Snaky,
die Komponente habe ich momentan nicht griffbereit. Leider.
Irgendwie liegen da zig Rechnerwechsel und Neuinstallationen zwischen.

Ich glaube aber, sie war bei 'ner SAP-GUI Installation dabei, oder irgendwo
frei zu bekommen. Bemüh' mal GOOGLE...

Für 'nen Tabellenexport böte sich eher der RFC-Baustein an, den ich Dir
genannt habe, bzw. besser noch RFC_READ_TABLE oder BBP_RFC_READ_TABLE.
Um wieviele Tabellen dreht es sich denn?
Und unterstützt dich der Kunde beim Datenbeschaffen denn nicht?

VG, Tim
Tim
  Mit Zitat antworten Zitat
Snaky

Registriert seit: 9. Feb 2005
26 Beiträge
 
#4

AW: Kommunikation mit SAP GUI ohne BAPI oder RFC

  Alt 9. Mai 2011, 18:11
Hi Tim,

ich nehme an du meinst die OCX Dateien die im Frontend Ordner der SAP Installation vorliegen!? Wenn ich diese in Delphi hinzufügen möchte bekomme ich einen OLE Error. (Keine Ahnung woran das liegt...)

Es gibt Fälle in denen ich den Kunden die Tabellen und Reportergebnisse erzeugen lasse und mir zuschicken lasse. Im Normalfall ist es aber so, dass ich einen SAP User mit umfangreichen Leseberechtigungen bekomme (u.a. SE16 und SA38). Dies ist mir auch lieber, da ich so die Sicherheit habe, dass die Daten nicht mehr manipuliert wurden sondern direkt aus dem System stammen. Mit einem externen Programm RFCs in einem fremden SAP System durchzuführen halte ich für kritisch, zumal ich nicht weiß in wie weit dort Restriktionen vorhanden sind. Deswegen möchte ich ja mit der SAP Gui ausschließlich kommunizieren sodass diese sämtliche Kommunikation mit Datenbank Server und SAP Server übernimmt.

Am Ende stelle ich mir vor, dass ich die SAP Gui über mein Programm so steuere, dass Sie mir automatisch alle Reports und Tabellen über die vorhandene Funktion (z.B. in SAP Menü->System->Liste->Speicher->in lokale Datei->Tabellenkalkulation) extrahiert sodass ich diese danach über meine Auswertungen lokal weiterverarbeiten kann.

Ich habe schon viel gegoogelt und auch viel gefunden, nur wird dort immer davon ausgegangen, dass es das eigene SAP System ist, was die Sache natürlich extrem vereinfacht.
  Mit Zitat antworten Zitat
BlackbirdBerlin

Registriert seit: 15. Okt 2009
Ort: 10318 Berlin
91 Beiträge
 
Delphi 7 Architect
 
#5

AW: Kommunikation mit SAP GUI ohne BAPI oder RFC

  Alt 9. Mai 2011, 18:53
Hi Snaky,

schau Dir mal die Doku unter http://help.sap.com/printdocu/core/p...f/BCFESRFC.pdf an.
Das müsste das Control sein, das ich damals genutzt habe. Seite 38ff und 220ff.
Wo es die Delhpi-Unit dazu gibt, weiß ich allerdings nicht mehr...

Grüße,
Tim
Tim
  Mit Zitat antworten Zitat
Snaky

Registriert seit: 9. Feb 2005
26 Beiträge
 
#6

AW: Kommunikation mit SAP GUI ohne BAPI oder RFC

  Alt 9. Mai 2011, 21:18
Hi,

danke für den Link...ist eine sehr interesssante Lektüre und das sieht auch genau nach dem aus was ich benötige. Die Komponenten die du meinst sind wahrscheinlich die ActiveX Komponenten wdtfuncs.ocx, wdtlogon.ocx etc. Wenn ich diese in Delphi installieren möchte sagt er mir das die librfc32.dll nicht intalliert ist. Die befindet sich aber in meinem System32 Ordner. Ich tippe mal das er ein Problem damit hat, dass ich eine 64bit Windows Version habe. Habe schon versucht das Ding manuell per regsvr32.exe zu installieren...ohne Efolg! Habe grad leider keinen Rechner mit 32Bit System parat...sonst würde ich es da mal testen.

Geändert von Snaky ( 9. Mai 2011 um 21:47 Uhr)
  Mit Zitat antworten Zitat
Snaky

Registriert seit: 9. Feb 2005
26 Beiträge
 
#7

AW: Kommunikation mit SAP GUI ohne BAPI oder RFC

  Alt 10. Mai 2011, 12:01
Hi,

also ich habe es mal mit den TSAPLOGONCONTROL etc probiert...bekomme aber leider keine Verbindung. (RFC_ERROR_COMMUNICATION). Habe es sowohl über LAN (VPN) als auch über UMTS(VPN)[um den lokalen Router zu umgehen] versucht. Kein Chance. Mit meiner SAP GUI kann ich mich problemlos auf unserem firmeneigenen SAP System anmelden. Ich nehme an, dass die RFC Verbindung nicht erlaubt ist oder Ähnliches...oder hat jemand eine andere Idee woran der Fehler liegen könnte?
  Mit Zitat antworten Zitat
Snaky

Registriert seit: 9. Feb 2005
26 Beiträge
 
#8

AW: Kommunikation mit SAP GUI ohne BAPI oder RFC

  Alt 10. Mai 2011, 12:48
Hi Snaky,

schau Dir mal die Doku unter http://help.sap.com/printdocu/core/p...f/BCFESRFC.pdf an.
Das müsste das Control sein, das ich damals genutzt habe. Seite 38ff und 220ff.
Wo es die Delhpi-Unit dazu gibt, weiß ich allerdings nicht mehr...

Grüße,
Tim

Kann die Komponente leider auch nicht finden. Der Code den du oben gepostet hast scheint exakt das zu machen was ich brauche. Zumindest zu einem großen Teil. Also solltest du die Komponente nochmal finden...wäre cool wenn du mir Bescheid sagen könntest. Habe alles abgegrast und alles in Google reingeschmissen was ging, aber ohne Erfolg.

VG
  Mit Zitat antworten Zitat
jaevencooler

Registriert seit: 8. Sep 2005
Ort: Friedrichshafen
41 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Kommunikation mit SAP GUI ohne BAPI oder RFC

  Alt 10. Mai 2011, 14:23
Moin,

vielleicht blockt da ja eine Firewall, die nur bestimme Protokolle durch lässt.
Einfach mal die Netzwerker fragen, ob die ein Log haben welche Protokolle von Dir geblockt wurden ?
Ein ähnliches Thema hatte ich vor nicht allzu langer Zeit bei Mercedes in Bremen.

Gruß
Michael
Michael
Wissen ist Macht, nichts wissen macht auch nichts.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz