> ## 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.

# Journal des événements de System Monitor

> Téléchargez le journal des événements de System Monitor d’ABBYY FlexiCapture au format CSV via la requête POST GetEventsCSV, avec des paramètres de filtre, de colonne, de tri et de tenant.

Ce journal contient des entrées sur tous les événements et erreurs survenus dans ABBYY FlexiCapture, tels que les connexions et déconnexions des administrateurs système, le démarrage et l’arrêt du serveur d’applications et des stations de traitement, etc. Ce journal des événements ne contient pas les événements survenus dans les tenants.

<Warning>
  Seuls les utilisateurs disposant des autorisations d’administrateur système peuvent télécharger les journaux des événements depuis System Monitor. Un administrateur système est l’administrateur d’un tenant par défaut.
</Warning>

Pour télécharger ce journal, utilisez une requête POST.

```
POST https://<server address>/FlexiCapture12/Monitoring/Tenant/GetEventsCSV
```

<div id="request-parameters">
  ## Paramètres de la requête
</div>

1. Tous les paramètres sont obligatoires. Assurez-vous qu’ils sont correctement renseignés.
2. La recherche dans Oracle Database distingue les majuscules des minuscules. Veuillez en tenir compte si vous utilisez Oracle Database.

<table width="100%"><tbody><tr><td><p><strong>Name</strong></p></td><td><p><strong>Type</strong></p></td><td><p><strong>Description</strong></p></td></tr><tr><td><p>filter</p></td><td><p>string</p></td><td><p>Définit les paramètres de filtre. Ainsi, seuls les logs satisfaisant aux conditions du filtre seront enregistrés. Seuls les opérateurs AND et OR peuvent être utilisés pour combiner les conditions. Les opérateurs sont spécifiés dans le paramètre GeneralOperator. Exemples de paramètres de filtre :</p><pre><code>filter=\{
"GeneralOperator": "AND",
"FilterItems": \[
\{
"PropertyKey": "Date",
"PropertyOperator": "BETWEEN",
"PropertyValues": \[
"2022-09-12",
"00:00:00",
"2023-10-12",
"23:59:59"
]
}
]
}</code></pre><p>Vous pouvez trouver les valeurs nécessaires pour les paramètres PropertyKey et PropertyOperator en créant le filtre souhaité dans l'Administration and Monitoring Console. Pour ce faire :</p><ol><li>Dans le menu du navigateur, cliquez sur <strong>Plus d'outils -></strong> <strong>Developer Tools</strong> et accédez à l'onglet <strong>Network</strong>.</li><li>Lancez l'Administration and Monitoring Console, accédez à <strong>System Monitor → Event log</strong>, puis cliquez sur le bouton <img src="https://mintcdn.com/abbyy/39LtOHLEp1q7pm1x/images/flexi-capture/Add_filter.png?fit=max&auto=format&n=39LtOHLEp1q7pm1x&q=85&s=7fca1d511f8470021946ae439989fb68" width="22" height="22" data-path="images/flexi-capture/Add_filter.png" />.</li><li>Indiquez les critères de filtrage et cliquez sur <strong>Apply</strong>.</li><li>Cliquez sur la requête <strong>GetFilteredEvents</strong>. Les paramètres de filtrage s'afficheront dans l'onglet <strong>Payload</strong>.</li></ol><p><strong>Important ! </strong>  Si vous devez filtrer les événements pour le tenant par défaut, spécifiez le paramètre « TenantNameExt » à la place de « TenantName » :</p><pre><code>"FilterItems": \[
       \{
"PropertyKey": "TenantNameExt",
"PropertyOperator": "=",
"PropertyValues": \["Default tenant"]
}</code></pre><p>Notez que « TenantName » doit être conservé pour le tenant par défaut dans le paramètre columnsOrder.</p></td></tr><tr><td><p>columnsOrder</p></td><td><p>string</p></td><td><p>Liste des colonnes à ajouter au rapport. Les valeurs possibles sont :</p><ul><li>ID</li><li>Date</li><li>EventType</li><li>Comment</li><li>UserFullName</li><li>Workstation</li><li>BatchId</li><li>BatchName</li><li>BatchTypeName</li><li>StageFromName</li><li>StageToName</li><li>ProjectName</li><li>RoleName</li><li>TenantName</li></ul></td></tr><tr><td><p>sortColumnindex</p></td><td><p>int</p></td><td><p>Spécifie la colonne utilisée pour trier les enregistrements dans le Log.</p></td></tr><tr><td><p>sortOrder</p></td><td><p>bool</p></td><td><p>Spécifie l'ordre de tri des enregistrements :</p><ul><li>true trie les enregistrements par ordre décroissant,</li><li>false trie les enregistrements par ordre croissant.</li></ul></td></tr><tr><td><p>tenantId</p></td><td><p>int</p></td><td><p>Spécifie les tenants dont les enregistrements doivent être inclus dans le journal des événements. Les valeurs possibles sont :</p><ul><li>-1 – les enregistrements de tous les tenants disponibles seront inclus dans le Log.</li><li>0 – les enregistrements du tenant par défaut seront inclus dans le Log.</li><li>1 et supérieur – seuls les enregistrements du tenant avec l'ID spécifié seront inclus dans le Log.</li></ul></td></tr></tbody></table>

Vous trouverez un exemple d'utilisation de cette API dans le script. Téléchargez le script [ici](EventLogExample1.ps1) ou utilisez le code du script fourni ci-dessous.

<Note>
  Les paramètres de ce script doivent être remplacés par l’adresse de votre serveur et par vos propres identifiants.
</Note>

```
#------------------------------------------------------------------------------
```

```
# parameters
```

```
$server = "https://<server address>"
```

```
$user = "<user name>"
```

```
$password = "<password>"
```

```
# chemin vers le dossier où le Log sera enregistré
```

```
$folder = "C:\Temp\Logs\Stage"
```

```
$reportFileName = "Tenant_Events-{0:yyMMdd-HHmmss}.csv" -f (Get-Date)
```

```
# paramètres de log
```

```
$requestBody =  @"
```

```
filter={
```

```
"Name": "Filter Name",
```

```
"GeneralOperator": "AND",
```

```
"FilterItems": [
```

```
{
```

```
"PropertyKey": "Date",
```

```
"PropertyOperator": "BETWEEN",
```

```
"PropertyValues": [
```

```
"2022-09-12",
```

```
"00:00:00",
```

```
"2023-10-12",
```

```
"23:59:59"
```

```
]
```

```
}
```

```
]
```

```
}
```

```
&columnsOrder=Id,Date,EventType,Comment,UserFullName,Workstation,BatchId,BatchName,BatchTypeName,StageFromName,StageToName,ProjectName,RoleName,TenantName,
```

```
&sortColumnindex=0
```

```
&sortOrder=true
```

```
&tenantId=0
```

```
"@
```

```
#------------------------------------------------------------------------------
```

```
$tenant = "" # Tenant par défaut uniquement
```

```
$methodUri = "/Tenant/GetEventsCSV"
```

```
$authServer = $server
```

```
$ServerSitePath = "/FlexiCapture12/Monitoring"
```

```
function Write-Line($str, $color = "White")
```

```
{
```

```
Write-Host $str -ForegroundColor $color
```

```
}
```

```
function Join-Uri
```

```
{
```

```
param([Parameter(Mandatory, ValueFromPipeline)] [string]$parent, [string]$child)
```

```
if ($parent -eq "") {return $child;}
```

```
if ($child -eq ""){return $parent}
```

```
if ($parent.endswith("/") -or $parent.endswith("\\")) {$parent = $parent.substring(0,$parent.Length-1)}
```

```
if ($child.startswith("/") -or $child.startswith("\\")) {$child = $child.substring(1,$child.Length-1)}
```

```
return "$parent/$child"
```

```
}
```

```
function Get-AuthTicket($server, $user, $password, $tenant)
```

```
{
```

```
$tenantSuffix=""
```

```
if ($tenant -ne ''){ $tenantSuffix = "?tenant=$tenant"}
```

```
$URL = Join-Uri $authServer "/FlexiCapture12/Server/FCAuth/API/Soap$tenantSuffix"
```

```
$SOAPRequest = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><FindUser xmlns="urn:http://www.abbyy.com/FlexiCapture"><userLogin>user</userLogin></FindUser></soap:Body></soap:Envelope>'
```

```
$Headers = @{
```

```
'SOAPAction' = '"#FindUser"'
```

```
'Content-Type' = 'text/xml; charset=utf-8'
```

```
'Authorization' = "Basic $([System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("$($user):$($password)")))"}
```

```
try
```

```
{
```

```
$response1 = Invoke-WebRequest -Uri $URL -Headers $Headers -Body $SOAPRequest -Method 'POST'
```

```
return $response1.Headers['AuthTicket']
```

```
}
```

```
catch{
```

```
Write-Line -str "Couldn't get 'AuthTicket': $_" -color "Red"
```

```
return ""
```

```
}
```

```
}
```

```
function Download-CSVReport($server, $tenant, $authTicket, $methodUri, $requestBody, $folder, $reportFileName)
```

```
{
```

```
$reportFullFilePath = Join-Path $folder $reportFileName
```

```
#créer le dossier silencieusement (s'il n'existe pas)
```

```
New-Item -ItemType Directory -Force -Path $folder | Out-Null
```

```
if ($authTicket -eq "" -or $authTicket -eq $null)
```

```
{
```

```
Write-Line -str "Couldn't get 'CSV-Report'" -color "Red"
```

```
}
```

```
else
```

```
{
```

```
$header = @{ "Accept" = "*/*"}
```

```
$session = [Microsoft.PowerShell.Commands.WebRequestSession]::new()
```

```
$session.Cookies.Add($server, [System.NET.Cookie]::new('FlexiCaptureTmpPrn', "Ticket=$authTicket"))
```

```
$tenantInUrl=""
```

```
if ($tenant -ne '') { $tenantInUrl = "/$tenant"}
```

```
$uri = Join-Uri $server $ServerSitePath | Join-Uri -child $tenantInUrl | Join-Uri -child $methodUri
```

```
try{
```

```
$response = Invoke-WebRequest -Uri $uri -Method 'POST' -Headers $header -WebSession $session -Body $requestBody -OutFile $reportFullFilePath -MaximumRedirection 0 -ErrorAction Ignore -PassThru
```

```
if ($response.StatusCode -lt 300)
```

```
{
```

```
Write-Line "CSV-Report done: $reportFullFilePath" "Green"
```

```
}
```

```
else
```

```
{
```

```
Write-Line -str "HttpStatus $($response.StatusCode) in getting CSV-Report." -color "Red"
```

```
}
```

```
}
```

```
catch{
```

```
Write-Line -str "Couldn't get CSV-Report: $_" -color "Red"
```

```
return ""
```

```
}
```

```
}
```

```
}
```

```
$authTicket = Get-AuthTicket -server $server -user $user -password $password -tenant $tenant
```

```
Download-CSVReport -server $server -tenant $tenant -authTicket $authTicket -methodUri $methodUri -requestBody $requestBody -folder $folder -reportFileName $reportFileName
```
