Trucos‎ > ‎Access y Sharepoint 2007‎ > ‎

Primeros ensayos

publicado a la‎(s)‎ 12 feb. 2012 11:37 por José Bengoechea Ibaceta   [ actualizado el 12 feb. 2012 11:37 ]

Primeros ensayos


Ya estoy listo para intentarlo con un aplicación real, pero antes contaré un poco de cómo me han ido mis ensayos para utilizar Office Live Small Business como Back End de una aplicación desarrollada en Access 2007.

Elegir la aplicación

El primer ensayo fue del todo frustrante. Probé con una aplicación compleja, con datos no excesivos pero bastantantes, abundantes tablas, con uso profuso de subformularios, cuadros combinados, etc. y la subí de un tirón. Aquello no había manera de moverlo y, encima, los datos eran incoherentes. Estaba claro que se habían cambiado todos los campos clave, que faltaban índices y que había que replantear la aplicación buscando estrategias para disminuir el tráfico de red.

Los últimos ensayos los he realizado con una aplicación pequeñita, sencilla y con pocos registros y me ha ido mucho mejor. Suena a trampa usar una aplicación así, pero ese tipo de aplicación existe y es frecuente en Access, de hecho, la aplicación está en uso. Además, si queremos iniciarnos en albañilería de software, debemos empezar por reformar la cocina, no por el Escorial, ya tendremos tiempo, con un poco de experiencia, de ver el alcance de nuestras posibilidades.

Elimina las relaciones antes de subir las tablas

Algo que vas a perder definitivamente con Sharepoint son la integridad referencial y la eliminación en cascada, entonces ¿para qué queremos las relaciones? Sharepoint es "tan listo" que cuando ve una relación es capaz de crear un campo de búsqueda en la tabla que subimos, pero es "tan tonto" que sube una copia de la tabla de búsqueda por cada una de las tablas que tengan una relación a ella como clave externa. Cierto que cuando he comprobado este fallo ha sido subiendo las tablas una a una, porque me fallaba la opción de subirlas todas a la vez, pero con una vez que pase ya es suficiente para librarnos de las relaciones.

No es necesario subir todas las tablas

¿Qué pinta la tabla SwitchBoardItems en el servidor de Sharepoint? Lo mismo pasa con las provincias, meses… Otros datos, como los países, tipos de iva, etc. cambian de tarde en tarde, pero para eso podríamos tener un sistema de doble copia, en el servidor y en local ,y mantener una tabla de versiones que se comprobaría al iniciar la aplicación y copiaría a local los datos del servidor en caso de ser una versión distinta. De momento, como estamos en pruebas, dejemos esas tablas en local y ya encontraremos una solución más andelante, antes de que el mapamundi cambie de nuevo.

Tranquilo, no se pierden los valores de los campos clave

¡Aaarrrg! Has subido y vinculado tu tabla y compruebas con horror que tu campo IDMitabla ha sido sustituido por un simple ID renumerado desde cero, de manera que ya no coincide con tu numeración, que tenía sus huecos. Tus valores no aparecen por ningún lado ¿Cómo vas a poder relacionar así? No hagas como hice yo, que el teclado no tiene la culpa para tratarlo así. ´

Abre la tabla vinculada, sitúate sobre la fila de nombres de campos y, con el botón derecho del ratón, selecciona "Mostrar columnas…" y elige el campo _ID, con guión bajo delante. Ahí están los datos originales. Sin indexar, pero ahí están.

Ahora toca la parte pesada: ir tabla por tabla, buscando qué claves externas hacen referencia a esa y cambiarle los datos. Podemos usar una serie de consultas de este tipo:

UPDATE LaOtraTabla LEFT JOIN Mitabla ON laOtraTabla.id_Mitabla = Mitabla.[_ID] SET LaOtraTabla.id_Mitabla = [Mitabla].[ID];

Seguramente, podremos hacernos unos procedimientos para evitar tener que ir diseñando la consulta tabla por tabla y clave externa por clave externa, pero, como se supone que estamos probando con una aplicación sencillita, de momento, no nos vamos a entretener en ello.

Añade índices a las listas

En Sharepoint no se va a notar mucho, pues vemos las listas planas, pero en Access vamos a relacionar unas tablas con otras y que los campos claves estén indizados se va a notar mucho en velocidad.

Los índices deben añadirse en el sitio Sharepoint, pero podemos ir al formulario de modificación directamente desde Access. Pinchando con el botón derecho del ratón sobre la tabla vinculada, podemos elegir "Opcione de Lista de Sharepoint" y ahí "Modificar columnas y configuración"

Empieza a probar y no desesperes

Si todo parece salir bien a la primera, seguro que estás equivodo

Ya nos iremos contando nuestras tribulaciones.

Comments