ADempiere: Archivos TXT

Saludos!
En esta oportunidad voy a comentarles sobre la forma que encontré para generar los archivos .txt desde el sistema. Estos archivos se necesitan para enviar las nóminas al banco, enviar la información de pagos del SSO, FAOV, TSS y todos aquellos que se les ocurra al Ministerio (empresa del estado).
No se si sea la mejor manera de hacerlo, si hay una solución más avanzada, más técnica, mas profesional. Lo que sé es que esto me ha funcionado y no he encontrado otra manera de hacerlo.

Generar Archivos TXT

Lo primero es crear la clase que extiende de SvrProcess e importar los siguientes paquetes:
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Timestamp;
import org.compiere.process.ProcessInfoParameter;
import org.compiere.process.SvrProcess;
import org.compiere.util.DB;
import java.io.*;
import java.util.logging.Level;
import java.awt.Desktop;
En el métod  protected void prepare()  se capturan los valores de las variables declaradas (parámetros del proceso). Si no se tiene ninguna variable se declara null de la siguiente manera
               ProcessInfoParameter[] para = getParameter();
                for (int i = 0; i < para.length; i++)
                {
                        String name = para[i].getParameterName();
                        if (para[i].getParameter() == null)
                }
Dentro del método protected String doIt() throws Exception programamos el comportamiento o estilo que tendrá el archivo .txt
Aqui vamos a:
1. String so=System.getProperty("os.name"); Obtener el nombre del sistema operativo donde está corriendo el sistema.
2. String dir=System.getProperty("user.dir"); Obtener el directorio por defecto del usuario que está corriendo el sistema.
3. File archivo=new File(nombreArch); Establecer el nombre del archivo.
4. Writer writer = new BufferedWriter(new OutputStreamWriter
                           (new FileOutputStream(archivo), "UTF8")); Preparar la escritura del archivo.
5. Realizar la sentencia SQL con la cual se obtendrán los datos del archivo (usando el PreparedStatement)
6. writer.write(rs.getString(1)+"|"+desde+"|"+rs.getString(2)+"|05031305|"+rs.getBigDecimal(3)); Escribir el archivo segun el orden en que lo requiera el organismo solicitante.
7. Manejar las excepciones en caso de algún error o caso extraordinario que se presente durante la ejecución.

Luego que se tenga la clase lista se abre el ADempiere como SystemAdministrator y se crea el proceso que invocará esta clase para generar el txt.

Si quieres más información al respecto o quieres que te envíe una clase de ejemplo (una que estoy usando por los momentos) escríbeme y con gusto te la haré llegar.

Comentarios

Entradas populares de este blog

ADempiere: Configuración Inicial de la Compañía

ADempiere: Diccionario de Aplicación

ADempiere: Codigo Comun