Aplicacion para Pocket PC que sincronice contra base de datos

Buenas gente

Tengo el siguiente panorama para empezar con una aplicación

Resulta que mi Jefe me pidio lo siguiente

Una aplicación para asignar ordenes de trabajado a una respectiva lista de empleados(Cada empleado podra tener una o varias ordenes de trabajo ) hasta aqui muy simple una tabla empleados y una tabla ordenes y al final una tabla intermedia para hacer el asocie entre empleados y Ordenes hasta aqui nada fuera de lo comun

La cosa es que esa tarea la ocupan aplicar cuando el inspector este en el area de trabajo,osea en vivo y a todo color

1.En ese caso se me ocurrio mi primera opcion para no complicarme la vida ante algo aparentemente simple.hacer una aplicación Web ponerla en mi respectivo servidor y que el inspector acceda tranquilamente desde su respectiva pocket PC,para esto solo bastaria aplicar Responsive web design y adaptar la web al tamaño del dispositivo

Problema:Tiempo despues me salieron con que el inspector iba a trabajar en areas de trabajo donde no iba a haber acceso a internet

Responsive web design DESCARTADO!!!

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

2.Aqui me replantee la elaboración de la aplicacion de nuevo, y pense bueno... tengo una pocket PC,entonces lo que debo hacer es una aplicación movil en JAVA,con una base de datos SQLite que sincronse contra la base de datos actual(Porque en cualquier momento se pueden actualizar los empleados y se pueden agregar mas odenes de trabajo) la base de datos principal es SQL SERVER

Problema:Mi inexperiencia en este campo,la aplicacion para JAVA y conexion con SQL LITE no me preocupan,pero cuando tenga que sincronizar contra la base de datos, he ahi el problema!!!<---Por favor si saben de un buen manual o bien un buen ejemplo para este caso haganmelo saber

Ahora bien,talvez me estoy complicando mi pacifica existencia,pero como veran cuando uno es inexperto con cierta herramiento(al menos en mi caso) la verdad es que uno tiende a llenarse de nervios,hay alguna manera de hacer esto de otra forma??? la pocket PC tienes sistema operativo Windows

y otra duda en cuanto tiempo calculan que puedo hacer esto??

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Nopalin

Aqui hay algo importante que

Aqui hay algo importante que debes definir en el proceso que quieres implementar.

Dices que las ordenes de trabajo no se deben llevar a cabo solo hasta que el inspector esté en el area. Este es un punto clave, ya que como yo le digo a mis clientes, los sistemas no son adivinos ni inteligentes (por mas smart que les quieran llamar) responden a eventos o acciones que provengan de cualquier lado, ya sea de humanos, de otros equipos, etc.

Así que, la principal pregunta a responder, como indicaran los inspectores en que area se encuentran? con un lector biométrico a la entrada de cada area?, los inspectores tendran un horario asignado a cada area? los inspectores accesaran a algun sistema para indicar en que area se encuentran?

Y tambien muy importante, como van a saber cuando un inspector deja un area?

Imagen de ezamudio

timestamps

Debes manejar timestamps en todas las tablas que necesitas sincronizar, en ambos lados. Y guardar la fecha exacta de la última sincronización. De ese modo sabrás qué cosas necesitas actualizar en dónde. Cada que modificas un registro tanto en el server como en el móvil, debes actualizar la fecha de modificación de ese registro. Y cada vez que se sincronice un móvil, guardas en el móvil esa fecha de sincronización.

* Del móvil al servidor debes enviar todo lo que haya sido modificado después de la última sincronización.
* Del servidor al móvil debes enviar todo lo que haya sido modificado después de la última sincronización (el móvil le indica al server esa fecha).

Las fechas de última actualización las puedes poner en automático sin necesidad de modificar tu aplicación, con un simple trigger en las tablas que lo requieran.

Imagen de ezamudio

pocket pc

Por cierto... Pocket PC? Neto? Estos inspectores... también traen pager ("biper")?

Imagen de The man

Si ezamudio Pocket PC!!!

Si ezamudio Pocket PC!!! jajaja tu reaccion es la misma que he obtenido de varios compañeros

