Comment puis-je me connecter à SAP de C # à la bibliothèque RFC SAP NetWeaver (de sapnwrfc.dll)?

StackOverflow https://stackoverflow.com/questions/2342324

Question

Notre logiciel est écrit en C # et doit se connecter à SAP. Comme certains de nos clients utilisent les anciennes versions de SAP et d'autres n'ont pas SAP PI, nous ne pouvons pas se connecter via webservices.

J'ai essayé de se connecter à SAP via la fonction à distance SAP NetWeaver Bibliothèque d'appel (sapnwrfc.dll) comme suit:

  • Ajoutez sapnwrfc.dll et les autres dll de NWRFC_6-20004550.SAR   (Étant icudt34.dll, icuin34.dll, icuuc34.dll, libicudecnumber.dll et libsapucum.dll)   C:. \ WINDOWS \ system32, pour être sûr qu'ils peuvent être trouvés
  • Dans mon code C # ajouter ce qui suit dans la définition de classe:
    [DllImport ( "sapnwrfc.dll", charset = CharSet.Auto)]
    extern public static RfcInit void ();
      et ce qui suit dans la méthode qui devrait faire le travail:
    RfcInit ();

L'exécution de ce code donne un DllNotFoundException:
Impossible de charger « sapnwrfc.dll » DLL: Cette application n'a pas pu démarrer car la configuration de l'application est incorrecte. Réinstaller l'application peut résoudre ce problème. (Exception de HRESULT: 0x800736b1)

L'exécution de la fonction standard de connexion à C ++ - C # de-exemple
[DllImport ( "user32.dll", charset = CharSet.Unicode)]
extern public static int MessageBox (IntPtr hWnd, texte String, légende String, type uint);
MessageBox (nouveau IntPtr (0), "Bonjour tout le monde!", "Bonjour dialogue", 0);
fonctionne très bien.

Toutes les suggestions comment faire ce beau travail (afin que nous ne avons pas besoin de contourner ce problème en écrivant un proxy Java à l'aide ODC)?

Était-ce utile?

La solution

Avez-vous vérifié avec la dépendance Viewer si vous manquez une DLL? Je n'inscriptible une seule fois un wrapper managé pour la bibliothèque rfc (au moins une partie de celui-ci) et je me souviens d'avoir un problème avec certaines bibliothèques rfc j'ai téléchargé. Une version n'a tout simplement pas fonctionné et je ne figure pas sur ce qui était faux. Une autre version (plus) fonctionnait très bien.

J'ai cependant des problèmes avec la bibliothèque unicode (certains des problèmes d'accès à la mémoire qui est apparu au hasard) si je devais passer à la version non-unicode ...

Si je devais faire quelque chose comme ça à nouveau, je considère très sérieusement d'acheter un connecteur: http://www.theobald-software.com/en/products/erpconnect. htm

Je ne peux pas dire si elle est une bonne, mais ils semblent être là pour un certain temps maintenant.

Autres conseils

Pourquoi ne pas utiliser simplement "connecteur .NET" de SAP (NCo3)? Voir la note SAP 856863 pour un lien vers la page de téléchargement et la documentation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top