Función VirtualXML_MasivaDescarga VirtualXML
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.



Namespace:
 VirtualXML®
Aplicación: CFDI ver. 3.3
Sintaxis

public static long VirtualXML_MasivaDescarga(
String Usuario,
String ArchivoCerFiel,
String ArchivoKeyFiel,
String PwdKey,
String IdPaquete,
String ArchivoDescargado,
String ArchLog,
String Reservado)

Parametros

Usuario
Tipo: System  String
Nombre del usuario VirtualPAC (el mismo que se utiliza en el portal de asignación de timbres)
ArchivoCerFiel
 Tipo: System  String
Ubicación (ruta y nombre del archivo) del Archivo .CER correspondiente a la FIEL del emisor.
ArchivoKeyFiel
Tipo: System  String
Ubiación (ruta y nombre del archivo) del Archivo .KEY correspondiente a la FIEL del emisor.
PwdKey
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).
Reservado
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()