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

# Rapport sur le traitement métier

> Le Rapport sur le traitement métier dans Vantage capture les données au niveau des transactions, les versions de Skill, la durée des étapes et les informations sur le réviseur pour l’audit et l’analyse.

export const VantageRegion = ({children}) => {
  const STORAGE_KEY = "abbyy.vantage.region";
  const REGIONS = [{
    code: "eu",
    label: "Europe"
  }, {
    code: "us",
    label: "North America"
  }, {
    code: "au",
    label: "Australia / Asia-Pacific"
  }];
  const [region, setRegion] = useState("eu");
  const [open, setOpen] = useState(false);
  const containerRef = useRef(null);
  const dropdownRef = useRef(null);
  function safeGetSavedRegion() {
    try {
      const saved = typeof window !== "undefined" ? window.localStorage.getItem(STORAGE_KEY) : null;
      const valid = new Set(REGIONS.map(r => r.code));
      return saved && valid.has(saved) ? saved : "eu";
    } catch {
      return "eu";
    }
  }
  function safeSetSavedRegion(code) {
    try {
      if (typeof window !== "undefined") {
        window.localStorage.setItem(STORAGE_KEY, code);
      }
    } catch {}
  }
  function dispatchRegionChanged(code) {
    try {
      if (typeof window !== "undefined") {
        window.dispatchEvent(new CustomEvent("abbyy:region-changed", {
          detail: {
            code
          }
        }));
      }
    } catch {}
  }
  function replaceRegionInString(text, currentRegion) {
    if (typeof text !== "string") return text;
    const hostRegex = /https:\/\/vantage-(eu|us|au)\.abbyy\.com/gi;
    const tokenRegex = /https:\/\/vantage-\[region\]\.abbyy\.com/gi;
    const bareHostRegex = /vantage-(eu|us|au)\.abbyy\.com/gi;
    const bareTokenRegex = /vantage-\[region\]\.abbyy\.com/gi;
    return text.replace(hostRegex, `https://vantage-${currentRegion}.abbyy.com`).replace(tokenRegex, `https://vantage-${currentRegion}.abbyy.com`).replace(bareHostRegex, `vantage-${currentRegion}.abbyy.com`).replace(bareTokenRegex, `vantage-${currentRegion}.abbyy.com`);
  }
  useEffect(() => {
    setRegion(safeGetSavedRegion());
  }, []);
  useEffect(() => {
    const root = containerRef.current;
    if (!root) return;
    const anchors = root.querySelectorAll("a[href]");
    anchors.forEach(a => {
      const href = a.getAttribute("href");
      if (href) {
        const next = replaceRegionInString(href, region);
        if (next !== href) {
          a.setAttribute("href", next);
        }
      }
    });
    const walker = typeof document !== "undefined" ? document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null) : null;
    if (walker) {
      const toUpdate = [];
      let node = walker.nextNode();
      while (node) {
        const updated = replaceRegionInString(node.nodeValue, region);
        if (updated !== node.nodeValue) {
          toUpdate.push([node, updated]);
        }
        node = walker.nextNode();
      }
      toUpdate.forEach(([textNode, value]) => {
        textNode.nodeValue = value;
      });
    }
  }, [region, children]);
  useEffect(() => {
    const root = containerRef.current;
    if (!root) return;
    const anchors = root.querySelectorAll("a[href]");
    anchors.forEach(a => {
      a.style.fontWeight = "600";
      a.style.textDecoration = "underline";
      a.style.textUnderlineOffset = "2px";
    });
  }, [region, children]);
  useEffect(() => {
    const onRegionChanged = evt => {
      const code = evt && evt.detail && evt.detail.code;
      if (!code || code === region) return;
      setRegion(code);
    };
    if (typeof window !== "undefined") {
      window.addEventListener("abbyy:region-changed", onRegionChanged);
    }
    return () => {
      if (typeof window !== "undefined") {
        window.removeEventListener("abbyy:region-changed", onRegionChanged);
      }
    };
  }, [region]);
  useEffect(() => {
    const onClickAway = e => {
      if (!dropdownRef.current) return;
      if (!dropdownRef.current.contains(e.target)) {
        setOpen(false);
      }
    };
    document.addEventListener("click", onClickAway, true);
    return () => document.removeEventListener("click", onClickAway, true);
  }, []);
  const onSelect = code => {
    setRegion(code);
    safeSetSavedRegion(code);
    dispatchRegionChanged(code);
    setOpen(false);
  };
  const current = REGIONS.find(r => r.code === region) || REGIONS[0];
  return <div className="not-prose">
      <div className="mb-4 inline-flex items-center gap-2" ref={dropdownRef}>
        <span className="text-sm text-zinc-950/80 dark:text-white/80">Tenant Region:</span>
        <div className="relative">
          <button type="button" aria-haspopup="listbox" aria-expanded={open ? "true" : "false"} onClick={() => setOpen(v => !v)} className="h-8 px-3 rounded-md bg-zinc-900/5 dark:bg-white/5 border border-zinc-950/20 dark:border-white/20 text-sm inline-flex items-center gap-2">
            <span className="text-zinc-950 dark:text-white">{current.label}</span>
            <svg width="8" height="24" viewBox="0 -9 3 24" className="transition-transform text-gray-400 overflow-visible dark:text-gray-600 ml-auto" style={{
    transform: open ? "rotate(270deg)" : "rotate(90deg)"
  }}>
              <path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round"></path>
            </svg>
          </button>
          {open ? <div role="listbox" className="absolute z-50 left-full top-0 ml-2 w-56 rounded-xl border border-zinc-950/20 dark:border-white/20 bg-white dark:bg-zinc-900 shadow-lg p-2">
              {REGIONS.map(r => {
    const selected = r.code === region;
    return <button key={r.code} type="button" role="option" aria-selected={selected ? "true" : "false"} onClick={() => onSelect(r.code)} className={"w-full flex items-center justify-between px-3 py-2 rounded-lg text-sm hover:bg-zinc-950/5 dark:hover:bg-white/10 text-zinc-950 dark:text-white" + (selected ? " font-medium" : "")}>
                    <span style={selected ? {
      color: "#ff2038"
    } : undefined}>{r.label}</span>
                    <span className={selected ? "ml-3" : "ml-3 invisible"} style={selected ? {
      color: "#ff2038"
    } : undefined}>✓</span>
                  </button>;
  })}
            </div> : null}
        </div>
      </div>
      <div ref={containerRef} className="prose dark:prose-invert max-w-none">{children}</div>
    </div>;
};

