Tengo un problema muy específico y estoy en busca de una solución. Tengo que añadir algún tipo de historia a un objeto. La historia será almacenado como este:
- begin_date
- end_date
- previous_id
Supongamos que el objeto que estoy queriendo agregar la historia a es X. Tenemos una base de datos central (en el momento en que todos los archivos mdb, vamos a cambiar pronto de gdb) que contiene el objeto X con la historia. Los trabajadores en el campo tienen una versión local de la base de datos y también rellenar un objeto X_i que tiene un atributo cambiado. X y X_i tener un id para el seguimiento de los mismos.
Ahora, cuando queremos combinar la versión local de la base de datos de una secuencia de comandos se deben ejecutar y llenar la historia de la central db como este:
if X_i.changed = true:
search central_X.id, fill end_date with today
search local_X.id, copy this attribute to central_X and:
fill begin_date
fill previous_id with central_X.id
generate new unique id for the central_X
También vamos a añadir nuevos campos a la central de db y actualización de los identificadores únicos:
for every i in local_X:
if i not in central_X:
copy i to central_X
generate new unique id for i
enter begin_date
Para los elementos eliminados de hacer algo similar, pero a continuación, establecemos la end_date.
Al final de la combinación. Vamos a crear una nueva X_i donde todos los identificadores se han rellenado correctamente y el atributo modificado se vacía en todas partes.
Mi pregunta acerca de esto es:
Yo estaba pensando en hacer esto en ArcPy o FME porque tengo algo de experiencia con ambos. ¿Cuál cree usted que sería mejor, ArcPy o FME (o algo más).
Puede que me apunte en la dirección correcta; lo que son las cajas de herramientas, funciones que se utilizan para esto?
He mirado en alternativas como una de ArcSDE con archivo, pero eso significaría que tendría que invertir en una de ArcSDE, el cambio de una parte significativa de nuestro flujo de trabajo y no todos los elementos que nos cambio X_i.cambiado, por lo que el archivo podría contener demasiada información para ser realmente útil.
Edit: añadido el flujo de trabajo para aclarar.
- Puedo usar changedetector para esto.
- Si X_i.cambiado es cierto
- Si X_i.id no está vacío
- conjunto de end_date para todos los datos procesados
- ni idea de cómo hacerlo
- ni idea de cómo hacerlo
- ni idea de cómo hacerlo
- encontrar el mayor de los id de tan lejos y proceder a partir de esta identificación.