2010-06-07 24 views
7

Como el SAP Connector para .NET ya no lo mantiene SAP, ahora estoy buscando una alternativa para conectar el mundo de Microsoft con el mundo de SAP . Sé que hay productos de terceros como "ERPConnect", pero quiero hacerlo con herramientas de SAP (por cierto, no puedo usar Enterprise Services, porque el sistema SAP objetivo es SAP 4.6C). Por lo tanto surgió la loca idea de usar el SAP Java Connector en combinación con la herramienta IKVM.NET (www.ikvm.net/devguide/net2java.html). IKVM.NET proporciona la herramienta IKVMC, que convierte el bytecode de Java en .NET dll y exe. "¡Dicho y hecho!" Convertí el SAP JCo a .NET dlls y creé una nueva solución de Visual Studio. Puse todos los archivos JCO en un subdirectorio de mi solución. Establecí 2 referencias al generado IKVM.OpenJDK.Core.dll y sapjco.dll. Genial, todas las clases de JCO ahora están disponibles como clases de .NET. Lleno de optimismo, escribí un pequeño código para conectarme a un sistema SAP.Idea loca: conecte .NET y SAP con SAP JCo utilizando IKVM.NET

JCO.Client client = null; client = JCO.createClient (...)

La compilación de mi código de prueba no tuvo errores. "¡Maravilloso!" Pensé. Luego comencé mi aplicación de téts. Desgracia, me dieron una excepción llamando JCO.createClient:

No se pudo cargar capa de middleware 'com.sap.mw.jco.rfc.MiddlewareRFC' \ r \ nno sapjcorfc en java.library.path

I tiene 2 preguntas sobre este tema.

1) ¿Cree que es buena idea mi idea de utilizar el conector de Java de Java (SAP JCo) para conectar .NET con SAP o es una tontería? Tal vez alguien ya tenía la misma idea ;-)

2) ¿Cómo se puede resolver la excepción anterior?

+1

Por lo que sé JCO utiliza una biblioteca nativa para la conexión a sap, en Linux este archivo se llama libsapjcorfc.so, probablemente libsapjcorfc.dll en Windows. Quizás esta Biblioteca solo necesita ser accesible a través de la variable de entorno PATH? –

+2

Buenas noticias: SAP planea lanzar una nueva versión del conector SAP.NET -> http://wiki.sdn.sap.com/wiki/display/ABAPConn/ABAP+Connectivity+Home – Kottan

Respuesta

4

1) No creo que este enfoque sea una buena idea. La conexión real a sap no se realiza desde Java (o desde .net en el antiguo conector .net). Pero desde un c dll llamado, librfc32.dll. Creo que el soporte de IKVM de JNI no está completo.

Tal vez funcione, pero, incluso, será frágil.

+0

Estoy de acuerdo, haría más sentido para pasar su tiempo escribiendo un contenedor administrado alrededor de librfc32.dll –

+0

IKVM es compatible con JNI. –

1

¡No lo recomendaría de esta manera! Debes usar el camino directo. Por ejemplo, puede usar el SAP RFC SDK.

0

Creo que deberías echar un vistazo a los servicios web, será más fácil y más flexible.

Saludos