Le Rapport sur le traitement métier indique la qualité de traitement des documents et fournit une traçabilité des transactions de bout en bout pour les besoins d’audit. Le Warehouse enregistre toutes les transactions — terminées ou en cours — pour l’analyse et la visualisation dans des outils de business intelligence. Les données sont conservées pendant 12 mois, ce qui permet l’analyse et l’audit sur des périodes de temps définies.

Les données suivantes sont suivies :

* ID de transaction.
* ID de Skill et version.
* Chemin de traitement par étapes :
  * Types d’étapes
  * Noms
  * Date et heure de début et de fin de l’étape
  * Durée (en secondes)
* Nom et e-mail de l’opérateur de relecture manuelle.
* Paramètres d’enregistrement du document et de la transaction.

<Info>
  Le Warehouse ne stocke pas d’informations sur les événements de traitement des documents dans les activités qui ne sont jamais exécutées selon leur configuration. Par exemple, le paramètre « Assemble by files » correspond au comportement par défaut de Vantage ; par conséquent, le traitement des documents dans cette activité sera ignoré dans un workflow.
</Info>

<div id="migrating-from-v1-to-v2">
  ## Migration de v1 vers v2
</div>

Dans Vantage 3.0 et versions ultérieures, le point de terminaison v1 `transaction-steps` est obsolète. Pour assurer la compatibilité descendante, le point de terminaison v2 fonctionne de manière similaire, avec un changement de nom et le déplacement des paramètres de requête vers le corps de la requête. Le point de terminaison v2 utilise désormais un modèle asynchrone afin de mieux gérer les requêtes de données volumineuses. Une fois un rapport demandé, vous pouvez interroger périodiquement son statut jusqu’à ce qu’il soit prêt. Une fois le traitement terminé, vous pouvez télécharger les résultats.

