Estimados, agradezco de su ayuda, necesitamos agregar registros a una tabla de usuario a través de un servicio con DIAPI, el error que nos muestra es: “Invalid field name”
Yo cree este método y va de lujo, Los parámetros son el nombre del UDT y un Objeto mapeado y cargado correspondiente a cada campo del UDT .El código para cargar y agregar un registro a un UserTables se ve claramente.
Public Shared Function InsertRecord(ByVal UDT_Name As String, ByVal Objeto As Object, Optional DB_Company As String = "") As String
Dim rpta As String = "N"
Dim SBO_Company As SAPbobsCOM.Company = oCompany
Try
FuncionesUDT.Connect_Company(SBO_Company)
If DB_Company.Trim.Length > 0 Then
Dim oConectarAplicacion As New DConectarAplicacion()
SBO_Company = oConectarAplicacion.Conectar_Empresa(SBO_Company, DB_Company)
End If
Dim UDT As SAPbobsCOM.UserTable
UDT = SBO_Company.UserTables.Item(UDT_Name)
UDT.Code = FuncionesUDT.GetNextCode(SBO_Company, UDT_Name).ToString
UDT.Name = UDT.Code
For Each propiedad As PropertyInfo In Objeto.GetType.GetProperties
Try
Dim tipoPropiedad As String = propiedad.PropertyType.Name
Dim NombrePropiedad As String = propiedad.Name
Dim valorPropiedad = propiedad.GetValue(Objeto, Nothing)
UDT.UserFields.Fields.Item(NombrePropiedad).Value = valorPropiedad
Catch ex As Exception
rpta = "N"
End Try
Next
Dim ErrCode = UDT.Add()
If ErrCode <> 0 Then
rpta = "N"
Else
rpta = "S"
End If
Catch ex As Exception
End Try
Return rpta
End Function