cancel
Showing results for 
Search instead for 
Did you mean: 

Crear asientos por SDK usando cuentas asociadas.

Former Member
0 Kudos

Estimados

Tengo la siguiente situacion. Quiero crear asientos masivos donde se imputen clientes pero a una cuenta asociada distinta. Por ejemplo

Rut Cliente (Usando cuenta asociada distinta a la deudores) 100

Ingresos 100

Esto en sap se hace en el registro en el diario seleccionando la cuenta asociada distinta requerida.

Esto ultimo se puede hacer via SDK?

Porque si al campo shortname le coloco el codigo del socio de negocio me asume la cuenta Deudores por defecto y no otra cuenta asociada. Y si le coloco ademas del dato en el shortname en el campo account me reclama que la cuenta no coincide.

Como puedo hacer esto

Necesito urgente hacerlo.

Algun aporte bievenido

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hola Claudio,

Usa el campo ShortName para colocar el codigo del SN de la cuenta asociada. Usa AccountCode para colocar la cuenta asociada (del plan de cuentas). Si no le colocas nada en ese campo, usara la cuenta asociada principal del SN.

Saludos,

Ian

Former Member
0 Kudos

Ian, gracias por la respuesta, pero eso mismo que me dices habia hecho y no me funciona me reclama que la cuenta es incorrecta

Estoy con SAP 2007A

oJournal.Lines.ShortName = FormatoCodigoBP(strCodigoCuenta, "C") ' Cliente

oJournal.Lines.AccountCode = drFila.Item("CuentaAsociada")

Estas dos lineas son parte del codigo que ocupo

Alguna idea?

Gracias

Former Member
0 Kudos

Hola Claudio,

Este codigo me funciona:

Dim oJE As SAPbobsCOM.JournalEntries
        Dim errMsg As String = ""
        Dim errNum As Integer

        oJE = vCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries)

        oJE.Lines.AccountCode = "1210001"
        oJE.Lines.ShortName = "C0001"
        oJE.Lines.Credit= 1000

        oJE.Lines.Add()

        oJE.Lines.AccountCode = "1010001"
        oJE.Lines.Debit = 1000

        If (oJE.Add <> 0) Then
            vCompany.GetLastError(errNum, errMsg)
            oSBOApplication.MessageBox(errNum & " - " & errMsg)
        End If

Former Member
0 Kudos

" If drFila.Item("Tipo") = "C" Then

'The Recordset retrieves the value of the key (for example, sStr = _SYS00000000010).

vRs = vBOB.GetObjectKeyBySingleValue(SAPbobsCOM.BoObjectTypes.oChartOfAccounts, "FormatCode", strCodigoCuenta, SAPbobsCOM.BoQueryConditions.bqc_Equal)

If vRs.EoF = False Then

sStr = vRs.Fields.Item(0).Value

oJournal.Lines.AccountCode = sStr

oCuenta = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oChartOfAccounts)

oCuenta.GetByKey(sStr)

If oCuenta.Name = vbNullString Then

oCuenta = Nothing

AgregaError(strCodigoCuenta, "Cuenta incorrecta [" & strCodigoCuenta & "] Linea:" & intRow + 2, strArchivo)

objMdi.Mensaje(mdiPrincipal.ESTBTipoMensajes.estbtmError, newval:="Cuenta incorrecta [" & strCodigoCuenta & "] Linea:" & intRow)

End If

oCuenta = Nothing

Else

objMdi.Mensaje(mdiPrincipal.ESTBTipoMensajes.estbtmError, newval:="Cuenta incorrecta [" & strCodigoCuenta & "] Linea:" & intRow)

Exit Sub

End If

Else

strCodigoCuenta = FormatoCodigoBP(strCodigoCuenta, "C") ' Cliente

oJournal.Lines.AccountCode = drFila.Item("CuentaAsociada")

oJournal.Lines.ShortName = strCodigoCuenta

oBP = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners)

oBP.GetByKey(strCodigoCuenta)

If oBP.CardName = vbNullString Then

oBP = Nothing

AgregaError(strCodigoCuenta, "Socio de Negocio incorrecto [" & strCodigoCuenta & "] Linea:" & intRow + 2, strArchivo)

objMdi.Mensaje(mdiPrincipal.ESTBTipoMensajes.estbtmError, newval:="Socio de Negocio incorrecto [" & strCodigoCuenta & "] Linea:" & intRow + 2)

End If

oBP = Nothing

End If

If IsDBNull(drFila.Item("Debe")) = False And drFila.Item("Debe") <> 0 Then 'Debito

oJournal.Lines.Debit = CDbl(drFila.Item("Debe"))

Else

oJournal.Lines.Credit = CDbl(drFila.Item("Haber"))

End If

If IsDBNull(drFila.Item("FecVen")) = False Then 'Fecha Vencimiento

If RTrim(LTrim(drFila.Item("FecVen"))) <> vbNullString Then

oJournal.Lines.DueDate = CStr(drFila.Item("FecVen"))

End If

End If

If IsDBNull(drFila.Item("UNegocio")) = False Then 'Unidad Negocio

If RTrim(LTrim(drFila.Item("UNegocio"))) <> vbNullString Then

oJournal.Lines.ProjectCode = CStr(drFila.Item("UNegocio"))

End If

End If

If IsDBNull(drFila.Item("CC")) = False Then 'Centro Costo

If RTrim(LTrim(drFila.Item("CC"))) <> vbNullString Then

oJournal.Lines.CostingCode = CStr(drFila.Item("CC"))

End If

End If

If IsDBNull(drFila.Item("NumPers")) = False Then 'NumPers

If RTrim(LTrim(drFila.Item("NumPers"))) <> vbNullString Then

oJournal.Lines.UserFields.Fields.Item("U_MMM_NumPers").Value = Mid(CStr(FormatoCodigoBP(drFila.Item("NumPers"), "")), 1, 😎

End If

End If

If IsDBNull(drFila.Item("Ref1")) = False Then 'Ref1

oJournal.Lines.Reference1 = CStr(drFila.Item("Ref1"))

End If

If IsDBNull(drFila.Item("Ref1")) = False Then 'Ref2

oJournal.Lines.Reference2 = CStr(drFila.Item("Ref2"))

End If

If IsDBNull(drFila.Item("Ref3")) = False Then 'Ref3

oJournal.Lines.AdditionalReference = CStr(drFila.Item("Ref3"))

End If

If IsDBNull(drFila.Item("Comentarios")) = False Then 'Comentario

oJournal.Lines.LineMemo = CStr(drFila.Item("Comentarios"))

End If

If intRow + 1 <= dsAsientos.Tables(0).Rows.Count Then

oJournal.Lines.Add()

End If

intRow = intRow + 1

objMdi.Mensaje(mdiPrincipal.ESTBTipoMensajes.estbtmAviso, newval:=intRow)

Next

lRetCode = oJournal.Add

"

Ese es mi codigo y cuando lo ejecuto me sale este error, a pesar de que la cuenta existe y esta asignada a las cuentas asociadas de deudas pendientes (linea 6) del SN

-5002 Código no válido [line: 18] , '11601004'

La linea 18 es justamente el primer cliente que se asigna

Favor alquien me ayude

Former Member
0 Kudos

Ya ahi me funciono, el problema era que el SN no tenia asignada la cuenta asociada respectiva.

Ups, un error tonto.

Gracias por sus respuestas.

Answers (1)

Answers (1)

Former Member
0 Kudos

Gracias Former Member, ese codigo me funcionó perfectamente.