wiki:carga_movimientos

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:

  1. Auxiliar
  2. Catalogo
  3. Cuenta Mayor
  4. Grupo Cuenta
  5. 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:

  1. Movimientos
  2. Documentos
  3. Control CAD
  4. 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:

  1. Clase Cuenta
  2. Grupo Cuenta
  3. Cuenta Mayor
  4. Catalogo
  5. Auxiliar

Tablas de Movimientos:

  1. Terceros
  2. Control CAD
  3. Documentos
  4. 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

http://www.gftp.org/


Home
Last modified 12 years ago Last modified on 07/27/12 23:48:11

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.