Entwickler-Ecke

Sonstiges (Delphi) - Zugriff auf SAP-Server klappt nicht


jjturbo - Di 24.11.09 15:05
Titel: Zugriff auf SAP-Server klappt nicht
Moin Forum,

ich versuche gerade eine Verbindung zu einem SAP-Server herzustellen. Dazu habe ich ein paar .ocx-dateien und eine DLL bekommen. Diese habe ich auch registriert, regsvr32 meldete jedenfalls, daß es geklappt hat.
Kompilieren klappt, beim ersten Zugriff auf eine der Komponenten bekomme ich die Fehlermeldung Klasse nicht registriert".
Sind die bereits registrierten Dateien evtl. noch von anderen, noch nicht registrierten abhängig?
Hat von Euch schon mal jemand eine Verbindung zu SAP aufgebaut?


Gruß Oliver


guinnes - Di 24.11.09 15:21

Ich !
Ich kann mir nicht vorstellen, dass das mit ein paar OCX'en und ner dll getan ist. Bei mir ist die SAP-GUI installiert und hier gibts keine Probleme mit dem SAP-Zugriff über RFC


jjturbo - Di 24.11.09 15:28

Hmmm...

Die Installation der GUI möchte ich mir eigentlich ersparen.
Wenn der Kunde irgendwann mall eine Softwareänderung benötigt, müßte ich ja, falls ich zwischendurch mal mein Windows neu aufgesetzt habe, die SAP-GUI nur hierfür wieder installieren...

Habe grad noch einen interessanten Thread in einem anderen Forum gefunden (Wo auch jemand namens guinnes gepostet hat ;) ), dort verweist jemand auf ein Programm "Dependcy Walker". Hört sich interessant an, oder?

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Dependency Walker zeigt mir in der Tat drei fehlende Dateien an:
DRVADODB.DLL
IESHIMS.DLL
WER.DLL

Gehören die zu SAP?


guinnes - Di 24.11.09 15:47

Ich find die Dateien bei mir nicht


Robert.Wachtel - Di 24.11.09 16:05

user profile iconjjturbo hat folgendes geschrieben Zum zitierten Posting springen:
[...] Wenn der Kunde irgendwann mall eine Softwareänderung benötigt, müßte ich ja, falls ich zwischendurch mal mein Windows neu aufgesetzt habe, die SAP-GUI nur hierfür wieder installieren... [...]

Genau daher ist die Virtualisierung von Entwicklungsumgebungen das Mittel der Wahl.


guinnes - Di 24.11.09 16:14

user profile iconjjturbo hat folgendes geschrieben Zum zitierten Posting springen:
Dependency Walker zeigt mir in der Tat drei fehlende Dateien an:

Leider zeigt der Dependency Walker keine fehlenden OCX'e an


jjturbo - Di 24.11.09 17:21

Jetzt habe ich mir die SAP-GUI mal installiert, aber bei Connection1.Connect bekomme ich immer noch die Meldung "Klasse nicht registriert".
Wie kann ich denn rausfinden was jetzt noch fehlt?


jjturbo - Di 24.11.09 17:41

Vielleicht mache ich ja noch irgendetwas grundlegend falsch?
Könnte mal jemand einen Code-Schnipsel posten für ein Mini-Programm, was nichts weiter macht als einen Connect zu SAP?


guinnes - Di 24.11.09 18:46

user profile iconjjturbo hat folgendes geschrieben Zum zitierten Posting springen:
Könnte mal jemand einen Code-Schnipsel posten für ein Mini-Programm, was nichts weiter macht als einen Connect zu SAP?

Das LogIn sollte vollkommen ohne Code gehen : einfach auf die Connection klicken, Name, Passwort und Sprache eingeben, und das gewünschte System auswählen. Wenn das auch nicht geht, hast du vielleicht ein falsches OCX importiert ? Die SAP-Installation glänzt nicht grade durch Durchgängigkeit


kalmi01 - Di 24.11.09 18:53

Hi,

wenns was kosten darf: http://www.gs-soft.com/cms/index.php/products/connect-for-sap-sapx.html
oder für "zu Fuss": http://www.joachim-lentz.homepage.t-online.de/bapi2.htm

Ansonsten, aus den gemachten Angaben lassen sich keine hilfreichen Ideen ableiten.
Was für OCX'e, welche SAP-Release, Unicode oder Non-Unicode, Delphi-Version ?
Wenn Du davon was preisgeben könntest, würde das bestimmt helfen.

PS: Eigentlich brauchst Du ausser der librfc32.dll nichts weiter. Sofern Du keine SAP-Tabellen oder komplexe Strukturen abbilden willst, ist das völlig ausreichend.
Wenn's was kosten darf oder Zeit ein Faktor ist, würde ich aber auf SAPx (s.o.) zurückgreifen.
Ist inzwischen auch recht stabil und zuverlässig geworden. Und auch der Support hat sich gegenüber meinen Anfangserfahrungen deutlich verbessert.


guinnes - Mi 25.11.09 09:30

Ich hab nochmal gekuckt :
Ein TSAPLogonControl aufs Formular, starten. Dann das LogOnControl klicken und dann sollte es gehen.
Eine Frage ist auch noch, was genau du machen willst : BAPI oder RFC ?


jjturbo - Do 26.11.09 10:17

Also, bin einen Schritt weiter: Ich habe zum Testen auf einer VM die SAP-GUI 6.40 installiert, und mein Delphi2007. Dort funktioniert alles tadellos.

jetzt habe ich mir einige OCXe aus der VM auf meinen "richtigen" PC gezogen und registriert, die Typbibliotheken in Delphi importiert, Komponenten installiert.
So weit so gut.
Wenn ich allerdings die Komponente "TSAPFunctions" versuche auf mein Formular zu ziehen, bekomme ich eine Fehlermeldung "Für diesen Vorgang ist nicht genügend Speicher verfügbar".
das passirt auch, wenn ich versuche eine TSAPFuntions zur laufzeit zu erstellen.

Ach ja, versuche RFC.

Gruß Oliver


guinnes - Do 26.11.09 10:29

Mal zum Vergleich der Kopf SAPFunctions-Unit, die unter Delphi 5 vollkommen schmerzfrei geht :

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
// PASTLWTR : $Revision:   1.88.1.0.1.0  $
// Datei generiert am 07.01.2005 16:05:32 aus der unten beschriebenen Typbibliothek.

// ************************************************************************ //
// Typbib: C:\Programme\SAP\FrontEnd\Controls\wdtfuncs.ocx (1)
// IID\LCID: {5B076C00-2F26-11CF-9AE5-0800096E19F4}\0
// Hilfedatei: 
// AbhLst: 
//   (1) v2.0 stdole, (C:\WINDOWS\System32\stdole2.tlb)
//   (2) v4.0 StdVCL, (C:\WINDOWS\System32\STDVCL40.DLL)
// Fehler
//   Hinweis: Function geändert zu Function_
//   Hinweis: Exports geändert zu Exports_
//   Hinweis: Element 'Type' von 'IStructure' geändert zu 'Type_'
//   Hinweis: Element 'Function' von 'IStructure' geändert zu 'Function_'
//   Hinweis: Element 'Exports' von 'IFunction' geändert zu 'Exports_'
//   Hinweis: Element 'Type' von 'IParameter' geändert zu 'Type_'
//   Hinweis: Element 'Function' von 'IParameter' geändert zu 'Function_'
// ************************************************************************ //