Nopalin yo en cuanto a las areas y los inspectores no queria complicarme mucho la verdad,lo que tenia pensado es poner un boton que se llame sincronizacion y que a la hora de hacer click haga el proceso( el que Ezamudio menciona en su primer comentario) siempre y cuando haya conexion con la red,de no ser asi simplemente lanzara un mensaje que diga "No hay conexion con la red"

Que base de datos me recomiendan para el pocket PC?? El motor de la base datos principal es SQL SERVER,y como soy novato en el tema de sincronizacion la verdad no se si habra algun problema en cuento a esto

Otra cosa yo veia la situacion a la hora de sincronizar de la siguiente manera:"Un abrir conexion a la base de datos principal enviar la data y despues obtener la data y actualizar la base de datos del Pocket PC,tan simiple como eso"

Pero se que esa solucion peca por poco elegante,auque cuidaria de tener todo el codigo SQL SERVER bien resguardado con transacciones por si se da un error hacer un simple ROLLBACK

Que pero le ven a esto?

Imagen de ezamudio

no

Para que las pocket PC se conecten directo a tu base de datos, qué vas a hacer? Abrirla a internet? Es exponerse demasiado. Solamente que pudieras armar una VPN entre la pocketpc y el server, pero no sé si puedan hacer tus arcaicos dispositivos... Es mejor poner una aplicación de por medio que solamente sirva para hacer esas operaciones, además de que puedes tal vez reducir el tamaño de los datos transferidos en ambos sentidos, si es que eso importa (si es que usan una red de datos de celular en vez de wifi por ejemplo).

Y sí, obvio todo eso de estar sincronizando debe ir dentro de una transacción.

Imagen de The man

Que opinas de un arcaico excel?

Bueno omiti un detalle importante,la Pocket PC no es que se conecte a internet,mas bien estaria configurada para conectarse a la red institucional(Ya la confioguracion seria asunto de TI,yo no configuro este tipo de cosas)

Tambien estaba pensando en generar un excel desde la aplicacion de manera que una hoja albergaria un lista de empleados(lista actualizada de empleados y ordenes de trabajo) y cada empleado tendria un check por cada Orden de trabajo(cuyo numero seria el encabezado de la columna con los checks), una ves marcado el check,se haria un asocie entre el respectivo empleado y la orden(en una hoja oculta),despues hacer que cuando el empleado tenga conexion a la red institucional subir el excel y recorrer la hoja con los asocies y asi insertar entre mi tabla intermedia

Hasta le adjuntaria un macro en tiempo de ejecucion a este excel para que le apareciera un form al usuario para que realizara su respectivo asocie,pero me di cueta que la version del office para el Pocket PC no soporta macros!!!!

pero de todas maneras mi idea de la matriz con check no necesitaria de esto

Eso si cada vez que realice este proceso tendria que descargar una nueva version del archivo de excel para posteriormente subirlo y asi sucesivamente

Saludos Cordiales !!!

Imagen de ezamudio

Excel? No

Yo no usaría excel. Si vas a usar un formato propietario para intercambio de datos pues ya mejor invéntate uno. Ya tú mismo te diste cuenta de lo tedioso que va a ser administrar los archivos (lo tiene que hacer la aplicación porque si se lo dejas al usuario no lo van a hacer nunca). Para manejar excel además necesitas que ambos lados puedan generar un archivo y además leer un archivo. Si el móvil no puede leer el archivo del server pues se conecta y lo pide de nuevo o avisa de un error, pero ¿Qué pasa si el server no puede leer el archivo del móvil? El móvil tendría que mantenerse en línea hasta que el server le avise que ya pudo leer su archivo. Para eso pues mejor sáltate ese paso intermedio y mándale los datos directamente, probablemente en un formato más compacto que resultará en menor tiempo de transmisión.

Imagen de chicowed

Excel jaja

Para algunos casos es mas conveniente usar excel con macros, por ejemplo yo lo utilizo cuando es mas importante la presentación que el contenido o que las funciones que realiza el archivo, cuando se necesita hacer por ejemplo una solicitud de compra o de almacén, es conveniente, pero para tu problema mi estimado lo mejor es que desarrolles algo tu mismo, es difícil y complicado, pero al final es la solución mas fácil que puedes escoger, cuando yo empece a trabajar con java era difícil al principio, pero ahora realizo mis aplicaciones en poco tiempo puesto que vuelvo a reutilizar algunas clases y/o métodos que he echo previamente en otras aplicaciones