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

# Instalación

> Instale el conector ABBYY FlexiCapture para Pega importando FlexiCaptureConnector.jar al servidor y creando una función Java que llame a sus clases.

Para instalar PEGA, debe [importar el conector en el servidor](#import) y [crear una función Java en Pega](#java).

<a id="import" />Para importar el conector en el servidor:

1. Abra **Dev Studio** y haga clic en **Configure → Application → Distribution → Import**.

   <Frame>
     <img src="https://mintcdn.com/abbyy/KEmWsO92hkr7eybZ/images/flexi-capture/connectors/Pega1.png?fit=max&auto=format&n=KEmWsO92hkr7eybZ&q=85&s=a341f96a004c8a19fb49207d18680709" alt="Captura de pantalla de Pega Dev Studio con el menú Configure abierto, que muestra la ruta Application → Distribution → Import seleccionada para importar el conector." width="935" height="329" data-path="images/flexi-capture/connectors/Pega1.png" />
   </Frame>

2. Cargue el archivo **FlexiCaptureConnector.jar** en el servidor.

3. Abra el **Pega Self-Service Portal** y haga clic en **Restart Server**.

<Frame>
  <img src="https://mintcdn.com/abbyy/Xgx3EG8BZs5YQjIJ/images/flexi-capture/connectors/Pega2.png?fit=max&auto=format&n=Xgx3EG8BZs5YQjIJ&q=85&s=eecde34cbec1e5bd944b2b7b9ae52933" alt="Captura de pantalla de la página Operations de Pega Self-Service Portal con el botón Restart Server resaltado para reiniciar el servidor de aplicaciones." width="537" height="297" data-path="images/flexi-capture/connectors/Pega2.png" />
</Frame>

<a id="java" />Para crear una función Java que llame a métodos de las clases del conector:

1. Cree una nueva biblioteca haciendo clic en **Records → Technical → Library → Create** y asígnele un nombre, por ejemplo, *FlexiCaptureLibrary*. Después, incluya los siguientes paquetes:

   * *java.util.*\*
   * *java.nio.file.*\*
   * *com.abbyy.connectors.*\*
   * *com.abbyy.connectors.models.*\*

   <Frame>
     <img src="https://mintcdn.com/abbyy/Xgx3EG8BZs5YQjIJ/images/flexi-capture/connectors/Pega48.png?fit=max&auto=format&n=Xgx3EG8BZs5YQjIJ&q=85&s=c0db6b32efd6466d4e21a56900335a91" alt="Captura de pantalla de Pega Dev Studio editando el registro FlexiCaptureLibrary en la pestaña Packages, con los paquetes java.util, java.nio.file, com.abbyy.connectors y com.abbyy.connectors.models que se deben incluir." width="577" height="394" data-path="images/flexi-capture/connectors/Pega48.png" />
   </Frame>

2. Haga clic en **Save** y luego en **Generate Library**.

3. Cree una nueva función haciendo clic en **Records → Technical →** **Function → Create**.

4. En el campo **Label**, indique un nombre para la nueva función (por ejemplo, *CaptureData*).

5. En la sección **Parameters**, especifique los dos parámetros de entrada siguientes:

| **Name**        | **Java type** |
| --------------- | ------------- |
| *FileName*      | *String*      |
| *Base64Content* | *String*      |

6. En el campo **Library**, escriba el nombre de la biblioteca que creó en el paso 1 y haga clic en **Create and open**.

7. En la ventana que se abre, en la pestaña **Parameters**, especifique *String* como tipo de datos en el campo **Java data type**:

   <Frame>
     <img src="https://mintcdn.com/abbyy/Xgx3EG8BZs5YQjIJ/images/flexi-capture/connectors/Pega26.png?fit=max&auto=format&n=Xgx3EG8BZs5YQjIJ&q=85&s=ed724ead37a0bdc2a4a9a863b618b362" alt="Captura de pantalla de Pega Dev Studio en la pestaña Parameters de la función, que muestra los parámetros de entrada String FileName y Base64Content, y String seleccionado como tipo de datos Java en la sección Output." width="710" height="495" data-path="images/flexi-capture/connectors/Pega26.png" />
   </Frame>

8. Copie el código del archivo **CodeExample.java**, que puede encontrar en *%Installation Path%\Connector for FlexiCapture as a Service\Samples\Pega Function* (para su comodidad, el código se reproduce a continuación). En esa misma ventana, haga clic en la pestaña **Java** y pegue el código que acaba de copiar. Este código de ejemplo envía archivos a FC y devuelve los resultados del procesamiento en forma de cadenas JSON con los nombres de los campos capturados y sus valores. Los fragmentos de código resaltados en amarillo deben sustituirse por datos de conexión válidos necesarios para conectarse al servidor de aplicaciones de FC. A continuación, cargue su proyecto en el servidor de aplicaciones de FC y [configúrelo](/es/flexi-capture/connectors/pega/pega-configuring-fc).

```
// Creación del cliente de API de FlexiCapture Web Services. Indique aquí la dirección del Servidor de aplicaciones de FlexiCapture. 
try (FlexiCaptureWebServiceClient client = new FlexiCaptureWebServiceClient("https://FlexiCaptureApplicationServer")) {
// Quite el comentario de la línea siguiente e indique un nombre de empresa para interactuar con FlexiCapture Cloud o el tenant.
// client.setTenant("Company");
// Indique credenciales de usuario válidas de FlexiCapture.
client.setCredentials(new Credentials("Username", "Password"));
// Obtención del proyecto de FlexiCapture. Indique aquí un nombre de proyecto.
try (FlexiCaptureProject project = client.getProject("InvoiceDemoProject")) {
// Preparación de un archivo para cargar en FlexiCapture. 'FileName' y 'Base64Content' son parámetros de función de Pega.
List<File> files = new ArrayList<File>();
files.add(new File(FileName, Base64.getDecoder().decode(Base64Content.replace("\n", "").replace("\r", ""))));
// Preparación de un trabajo para el procesamiento por lotes de FlexiCapture.
BatchCreationJob job = new BatchCreationJob(files);
job.setName("Pega_" + System.currentTimeMillis());  // Establecimiento del nombre del lote de FlexiCapture.
job.setType("Default");                             // Establecimiento del nombre del tipo de lote de FlexiCapture.
// Creación y ejecución del lote de FlexiCapture.
int batchId = project.create(job);
// Espera a que el lote se procese y obtención de los resultados del procesamiento.
Result result = project.getResult(batchId);
// Comprobación de si la etapa del lote es Processed.
if (result.getStage() == com.abbyy.connectors.models.Stage.Processed) {
// Devolución de los campos capturados como una cadena JSON.
return result.getFields();
} else {
// Lanzamiento de una excepción para otras etapas.
// En lugar del lanzamiento, aquí se puede configurar el procesamiento de estas etapas.
throw new FlexiCaptureConnectorException(String.format("Unsupported FlexiCapture stage type '%s'.", result.getStage()));
}
}
} catch (Exception ex) {
// Encadenamiento de mensajes de error.
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// Lanzamiento del mensaje encadenado.
throw new FlexiCaptureConnectorException(message);
}
```

9. Haga clic en la pestaña **Imports & Exceptions** y escriba *Exception* en la sección **Exceptions thrown**.
10. Vuelva a la pestaña **Java**, seleccione la opción **Function ready to be compiled?**, guarde los cambios y haga clic en **Generate function**. Si la función se genera correctamente, verá el siguiente mensaje:

<Frame>
  <img src="https://mintcdn.com/abbyy/Xgx3EG8BZs5YQjIJ/images/flexi-capture/connectors/Pega3.png?fit=max&auto=format&n=Xgx3EG8BZs5YQjIJ&q=85&s=0b973102dd28000d18049bfa8285b7da" alt="Captura de pantalla de un cuadro de diálogo de confirmación de Pega Library con estado Good y el mensaje de que la Library se ha generado correctamente." width="364" height="282" data-path="images/flexi-capture/connectors/Pega3.png" />
</Frame>