<VantageRegion>
  ```http theme={null}
  // v1: One synchronous call with query parameters
  1. GET https://vantage-us.abbyy.com/api/reporting/v1/transaction-steps?skillId=ABCD&startDate=2025-11-01&endDate=2025-11-18

  // v2: Multiple async calls
  1. POST https://vantage-us.abbyy.com/api/reporting/v2/exports/transaction-steps
  {
    "filters": {
      "skillId": "d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae",
      "transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "startDate": "2025-11-03T17:19:54.386Z",
      "endDate": "2025-11-17T20:05:26.097Z"
    },
    "sendEmailNotification": true
  }

  // Receive request Id
  2. GET https://vantage-us.abbyy.com/api/reporting/v2/exports/transaction-steps/{{requestId}}/status

  // Une fois que le statut = "Succeeded", télécharger les fichiers de rapport
  3. GET https://vantage-us.abbyy.com/api/reporting/v2/exports/transaction-steps/{{requestId}}/result/{fileIndex}
  ```
</VantageRegion>

<div id="whats-new">
  ### Quoi de neuf ?
</div>

Dans la requête (`/api/reporting/v2/exports/transaction-steps`) :

* Les filtres ont été déplacés des paramètres de requête vers le corps de la requête (objet JSON `filters`).
* `startDate`, spécifié dans l’objet `filters`, est désormais obligatoire.
* Nouveau champ : `sendEmailNotification` (true/false) - envoie un e-mail à l’utilisateur ayant demandé le rapport lorsque celui-ci est prêt à être téléchargé.

Dans les fichiers CSV téléchargés du résultat final (`/api/reporting/v2/exports/transaction-steps/{{requestId}}/result/{fileIndex}`), deux colonnes ont été ajoutées :

* `DocumentsCount` : le nombre de documents traités dans une transaction.
* `PagesCount` : le nombre de pages traitées dans une transaction.

Poursuivez la lecture ci-dessous pour plus de détails sur le fonctionnement de l’endpoint v2.

<div id="downloading-a-data-report">
  ## Téléchargement d’un rapport de données
</div>

<Note>
  Seuls les utilisateurs ayant les rôles **Tenant Administrator** et **Processing Supervisor** peuvent télécharger un rapport de données depuis le Warehouse. Pour plus d’informations, consultez Contrôle d’accès fondé sur les rôles (RBAC).
</Note>

Vous pouvez obtenir des données du Warehouse dans un fichier CSV à l’aide de l’API Vantage. Pour ce faire, envoyez une requête **POST** à la ressource suivante :

<VantageRegion>
  ```
  POST https://vantage-us.abbyy.com/api/reporting/v2/exports/transaction-steps
  ```
</VantageRegion>

Un corps de requête doit inclure les propriétés suivantes dans un objet `filters` :

* **skillId**. L’ID du Skill dont les transactions doivent être téléchargées. Facultatif.
* **transactionId**. L’ID de la transaction à utiliser pour le filtrage. Facultatif.
* **startDate**. Le premier jour de la période (format d’exemple : 2022-01-07T13:03:38, l’heure doit être en UTC) pour laquelle les transactions doivent être téléchargées. **Obligatoire.**
* **endDate**. Le dernier jour de la période (format d’exemple : 2022-09-07T13:03:38, l’heure doit être en UTC) pour laquelle les transactions doivent être téléchargées. Facultatif.
* **sendEmailNotification**. Envoyer un e-mail à l’utilisateur qui a créé la demande de rapport pour l’informer que le rapport est prêt à être téléchargé. Facultatif.

```json theme={null}
{
  "filters": {
    "skillId": "d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae",
    "transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "startDate": "2025-11-03T17:19:54.386Z",
    "endDate": "2025-11-17T20:05:26.097Z"
  },
  "sendEmailNotification": true
}
```

Les requêtes de rapport sont exécutées de manière asynchrone, ainsi la réponse renvoie un `requestId` utilisé pour vérifier l'état de la requête.

Résultat :

```json theme={null}
{
  "requestId": "8f772512-099c-4050-8dd3-6c4d7af69747"
}
```

Pour vérifier l'état du rapport, incluez le `requestId` dans la requête GET :

<VantageRegion>
  ```http theme={null}
  GET https://vantage-us.abbyy.com/api/reporting/v2/exports/transaction-steps/{{requestId}}/status
  ```
</VantageRegion>

