Passer au contenu principal
Ce journal contient des entrées relatives aux événements et aux erreurs du traitement des documents.
Seuls les utilisateurs disposant des permissions d’administrateur du tenant (ou de System Administrator dans le cas du tenant par défaut) et de Monitoring Operator peuvent télécharger les journaux d’événements à partir de Processing Monitor.
Pour télécharger ce journal, utilisez une requête POST.
POST https://<server address>/FlexiCapture12/Monitoring/Project/GetEventsCSV

Paramètres de la requête

  1. Tous les paramètres sont obligatoires. Assurez-vous qu’ils sont correctement renseignés.
  2. La recherche dans Oracle Database est sensible à la casse. Veuillez en tenir compte si vous utilisez Oracle Database.

Nom

Type

Description

filter

string

Définit les paramètres du filtre. Par conséquent, seuls les logs qui répondent 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 :

filter={
“GeneralOperator”: “AND”,
“FilterItems”: [
{
“PropertyKey”: “Date”,
“PropertyOperator”: “BETWEEN”,
“PropertyValues”: [
“2021-08-28”,
“00:00:00”,
“2023-09-28”,
“23:59:59”
]
},
       {
“PropertyKey”: “Id”,
“PropertyOperator”: ”>=”,
“PropertyValues”: [“127602430”]
},
       {
“PropertyKey”: “BatchName”,
“PropertyOperator”: “CONTAINS”,
“PropertyValues”: [“default”]
}
]
}

Vous pouvez trouver les valeurs requises pour les paramètres PropertyKey et PropertyOperator en créant le filtre souhaité dans Administration and Monitoring Console. Pour cela :

  1. Dans le menu du navigateur, cliquez sur More tools -> Developer Tools, puis accédez à l’onglet Network.
  2. Lancez Administration and Monitoring Console, accédez à Processing Monitor → journal des événements, puis cliquez sur le bouton .
  3. Spécifiez les critères de filtrage et cliquez sur Apply.
  4. Cliquez sur la requête GetFilteredEvents. Les paramètres de filtrage seront affichés dans l’onglet Payload.

Important ! Si vous devez filtrer les événements pour les batchs par défaut, spécifiez le paramètre “BatchTypeNameExt” au lieu de “BatchTypeName” :

“FilterItems”: [
       {
“PropertyKey”: “BatchTypeNameExt”,
“PropertyOperator”: “CONTAINS”,
“PropertyValues”: [“Default”]
}

Veuillez noter que “BatchTypeName” doit être conservé pour le batch par défaut dans le paramètre columnsOrder.

columnsOrder

string

Liste des colonnes à ajouter au rapport. Les valeurs possibles sont :

  • ID
  • Date
  • EventType
  • Comment
  • UserFullName
  • Workstation
  • BatchId
  • BatchName
  • BatchTypeName
  • StageFromName
  • StageToName
  • ProjectName
  • RoleName
  • TenantName

sortColumnindex

int

Spécifie la colonne à utiliser pour trier les enregistrements dans le log.

sortOrder

bool

Spécifie l’ordre de tri des enregistrements :

  • true trie les enregistrements par ordre décroissant,
  • false trie les enregistrements par ordre croissant.

projectId

int

Spécifie les projets dont les enregistrements doivent être inclus dans le journal des événements. Les valeurs possibles sont :

  • -1 – les enregistrements de tous les projets disponibles seront inclus dans le log.
  • 1 et plus – seuls les enregistrements du projet avec l’ID spécifié seront inclus dans le log.

Utilisez la méthode GetProjects pour obtenir tous les ID de projet disponibles.

Vous trouverez un exemple d’utilisation de cette API dans le script. Téléchargez le script ici ou utilisez le code du script fourni ci-dessous.
Les paramètres de ce script doivent être remplacés par l’adresse de votre serveur, le nom de votre tenant et vos identifiants.
# parameters
$server = "https://<server address>"
$tenant = "<tenant name>"
$user = "<user name>"
$password = "<password>"
#chemin vers le dossier où le Log sera enregistré
$folder = "C:\Temp\Logs\Stage"
$reportFileName = "Project_Events-{0:yyMMdd-HHmmss}.csv" -f (Get-Date)
# log parameters
$requestBody =  @"
filter={
"Name": "Complex filter",
"GeneralOperator": "AND",
"FilterItems": [
{
"PropertyKey": "Date",
"PropertyOperator": "BETWEEN",
"PropertyValues": ["2018-09-12","00:00:00","2023-10-12","23:59:59"]
},
{
"PropertyKey": "Id",
"PropertyOperator": ">=",
"PropertyValues": ["127602430"]
}
]
}
&columnsOrder=Id,Date,EventType,Comment,UserFullName,Workstation,BatchId,BatchName,BatchTypeName,StageFromName,StageToName,ProjectName,RoleName,TenantName
&sortColumnindex=0
&sortOrder=true
&projectId=-1
"@
#------------------------------------------------------------------------------
$methodUri = "/Project/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
#create folder silent (if not exist)
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$tenant", "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