![]() |
SAP Schnittstelle per librfc32.dll
Hallo Forum!
Ich möchte einen Anwendung an SAP anbinden! Bisher habe ich RFCs aus Delphi heraus aufgerufen (RfcCallReceiveEx) und die Ergebnisse ausgewertet. Das scheint alles zu funktionieren. Nun möchte/muss ich für SAP den Server spielen, d.h. Dienste anbietet die SAP bei mir aufrufen kann. Auch hierfür gibt es in der librfc32.dll ja einige Funktionen. Zunächst rufe ich RfcAccept auf um meinen Server bei SAP zu registrieren. Klappt. Das zurück gegebene Handle merke ich mir. Damit starte ich RfcDispatch und teste die Verbindung von SAP aus. Klappt. Nach dem registrieren einer Funktion mit RfcInstallFunction und einem Aufruf dieser Funktion von SAP aus stürzte meine Anwendung mit Zugriffsverletzungen und der SAP-Meldung "Funktion XY nicht vorhanden" ab. Offensichtlich habe ich es nicht geschafft den Funktionszeiger richtig zu definieren... Oder so...! Da mir dieser Weg also wie eine Sackgasse vorkam habe ich den anderen möglichen weg probieren wollen: Mit RfcListen oder RfcWaitForRequest auf eingehende Verbindungen lauschen und bei Bedarf mit RfcGetName den Namen der gerufenen Funktion zu ermitteln und den Rest selber zu handeln. Und hier kommt mein momentanes Problem: Alle drei letztgenannten Funktionen sagen mir das übergebene Handle sei invalid: <* RfcListen [1245064] : returns 18:RFC_INVALID_HANDLE RfcDispatch akzeptiert das Handle und hat offensichtlich Verbindung zum SAP! Aber die anderen Funktionen mögen es nicht! Ist jemandem soetwas bekannt, oder hat jemand einen Vermutung? Ich bin natürlich auch für vage Hinweise Dankbar! Mfg, IAhh |
Re: SAP Schnittstelle per librfc32.dll
Tach zusammen, hallo IAhh
gibt es zu diesem Problem eigentlich eine Lösung. Stehe auch vor diesem Problem .... und kann es nicht lösen wenn jemand noch eine Idee hat ..... ich wäre für jeden Tip dankbar stay tuned Funky |
Re: SAP Schnittstelle per librfc32.dll
Zitat:
![]() Es gibt dort auch eine Trial Version, und unterstützt wird Delphi bis Version 2010 Viele Grüße, |
Re: SAP Schnittstelle per librfc32.dll
Ich hab das vor einigen Monden mal so gemacht:
Delphi-Quellcode:
So auf die Schnelle und aus der Erinnerung...ihRFC, n: integer; RFC_rcv: integer; cParameters: string; RFCFuncName: string[255]; // Name der Function // cParameters enthält die Verbindungsparameter ihRFC := RfcAcceptExt(cParameters); // bei Erfolg = 1 if ihRFC = 0 then begin // Fehlerbehandlung ... end else begin RC_rcv := 7; // 7 = RFC_Retry while RFC_Rcv = 7 do begin RFC_Rcv := RfcListen(ihRFC); // alles <> 0 bedeutet einen Fehler if RFC_Rcv <> 0 then // or RFC_rcv = 7 begin // Errorhandling .... end else begin // in RFCFuncName wird er Name der aufgerufenen Funktion // zurückgegeben: n := RfcGetName(ihRFC, RFCFuncName); // n <> 0 -> Fehler end; end; end; Hilft das weiter? Gruß Gerald |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 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