Carga de Movimientos Contables
Procedimiento para cargar o subir todos los movimientos contables a la base de datos de contabilidad a partir de archivos dbf. Los archivos son generados por la Ing. Gloria Amparo y guardados en el servidor de Ingeominas con el usuario safiactual en la dirección IP <DIRECCION IP>
Conectar - Migra2
Comando para conexión al servidor de Ingeominas. Se crea un puente al equipo donde se encuentren los archivos.
ssh -L2222:<DIRECCION IP INGEOMINAS>:22 <usuario BD>@<IP base de datos> websafi@190.25.232.213's password: <CLAVE>
Para entrar es necesaria la contraseña, la cual se obtiene del administrador de la base de datos de Sofhouse.
Obtener archivos
Una vez conectados a Ingeominas podemos entrar al usuario del sistema y descargar los archivos dbf.
Usuario: safiactual
Contraseña: *
Se puede entrar por medio de la herramienta gFTP de linux, para la conexión a otros equipos.
Para la conexión son necesarios el servidor, el usuario, el puerto y tipo de conexión. Como lo muestra la siguiente imagen:
Servidor: localhost Puerto: 2222 usuario: safiactual Tipo de conexión: SSH2
Servidor localhost por la conexión realizada en el primer paso al equipo.
Borrado de datos
Para subir los datos son necesarios actualizar datos de cuentas y terceros, por lo cual se deben borrar los datos de la base, en un orden para no romper la integridad de la base de datos.
Tablas de Cuentas:
- Auxiliar
- Catalogo
- Cuenta Mayor
- Grupo Cuenta
- Clase Cuenta
Puede borrar los datos de las tablas la por el comando sql:
DELETE FROM <NOMBRE DE LA TABLA>
La tabla de tercero no depende de otras tablas.
Tablas de Movimientos:
- Movimientos
- Documentos
- Control CAD
- Terceros
Este es el orden para la eliminación de los datos para las tablas según su relación, ejemplo de eliminar el catalogo debe antes eliminar la tabla de auxiliares.
Configurar DbConv
Descargar los 3 archivos adjuntos a la carpeta del egroupware de david:
- dvconv.jar
- data.txt
- dbconv_w_log.sh
Modificar el dbconv_w_log.sh con gedit para que apunte a donde se guarden los archivos, el programa dbconv debe quedar en la misma carpeta que el archivo data.txt
En el archivo data.txt, comentar la conexión que esté y des-comentar la que corresponda a contabilidad local. Crear una carpeta vacía con el nombre de log.
Por ultimo crear un lanzador al archivo .sh como link de ejecución.
Ejecutar aplicativo DbConv
Para la carga de datos se usa un aplicativo .jar creado para convertir archivos dbf a sql y ejecutarlos directamente.
Se debe tener en cuenta el orden de las tablas para la carga de los movimientos y cuentas.
Tablas de Cuentas:
- Clase Cuenta
- Grupo Cuenta
- Cuenta Mayor
- Catalogo
- Auxiliar
Tablas de Movimientos:
- Terceros
- Control CAD
- Documentos
- Movimientos
La tabla de terceros no depende de otra, pero debe estar creada para subir los movimientos y documentos.
Ejemplo para subir los movimientos son necesarios subir las tablas de las cuales depende como tercero y auxiliares. También la tabla de documento, y a su vez para esta la de control CAD.
El aplicativo al ejecutar abre una terminal donde muestra los errores, y el estado de conectividad.
Para convertir los dbf en sql se debe abrir el archivo y dar el nombre de la tabla si no se encuentra mapeado en el archivo txt. Dar en el botón convertir, esto genera de 1 a 4 archivos sql con losm insert de la tabla, son creados en el mismo archivo donde se encuentra el dfb.
Esto genera los sql, pueden ser ejecutados directamente en un administrador de la base de datos como DataStudio o SQLDeveloper de oracle. Para la salida del archivo de csv con los errores ejecútelo con este aplicativo.
Solo debe adjuntar el archivo y ejecutar. Se muestra el numero de filas y el tiempo que falta para terminar con el archivo sql.
Pasados 10 segundos la conexión se cierra automáticamente.
Para mas información ver los vídeos de manejo del aplicativo, los archivos se encuentran en la carpeta de egroupware usuario /home/lavila.
Archivos:
- dbconv001.ogv
- dbconv002.ogv
Errores en la Carga
Para identificar y corregir problemas en la carpeta de log se crea un archivo csv con las sentencias sql no ejecutadas correctamente y su error.
- Demasiados valores: Mas campos de los que requiere la tabla.
- Numero máximo: Demasiados errores en la ejecución.
- Insert NULL: Debe de tener valor el campo, no es posible insertar vació.
Estos son solo algunos de los posibles errores.
Cambio de secuencias
Se deben cambiar las tablas de secuencias para el manejo de nuevos movimientos.
Para esto el aplicativo brinda la posibilidad con el nombre de la secuencia cambiar el valor.
Nota: No olvide si ejecuta las sentencias SQL en sqlDeveloper hacer comit luego de cada una.
Para las tablas de secuencias propias de contabilidad CN_TABLE_SEQ y CN_TABLE_VIG_SEQ cambiarlas directamente o con las siguientes sentencias sql:
Tabla CN_TABLE_SEQ
update cn_table_seq set seq = nvl((select max(id_tipo_cuenta) from cn_tipo_cuenta),0) WHERE NOM_ENTIDAD='CN_TIPO_CUENTA' AND ID_CIA = 1; update cn_table_seq set seq = nvl((select max(id_tipo_parametro) from cn_tipo_parametro),0) WHERE NOM_ENTIDAD='CN_TIPO_PARAMETRO' AND ID_CIA = 1; update cn_table_seq set seq = nvl((select max(id_firma) from cn_firma),0) WHERE NOM_ENTIDAD='CN_FIRMA' AND ID_CIA = 1; update cn_table_seq set seq = nvl((select max(ID_TRANSA) from cni_transa),0) WHERE NOM_ENTIDAD='CNI_TRANSA' AND ID_CIA = 1; update cn_table_seq set seq = nvl((select max(ID_TS_IM) from cni_ts_im),0) WHERE NOM_ENTIDAD='CNI_TS_IM' AND ID_CIA = 1; UPDATE CN_TABLE_SEQ set seq = nvl((select max(id_centro_costo) from cn_centro_costo),0) WHERE NOM_ENTIDAD='CN_CENTRO_COSTO' AND ID_CIA=1; UPDATE CN_TABLE_SEQ set seq = nvl((select max(id_sub_centro_costo) from cn_sub_centro_costo),0) WHERE NOM_ENTIDAD='CN_SUB_CENTRO_COSTO' AND ID_CIA=1; UPDATE CN_TABLE_SEQ set seq = nvl((select max(id_control_periodo) from cn_control_periodo),0) WHERE NOM_ENTIDAD='CN_CONTROL_PERIODO' AND ID_CIA=1; UPDATE CN_TABLE_SEQ set seq = nvl((select max(id_grupo_cuenta) from cn_grupo_cuenta),0) WHERE NOM_ENTIDAD='CN_GRUPO_CUENTA' AND ID_CIA=1; UPDATE CN_TABLE_SEQ set seq = nvl((select max(id_clase_cuenta) from cn_clase_cuenta),0) WHERE NOM_ENTIDAD='CN_CLASE_CUENTA' AND ID_CIA=1; UPDATE CN_TABLE_SEQ set seq = nvl((select max(id_cuenta_mayor) from cn_cuenta_mayor),0) WHERE NOM_ENTIDAD='CN_CUENTA_MAYOR' AND ID_CIA=1; UPDATE CN_TABLE_SEQ set seq = nvl((select max(id_catalogo) from cn_catalogo),0) WHERE NOM_ENTIDAD='CN_CATALOGO' AND ID_CIA=1; UPDATE CN_TABLE_SEQ set seq = nvl((select max(id_auxiliar) from cn_auxiliar),0) WHERE NOM_ENTIDAD='CN_AUXILIAR' AND ID_CIA=1; UPDATE CN_TABLE_SEQ set seq = nvl((select max(id_cen_op) from cn_centro_operacion),0) WHERE NOM_ENTIDAD='CN_CENTRO_OPERACION' AND ID_CIA=1; UPDATE CN_TABLE_SEQ SET SEQ = NVL((SELECT max(ID_MAE_TER) FROM CN_MAE_TER),0) where nom_entidad='CN_MAE_TER' and id_cia=1; UPDATE CN_TABLE_SEQ set seq = nvl((select max(id_auxiliar) from cn_auxiliar),0) WHERE NOM_ENTIDAD='CN_AUXILIAR' AND ID_CIA=1; UPDATE CN_TABLE_SEQ SET SEQ = NVL((SELECT max(ID_TIPO_COMPROBANTE) FROM CN_TIPO_COMPROBANTE),0) where nom_entidad='CN_TIPO_COMPROBANTE' and id_cia=1; UPDATE CN_TABLE_SEQ set seq = nvl((select max(id_catalogo) from cn_catalogo),0) where nom_entidad='CN_CATALOGO' and id_cia=1;
Tabla CN_TABLE_VIG_SEQ
Vigencia 2010
UPDATE CN_TABLE_VIG_SEQ set seq = nvl( (select max(id_documento) from cn_documento where id_vigencia = 2010 and id_cia=1 ),0 ) WHERE NOM_ENTIDAD='CN_DOCUMENTO' AND ID_CIA=1 and ID_VIGENCIA = 2010; UPDATE CN_TABLE_VIG_SEQ set seq = nvl( (select max(id_cad) from cn_control_cad where id_vigencia = 2010 and id_cia=1 ),0 ) WHERE NOM_ENTIDAD='CN_CONTROL_CAD' AND ID_CIA=1 and ID_VIGENCIA = 2010; UPDATE CN_TABLE_VIG_SEQ set seq = nvl( (select max(id_mov_cont) from cn_movimiento_contable where id_vigencia = 2010 and id_cia=1 ),0 ) WHERE NOM_ENTIDAD='CN_MOVIMIENTO_CONTABLE' AND ID_CIA=1 and ID_VIGENCIA = 2010;
Vigencia 2011
UPDATE CN_TABLE_VIG_SEQ set seq = nvl( (select max(id_documento) from cn_documento where id_vigencia = 2011 and id_cia=1 ),0 ) WHERE NOM_ENTIDAD='CN_DOCUMENTO' AND ID_CIA=1 and ID_VIGENCIA = 2011; UPDATE CN_TABLE_VIG_SEQ SET SEQ = NVL( (SELECT max(ID_CAD) FROM CN_CONTROL_CAD where ID_VIGENCIA = 2011 AND ID_CIA=1 ),0 ) WHERE NOM_ENTIDAD='CN_CONTROL_CAD' AND ID_CIA=1 and ID_VIGENCIA = 2011; UPDATE CN_TABLE_VIG_SEQ set seq = nvl( (select max(id_mov_cont) from cn_movimiento_contable where id_vigencia = 2011 and id_cia=1 ),0 ) WHERE NOM_ENTIDAD='CN_MOVIMIENTO_CONTABLE' AND ID_CIA=1 and ID_VIGENCIA = 2011;
Vigencia 2012
UPDATE CN_TABLE_VIG_SEQ set seq = nvl( (select max(id_documento) from cn_documento where id_vigencia = 2012 and id_cia=1 ),0 ) WHERE NOM_ENTIDAD='CN_DOCUMENTO' AND ID_CIA=1 and ID_VIGENCIA = 2012; UPDATE CN_TABLE_VIG_SEQ SET SEQ = NVL( (SELECT max(ID_CAD) FROM CN_CONTROL_CAD where ID_VIGENCIA = 2012 AND ID_CIA=1 ),0 ) WHERE NOM_ENTIDAD='CN_CONTROL_CAD' AND ID_CIA=1 and ID_VIGENCIA = 2012; UPDATE CN_TABLE_VIG_SEQ set seq = nvl( (select max(id_mov_cont) from cn_movimiento_contable where id_vigencia = 2012 and id_cia=1 ),0 ) WHERE NOM_ENTIDAD='CN_MOVIMIENTO_CONTABLE' AND ID_CIA=1 and ID_VIGENCIA = 2012;
Tabla para las secuencias por año.
Referencias
Attachments (4)
- gFTP.png (119.1 KB ) - added by 13 years ago.
- terminal.png (14.6 KB ) - added by 13 years ago.
- java.png (27.0 KB ) - added by 13 years ago.
- csv_log.png (61.2 KB ) - added by 13 years ago.
Download all attachments as: .zip