Avalados por :

Cómo crear una entrada de diario en SAP Business One usando SBO DI API y C# - Solución al error -4006

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

Hola expertos, necesito crear una entrada de diario a través de SBO DI API usando C# pero sigo obteniendo el código de error -4006 (actualizar el tipo de cambio) a pesar de que ya lo configuré en 'Administración->Tipos de Cambio e Índices'. También revisé el https://scn.sap.com/thread/3813776 post.

Aquí está mi código, ¿qué me falta?

Muchas gracias 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...

Hola Edy, eliminando la línea


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


fue suficiente para resolver el problema. Muchas gracias amigo.

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

Hola Carlos,

Según el correo electrónico de Edy, debes eliminar la última línea oJornal.Lines.Add. También debes llamar a SetCurrentLine(1) después de la primera línea oJornal.Lines.Add, de lo contrario estarás sobrescribiendo la primera línea.

¿Qué es '1-1-01-01-003"? ¿Es un código de cuenta GL o un código de BP? Si es lo primero, entonces deberías estar usando el número de sistema para la cuenta y no el número de cuenta formateado. Si es un código de BP, por favor verifica en qué moneda está configurado este BP y asegúrate de que esta moneda tenga una tasa de cambio válida para la fecha del diario.

Saludos cordiales,

Owen

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

Hola Carlos,

¿Puedes intentar lo siguiente?:

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

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

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

2. Verifica oCompany.GetDBServerDate(), ¿Qué te devuelve?

3. Intenta crearlo como un JournalVoucher y trata de contabilizarlo en JE desde la aplicación, verifica si tiene el mismo problema. ¿Qué versión de SBO estás utilizando?

No deberías tener problemas con la tasa de cambio, porque tu JE solo está contabilizando en moneda local.

Saludos
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?