Saltar al contenido principal
Si utiliza ABBYY Vantage dentro de su propio sistema, probablemente también querrá aprovechar las capacidades de revisión manual. Esta sección le guiará para integrar la revisión manual. Después de enviar algunos documentos para su procesamiento a través de la Vantage API, supervise el estado de la transacción como se describe en Cómo procesar documentos mediante la Vantage API. Si un documento necesita ser revisado por un operador humano, la respuesta de estado de la transacción incluirá la clave manualReviewLink con un enlace seguro, que permitirá al revisor acceder únicamente a los datos de esa transacción en particular. Incorpore un iframe con el contenido de ese enlace en la página web de su servicio:
<iframe src="manual-review-link"></iframe>
Tenga en cuenta que el enlace caducará 168 horas después de su creación. Si necesita continuar la revisión, solicite un nuevo enlace enviando una solicitud GET al recurso transactions, como antes.

Apariencia del iframe

Es posible que quiera simplificar la apariencia del servicio eliminando el logotipo de Vantage u ocultando algunos paneles en la interfaz del cliente de revisión manual. Para eliminar el logotipo de Vantage, agregue a la dirección un parámetro de consulta displayMode con el valor iframe, de la siguiente manera:
<iframe src="manual-review-link&displayMode=iframe"></iframe>
Use las siguientes opciones para configurar la interfaz del cliente de revisión manual:
KeyDescription
features
batchEditorDefínalo en false para ocultar el panel de miniaturas de Página.
batchEditor.toolbarDefínalo en false para mostrar el panel de miniaturas de Página pero ocultar el panel de la barra de herramientas.
batchEditor.autoCollapseDefínalo en true para mostrar el panel de miniaturas de Página, pero contraerlo al abrir la interfaz del cliente de revisión manual.
docEditorDefínalo en false para ocultar el panel de imagen de Página.
docEditor.toolbarDefínalo en false para mostrar el panel de imagen de Página pero ocultar su barra de herramientas.
formEditorDefínalo en false para ocultar el panel de la lista de Campos extraídos.
rulesReportDefínalo en false para ocultar el panel de la lista de errores de reglas.
sendToStageAvailableDefínalo en true para mostrar el botón Send to Stage….
Estas opciones están organizadas en un único objeto JSON. El siguiente código de ejemplo mostrará un iframe con el panel de errores de reglas oculto y el panel de miniaturas de Página contraído:
"features": {
   "batchEditor": {
      "autocollapse": true,
   },
   "rulesReport": false,
}
Agregue un parámetro de consulta settings con el contenido de este objeto JSON a su enlace para la revisión manual:
<iframe src="manual-review-link&settings=%7B%22features%22%3A%7B%22batchEditor%22%3A%7B%22autoCollapse%22%3Atrue%7D%2C%22rulesReport%22%3Afalse%7D%7D"></iframe>

Eventos de iframe

El objeto iframe enviará mensajes a la ventana principal para notificarle las acciones del revisor en la interfaz del cliente de revisión manual, de modo que pueda pasar al siguiente paso en el momento adecuado. Los eventos se envían con el Parameter targetOrigin=parent. A continuación, se muestra una lista de eventos a tener en cuenta:
  • ManualReviewWasPaused. Se envía cuando el revisor hace clic en el botón Reject.
  • ManualReviewWasCompleted. Se envía cuando el revisor hace clic en el botón Complete.
  • ManualReviewWithdrawn. Se envía cuando el revisor ha estado inactivo durante cierto tiempo y la tarea del cliente de revisión manual se devolvió a la cola general de tareas.
El siguiente código de ejemplo muestra cómo mostrar un iframe para la revisión manual y ocultarlo una vez que se haya activado cualquiera de los eventos anteriores. Código de ejemplo para escuchar eventos de iframe:
<html style="min-height: 100%; height: 100%;">
<head>
  <script>
    var manualReviewLink; // el enlace de la respuesta del estado de la transacción
    window.addEventListener("DOMContentLoaded", init, false);
    function init() {
      var iframe = document.createElement("iframe");
      iframe.src = getUrl();
      iframe.style.width = "100%";
      iframe.style.height = "95%";
      try {
        document.getElementById("main").removeChild(document.querySelector("iframe"));
      } catch (e) { }
      document.getElementById("main").appendChild(iframe);
      window.addEventListener("message", receiveMessage, false);
    }
    function getUrl() {
      return manualReviewLink + "&displayMode=iframe";
    }
    function receiveMessage(event) {
      console.log(event.data);
      if (event.data.target === "parent") {
        if (event.data.eventName === "ManualReviewWithdrawn" || 
            event.data.eventName === "ManualReviewWasPaused" || 
            event.data.eventName === "ManualReviewWasCompleted" ) {
          document.getElementById("iframe").style.display = "none";
        }
      }
    }
  </script>
</head>
<body
  style="background-color: #999999; min-height: 100%; height: 100%; position: relative; margin: 0; padding: 0; background: linear-gradient(to bottom right, #4380bc, #5ba484);">
  <div id="main"
    style="height: 100%; position: relative; padding:20px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;">
  </div>
</body>
</html>