| Manual de Cont4 / Contable / Asientos / Importación | Anterior / Siguiente |
Importación de asientosEste proceso permite crear asientos a partir de un fichero CSV con la codificación CP-1252. La primera línea del fichero CSV se descartará para permitir indicar en ella los nombres de las columnas.
Si el fichero de importación se ha generado desde un programa que funciona bajo MS-DOS o en un intérprete de comandos de Windows, puede que sea necesario seleccionar la opción 'Convertir caracteres de DOS', para que los acentos y las letras como la 'ñ' aparezcan correctamente.
El fichero CSV debe contener las siguientes columnas por cada apunte (los campos opcionales se pueden dejar en blanco):
El número de asiento sólo se tiene en cuenta para agrupar los apuntes, es decir, se insertará apuntes en un asiento hasta que el número cambie, entonces se creará otro asiento, cuyo número será el del último registrado más uno, y los siguientes apuntes se insertarán en él hasta que el número vuelva a cambiar.
El proceso de importación se puede interrumpir porque el fichero de importación no esté bien definido, o también, porque la cuenta o el concepto contable no existan en la base de datos. En este último caso, el mensaje será "No se ha encontrado el registro referenciado" y se indicará de qué apunte se trata. Entonces se tendrá que comprobar si existe la cuenta y el concepto contable indicados en el apunte. Tras solucionar el problema, se podrá volver a realizar la importación.
Si este proceso no llega hasta el final, debido a un error o a que
se cancele, la base de datos quedará intacta, es decir, como si no se
hubiera realizado la importación.
Importación de asientos por línea de comandos
Por línea de comandos el fichero de importación debe tener el mismo formato que en la importación desde Cont4. Para ver los parámetros de importación, se puede ejecutar la siguiente sentencia:
$ java -jar GestC.jar import
Importación de datos
PARÁMETROS: URL login password { asientos } fichero.csv
[separador separadorTexto comaDecimal formatoFecha]
Por defecto: ; " , dd/MM/yyyy
Por ejemplo, para importar en una base de datos alojada en la nube con estas características:
La sentencia sería la siguiente:
$ java -jar GestC.jar import \
www.tetrainfo.com:4000/9876/GEST_2026_1 \
usuario contraseña asientos FICHERO.csv
En una instalación cliente/servidor, donde no habría código del cliente, habría que quitar del URL la subcadena '/9876':
$ java -jar Gest.jar import host:4000/GEST_2026_1 \
usuario contraseña asientos FICHERO.csv
En una instalación monousuario no habría que indicar el 'host' ni el puerto y el usuario la contraseña serían DBA y SQL:
$ java GestL.jar import GEST_2026_1 \
DBA SQL asientos FICHERO.csv
Si el proceso se interrumpiera a petición del usuario (Ctrl+C)
o debido a un error, la base de datos quedaría intacta.
Importación de asientos mediante JDBC
La importación mediante JDBC se debe realizar usando Java:
// Hay que usar un lista en la que cada elemento debe ser
// otra lista con los apuntes de los asientos a importar:
List<List<Object>> asientos = ...;
try(Connection conex = ...
PreparedStatement ps = conex.prepareStatement(
"CALL IMPORTAR_ASIENTOS (?)"))
{
conex.setAutoCommit(false);
ps.setObject(1, asientos);
ps.executeUpdate();
conex.commit();
}
Hay que tener en cuenta que el ejemplo anterior está muy simplificado. Realmente habría que preparar la sentencia, llamarla con bloques de 100 apuntes cada vez para minimizar el efecto del retardo de la red y finalmente, confirmar la transacción y cerrar la sentencia y la conexión ('try' con recursos).
Los tipos de los objetos de la lista de un apunte deben ser los siguientes:
Temas relacionados: