Avalados por :

Problema ao usar Java para acessar dados do SAP B1: Como importar dados externos no módulo de pedidos?

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 1 Vistas
0
Cargando...

Olá pessoal,

Acabei de usar Java para acessar os dados do SAP B1 e me deparei com um problema, não faço ideia do que fazer.

Importei dados para o SAP B1 de um arquivo e exportei dados do SAP para um arquivo, apenas no módulo de parceiros de negócios,

está tudo bem.

Também consigo exportar dados de ORDR do banco de dados do SAP B1 para um arquivo.

Mas não consigo importar dados externos sobre o módulo de pedidos, apenas a tabela ORDR.

Tenho procurado na WEB por 2 dias e não encontro nada!

Agradeceria muito a sua grande ajuda. Poderiam me dar um exemplo, deveria ser perfeito?

REGISTRO DE ERROS sobre a operação de atualização:

!!!Erro***-Foi encontrada uma exceção COM:

Em Invocar: Atualizar

Descrição: O servidor lançou uma exceção.

com.sap.smb.sbo.wrapper.com.ComFailException: Foi encontrada uma exceção COM:

Em Invocar: Atualizar

Descrição: O servidor lançou uma exceção.

em com.sap.smb.sbo.wrapper.com.Dispatch.invokev(Método nativo)

em com.sap.smb.sbo.wrapper.com.Dispatch.invokev(Fuente desconocida)

em com.sap.smb.sbo.wrapper.com.Dispatch.callN(Fuente desconocida)

em com.sap.smb.sbo.wrapper.com.Dispatch.call(Fuente desconocida)

==========================================================

O REGISTRO DE ERROS sobre a operação de adição é semelhante:

!!!Erro***-Foi encontrada uma exceção COM:

Em Invocar: Adicionar

Descrição: O servidor lançou uma exceção.

com.sap.smb.sbo.wrapper.com.ComFailException: Foi encontrada uma exceção COM:

Em Invocar: Adicionar

Descrição: O servidor lançou uma exceção.

......

=================================================================

O seguinte é apenas um trecho de código.

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ICompany vCompany = SapSdkHelper.getICompany();

vCompany.connect();

IDocuments aOrder = SBOCOMUtil.newDocuments(vCompany,

SBOCOMConstants.BoObjectTypes_Document_oOrders);

IDocument_Lines line = aOrder.getLines();//line deveria ser os dados na tabela rdr1

int successCount = 0;

for (String[] rowData : dataList) {

Integer key = new Integer(rowData[0]);

if (aOrder.getByKey(key)) {

aOrder.setAddress(aOrder.getAddress()+"teste");

int rr = aOrder.update();

SBOErrorMessage errMsg = vCompany.getLastError();

System.out.println(errMsg.getErrorMessage());

System.out.println(rr);

continue;

}

aOrder.setDocNum(key);

...

aOrder.setCardCode(rowData[2]);

aOrder.setCardName(rowData[3]);

aOrder.setDocTotal(Double.valueOf(rowData[4]));

aOrder.setDocType(SBOCOMConstants.BoDocumentTypes_dDocument_Items);

//aOrder.setDocCurrency("RMB");

//aOrder.setDocRate(10.1);

line.setItemCode("A00001");

line.setItemDescription("Descrição de teste");

line.setQuantity(new Double(3));

line.setPrice(new Double(3));

//line.setRate(10.1);

//line.setCurrency("RMB");

//line.add();

long rc = aOrder.add();

SBOErrorMessage errMsg = vCompany.getLastError();

System.out.println(errMsg.getErrorMessage());

System.out.println(rc);

successCount++;

}

vCompany.disconnect();

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá,

Não é que não queiramos ajudar, a maioria das pessoas aqui não usa Java.

Aqui as pessoas desenvolvem principalmente no Visual Studio C# ou VB.NET.

Por isso me resulta difícil controlar o seu código.

O que faria na sua situação é o seguinte:

Crie um procedimento único que

1. Utilize apenas o método getByKey

2. Altere um único valor

3. E depois atualize.

Não utilize todo o código que você publicou.

Quando o procedimento simples funcionar, pelo menos saberá que pode atualizar pedidos.

Então, o erro está no grande fragmento de código.

Saudações, David

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Por favor, deja tus comentarios.

A versão do SAP B1 é 7.10.32 SP:00 EF:2.

A versão do SDK está contida no SAP B1.

Muito obrigado,

MZ

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Apenas uma consulta

Entendi.

Se tiver alguma dúvida sobre este assunto, por favor, entre em contato comigo.

Para o SAP B1, você só precisa aplicar um patch no java.exe. Se estiver desenvolvendo/testando algo no IDE, também precisa aplicar um patch no javaw.exe, por favor, leve em consideração o caminho correto usado no IDE.

Apenas os meus passos:

1. Baixe o Visual Studio Express 2008 no microsoft.com e instale online (não é necessário baixar o SQLSERVER Express)

2. Faça backup do arquivo exe original, java.exe/javaw.exe

3. Edite a variável de ambiente PATH mais 'C:Program FilesMicrosoft Visual Studio 9.0VC_x0008_in'

4. Abra a janela CMD e vá para %JAVA_HOME%/bin/

5. Use o dumpbin.exe para verificar o tamanho da pilha original

dumpbin.exe /headers java.exe

encontre a linha: 40000 tamanho da reserva de pilha

Significa que o tamanho da pilha atual é 256k

6. Use o editbin.exe para aplicar o patch no exe, por exemplo, com um tamanho de pilha de 2m

2m = 2 * 1024 *1024 bytes = 2097152 bytes

editbin.exe /stack:2097152 javaw.exe

7. Use o dumpbin.exe para verificar o patch.

dumpbin.exe /headers java.exe

dumpbin.exe /headers javaw.exe

encontre a linha: 200000 tamanho da reserva de pilha

Significa que o tamanho da pilha atual é 2m

TUDO CERTO!

A versão do SAP B1 é 7.10.32 SP:00 EF:2.

A versão do SDK está contida apenas no SAP B1.

Espero que isso ajude um pouco.

MZ

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Atualizar os dados da ordem de venda.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?