Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   SAP Schnittstelle per librfc32.dll (https://www.delphipraxis.net/104106-sap-schnittstelle-per-librfc32-dll.html)

IAhh 27. Nov 2007 14:35


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

FunkyGT 14. Dez 2009 11:02

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

mjustin 14. Dez 2009 11:11

Re: SAP Schnittstelle per librfc32.dll
 
Zitat:

Zitat von FunkyGT
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

Vielleicht hier: http://www.gs-soft.com/cms/index.php...-sap-sapx.html

Es gibt dort auch eine Trial Version, und unterstützt wird Delphi bis Version 2010

Viele Grüße,

GHorn 14. Dez 2009 12:35

Re: SAP Schnittstelle per librfc32.dll
 
Ich hab das vor einigen Monden mal so gemacht:

Delphi-Quellcode:

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;
So auf die Schnelle und aus der Erinnerung...
Hilft das weiter?

Gruß
Gerald


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz