GeneXus - Error send offline

 
Vista:

Error send offline

Publicado por Ivan Valle (7 intervenciones) el 05/08/2019 19:18:31
Buenos días foro, tengo un problema con mi aplicación móvil android offline, resulta que al momento de insertar un nuevo resgistro por Bussiness Component, en algunas tablas si me guarda en la base de datos del servidor, pero cuando lo realizo con otras tablas se queda unicamente en la base de datos local del móvil, sin sincronizar los datos nuevos en la del servidor.

Cuando le doy que sincronice los datos de Envío, simplemente se queda en "Error el replicador no ha sido encontrado" y que "Error tiene eventos pendientes".

He revisado las propiedades, atributos y todo de las transacciones que si me permite y no hay diferencia, no se a que se deba que estas no me deje.

Agredeceria mucho su apoyo. Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Error send offline

Publicado por ivan valle (7 intervenciones) el 05/08/2019 22:11:56
Solo por si ocupan:

cuando se tienen llaves foraneas en una aplicación offline y se guarda el registro por BC, es necesario poner LLaveForanea.setNull() si es que se tiene el campo vacio, si no se pone esa línea, guarda en la base de datos del dispositivo pero no sincronizara con la del servidor. saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error send offline

Publicado por Carlos Velasquez (3 intervenciones) el 29/10/2019 15:44:18
Buenos dias Ivan,

tengo un par de consultas en relacion a este tema que pusistes, crees que puedas ayudarme. tengo el mismo problema para enviar informacion.

te agradecere mucho.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error send offline

Publicado por Ivan Valle (7 intervenciones) el 29/10/2019 15:59:15
Buen día Carlos,

Claro, espero poder ayudarte, que dudas tienes?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error send offline

Publicado por Carlos Velasquez (3 intervenciones) el 29/10/2019 16:43:05
cuando dices que se debe de colocar la LLaveForanea.setNull() en que parte debo de hacerlo,
Las llaves Foraneas son:

ColorCinta
CodigoEmpacable
CodigoCuadrilla2
RechazoNum
CodigoCausaRechazo

Adjunto un ejemplo de codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
FOR EACH
	WHERE FechaCorta = &CalFch
	WHERE CodigoEmpacadora = &CodEmp
	WHERE CodigoAreaProduccion = &Localizacion
	WHERE RacimosRechazadosCodigoCategoriaDestino = &MdoCod
	WHERE ColorCinta = &Cinta
	WHERE CodigoEmpacable = &Empacable
        WHERE CodigoCuadrilla2 = &Cuadrilla
	WHERE RechazoNum = &Muestra
	WHERE CodigoCausaRechazo = &Defecto
	&BCRacimosRechazados.RacimosRechazados = &RacRecusados
	&BCRacimosRechazados.RacimosRechazadosCalibracion = &CalUltMno
	&BCRacimosRechazados.RacimosRechazadosNumeroManos = &NumManos
	&BCRacimosRechazados.RacimosRechazadosFechaInicioEmbolse = &Today
	&BCRacimosRechazados.RacimosRechazadosEdad = &Edad
	&BCRacimosRechazados.RacimosRechazadosUsuarioUltimaModificaci = ClientInformation.OSName+'-'+TRIM(STR(&CodEmp))
	&BCRacimosRechazados.RacimosRechazadosFechaUltimaModificacion = Now()
	&BCRacimosRechazados.Update()
WHEN NONE
//	NEW
	&BCRacimosRechazados.FechaCorta = &CalFch
	&BCRacimosRechazados.CodigoEmpacadora = &CodEmp
	&BCRacimosRechazados.CodigoAreaProduccion = &Localizacion
	&BCRacimosRechazados.RacimosRechazadosCodigoCategoriaDestino = &MdoCod
	&BCRacimosRechazados.ColorCinta = &Cinta
	&BCRacimosRechazados.CodigoEmpacable = &Empacable
        &BCRacimosRechazados.CodigoCuadrilla2 = &Cuadrilla
	&BCRacimosRechazados.RechazoNum = &Muestra
	&BCRacimosRechazados.CodigoCausaRechazo = &Defecto
	&BCRacimosRechazados.RacimosRechazados = &RacRecusados
	&BCRacimosRechazados.RacimosRechazadosCalibracion = &CalUltMno
	&BCRacimosRechazados.RacimosRechazadosNumeroManos = &NumManos
	&BCRacimosRechazados.RacimosRechazadosFechaInicioEmbolse = &Today
	&BCRacimosRechazados.RacimosRechazadosEdad = &Edad
	&BCRacimosRechazados.RacimosRechazadosUsuarioUltimaModificaci = ClientInformation.OSName+'-'+TRIM(STR(&CodEmp))
	&BCRacimosRechazados.RacimosRechazadosFechaUltimaModificacion = Now()
	&BCRacimosRechazados.Save()
//	ENDNEW
COMMIT
ENDFOR
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error send offline

Publicado por Ivan Valle (7 intervenciones) el 02/11/2019 02:39:23
No te guarda en la actualización o en la inserción, o en ambas?? Y otra cosa, todos los campos que estan llenando que vienen siendo llaves foraneas que me comentas que son estas:

