Realiza la descarga de los paquetes de información
previamente validados con la funcion VirtualXML_MasivaVerifica().
La funcion VirtualXML_MasivaVerifica() devuelve un archivo .INI donde se encuentran un identificador de paquete de descarga, así como la cantidad de los mismos resultado de una peticion de descarga masiva al SAT.
La funcion VirtualXML_MasivaVerifica() devuelve un archivo .INI donde se encuentran un identificador de paquete de descarga, así como la cantidad de los mismos resultado de una peticion de descarga masiva al SAT.
Namespace: VirtualXML®
Aplicación: CFDI ver. 3.3
Sintaxis
Parametros
- Usuario
- Tipo: System
String
Nombre del usuario VirtualPAC (el mismo que se utiliza en el portal de asignación de timbres)
Tipo: System String
- Ubicación (ruta y nombre del archivo) del Archivo .CER correspondiente a la FIEL del emisor.
- Tipo: System
String
Ubiación (ruta y nombre del archivo) del Archivo .KEY correspondiente a la FIEL del emisor.
- Tipo: System
String
Password del Archivo .KEY de la FIEL del emisor.
- IdPaquete
- Tipo: System
String
Parámetro para indicar el identificador de paquete obtenido del archivo .INI resultado de la ejecucion de la funcion VirtualXML_MasivaVerifica(), los 2 ultimos digitos de este valor identifican la cantidad de paquetes, esta función debe ejecutarse tantas veces como paquetes resulten en la verificación. -
[VirtualXML]
IDSOLICITUD = fef63edl-1041-402f-b678-b42126b9f66d
PAQUETES = FEF63ED1-1041-402F-B678-B42126B9F66D_03
FUNCTIONCALL = VirtualXML_MasivaSolicitaEmitido
- En este ejemplo detectamos un valor de 03 en los dos últimos digitos del nombre del paquete, por lo tanto debemos asumir que hay 3 paquetes con terminacion 01, 02 y 03 respectivamente, esto indica que la función VirtualXML_MasivaDescarga() deberá ejecutarse 3 veces, una por cada paquete.
- ArchivoDescargado
- Tipo: System
String
En este parámetro indicaremos el nombre con el cual queremos guardar la descargar, este archivo se descarga en formato .ZIP, sin importar el nombre que le pongamos o la extensión. Utilice de preferencia siempre la extensión .ZIP.
- ArchLog
- Tipo: System
String
Nombre del archivo que guardará la bitácora de la petición (necesario para depurar errores).
- Tipo: System
String
Parmetro sin valor para usos futuros.
Valor retornado:
Tipo: Int32
Si la función devuelve 0, si la descarga se realizó correctamente, si devuelve cualquier otro valor esto indica que se generó un error y deberá volver a intentar la descarga.
Ejemplo
private void DescargaXmls(Int error)
{
// Verificamos si una descaga esta lista, suponiendo que el valor en el INI de la entrada IDSOLICITUD = fef63edl-1041-402f-b678-b42126b9f66d
int nVerifica = VirtualXML_MasivaVerifica("cibertec","archivo.cer","archivo.key","password","fef63edl-1041-402f-b678-b42126b9f66d","Verifica.INI","bitacoraverifica.log","");
// Validamos la respuesta
if ( nResultado != 0 )
{
// Ocurrio un Error
MsgBox("Error en la verificación de la solicitud de descarga" );
}
else
{
// Todo correcto, procedemos a descargar asumiendo que la entrada PAQUETES del archivo .INI generado por la funcion de verificación es:FEF63ED1-1041-402F-B678-B42126B9F66D_03
// Los 2 ultimos digitos del valor de la entrada PAQUETES (03) nos indican que exiten 3 paquetes resultado de la peticion por lo tanto se ejecuta 3 veces la funcion
int nDescarga1 = VirtualXML_MasivaDescarga("cibertec","archivo.cer","archivo.key","password","FEF63ED1-1041-402F-B678-B42126B9F66D_01","DescargaMasiva_01.zip","Descarga_01.log","");
int nDescarga2 = VirtualXML_MasivaDescarga("cibertec","archivo.cer","archivo.key","password","FEF63ED1-1041-402F-B678-B42126B9F66D_02","DescargaMasiva_02.zip","Descarga_02.log","");
int nDescarga3 = VirtualXML_MasivaDescarga("cibertec","archivo.cer","archivo.key","password","FEF63ED1-1041-402F-B678-B42126B9F66D_03","DescargaMasiva_03.zip","Descarga_03.log","");
// ...
}
}
Veáse También:
VirtualXML_MasivaSolicitaEmitidoMetadata()
VirtualXML_MasivaSolicitaEmitidoXML()
VirtualXML_MasivaSolicitaRecibidoMetadata()
VirtualXML_MasivaSolicitaRecibidoXML()
VirtualXML_MasivaVerifica()