Tratamiento de errores

Después de llamar a cualquiera de los métodos del WSLSP, aparte de las propiedades específicas en donde se leen los resultados, existen un grupo de propiedades comunes a todos que contienen la lista de errores devueltos por AFIP (si los hubiere) .

Las propiedades "ultimonumeroerror" y "ultmomensajerror" son genéricas de la interfaz (no pertenecen al web service) y contiene errores locales, es decir no devueltos por el servidor de AFIP por ejemplo: fallos de conexión, el servidor no está disponible, la interfaz no está correctamente instalada, falta de certificado, etc).

Si el método pudo ejecutarse y AFIP devolvió un resultado pero hubo errores, entonces se leen en las siguientes propiedades. Notar que el web service WSLSP puede devolver 1 o más errores (una lista de errores con los diferentes motivos por los que se rechazó la liquidación o el método ejecutado).

Por comodidad se agregaron a la interfaz las propiedades "lsperrorcodigo1" y "lsperrordescripcion1" que directamente contienen el primer error (si lo hubiere) de la lista de errores devuelta, es decir es como poner lspindiceitem=0 y leer los valores en lspErrorcodigo y lspErrorDescripcion pero más rápido y sin tener que verificar si lspErrorItemCantidad vale 1 o más ya que "lspErrorCodigo1" devuelve 0 si no hay errores.

En resumen luego de ejecutar el método para autorizar una liquidación "lspGenerarLiquidacion" debe verificarse:

  • que "ultimonumeroerror" contenga 0

  • que "lsperroritemcantidad" contenga 0, de no ser así entonces "lsperrorcodigo1" y "lsperrordescripcion1" contendrán el primer motivo del error.

  • si "ultimonumeroerror" y "lsperroritemcantidad" valen 0 .

  • Como se deduce de esto, no es tan importante si el método "lspGenerarLiquidacion" devuelve verdadero o falso.

de no cumplirse las 2 condiciones entonces "ultimomensajeerror" contendrá la descripción del error (si es un error local de conexión) o bien "lsperrorDescripcion1" contendrá el motivo de error devuelto por AFIP (solo el primer motivo, si hubo 2 o más recorrer la lista con lspindiceitem desde 0 hasta el valor indicado por "lsperroritemcantidad"). La lista de códigos de errores con su causa figuran en el PDF de AFIP.

Bajo ningún concepto deben confundirse las propiedades "lspErrorCodigo1", que referencia a un valor fijo: el primero de la lista de errores si lo hubiere, con la propiedad "lspErrorCodigo" que referencia un valor de una lista variable apuntada por "lspIndiceItem" y cuyo límite (cantidad de filas de la lista) está marcado por "lspErrorItemCantidad".