> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Obtenga datos mediante la API

> Recupera datos de Business Process Reporting de ABBYY FlexiCapture mediante los puntos de entrada BatchState y BatchRouting, solicitudes GET y un script de PowerShell para CSV.

<div id="path-to-the-business-process-reporting-data-storage">
  ## Ruta al almacenamiento de datos de Business Process Reporting
</div>

Puntos de entrada:

```text theme={null}
/Reporting/BatchState/List
/Reporting/BatchState/File/<filename>
/Reporting/BatchState/View
/Reporting/BatchRouting/List
/Reporting/BatchRouting/File/<filename>
/Reporting/BatchRouting/View
```

La ruta completa del almacenamiento de datos es un enlace que se puede modificar.

Ejemplo:

```text theme={null}
http://localhost/Flexicapture12/Server/Reporting/BatchState/View
```

Para acceder a través del módulo de autenticación de ABBYY FlexiCapture, se añade `/FCAuth` al enlace.

Se permite el acceso autorizado en los siguientes casos:

* Para los usuarios autorizados de ABBYY FlexiCapture.
* Cuando se utilizan tokens SAML/JWT.

Ejemplo:

```text theme={null}
http://localhost/Flexicapture12/Server/FCAuth/Reporting/BatchState/View
```

Si el tenant no es el predeterminado, se añade el parámetro `?Tenant=<tenant name>` al enlace.

Ejemplo:

```text theme={null}
http://localhost/Flexicapture12/Server/FCAuth/Reporting/BatchState/View?Tenant=myTenant
```

<div id="create-requests">
  ## Crear solicitudes
</div>

Solo se aceptan solicitudes GET.

* **List** devuelve una lista de nombres de archivo en formato JSON.
* **File** devuelve un archivo con el nombre especificado (que debe estar codificado en formato URL).
* **View** devuelve una lista de nombres de archivo en formato HTML e inserta enlaces a los archivos mediante el comando **File** descrito anteriormente. Por lo tanto, esta solicitud le permite usar los enlaces proporcionados para abrir los archivos en el navegador y guardar copias en su equipo local.

Ejemplos:

```text theme={null}
http://localhost/Flexicapture12/Server/FCAuth/Reporting/BatchState/View
http://localhost/Flexicapture12/Server/FCAuth/Reporting/BatchRouting/View
```

<div id="get-business-process-reporting-reports-using-a-powershell-script">
  ## Obtener informes de Business Process Reporting mediante un script de PowerShell
</div>

El siguiente script permite a los usuarios del tenant con el rol de **Administrador** u **Operador de supervisión** obtener datos de supervisión de procesos empresariales.

Los informes se guardan en formato CSV en la carpeta desde la que se ejecutó el script.

```powershell theme={null}
$serviceHost = 'http://localhost' #Host
$user=$null #Usuario
$pass=$null #Contraseña
$tenant=$null #Nombre del tenant
$baseUrl = $serviceHost
if( $user ) {
    $baseUrl += '/flexicapture12/server/FCAuth/Reporting/'
    } else {    $baseUrl += '/flexicapture12/server/Reporting/'
    }function createBasicCredentials() #Transforma la contraseña en cadenas cifradas
{
    $secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force
    return New-Object System.Management.Automation.PSCredential($user, $secpasswd)
}
function getListFromUrl( $url ) #Autentica con las credenciales introducidas
{
    if( $tenant ) {
        $url = $url + '?Tenant=' + [uri]::EscapeUriString( $tenant );
    }
    if( $user ) {
        $creds = createBasicCredentials -user $user -pass $pass
        $response = Invoke-WebRequest -Credential $creds -Uri $url;
    } else {
        $response = Invoke-WebRequest -UseDefaultCredentials -Uri $url;
    }
    $fileList = $response.ToString() | ConvertFrom-Json;
    return $fileList.reportFiles;
}
function getBatchStateFileList() #Solicita una lista de archivos BatchState
{
    $url = $baseUrl + 'BatchState/List';
    return getListFromUrl -url $url
}
function getBatchRoutingFileList() #Solicita una lista de archivos BatchRouting
{
    $url = $baseUrl + 'BatchRouting/List';
    return getListFromUrl -url $url
}
function downloadFile ( $fileName, $outDir ) #Descarga archivos
{
    $url = $baseUrl + 'BatchState/File/' + [uri]::EscapeUriString( $fileName );
    if( $tenant ) {
        $url = $url + '?Tenant=' + [uri]::EscapeUriString( $tenant );
    }
    $outPath = Join-Path -Path $outDir -ChildPath $fileName
    if( $user ) {
        $creds = createBasicCredentials -user $user -pass $pass
        $response = Invoke-WebRequest -Credential $creds -Uri $url;
        $response = Invoke-WebRequest -Credential $creds -Uri $url -OutFile $outPath
    } else {
        $response = Invoke-WebRequest -UseDefaultCredentials -Uri $url -OutFile $outPath
    }
}
$files = getBatchStateFileList; #Carga archivos BatchState en el directorio actual
foreach ($file in $files) {
    downloadFile -fileName $file -outDir '.\'
}
$files = getBatchRoutingFileList; #Carga archivos BatchRouting en el directorio actual
foreach ($file in $files) {
    downloadFile -fileName $file -outDir '.\'
}
```
