Pergunta

Nosso software está escrito em C# e precisa se conectar ao SAP. Como alguns de nossos clientes usam versões mais antigas do SAP, e outros não têm o SAP PI, não podemos conectar através do WebServices.

Tentei me conectar ao SAP através da SAP NetWeaver Remote Function Call Library (SAPNWRFC.DLL) da seguinte forma:

  • Adicione o SAPNWRFC.DLL e as outras DLLs de NWRFC_6-20004550.sar (sendo ICUDT34.DLL, ICUIN34.DLL, ICUUC34.dll, libicudecnumber.dll e libsapucum.dll) a C: Windows System32, para ter certeza de que eles pode ser encontrado.
  • No meu código C#, adicione o seguinte na definição da classe:
    Dllimport ("Sapnwrfc.dll", charset = charset.auto)
    public estático externo vazio rfcinit ();
    e o seguinte no método que deve fazer o trabalho:
    Rfcinit ();

A execução deste código fornece uma dllnotfoundException:
Incapaz de carregar DLL 'SAPNWRFC.DLL': Este aplicativo não foi iniciado porque a configuração do aplicativo está incorreta. Reinstalar o aplicativo pode corrigir esse problema. (Exceção de HRESULT: 0x800736b1)

Executando o exemplo de conexão com c ++ padrão-de C#
Dllimport ("user32.dll", charset = charset.unicode)
public static extern int MessageBox (intptr hwnd, texto da string, legenda da string, tipo de UINT);
MessageBox (novo intptr (0), "Hello World!", "Hello Dialog", 0);
funciona bem.

Alguma sugestão de como fazer com que isso funcione bem (para que não precisemos alternar esse problema escrevendo um proxy Java usando o JCO)?

Foi útil?

Solução

Você verificou com o visualizador de dependência se estiver perdendo alguma DLL? Uma vez escrevi um invólucro gerenciado para a biblioteca RFC (pelo menos parte dela) e lembro -me de ter um problema com algumas das bibliotecas da RFC que baixei. Uma versão simplesmente não funcionou e eu não descobri o que estava errado. Outra versão (mais antiga) funcionou muito bem.

No entanto, tive problemas com a biblioteca Unicode (algum problema de acesso à memória que apareceu aleatoriamente), então tive que mudar para a versão não-unicode ...

Se eu tivesse que fazer algo assim novamente, consideraria seriamente comprar um conector:http://www.theobald-seftware.com/en/products/erpconnect.htm

Não posso dizer se é bom, mas eles parecem estar por perto por um tempo agora.

Outras dicas

Resposta simples: não.

A saída bruta exibe apenas a saída do componente de uma página, nada mais.

Tente usar isso em vez de tmpl=component

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top