Modo librería
Se recomienda usar directamente el STUB generado por Axis2 para usar todos los métodos disponibles.
Modo de uso
Para hacer uso de esta librería es necesario agregar el archivo "ws-cfdi-cli.jar" al CLASSPATH o al proyecto en el IDE con el que esté trabajando, también es indispensable agregar las librerías mencionadas en la sección de requisitos.
Requisitos
- apache-commons-cli-1.2.jar
- apache-commons-lang-2.6.jar
- apache-commons-io-1.4.jar
- CFDI.jar (Stub de CFDI)
- librerias Axis2
Métodos
Los métodos disponibles son:
- importar
- cancelar
- obtenerDatos
- obtenerPDF
Para acceder a estos métodos necesita declarar una instancia al objeto CFDIAccion
. Por ejemplo:
CFDIAccion a = new CFDIAccion();
Método Importar
El método importar
recibe los siguientes parámetros:
- Usuario (String)
- Password (String)
- ubicacion_archivo_importar (String)
- esZip (boolean)
Este método regresa un Map con los siguientes índices:
Nombre | Descripción |
MENSAJE | retorna una variable del tipo String. |
ESTATUS | retorna una variable del tipo int. |
RESULTADO | retorna un arreglo de instancias del tipo ResultadoCreacion . |
El siguiente ejemplo demuestra el uso del método importar:
String usuario = "demo@empresa.com.mx"; String pass = "empresa"; String temp = "/archivo/importar.txt"; boolean esZip = false; Map resultado = a.importar(usuario, pass, temp, false); String mensaje = (String) resultado.get("MENSAJE"); int estatus = (Integer) map.get("ESTATUS"); ResultadoCreacion[] importados = (ResultadoCreacion[]) resultado.get("RESULTADO"); for (ResultadoCreacion r : importados) { if (r.getUuid() = null) { System.out.println("UUID: " + r.getUuid()); System.out.println("Folio: " + r.getFolio()); System.out.println("Serie: " + r.getSerie()); System.out.println("Estatus: " + r.getEstatus()); System.out.println("Email: " + r.getEmail()); System.out.println("Mensaje: " + r.getMensaje()); System.out.println("------------------------------------------------"); } else { System.out.println(r.getMensaje()); } }
Método Cancelar
El método cancelar
recibe los siguientes parámetros:
- Usuario (String)
- Password (String)
- Solicitudes (List<SolicitudCancelacion>)
Este método regresa un Map con los siguientes índices:
Nombre | Descripción |
MENSAJE | retorna una variable del tipo String. |
ESTATUS | retorna una variable del tipo int. |
RESULTADO | retorna un arreglo de instancias del tipo ResultadoCancelacion . |
Un ejemplo de cómo usar este método es el siguiente:
String usuario = "demo@empresa.com.mx"; String pass = "empresa"; SolicitudCancelacion cancela = new SolicitudCancelacion(); cancela.setFolio(1761L); cancela.setSerie("FACTURA"); cancela.setUuid("4AE9A918-63E4-4F16-9EDC-E43370395A29"); resultado = a.cancelar(usuario, pass, Arrays.asList(cancela)); String mensaje = (String) resultado.get("MENSAJE"); int estatus = (Integer) map.get("ESTATUS"); ResultadoCancelacion[] cancelados = (ResultadoCancelacion[]) resultado.get("RESULTADO"); for (ResultadoCancelacion r : cancelados) { System.out.println(r.getMensaje()); }
Método obtenerDatos
El método obtenerDatos
recibe los siguientes parámetros:
- Usuario
- Password (String)
- UUID (String)
- Folio (Long)
- Serie (String)
Este método regresa un Map con los siguientes índices:
Nombre | Descripción |
MENSAJE | retorna una variable del tipo String. |
ESTATUS | retorna una variable del tipo int. |
RESULTADO | retorna un arreglo de instancias del tipo CFDI |
Un ejemplo de cómo usar este método es el siguiente:
String usuario = "demo@empresa.com.mx"; String pass = "empresa"; Map resultado = a.obtenerDatos(usuario, pass, "4AE9A918-63E4-4F16-9EDC-E43370395A29", 1761L, "FACTURA"); String mensaje = (String) resultado.get("MENSAJE"); int estatus = (Integer) map.get("ESTATUS"); CFDI[] comprobantes = (CFDI[]) resultado.get("RESULTADO"); for (CFDI c : comprobantes) { InputStream is = c.getXml().getInputStream(); OutputStream os = System.out; IOUtils.copy(is, os); // librería apache-commons-io.jar }
Método generarPDF
El método generarPDF
recibe los siguientes parámetros:
- Usuario (String)
- Password (String)
- Diseño (Long)
- UUID (String)
- Folio (Long)
- Serie (String)
- Salida del archivo (OuputStream)
Este método no regresa ningun tipo de dato.
Un ejemplo para usar este método es el siguiente:
String usuario = "demo@empresa.com.mx"; String pass = "empresa"; try { FileOutputStream fos = new FileOutputStream(new File("/tmp/doc.pdf")); a.obtenerPDF(usuario, pass, 1, "4AE9A918-63E4-4F16-9EDC-E43370395A29", 1761L, "FACTURA", fos); } catch (IOException ex) { ex.printStackTrace(); }