Baanboard.com

Baanboard.com (http://www.baanboard.com/baanboard/index.php)
-   Forum español (http://www.baanboard.com/baanboard/forumdisplay.php?f=69)
-   -   Problema con ASF tisfc0202m000 y tdilc4113s000 (http://www.baanboard.com/baanboard/showthread.php?t=69401)

RafaPros 25th October 2016 10:35

Problema con ASF tisfc0202m000 y tdilc4113s000
 
Cuando quiero poner el primer valor en un campo de la tabla de la subsesión se me queda colgado. Este es el código que utilizo:

Baanobj.ParseExecFunction("ottstpapihand", "stpapi.put.field(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & "tisfc001.cprj" & Chr(34) & "," & Chr(34) & codobra & Chr(34) & ")")
Baanobj.ParseExecFunction("ottstpapihand", "stpapi.put.field(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & "tisfc001.mitm" & Chr(34) & "," & Chr(34) & articulo & Chr(34) & ")")

If Baanobj.Error <> 0 Then
ErrDon = "Error al poner valor de Obra y Pieza"
MsgBox("Baan IV automatización " & Baanobj.Error & vbCrLf & "Valor de retorno de la función: " & Baanobj.Error.ToString & vbCrLf & "Donde: " & ErrDon)
Baanobj.ParseExecFunction("ottstpapihand", "stpapi.end.session(" & Chr(34) & Sesion & Chr(34) & ")")
Baanobj.Quit
Baanobj = Nothing
Exit Sub
End If

RetVal = Baanobj.ParseExecFunction("ottstpapihand", "stpapi.find(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & valor & Chr(34) & ")")
Dim tempstr2 = Baanobj.FunctionCall
' MsgBox("PARADA DE COMPROBACION, RESULTADO DE FIND = " & tempstr2)
If Baanobj.Error <> 0 Then
ErrDon = "Error en la búsqueda de la OF " & OF_cod
MsgBox("Baan IV automatización " & Baanobj.Error & vbCrLf & "Valor de retorno de la función: " & Baanobj.Error.ToString & vbCrLf & "Donde: " & ErrDon)
Baanobj.ParseExecFunction("ottstpapihand", "stpapi.end.session(" & Chr(34) & Sesion & Chr(34) & ")")
Baanobj.Quit
Baanobj = Nothing
Exit Sub
End If

Baanobj.ParseExecFunction("ottstpapihand", "stpapi.get.field(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & "tisfc001.pdno" & Chr(34) & "," & Chr(34) & valor & Chr(34) & ")")

tempstr2 = Baanobj.FunctionCall
tempstr2 = Mid(tempstr2, 25 + Len(Sesion) + 13, 6)
' MsgBox("PARADA DE COMPROBACION, RESULTADO DE GET PDNO = " & tempstr2)
If V_pdno <> CInt(tempstr2) Then
MsgBox("Hay un problema entre el número de orden leida en el grid (" & V_pdno & ") y el número obtenido en BaaN (" & CInt(tempstr2) & ")")
Baanobj.ParseExecFunction("ottstpapihand", "stpapi.end.session(" & Chr(34) & Sesion & Chr(34) & ")")
Baanobj.Quit
Baanobj = Nothing
Exit Sub
' V_pdno = CInt(tempstr2)
End If

If RetVal = 0 Then
TipMsg = 6
Observa = "*** ACTUALIZANDO en tabla BaaN, Banobj = " & Baanobj.error & ", RetVal = " & RetVal & " " & codobra & " " & articulo & " - " & OF_cod & " : " & V_pdno & " / " & tempstr2
Mostrar_Avisos(Observa, TipMsg)

'21/09/2016 - Ponemos los valores en los distintos campos que el usuario pone en la sesión Interactiva

Baanobj.ParseExecFunction("ottstpapihand", "stpapi.get.field(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & "qdlv.frm" & Chr(34) & "," & Chr(34) & valor & Chr(34) & ")")
Dim tempstr = Baanobj.FunctionCall
tempstr = Mid(tempstr, 25 + Len(Sesion) + 7, 3)
valor = (cantidad + Val(tempstr)).ToString
'MsgBox("PARADA DE COMPROBACION, RESULTADO DE GET qdlv.frm = " & tempstr & " - Cantidad final = " & valor)
Baanobj.ParseExecFunction("ottstpapihand", "stpapi.put.field(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & "qdlv.frm" & Chr(34) & "," & Chr(34) & valor & Chr(34) & ")")

Dim Temp_Fecha = piezasGridView.GetRowCellValue(xRow, "fechaFabricacion")
Dim Temp_fecha1 = Temp_Fecha.Day.ToString.PadLeft(2, "0") & Temp_Fecha.Month.ToString.PadLeft(2, "0") & Temp_Fecha.Year.ToString
'MsgBox("PARADA DE COMPROBACION, lectura de fecha en grid = " & Temp_fecha1.ToString)
Baanobj.ParseExecFunction("ottstpapihand", "stpapi.put.field(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & "tisfc001.dldt" & Chr(34) & "," & Chr(34) & Temp_fecha1 & Chr(34) & ")")

tempstr2 = Baanobj.FunctionCall
valor = cantidad.ToString

Dim cantidad1 As Decimal
Try
Baanobj.ParseExecFunction("ottstpapihand", "stpapi.get.field(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & "tisfc001.qrdr" & Chr(34) & "," & Chr(34) & valor & Chr(34) & ")")
tempstr = Baanobj.FunctionCall
tempstr = Mid(tempstr, 25 + Len(Sesion) + 13, 3)
total = Val(tempstr)

Baanobj.ParseExecFunction("ottstpapihand", "stpapi.get.field(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & "qdlv.frm" & Chr(34) & "," & Chr(34) & valor & Chr(34) & ")")
Dim tempstr1 = Baanobj.FunctionCall
tempstr1 = Mid(tempstr1, 25 + Len(Sesion) + 8, 3)
cantidad1 = Val(tempstr1)

'Controlamos que la serie de " & tempstr2 & " esté o no completa " & cantidad1.ToString & " de " & total.ToString)
If cantidad1 = total Then
RetVal = Baanobj.ParseExecFunction("ottstpapihand", "stpapi.put.field(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & "comp.frm" & Chr(34) & "," & Chr(34) & "1" & Chr(34) & ")")
Else
RetVal = Baanobj.ParseExecFunction("ottstpapihand", "stpapi.put.field(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & "comp.frm" & Chr(34) & "," & Chr(34) & "2" & Chr(34) & ")")
End If
Catch
MsgBox("¡¡¡¡¡¡¡¡¡¡¡¡¡¡Error controlando que la serie esté o no completa" & cantidad1.ToString & " de " & total.ToString)
End Try

RetVal = Baanobj.ParseExecFunction("ottstpapihand", "stpapi.enum.answer(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & "tisfc02023" & Chr(34) & "," & "1" & ")")
If RetVal <> 0 Then
MsgBox("*** ERROR *** Contestando a isfc02023")
End If
RetVal = Baanobj.ParseExecFunction("ottstpapihand", "stpapi.enum.answer(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & "tisfc02024" & Chr(34) & "," & "1" & ")")
If RetVal <> 0 Then
MsgBox("*** ERROR *** Contestando a isfc02024")
End If
RetVal = Baanobj.ParseExecFunction("ottstpapihand", "stpapi.enum.answer(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & "tisfc02029" & Chr(34) & "," & "1" & ")")
If RetVal <> 0 Then
MsgBox("*** ERROR *** Contestando a isfc02029")
End If
Baanobj.timeout = 300
Try
RetVal = Baanobj.parseexecfunction("ottstpapihand", "stpapi.handle.subproc(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & subsesion & Chr(34) & "," & Chr(34) & "add" & Chr(34) & ")")
If Baanobj.error <> 0 Then
MsgBox("¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Error al lanzar la subsesión " & subsesion & ", Handle = " & Baanobj.error & " obj " & Baanobj.ToString)
End If
Catch hand As Exception
MsgBox("¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Error al lanzar la subsesión tdilc4113s000f, Handle = " & RetVal & " obj " & Baanobj.ToString)
End Try

Dim retval3 As Integer = 0

'*******************************************************************************************************************
'* 25/10/2016 - Esta sección se utiliza para probar las posibles soluciones encontradas en Baanboard*
'* No se corresponde con lo que es la secuencia lógica de instrucciones *
'*******************************************************************************************************************
RetVal = Baanobj.ParseExecFunction("ottstpapihand", "stpapi.end.session(" & Chr(34) & Sesion & Chr(34) & ")")
If RetVal <> 0 Then
MsgBox("*** ERROR *** end.session tisfc0202m000")
End If

MsgBox("PARADA DE COMPROBACION, ENTRADA EN PUESTA DE DATOS 4113 - QSTC, SUBSESIÓN = " & subsesion)

Hasta aquí todo sin errores ni problemas, en la siguiente instrucción es donde se me queda colgado;

retval3 = Baanobj.parseexecfunction("ottstpapihand", "stpapi.put.field(" & Chr(34) & subsesion & Chr(34) & "," & Chr(34) & "tdilc402.qstc" & Chr(34) & "," & Chr(34) & cantidad & Chr(34) & ")")
If retval3 <> 0 Then
MsgBox("Retval3 Put qstc = " & retval3)
End If
MsgBox("PARADA ¡¡¡¡¡ ANTES DE CONTINUE PROCESS !!!!!! PARA COMPROBACIÓN DE DATOS, RETVAL3 = " & retval3)


valor = ""
Try
RetVal2 = Baanobj.ParseExecFunction("ottstpapihand", "stpapi.continue.process(" & Chr(34) & Sesion & Chr(34) & "," & Chr(34) & valor & Chr(34) & ")")
MsgBox("Continuar proceso = " & RetVal2 & vbCrLf & valor)
Catch
MsgBox("¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Error al Continuar proceso = " & RetVal2 & vbCrLf & valor)
End Try


All times are GMT +2. The time now is 05:35.


vB.Sponsors
©2001-2017 - Baanboard.com - Baanforums.com