Domanda

Il nostro software è scritto in C # e ha bisogno di connettersi a SAP. Come alcuni dei nostri clienti utilizzano le vecchie versioni di SAP, e altri non hanno SAP PI, non siamo in grado di connettersi tramite webservices.

Ho provato a collegare a SAP attraverso il SAP NetWeaver Remote Function Call Library (sapnwrfc.dll) come segue:

  • Aggiungi sapnwrfc.dll e le altre dll da NWRFC_6-20004550.SAR   (Essendo icudt34.dll, icuin34.dll, icuuc34.dll, libicudecnumber.dll, e libsapucum.dll)   C:. \ WINDOWS \ system32, per essere sicuri che possono essere trovati
  • Nel mio codice C # aggiungere il seguente nella definizione della classe:
    [DllImport ( "sapnwrfc.dll", charset = CharSet.Auto)]
    extern public static RfcInit void ();
      e di seguito nel metodo che dovrebbe fare il lavoro:
    RfcInit ();

L'esecuzione di questo codice dà una DllNotFoundException:
Impossibile caricare la DLL 'sapnwrfc.dll': Questa applicazione non è riuscito ad avviare perché la configurazione dell'applicazione non è corretta. Reinstallare l'applicazone potrebbe risolvere questo problema. (Eccezione da HRESULT: 0x800736B1)

L'esecuzione standard Connect-to-C ++ - da-C # esempio
[DllImport ( "user32.dll", charset = CharSet.Unicode)]
public static extern int MessageBox (IntPtr hWnd, stringa di testo String didascalia, tipo uint);
MessageBox (nuova IntPtr (0), "Ciao Dialog", 0 "Ciao Mondo!");
funziona bene.

Qualche suggerimento come rendere questo bel lavoro (in modo che non abbiamo bisogno per risolvere questo problema scrivendo un proxy Java utilizzando JCo)?

È stato utile?

Soluzione

Hai controllato con il Visualizzatore di dipendenza se vi manca un po 'di DLL? una volta ho scritto un wrapper gestito per la libreria RFC (almeno una parte di esso) e mi ricordo di aver un problema con alcune delle librerie RFC che ho scaricato. Una versione semplicemente non ha funzionato e non ho capire cosa non andava. Un'altra versione (più vecchia) ha funzionato bene.

ho avuto comunque avere problemi con la libreria unicode (qualche problema di accesso alla memoria che è apparso in modo casuale) quindi ho dovuto passare alla versione non-unicode ...

Se dovessi fare qualcosa di simile di nuovo, vorrei molto seriamente considerare di acquistare un connettore: http://www.theobald-software.com/en/products/erpconnect. htm

Non posso dire se è un bene, ma sembrano essere in giro per un po '.

Altri suggerimenti

Perché non è sufficiente utilizzare "Connettore .NET" di SAP (NCo3)? Vedi nota SAP 856.863 per un link alla pagina di download e la documentazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top