Hola,
Estoy programando en visual basic con sdk de sap 9.2 businnes one y me aparece error al momento de hacer add de la llamada.
El error lo he buscado y no entiendo a que se refiere, además no se cuantos campos obligatorios son necesarios para que pueda grabar la llamada de servicio, es primera vez que programo una sdk y la mayoría de los datos los he sacado de ejemplos en internet. muchas gracias si alguien tiene alguna respuesta.
Aquí tengo el codigo, he colocado datos de prueba que existen en la base de datos para poder probar el codigo, ya he solucionado algunos problemas, pero este no entiendo que puede ser, se refiere al tiempo HH:mm Starttime, Asociados al campo Startdate. le he cambiado formato, he tratado de colocar un valor directamente y nada, favor ayuda.
En el código generé una excepción de error con un mensaje, es en esa linea que me muestra el siguiente error : “La conversion de la cadena “1540” en el tipo Date no es valida”
1540 es la hora y minutos en que ejecute al rutina y que que deberia queda grabado en el campo que es de tipo int.
Public Class Form1
Private oCompany As SAPbobsCOM.Company
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Coneccion()
End Sub
Private Sub Coneccion()
Dim lRetCode As Long
oCompany = New SAPbobsCOM.Company
oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2008
oCompany.DbUserName = "sa"
oCompany.DbPassword = "Sa123456"
oCompany.Server = "10.0.0.7"
oCompany.CompanyDB = "Zdemo-Deira"
oCompany.UserName = "manager"
oCompany.Password = "FF$2019"
oCompany.UseTrusted = False
oCompany.language = SAPbobsCOM.BoSuppLangs.ln_Spanish
lRetCode = oCompany.Connect()
If lRetCode <> 0 Then
MsgBox(oCompany.GetLastErrorDescription())
Else
' Act_item
MsgBox("CONECTADO A SAP")
Ingllamadaservicio()
oCompany.Disconnect()
MsgBox("DECONECTADO OK")
End If
End Sub
Private Sub Ingllamadaservicio()
On Error GoTo ErrorHandler
Dim fecha As Date = Now()
Dim hora As Date
Dim ErrCode As Long
Dim ErrMsg As String
Dim SAPServiceCall As SAPbobsCOM.ServiceCalls
SAPServiceCall = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oServiceCalls)
SAPServiceCall.CustomerCode = "81201000C"
SAPServiceCall.ManufacturerSerialNum = "S451432HH0NP0H"
SAPServiceCall.Subject = "PRUEBA SAP LLAMADA SERVICIO AUTOMÁTICA: "
SAPServiceCall.Origin = 1
SAPServiceCall.ProblemType = 4
SAPServiceCall.ProblemSubType = 2
SAPServiceCall.CallType = 12
SAPServiceCall.Queue = "011PFL"
SAPServiceCall.StartDate = DateTime.Now
hora = DateTime.Now.ToString("HHmm")
SAPServiceCall.StartTime = hora
SAPServiceCall.Add()
If (SAPServiceCall.Update() <> 0) Then
MessageBox.Show(oCompany.GetLastErrorDescription())
End If
Exit Sub
ErrorHandler:
MsgBox("Exception:" + Err.Description)
End Sub
Hola Juliancab, muchas gracias por tu ayuda, ya no me aparece el error, pero al momento de hacer el el add me aparece un nuevo error .
he visto este campo en la tabla OSCL y aparece una R, traté de colocar directamente la “R” a este campo, pero no tengo esta propiedad la mas parecida es ServiceBPType .
muy agradecido por su respuesta pero mientra no tenga solucionado todos los campos que tiene que llevar la llamada de servicio para ser agregada no sabré están bien pero asumo que su repuesta está bien ya que no generó error.
gracias.
Realice el cambio y agregue lo que me indicaste, quedo de la siguiente manera
Private Sub Ingllamadaservicio()
On Error GoTo ErrorHandler
Dim fecha As Date = Now()
Dim hora As Date
Dim ErrCode As Long
Dim ErrMsg As String
Dim BT As String
Dim SAPServiceCall As SAPbobsCOM.ServiceCalls
SAPServiceCall = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oServiceCalls)
SAPServiceCall.CustomerCode = "81201000C"
SAPServiceCall.ManufacturerSerialNum = "S451432HH0NP0H"
SAPServiceCall.Subject = "PRUEBA SAP LLAMADA SERVICIO AUTOMÁTICA: "
SAPServiceCall.Origin = 1
SAPServiceCall.ProblemType = 4
SAPServiceCall.ProblemSubType = 2
SAPServiceCall.CallType = 12
SAPServiceCall.Queue = "011PFL"
SAPServiceCall.StartDate = Date.Now
SAPServiceCall.StartTime = DateTime.Now.ToString("HH:mm:ss")
SAPServiceCall.ServiceBPType = SAPbobsCOM.ServiceTypeEnum.srvcSales
SAPServiceCall.Add()
If (SAPServiceCall.Update() <> 0) Then
MessageBox.Show(oCompany.GetLastErrorDescription())
End If
Exit Sub
Julian, tienes toda la razón, estaba preguntando por update y no por el add, realice los cambios y ejecuté a modo de debuger, ahora no me muestra errores y me agregó varios regsitros a la tabla OSC, creo que fue por la cantidad de veces que lo ejecuté, pero ahora quedó bien y el cógido quedó así :
Public Class Form1
Private oCompany As SAPbobsCOM.Company
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Coneccion()
End Sub
Private Sub Coneccion()
Dim lRetCode As Long
oCompany = New SAPbobsCOM.Company
oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2008
oCompany.DbUserName = "sa"
oCompany.DbPassword = "Sa123456"
oCompany.Server = "10.0.0.7"
oCompany.CompanyDB = "Zdemo-Deira"
oCompany.UserName = "manager"
oCompany.Password = "FF$2019"
oCompany.UseTrusted = False
oCompany.language = SAPbobsCOM.BoSuppLangs.ln_Spanish
lRetCode = oCompany.Connect()
If lRetCode <> 0 Then
MsgBox(oCompany.GetLastErrorDescription())
Else
' Act_item
MsgBox("CONECTADO A SAP")
Ingllamadaservicio()
oCompany.Disconnect()
MsgBox("DECONECTADO OK")
End If
End Sub
Private Sub Ingllamadaservicio()
On Error GoTo ErrorHandler
Dim fecha As Date = Now()
Dim hora As Date
Dim ErrCode As Long
Dim ErrMsg As String
Dim BT As String
Dim SAPServiceCall As SAPbobsCOM.ServiceCalls
SAPServiceCall = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oServiceCalls)
SAPServiceCall.CustomerCode = "81201000C"
SAPServiceCall.ManufacturerSerialNum = "S451432HH0NP0H"
SAPServiceCall.Subject = "PRUEBA SAP LLAMADA SERVICIO AUTOMÁTICA: "
SAPServiceCall.Origin = 1
SAPServiceCall.ProblemType = 4
SAPServiceCall.ProblemSubType = 2
SAPServiceCall.CallType = 12
SAPServiceCall.Queue = "011PFL"
SAPServiceCall.StartDate = Date.Now
SAPServiceCall.StartTime = DateTime.Now.ToString("HH:mm:ss")
SAPServiceCall.ServiceBPType = SAPbobsCOM.ServiceTypeEnum.srvcSales
SAPServiceCall.Add()
If (SAPServiceCall.Add() <> 0) Then
MessageBox.Show(oCompany.GetLastErrorDescription())
End If
Exit Sub
ErrorHandler:
MsgBox("Exception:" + Err.Description)
End Sub
End Class
Igual dejaré abierto por unos días esto, ya que seguiré probando agregando más datos.
Te agradezco mucho tu gran ayuda y toda tu dedicación en esto y para los que necesiten agregar llamadas de servicio con DI API y Visual Studio, aquí tienen una pequeña ayuda para empezar.
@Carlos_Garay, recuerda agradecer a quienes te ayudaron valorando los distintos mensajes con el botón y seleccionando una respuesta (preferentemente no de tu autoría) como solución.