ColorCinta
CodigoEmpacable
CodigoCuadrilla2
RechazoNum
CodigoCausaRechazo

estas seguro que en todas existe un valor?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error send offline

Publicado por Reinaldo Silveira (3 intervenciones) el 09/12/2019 22:17:33
Hola, tengo un error similar, puedo recibir datos pero genera error al enviar, trata de buscar el objeto OfflineEventReplicator.svc y retorna un valor 404 al momento de llamar a Synchronization.Send()

http://ip_de_mi_server_web_iis/mi_aplicacion/rest/genexus/sd/offlineeventreplicator

WEB.CONFIG
1
2
3
4
<service name="GeneXus.Programs.GeneXus.SD.Synchronization.OfflineEventReplicator_services" behaviorConfiguration="ServiceDefaultBehavior">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="CustomBinding" contract="GeneXus.Programs.GeneXus.SD.Synchronization.OfflineEventReplicator_services" />
    <endpoint address="rest" behaviorConfiguration="ServiceRestBehavior" binding="webHttpBinding" bindingConfiguration="CustomBinding" contract="GeneXus.Programs.GeneXus.SD.Synchronization.OfflineEventReplicator_services" />
</service>


OfflineEventReplicator.svc
<%@ServiceHost Service= "GeneXus.Core.genexus.sd.synchronization.offlineeventreplicator_services,genexus" %>

el server esta en un ip publico, uso IIS y SQL ambos en el mismo server

si pueden ayudarme lo agradeceria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error send offline

Publicado por Ivan valle (7 intervenciones) el 09/12/2019 22:43:18
Hola, tienes algún procedimiento que hayas querido ya sea actualizar o insertar un nuevo registro, que aún no se haya impactado en el servidor?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error send offline

Publicado por Reinaldo Silveira (3 intervenciones) el 09/12/2019 23:28:07
Gracias por responder, si, tengo un Procedimiento que crea un registro ocupando business component (BC) y los Paneles los hice con Patern WorkWiht , la aplicación recibe datos pero cuando envió genera error 404 tratando de ubicar el objeto OfflineEventReplicator, revise el server y esta en la ruta pero al llamarlo le agrega la carpeta virtual rest, la ruta es Genexus/SD/Synchronization/OfflineEventReplicator. los registros quedan en las tablas locales del cel, y si trato de recibir de nuevo da error supongo por no haber logrado enviar los registros anteriores, solo puede recibir de nuevo si haga reset a las tablas con esta linea Synchronization.ResetOfflineDatabase()

es una app de pruebas donde requiero resolver este tema y luego replicar la solución en otro ambiente con el mismo problema

en un botón coloque este evento para agregar usuarios random y probar
1
2
3
4
5
6
7
8
9
10
11
COMPOSITE
    &TRN_Usuarios_Key = GetEncryptionKey()
    &X = RANDOM() * 1234
    MSG('VALOR DE X: ' + &X.ToString())
    MSG(&X.ToString().Trim() + '@' + &X.ToString().Trim() + '.COM')
    &BC_TRN_USUARIOS.TRN_Usuarios_Email = &X.ToString().Trim() + '@' + &X.ToString().Trim() + '.COM'
    &BC_TRN_USUARIOS.TRN_Usuarios_Nombre = &X.ToString().Trim()
    &BC_TRN_USUARIOS.TRN_Usuarios_Clave = Encrypt64(&X.ToString().Trim(),&TRN_Usuarios_Key)
    &BC_TRN_USUARIOS.TRN_Usuarios_Key = &TRN_Usuarios_Key
    &BC_TRN_USUARIOS.Save()
ENDCOMPOSITE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error send offline

Publicado por Reinaldo Silveira (3 intervenciones) el 10/12/2019 18:36:32
Hola, otra acotación, es que al presionar el botón que contiene el evento ENVIAR, el resultado es 1, leyendo en internet indica que hay un error tratando de abrir las transacciones y en simultaneo el log me muestra error 404 al tratar de abrir Rest/Genexus/SD/Synchronization/OfflineEventReplicator

1
2
3
4
5
6
Event 'ENVIAR'
	composite
		&SynchResult= Synchronization.Send()
		msg('Resultado: ' + &SynchResult)
	endcomposite
Endevent
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error send offline

Publicado por Nicolas Machin (1 intervención) el 19/08/2021 13:12:03
Buenos días, como andas? Tengo el mismo problema pero solo cuando subo la aplicación al servidor de pruebas, localmente me funciona bien.
Pudiste solucionar el problema? que solución encontraste?

Te agradezco cualquier información al respecto.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error send offline

Publicado por Ivan (7 intervenciones) el 20/08/2021 18:56:54
Hola Nicolas, un problema de no sincronizar era que al realizar algún insert o update a la base de datos desde un bus bussiness component, en alguna tabla que tuviera llaves foráneas, el error salía que si no había valor no le ponía nada, y tenía que ponerle .SetNull() a la llave foráneas, a todas las que no vayan a tener valor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar