2010-06-07 13 views
7

Poiché il connettore SAP per .NET non è più gestito da SAP, ora sto cercando un'alternativa per connettere il mondo Microsoft con il mondo SAP . So che ci sono prodotti di terze parti come "ERPConnect", ma voglio farlo con strumenti da SAP (a proposito ho cannnot uso le Enterprise Services, in quanto il sistema di destinazione SAP è SAP 4.6C). Pertanto è nata l'idea pazzesca di utilizzare il connettore Java in combinazione con lo strumento IKVM.NET (www.ikvm.net/devguide/net2java.html). IKVM.NET fornisce lo strumento IKVMC, che converte il bytecode Java in dll e exe .NET. "Detto fatto!" Ho convertito il SAP JCo in DLL .NET e creato una nuova soluzione di Visual Studio. Ho inserito tutti i file JCO in una sottodirectory della mia soluzione. Ho impostato 2 riferimenti a IKVM.OpenJDK.Core.dll e sapjco.dll generati. Grande, tutte le classi JCO ora disponibili come classi .NET. Pieno di ottimismo, ho scritto un piccolo codice per connettersi a un sistema SAP.Pazza idea: Connetti .NET e SAP con SAP JCo utilizzando IKVM.NET

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

La compilazione del mio codice di test non ha avuto errori. "Meraviglioso!" Ho pensato. Quindi ho avviato il mio tetstapplication. Purtroppo ho avuto un'eccezione chiamando JCO.createClient:

Impossibile caricare strato middleware 'com.sap.mw.jco.rfc.MiddlewareRFC' \ r \ Nno sapjcorfc in java.library.path

I avere 2 domande su questo argomento.

1) Pensi che la mia idea di utilizzare il connettore Java SAP (SAP JCo) per connettere .NET con SAP sia una buona idea o non ha senso? Forse qualcuno aveva già la stessa idea ;-)

2) Come può essere risolta l'eccezione di cui sopra?

+1

Per quanto ne so JCO utilizza una libreria nativa per la connessione a sap, su linux questo file si chiama libsapjcorfc.so, probabilmente libsapjcorfc.dll su windows. Forse questa libreria ha solo bisogno di essere raggiungibile tramite la variabile d'ambiente PATH? –

+2

Buone notizie: SAP prevede di rilasciare una nuova versione del connettore SAP.NET -> http://wiki.sdn.sap.com/wiki/display/ABAPConn/ABAP+Connectivity+Home – Kottan

risposta

4

1) Non penso che questo approccio sia una buona idea. La connessione effettiva a linfa non viene eseguita da java (o da .net nel vecchio connettore .net). Ma da una DLL c chiamata, librfc32.dll. Credo che il supporto IKVM di JNI non sia completo.

Forse funzionerà, ma, anche se, sarà fragile.

+0

Sono d'accordo, farebbe più senso passare il tempo a scrivere un wrapper gestito attorno a librfc32.dll –

+0

IKVM supporta JNI bene. –

1

Non lo consiglierei in questo modo! Dovresti usare il modo diretto. Ad esempio, è possibile utilizzare SAP RFC SDK.

0

Penso che darei un'occhiata ai servizi Web, sarà più facile e più flessibile.

saluti