Tipo de datos dinámicos

Esta entrada es para los WSBFE / WSSEG. Existe una similar para el WSFEX.

En el primer web service de factura electrónica de AFIP (WSFE) todos los tipo de datos son "fijos". Si por ejemplo debemos indicar el tipo de comprobante a emitir simplemente consultamos una página de AFIP donde hay una lista de todos los comprobantes autorizados con su correspondiente código. Lo mismo para tipos de documentos y otros datos. Incluso el control ActiveX contiene esta clase de datos "tipados" y asi en los lenguajes que lo permiten al cargar el valor de estos datos en la propiedad correspondiente el editor de código del lenguaje muestra una lista de valores permitidos.

En los nuevos web services de AFIP (WSBFE / WSSEG) estos tipos de datos son dinámicos. Por ejemplo para el dato "tipo de comprobante" existe un método (en el web service y en el control OCX) "bFEGetParam_tipo_cbte" / "SEGGetParam_tipo_cbte" que devuelve una lista con los tipos de comprobantes autorizados incluyendo código, descripción y fecha de vigencia del tipo de comprobante.

De igual modo existen métodos para recuperar la lista de monedas autorizadas, productos autorizados, etc. Cada una de estas listas incluyen código, descripción y otros datos.

Puede descargar esta planilla excel de ejemplo para recuperar estas listas del servidor AFIP.

Para recuperar estas listas (y tenerlas disponibles en nuestro lenguaje ya sea en un archivo o en una array o matriz) simplemente llamos al método correspondiente y usamos el mecanismo "indiceitem" para leer la listas de valores devueltos por AFIP.

Si por ejemplo necesitamos recuperar la lista de productos autorizados por AFIP para grabarla en un archivo de nuestra base de datos o presentarla en pantalla o moverla a una array o tabla seguimos estos pasos:

    • llamamos al método "bGetParam_NCM"

    • en la propiedad "bProductoItemcantidad" leemos la cantidad de lineas o productos que contiene la lista de AFIP.

    • cargamos la propiedad "bindiceitem" a cero.

    • en las propiedades código, descripcion, fechavigenciadesde, fechavigenciahasta leemos los datos del primero producto de la lista.

    • cargamos la propiedad "bindiceitem" a 1.

    • leemos los datos del segundo producto de la lista.

    • asi sucesivamente hasta que "bindiceitem" sea igual a "bProductoItemcantidad"-1.

El mismo algoritmo sirve para cualquier tipo de datos dinámico (solo cambia el nombre del método y las propiedad que contienen el código y el nombre de cada elemento).

Los métodos del WSBFE / WSSEG y el control OCX que recuperan lista de valores dinámicos son:

Las propiedades para leer la información devuelta por estos métodos se detallan en lista de propiedades