Une fois le rapport créé, le `status` a la valeur "Succeeded" et `totalFileCount` indique le nombre de fichiers disponibles au téléchargement :

```json theme={null}
{
  "status": "Succeeded",
  "totalFileCount": 3,
  "filters": {
      "skillId": "d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae",
      "startDate": "2025-11-03T17:19:54.386+00:00",
      "endDate": "2025-11-17T20:05:26.097+00:00"
  }
}
```

Pour télécharger les fichiers de rapport générés, effectuez une requête GET vers l’URL suivante, en transmettant de nouveau le `requestId` et en ajoutant le `fileIndex`, l’index de base zéro du fichier. Par exemple, si `"totalFileCount": 3`, alors les index de fichier disponibles seraient 0, 1 et 2.

<VantageRegion>
  ```http theme={null}
  GET https://vantage-us.abbyy.com/api/reporting/v2/exports/transaction-steps/{{requestId}}/result/{fileIndex}
  ```
</VantageRegion>

Voici un exemple de réponse CSV :

| **SkillId**                          | **SkillVersion** | **SkillName**  | **TransactionId**                    | **StepName** | **StepType**   | **ManualReviewOperatorName** | **ManualReviewOperatorEmail** | **StartedUtc**      | **CompletedUtc**    | **Status**           | **Duration** | **DocumentsCount** | **PagesCount** | **document\_SourceFileName** | **document\_SourceType** | **transaction\_App** |
| ------------------------------------ | ---------------- | -------------- | ------------------------------------ | ------------ | -------------- | ---------------------------- | ----------------------------- | ------------------- | ------------------- | -------------------- | ------------ | ------------------ | -------------- | ---------------------------- | ------------------------ | -------------------- |
| d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae | 1                | Redaction Test | 6d7e9eeb-86e3-4952-8e29-3f76b3fae59f | Input        | Input          |                              |                               | 11/17/2025 19:37:52 | 11/17/2025 19:38:01 | FinishedSuccessfully | 9            |                    |                | Invoice CA\_2.pdf            | PublicAPI                | PublicAPI            |
| d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae | 1                | Redaction Test | 6d7e9eeb-86e3-4952-8e29-3f76b3fae59f | OCR          | Ocr            |                              |                               | 11/17/2025 19:38:02 | 11/17/2025 19:38:17 | FinishedSuccessfully | 15           |                    |                | Invoice CA\_2.pdf            | PublicAPI                | PublicAPI            |
| d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae | 1                | Redaction Test | 6d7e9eeb-86e3-4952-8e29-3f76b3fae59f | Classify     | Classification |                              |                               | 11/17/2025 19:38:17 | 11/17/2025 19:38:20 | FinishedSuccessfully | 3            |                    |                | Invoice CA\_2.pdf            | PublicAPI                | PublicAPI            |
| d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae | 1                | Redaction Test | 6d7e9eeb-86e3-4952-8e29-3f76b3fae59f | Extract      | Extraction     |                              |                               | 11/17/2025 19:38:21 | 11/17/2025 19:38:44 | FinishedSuccessfully | 23           |                    |                | Invoice CA\_2.pdf            | PublicAPI                | PublicAPI            |
| d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae | 1                | Redaction Test | 6d7e9eeb-86e3-4952-8e29-3f76b3fae59f | Output       | Output         |                              |                               | 11/17/2025 19:38:47 | 11/17/2025 19:39:01 | Failed               | 13           |                    |                | Invoice CA\_2.pdf            | PublicAPI                | PublicAPI            |

<div id="response-structure">
  ### Structure de la réponse
</div>

Chaque ligne d'un fichier CSV correspond à une opération effectuée sur une transaction, par exemple l'importation de documents, la reconnaissance ou la revue manuelle. Pour chaque opération dans le Warehouse, ses détails sont stockés dans des colonnes :

