Frage

Unsere Software ist in C # geschrieben und Bedürfnissen zu SAP verbinden. Da einige unserer Kunden ältere Versionen von SAP nutzen, und andere nicht SAP PI haben, können wir nicht durch einen Web Service verbinden.

Ich habe versucht zu SAP über den SAP NetWeaver Remote Function Call Library (sapnwrfc.dll) zu verbinden, wie folgt:

  • Add sapnwrfc.dll und die anderen dlls von NWRFC_6-20004550.SAR   (Wobei icudt34.dll, icuin34.dll, icuuc34.dll, libicudecnumber.dll und libsapucum.dll)   C:. \ WINDOWS \ system32, um sicher zu sein, dass sie gefunden werden können
  • In meinem C # -Code die folgenden in der Klassendefinition hinzufügen:
    [DllImport ( "sapnwrfc.dll", charset = CharSet.Auto)]
    public static extern void RfcInit ();
      und die folgenden in der Methode, die die Arbeit tun sollte:
    RfcInit ();

Ausführen dieses Codes gibt einen DllNotFoundException:
Nicht imstande, DLL ‚sapnwrfc.dll‘ zu laden: Die Anwendung kann nicht gestartet werden, weil die Anwendungskonfiguration falsch ist. Eine Neuinstallation der Anwendung könnte das Problem lösen. (Ausnahme von HRESULT: 0x800736B1)

Ausführen des Standard-connect-to-C ++ - aus-C # Beispiel
[DllImport ( "user32.dll", charset = CharSet.Unicode)]
public static extern int MessageBox (IntPtr hWnd, String Text, String Beschriftung, uint-Typ);
MessageBox (neu IntPtr (0), "Hallo Welt!", "Hallo Dialog", 0);
funktioniert gut.

Haben Sie Vorschläge, wie man diese Arbeit gut machen (so, dass wir nicht brauchen, um dieses Problem zu umgehen, indem Sie einen Java-Proxy-Schreiben mit JCo)?

War es hilfreich?

Lösung

Haben überprüfen Sie mit dem Dependency Viewer, wenn Sie einige DLL fehlen? Ich habe einmal einen verwalteten Wrapper für die RFC-Bibliothek (zumindest einen Teil davon) schreiben und ich erinnere mich ein Problem mit einigen der rfc-Bibliotheken, die ich heruntergeladen. Eine Version hat einfach nicht funktioniert und ich habe nicht herausfinden, was falsch war. Eine andere Version (ältere) funktionierte gut.

Ich hatte jedoch Probleme mit der Unicode-Bibliothek (einiger Speicherzugriff Problem, das zufällig erschien), damit ich auf die Nicht-Unicode-Version ...

wechseln hatte

Wenn ich so etwas wie dies wieder tun hätte, würde ich sehr ernsthaft in Erwägung ziehen, einen Verbinder zu kaufen: http://www.theobald-software.com/en/products/erpconnect. htm

Ich kann nicht sagen, ob es gut ist, aber sie scheinen jetzt für eine Weile zusammen zu sein.

Andere Tipps

Warum gehst du nicht einfach SAPs ".NET Connector" verwenden (NCo3)? Siehe SAP-Hinweis 856863 für einen Link zur Download-Seite und Dokumentation.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top