Buenas tardes equipo de MEGA EXPERTOS en SAP B1 y SDK… xD (yo soy un completo novato que tengo más de 8 años sin programar y me ha tocado hacer un par de cambios a un AddOn viejo)…
Bueno les comento un poco mi problema.
En mi empresa usan 2 BD de empresas vamos a llamarla BD1 y BD2.
En la BD1 tienen un AddOn que funciona bien y hace unas cargas de nómina y crea la Poliza del pago de la nómina.
Este Addon Me están pidiendo lo ponga a funcionar en la BD2 con un par de cambios (ahora va a manejar 2 campos adicionales de Centros de Costo).
Bien. El addon ya lo modifiqué.
Si este AddOn modificado, lo corro en una BD de pruebas de BD1 (Llamemoslo BD1P), funciona a la perfección. Busca la información, hace los cálculos y todo perfecto. (incluso agrega los centros de costo ya configurados también en esta BD1P).
Pero cuando corro el AddOn en la BD2P me arroja un mensaje de error en la acción de:
Journalentry.add()
El error es: “-5002 - No tiene autorización para modificar las fechas a nivel de línea”.
El problema es que en el código NO modifico la fecha de ninguna linea, solo de cabecera para ponerle la fecha de contabilización. Otra cosa es como les digo en BD1P no arroja dicho error.
Esto me da a entender que debe ser un tema con las cuentas contables (aquí si son diferentes entre las 2 BD). la cosa es que no se que revisar de las cuentas. Todas están activas y no tienen “fecha de inactivo” o algo así.
¿Qué me recomiendan buscar?
Copio la parte del código donde arroja el error por si me está faltando algo y no lo sé.
'Antes de todo esto valida que los campos estén llenos y demás
'--- realizar consulta
oRecSet = cSBOCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
oRecSet.DoQuery(CommonFunc.SQLSentence(1, stAño, stPeriodoID, stPeriodo, stTipoNom, stCentroID))
If oRecSet.RecordCount = 0 Then
cSBOApplication.MessageBox("No se encontraron registros para generar poliza.")
Exit Function
End If
oRecSet.MoveFirst()
oPoliza = cSBOCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries)
'el campo fecha estaba en txt lo paso a formato esto no estaba antes es nuevo y lo realicé para validar no fuera formato de fecha
Dim stFechaFinal As Date
stFechaFinal = Format(CDate(stFecha), "dd/MM/yyyy")
'Cabecera
oPoliza.ReferenceDate = stFechaFinal
oPoliza.DueDate = stFechaFinal
oPoliza.TaxDate = stFechaFinal
oPoliza.Memo = stMemo
oPoliza.Reference = stRef
oPoliza.Series = 25
'Detalle
oPoliza.Lines.SetCurrentLine(0)
For i = 1 To oRecSet.RecordCount
'oPoliza.Lines.AccountCode = oRecSet.Fields.Item("Cuenta Mayor").Value
oPoliza.Lines.ShortName = oRecSet.Fields.Item("Cuenta Mayor").Value
oPoliza.Lines.Reference1 = stRef
If CDbl(oRecSet.Fields.Item("Percepcion").Value) <> 0 Then
oPoliza.Lines.Debit = CDbl(oRecSet.Fields.Item("Percepcion").Value)
oPoliza.Lines.Credit = 0.0
Else
oPoliza.Lines.Debit = 0.0
oPoliza.Lines.Credit = CDbl(oRecSet.Fields.Item("Deduccion").Value)
End If
oPoliza.Lines.CostingCode = oRecSet.Fields.Item("ProfitCode").Value
oPoliza.Lines.CostingCode2 = oRecSet.Fields.Item("OrcCode2").Value
oPoliza.Lines.UserFields.Fields.Item("U_Nom_Depto").Value = oRecSet.Fields.Item("Depto").Value
oPoliza.Lines.Add() 'agrega la linea
oRecSet.MoveNext()
Next
Resultado = oPoliza.Add 'agrega la poliza 'Aquí me genera el error
If (Resultado <> 0) Then
cSBOCompany.GetLastError(llError, lsError)
' cSBOApplication.MessageBox("Error SAP " & llError & "-" & lsError)
Err.Raise(-1, 1, lsError)
Else
cSBOCompany.GetNewObjectCode(TransId)
cSBOApplication.MessageBox("Se ha creado la poliza correctamente. " & TransId)
oRecSet.DoQuery(CommonFunc.SQLSentence(2, stAño, stPeriodoID, stPeriodo, stTipoNom, stCentroID, TransId, stFecha, stMemo, stRef))
End If
A partir del “-5002 - Mensaje” Son los datos que me arroja SAP del error.