Buenos dias,
Tengo una APP que hace bastantes consultas JSON (que devuelven un solo registro), por lo que para economizar codigo queria hacer una rutina que le pase un MAP con los parametros y me devuelva otro MAP con el resultado.
La rutina es la siguiente (la he creado siguiendo los tutoriales de Erel):
Pues bien la rutina funciona perfectamente mientras estaba en el mismo modulo que se usaba, pero a la hora de meterla en un MODULO DE CODIGO, para poder llamarla desde todos los modulos me da error en la linea 26:
Alguna manera de poder reutilizar esta rutina sin tener que copiarla en todos los modulos del programa? Muchas gracias.
Tengo una APP que hace bastantes consultas JSON (que devuelven un solo registro), por lo que para economizar codigo queria hacer una rutina que le pase un MAP con los parametros y me devuelva otro MAP con el resultado.
La rutina es la siguiente (la he creado siguiendo los tutoriales de Erel):
RUTINA JSON:
Sub GenerarConexionJSON1(MapaDatos As Map, Modulo as Activity) As ResumableSub
Dim ResultadoMap As Map
ResultadoMap.Initialize
'Comprobamos si se puede escribir en la memoria externa
If Not(File.ExternalWritable) Then
ToastMessageShow("Compruebe conexión.", True)
Else
'Comprobamos si tenemos conexion a internet
Dim server As ServerSocket 'Add a reference to the network library
server.Initialize(0, "")
If server.GetMyIP = "127.0.0.1" Then 'this is the local host address
ToastMessageShow("Compruebe conexión.", True)
Else
'Accedemos a la base de datos para coger los datos
Dim job As HttpJob
Dim JSONGenerator2 As JSONGenerator
JSONGenerator2.Initialize(MapaDatos)
Dim JSONstring As String
JSONstring = JSONGenerator2.ToString
job.Initialize("", Modulo)
job.PostString("http://www.xxxxx.com/json/yyyyyy.php", JSONstring)
Wait For (job) JobDone(job As HttpJob)
If job.Success Then
DoEvents
Dim Resultado As String = job.GetString
If Resultado<>"" Then
Dim parser As JSONParser
parser.Initialize(Resultado)
Dim DATOS As List
DATOS = parser.NextArray 'returns a list with maps
If DATOS.Size = 1 Then 'Solo tiene que haber un registro con esa ID
ResultadoMap = DATOS.Get(0)
End If
End If
Else
ToastMessageShow("Error: " & job.ErrorMessage, True)
End If
job.Release
End If
End If
Return ResultadoMap
End Sub
Pues bien la rutina funciona perfectamente mientras estaba en el mismo modulo que se usaba, pero a la hora de meterla en un MODULO DE CODIGO, para poder llamarla desde todos los modulos me da error en la linea 26:
ERROR LINEA 26:
Error al compilar el programa.
Descripción del error: Los módulos estáticos no pueden manejar eventos.
Ha ocurrido un error en la línea: 83
Wait For (job) JobDone(job As HttpJob)
Word: wait for
Alguna manera de poder reutilizar esta rutina sin tener que copiarla en todos los modulos del programa? Muchas gracias.