| Colonne                       | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| :---------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SkillId`                     | L'ID du skill.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `SkillVersion`                | La version du skill.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `SkillName`                   | Le nom du skill.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `TransactionId`               | L'ID de la transaction.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `StepName`                    | Le nom de l'événement ou le nom de l'activité dans le cas d'un Process skill.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `StepType`                    | Le type d'événement. Valeurs possibles : <br />- Input (disponible pour tous les types de skill) <br />- Ocr (disponible pour les OCR skills ou les Process skills avec une activité OCR ajoutée) <br />- Classification (disponible pour les Classification skills ou les Process skills avec une activité Classification ajoutée) <br />- Extraction (disponible pour tous les types de skill) <br />- Condition (disponible pour les Process skills avec une activité Condition ajoutée) <br />- CustomActivity (disponible pour les Process skills avec une activité Custom ajoutée) <br />- WaitingForManualReview (disponible pour les Process skills avec une activité **Manual Review** ajoutée). La durée pendant laquelle une transaction est en attente de revue manuelle <br />- ManualReview (disponible pour les Process skills avec une activité **Manual Review** ajoutée). La durée pendant laquelle l'opérateur vérifie une transaction <br />- Output (disponible pour tous les types de skill) |
| `ManualReviewOperatorName`    | Le nom de l'opérateur de revue manuelle.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `ManualReviewOperatorEmail`   | L'e-mail de l'opérateur de revue manuelle.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `StartedUtc`                  | L'heure de début de l'événement (UTC). Par exemple, 05/03/2022 13:59:02.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `CompletedUtc`                | L'heure de fin de l'événement (UTC).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `Status`                      | Le statut de l'événement. Valeurs possibles : <br />- Processing <br />- Finished Successfully <br />- Canceled <br />- Failed                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `Duration`                    | La durée de l'événement (en secondes).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `DocumentsCount`              | Le nombre de documents traités dans la transaction.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `PagesCount`                  | Le nombre de pages traitées dans la transaction.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `document_*`, `transaction_*` | Les paramètres de document ou de transaction transmis pour le traitement. Le préfixe **document\_** est ajouté aux paramètres de document dans l'en-tête, et le préfixe **transaction\_** est ajouté aux paramètres de transaction. Par exemple, **document\_SourceFileName**. Si une transaction contient des documents avec des paramètres ayant le même nom mais des valeurs différentes, le Warehouse répertorie toutes les valeurs uniques de ce paramètre, séparées par des virgules, par exemple tous les noms de fichier au sein d'une transaction.                                                                                                                                                                                                                                                                                                                                                                                                                                                        |

Les données préparées sont stockées pendant 2 semaines après l'exécution de la requête. Les données obtenues au format CSV peuvent ensuite être analysées dans n'importe quel outil de Business Intelligence (BI).

<div id="retrieving-a-list-of-reporting-requests">
  ## Récupération de la liste des demandes de rapport
</div>

Pour récupérer la liste des demandes de rapport effectuées sur une période donnée, effectuez une requête GET vers le point de terminaison suivant, où `createdFrom` et `createdTo` représentent la plage de dates et `statusFilter` est l’une des valeurs suivantes : `New`,`Queued`,`Processing`,`Succeeded`,`Failed`, ou `Cancelled`. Cette opération est utile si vous avez égaré des identifiants de demande.

<VantageRegion>
  ```http theme={null}
  GET https://vantage-us.abbyy.com/api/reporting/v2/exports/transaction-steps?statusFilter=Succeeded&createdFrom=2025-11-05&createdTo=2025-11-17
  ```
</VantageRegion>

La réponse contient un tableau de requêtes de reporting.

```json theme={null}
{
  "requests": [
    {
      "requestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "status": "New",
      "completedUtc": "2025-11-18T22:22:00.294Z",
      "createdUtc": "2025-11-18T22:20:49.294Z",
      "totalFileCount": "2",
      "filters": {
        "skillId": "d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae",
        "startDate": "2025-11-03T17:19:54.386+00:00",
        "endDate": "2025-11-17T20:05:26.097+00:00"
      }
    },
    {
      "requestId": "48293032-5717-4562-b3fc-2c963f66afa6",
      "status": "Réussi",
      "completedUtc": "2025-12-18T22:22:00.294Z",
      "createdUtc": "2025-12-18T22:20:49.294Z",
      "totalFileCount": "4",
      "filters": {
        "skillId": "dk3ioda-bcc6-4129-bfd1-c1e37ee3efae",
        "startDate": "2025-11-03T17:19:54.386+00:00",
        "endDate": "2025-11-17T20:05:26.097+00:00"
      }
    }
  ]
}
```
