¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como criar uma entrada de diário no SAP Business One usando SBO DI API e C# - Solução para o erro -4006

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

Olá especialistas, preciso criar uma entrada de diário através do SBO DI API usando C#, mas continuo recebendo o código de erro -4006 (atualizar o tipo de câmbio) mesmo depois de configurá-lo em 'Administração-> Tipos de Câmbio e Índices'. Também revisei o https://scn.sap.com/thread/3813776 post.

Aqui está meu código, o que estou perdendo?

Muito obrigado amigos.

try

{

string CampoMemo = CardCode;

oJornal = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);

oJornal.TransactionCode = "XXX";

oJornal.Lines.SetCurrentLine(0);

oJornal.Lines.AccountCode = "1-1-01-03-004";

oJornal.Lines.Debit = monto;

oJornal.Lines.Credit = 0;

oJornal.Lines.ContraAccount = "1-1-01-01-003";

oJornal.Lines.LineMemo = CampoMemo;

oJornal.Lines.Reference1 = CardName;

oJornal.Lines.Reference2 = CardCode;

oJornal.Lines.ShortName = "1-1-01-03-004";

oJornal.Lines.Add();

oJornal.Lines.AccountCode = "1-1-01-01-003";

oJornal.Lines.Credit = monto;

oJornal.Lines.Debit = 0;

oJornal.Lines.ContraAccount = "1-1-01-03-004";

oJornal.Lines.LineMemo = CampoMemo;

oJornal.Lines.Reference1 = CardName;

oJornal.Lines.Reference2 = CardCode;

oJornal.Lines.ShortName = "1-1-01-01-003";

oJornal.Lines.Add();

oJornal.ReferenceDate = oCompany.GetDBServerDate();

oJornal.Memo = CampoMemo;

oJornal.Reference = CardName;

oJornal.Reference2 = CardCode;

errCode = oJornal.Add();


if (errCode == 0)

{

return true;

}

else

{

throw new Exception(oCompany.GetLastErrorDescription());

}

}

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

3 Respuestas

0
Cargando...

Olá Edy, removendo a linha


oJornal.Lines.Add(); //<----- Remover esta linha


foi suficiente para resolver o problema. Muito obrigado amigo.

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

Olá Carlos,

Segundo o e-mail de Edy, você deve excluir a última linha oJornal.Lines.Add. Além disso, você deve chamar SetCurrentLine(1) após a primeira linha oJornal.Lines.Add, caso contrário estará sobrescrevendo a primeira linha.

O que é '1-1-01-01-003'? É um código de conta GL ou um código de BP? Se for o primeiro, então você deveria estar usando o número do sistema para a conta e não o número de conta formatado. Se for um código de BP, por favor verifique em que moeda este BP está configurado e certifique-se de que esta moeda tenha uma taxa de câmbio válida para a data do diário.

Atenciosamente,

Owen

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

Olá Carlos,

Podes tentar o seguinte?:

1. Elimina a última oJournalLines.Add() de

oJornal.Lines.ShortName = "1-1-01-01-003";

oJornal.Lines.Add();†††††††††† //<----- Elimina esta línea

2. Verifica oCompany.GetDBServerDate(), o que retorna?

3. Tenta criá-lo como um JournalVoucher e tenta contabilizá-lo no JE a partir da aplicação, verifica se tem o mesmo problema. Qual versão do SBO estás a utilizar?

Não deverias ter problemas com a taxa de câmbio, porque o teu JE está apenas a contabilizar na moeda local.

Saudações
Edy

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?