Skip to main content
This log records document processing events and errors.
Only users with Tenant Administrator (or the System Administrator in the case of the default tenant) and Monitoring Operator permissions can download event logs from Processing Monitor.
To download this log, use a POST request:
POST https://<server address>/FlexiCapture12/Monitoring/Project/GetEventsCSV

Request parameters

All parameters are required. Make sure that they are specified correctly.
The search in Oracle Database is case-sensitive. Take this into account if you use Oracle Database.
ParameterTypeDescription
filterstringFilter conditions for the log. Combine conditions with the AND and OR operators only, set in the GeneralOperator parameter. For more information, see Build the filter parameter.
columnsOrderstringComma-separated list of columns to include in the report: ID, Date, EventType, Comment, UserFullName, Workstation, BatchId, BatchName, BatchTypeName, StageFromName, StageToName, ProjectName, RoleName, TenantName.
sortColumnindexintIndex of the column used to sort the records in the log.
sortOrderboolSort order: true sorts in descending order, false sorts in ascending order.
projectIdintProjects to include in the log: -1 for all available projects, or a specific project ID (1 or greater). To get all available project IDs, use the GetProjects method.

Build the filter parameter

The filter parameter takes a JSON object. For example:
{
  "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"]
    }
  ]
}
To find the values for the PropertyKey and PropertyOperator parameters, create a filter in the Administration and Monitoring Console:
1

Open the browser developer tools

In the browser menu, click More tools → Developer tools, and go to the Network tab.
2

Create a filter in the console

Launch the Administration and Monitoring Console, go to Processing Monitor → Event log, and click the Add filter button button.
3

Apply the filter criteria

Specify the filtering criteria and click Apply.
4

Read the filter parameters

Click the GetFilteredEvents request. The filtering parameters are listed on the Payload tab.
To filter events for default batches, specify the BatchTypeNameExt parameter instead of BatchTypeName:
"FilterItems": [
  {
    "PropertyKey": "BatchTypeNameExt",
    "PropertyOperator": "CONTAINS",
    "PropertyValues": ["Default"]
  }
]
Keep BatchTypeName for the default batch in the columnsOrder parameter.

Example script

The following PowerShell script demonstrates how to use this API to download the event log.
Replace the parameters in this script with your server address, tenant name, and your own credentials.
# parameters
$server = "https://<server address>"
$tenant = "<tenant name>"
$user = "<user name>"
$password = "<password>"
#path to folder where the log will be saved
$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