¿Cómo puedo conectar a SAP desde C # a través de la Biblioteca SAP NetWeaver RFC (sapnwrfc.dll)?

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

Pregunta

Nuestro software está escrito en C # y necesita conectarse a SAP. Como algunos de nuestros clientes utilizar las versiones anteriores de SAP, y otros no tienen SAP PI, no podemos conectar a través de servicios web.

He intentado conectarse a SAP a través del mando a distancia Función SAP NetWeaver Call Library (sapnwrfc.dll) de la siguiente manera:

  • Agregar sapnwrfc.dll y los otros archivos DLL de NWRFC_6-20004550.SAR   (Siendo icudt34.dll, icuin34.dll, icuuc34.dll, libicudecnumber.dll, y libsapucum.dll)   C:. \ WINDOWS \ system32, para estar seguro de que se pueden encontrar
  • En mi código C # agrega el siguiente en la definición de clase:
    [DllImport ( "sapnwrfc.dll", charset = CharSet.Auto)]
    public static extern RfcInit vacío ();
      y la siguiente en el método que se debe hacer el trabajo:
    RfcInit ();

Al ejecutar este código da una DllNotFoundException:
No se puede cargar DLL 'sapnwrfc.dll': Esta aplicación no pudo iniciar porque la configuración de la aplicación es incorrecta. Reinstalar la aplicación podría resolver el problema. (Excepción de HRESULT: 0x800736B1)

Ejecución del estándar de conexión a C ++ --de ejemplo de C #
[DllImport ( "user32.dll", charset = CharSet.Unicode)]
public static extern int de mensaje (IntPtr CVent, texto String, String título, tipo uint);
MessageBox (nueva IntPtr (0), "Hello World!", "Hola diálogo", 0);
funciona bien.

Alguna sugerencia de cómo hacer este trabajo fino (de modo que no necesitamos para solucionar este problema escribiendo un proxy Java utilizando JCo)?

¿Fue útil?

Solución

¿Ha comprobado con el Visor de dependencia si le falta algún archivo DLL? Yo una vez escribo un contenedor administrado para la biblioteca RFC (al menos parte de ella) y yo recuerdo haber tenido un problema con algunas de las bibliotecas RFC he descargado. Una versión simplemente no funcionaba y yo no averiguar lo que estaba mal. Otra versión (más) funcionaba bien.

Me hizo sin embargo tienen problemas con la biblioteca Unicode (algún problema de acceso a la memoria que apareció al azar) así que tuve que cambiar a la versión no Unicode ...

Si tuviera que hacer algo como esto otra vez, me consideraría muy seriamente para comprar un conector: http://www.theobald-software.com/en/products/erpconnect. htm

No se puede decir si es bueno, pero que parecen estar allí por un tiempo.

Otros consejos

¿Por qué no sólo tiene que utilizar "Conector de .NET" de SAP (NCo3)? Véase la nota SAP 856863 para un enlace a la página de descarga y documentación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top