Actualizar datos de contactos de SN DI API

Ante todo buenas tardes,

Estoy tratando de actualizar los datos de contactos de socios de negocio para SAP B1 utilizando el DI API, revise varios códigos encontrados en diferentes foros y en el mismo archivo de ayuda del SDK, con eso arme este código en Visual Basic 6.0.

    Public CodigoSN As String
    Public oCompany As SAPbobsCOM.Company
    Dim vDoc As SAPbobsCOM.BusinessPartners
    
    Set oCompany = New SAPbobsCOM.Company
    '
   Set vDoc = oCompany.GetBusinessObject(oBusinessPartners)
        
    Dim Id As String, Phone1 As String, email As String, Obs1 As String
    
    Id = Me.txtID.Text
    Obs1 = Me.txtObs1.Text
    Phone1 = Me.txtTel1.Text
    email = Me.txtCorEle.Text
    
    If vDoc.GetByKey(CodigoSN) = True Then
        
        vDoc.GetByKey (CodigoSN)
        vDoc.CardCode = CodigoSN
        '
        Call vDoc.ContactEmployees.SetCurrentLine(0)
        vDoc.ContactEmployees.Name = Id
        vDoc.ContactEmployees.Phone1 = Phone1
        vDoc.ContactEmployees.E_Mail = email
        vDoc.ContactEmployees.Remarks1 = Obs1
        vDoc.Update
        '
        retval = vDoc.Update
    End If
    '
    If retval <> 0 Then
        MsgBox (oCompany.GetLastErrorDescription())
    End If

El punto es que no logro actualizar ningún valor de cualquiera de los contactos del socio de negocios pero tampoco me aparece algún mensaje de error, quisiera saber si esto es posible con el DI API o solo permite crear mas no actualizar.

Gracias por la ayuda prestada.
Ricardo Uribe

Hola Ricardo
Te falta utilizar el método agregar empleado de contacto Call vDoc.ContactEmployees.Add
antes de lo siguiente Call vDoc.ContactEmployees.SetCurrentLine(0)

Saludos,
Andres Ramirez Jaramillo :colombia:

Estimado Andres,

Antes que nada gracias por responder, tenias razón agregue esa linea y funciono a la perfección.

Cambie el valor cero(0) del SetCurrentLine por una variable donde recupero el orden de los contactos en una consulta SQL (ROW_NUMBER() OVER(ORDER BY CntctCode ASC) - 1) de la tabla OCPR y actualiza sin problemas el contacto seleccionado.

Y para agregar un nuevo contacto solo recupero el max del row_number y le agrego una unidad, con esto en el SetCurrentLine es suficiente.

Espero esto le sirva a alguien mas.

Saludos
Ricardo Uribe

1 me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.