martes, 20 de noviembre de 2007

Un poco de ingeniería inversa...

Todos los años (hasta que consiga plaza definitiva) tengo que participar en el concurso de traslados. Todos los años me armo de paciencia e intento utilizar el programa PICT que ofrece la Comunidad de Madrid para facilitar el proceso. Todos los años, sin embargo, le encuentro una falla.

El año pasado, por ejemplo, los datos del 2005 se exportaron mal, y tuve que importar en excel el XML del año anterior (importar XML => Solicitar ejecución del asistente para XML => elegir los campos y luego Herramientas => XML => Importar).

Ese año he tenido que trabajar con un ordenador diferente porque PICT se negaba a trabajar en mi ordenador (windows 2K, aparentemente compatible con PICT; quizá me falte alguna biblioteca, y existe la excusa de que mi disco duro tiene la MFT dañada). Vi que ofrecía la posibilidad de importar los datos del año anterior usando un certificado de la FNMT y, como el año pasado terminé por hacerme con uno (después dejaron de funcionar casi todos los servicios con certificado digital de mi ayuntamiento, pero esa es otra historia), me vine a casa de mis padres a instalar el programa y rellenar la instancia sin exportarme primero los datos a un CD, dejando además mi última lista de centros, puntuación de la oposición y demás datos vitales en mi piso.

Craso error.

PICT se ha negado a obtener mis datos personales (puntuación de oposición: menos mal que gracias a mi síndrome de Diógenes todavía había alguna instancia viejísima en casa de mis padres).

Menos mal que, aunque no me ha dejado importar los datos personales, me ha exigido introducir el DNI, pues en caso contrario la importación de centros habría dado como resultado el mensaje "No se ha encontrado ningún centro válido en la petición del año 2006", sin aclararme la causa del error (al fin y al cabo, el campo DNI es parte del certificado FNMT).

En todo caso, me ha sorprendido que después de obtener el mensaje "Hay centros o especialidades que no han sido dados de alta y no se han añadido a las peticiones", sólo aparecieran 10 municipios. Un código de centro puede cambiar, pero... ¿100?

En fin, si uno quiere que las cosas se hagan bien tiene que hacerlas uno mismo. He desactivado el antivirus para que me permitiera instalar un sniffer y, a continuación, he husmeado en la comunicación entre PICT y gestiona.madrid.org.

Respecto de los datos personales, PICT llama a la página
http://gestiona.madrid.org/pictweb2/run/j/DatosPersonales.icm?TIPID=D&DNI=

Nótese que, a pesar de que nos exige rellenar el DNI antes de pedir los datos personales, PICT no envía el número a la página. No os preocupéis: poniendo el número tampoco funciona. Parece que dicha página no existe, y lo que es peor, la página que intentamos descargar manda a PICT a a un servidor llamado "wicmaplic01". (nótese la carencia de dominio: estamos buscando en la intranet, a pesar de que no empleamos la versión para la red interna).

Respecto de las peticiones de centros, parece que PICT solicita la página:

http://pictweb2/run/j/SecundariaPeticionesAnteriores.icm?TIPID=D&DNI=NNNNNNNNN&ANNO=AAAA

(sustitúyase NNNNNNNNN por un número de DNI y AAAA por un año). Sólo que en dicha página, y siguiendo las convenciones del concurso de traslados anterior, todos los códigos de centro llevaban el sufijo "C". ¿Habría sido tan complicado que PICT quitara esa "C" del final de los códigos de centro?

En fin, que obtengo el link, guardo la página (desde la vista "código fuente", pues en caso contrario el visor de XML de windows puede alterar el código) en el escritorio, y la importo con excel, usando el asistente "Origen XML" para volcar la columna "NUMERO" en A1 y "PETICIÓN" en B1 (no os molestéis en coger la columna especialidad: al menos en mi caso, había reseteado a "lengua" todas las peticiones de "ámbito sociolingüístico"). Después, uso la función Datos => XML => Actualizar para llenar la tabla.


A continuación, añado en la columna C una pequeña función que quite la letra C de las columnas de centros:

=SI(ENCONTRAR("C";B2)=9;IZQUIERDA(B2;8))

Finalmente, copio la función en toda la columna y después voy cortanto y pegando de la columna a PICT, teniendo en cuenta que las celdas llenas en dicha columna serán centros, y el resto serán ciudades o distritos.


¿Fácil, no? Pero hubiera sido más fácil probar la aplicación antes del inicio del concurso... De hecho, si no quedaran sólo 3 días, habría mandado un mensaje a los programadores advirtiéndoles del problema...

No hay comentarios: