# Scripts en Trabajos de Finntalk

**URL:** <https://bc.finneg.com/t/scripts-en-trabajos-de-finntalk/3971>\
**Category:** CORE\
**Tags:** bpm, finntalk, framework, instructivo\
**Created:** [24 Septiembre, 2024 19:23 UTC](https://bc.finneg.com/t/scripts-en-trabajos-de-finntalk/3971 "2024-09-24T19:23:54Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![AcademiaFinnegans](https://bc.finneg.com/user_avatar/bc.finneg.com/academiafinnegans/32/23146_2.png) [@AcademiaFinnegans](https://bc.finneg.com/u/AcademiaFinnegans)\
**Post date:** [24 Septiembre, 2024 19:23 UTC](https://bc.finneg.com/t/scripts-en-trabajos-de-finntalk/3971/1 "2024-09-24T19:23:54Z")

</div>

### Scripts en Trabajos

Se explica la funcionalidad que permite ingresar scripts en los trabajos de Finntalk.

Las ventajas en relación a un BPM son las siguientes:

- No se necesita cargar un caso.

- Se ejecuta desde el monitor de trabajos o bien se puede configurar para que sea automático.

- No usa diagrama.

- No contiene las clases relacionadas con el caso.

Nota: Se asume que el usuario tiene los conocimientos básicos en AppBuilder.

# Modo de Uso

Se accede desde AppBuilder → Actualizaciones → Trabajos .

## Configurar Trabajo

Se crea o edita un trabajo. En la solapa Pasos, se crea el paso y en la solapa General se configura:

 ![](https://bc.finneg.com/uploads/default/original/2X/7/7e6a6decbab778ae75873f76d90157dc6121dfe3.png)

Luego en la pestaña Pull Manager se añade el script en el campo Código Scripting. Además pueden agregarse parámetros asociados al script.

 ![](https://bc.finneg.com/uploads/default/original/2X/9/92d228de911aae7ffce8b23550bf1d5d10e475e8.png)

## Configurar Script

Los scripts funcionan similar a un BPM pero con algunas modificaciones a saber:

No pueden ser utilizadas en el scripting todas las clases relacionadas con Caso.

Ejemplo:

```auto
CasoVO;

CasoBPMAccionVO;

CasoScriptResultado;

```

Por otro lado, las siguientes tres clases serán reemplazadas:

```auto
UtilsHLP → ScriptingUtilsHLP

ConfigHP → ScriptingConfigHLP

XMLManagerHLP → ScriptingXMLManagerHLP

```

# Ejemplo 1: Trabajo de prueba

Se genera un trabajo con Script que genere un error para probar su funcionamiento.

En Código Scripting se agrega la siguiente línea:

`throw new FunctionalException(String.valueOf(params.get("fecha")));`

Y como parámetro se agrega fecha e ingresa un valor:

 ![|602x368.99999999999994](https://bc.finneg.com/uploads/default/original/2X/e/e7bcc958513fd03844b92800118d076d5f93b4f7.png)

Se guarda. Se activa Finntalk (AppBuilder → Actualizaciones → Activar Trabajos) y accede a AppBuilder → Actualizaciones → Monitor de Trabajos.

Se ejecuta el trabajo creado. El trabajo ejecutado presenta lo siguiente:

 ![](https://bc.finneg.com/uploads/default/original/2X/5/5f561b2013250286ee2e3cb7946bcba73f34a01b.png)

# Ejemplo 2: Duplicar transacción

Se presenta a continuación, un script para incluir en un trabajo:

```auto
//Duplicar una transacción a partir de otra.

import app.bsuite.transacciones.operacion.OperacionHLP;

import app.bsuite.transacciones.operacion.OperacionSubtipoHLP;

import app.bsuite.transacciones.operacion.model.OperacionVO;

import app.bsuite.transacciones.operacion.model.OperacionSubtipoVO;

import app.bsuite.transacciones.operacion.model.OperacionItemProductoVO;

import app.bsuite.configuracion.common.ProductoHLP;

import app.bsuite.configuracion.common.model.ProductoVO;

import app.bsuite.servicios.dimension.model.DimensionTransaccionVO;

import app.bsuite.servicios.dimension.DimensionTransaccionHLP;

import app.bsuite.servicios.dimension.DimensionTransaccionSRV;

import app.bsuite.configuracion.contabilidad.model.CuentaVO;

import app.teamplace.servicios.caso.scripting.helpers.transactions.TransactionHLP;

String sessionID = params.getSessionID();

DBHelper dbh = params.getDBHelper();

//CasoBPMAccionVO accion = params.get("Accion");

//CasoScriptResultado result = new CasoScriptResultado();

ScriptingUtilsHLP utils = new ScriptingUtilsHLP(sessionID, dbh);

ScriptingXMLManagerHLP xmlMgr = new ScriptingXMLManagerHLP(sessionID, dbh);

//MailManagerHLP sender = new MailManagerHLP(sessionID, dbh);

//NotifierHLP notifier = new NotifierHLP(sessionID, dbh);

//CaseHLP cases = new CaseHLP(sessionID, dbh);

//BPMServiceHLP bpm = new BPMServiceHLP(sessionID, dbh);

TransactionHLP transaction = new TransactionHLP(sessionID,dbh);

Long DOCUMENTO = new Long(params.get("idDoc")); /* Tipo de Documento Destino */

Integer TIPO_PRECIO_SOBRE_CANT_WORKFLOW = new Integer(0);

Integer RELACION_TRANSACCION_ASOCIADA = new Integer(-100);

Long origenID = params.get("IdTrans");

String nombre = "";

OperacionHLP operacionHelper = new OperacionHLP();

OperacionVO destino = new OperacionVO(sessionID);

OperacionVO origen = OperacionHLP.getByPrimaryKey(new OperacionVO(sessionID), origenID, dbh, false);

nombre = origen.getNombre();

destino = operacionHelper.duplicate(origen, dbh);

destino.setNumeroDocumento("");

destino.setTransaccionSubtipoID(DOCUMENTO);

destino.setWorkflowID(origen.getWorkflowID());

destino.setOrganizacionID(origen.getOrganizacionID());

destino.setEmpresaID(origen.getEmpresaID());

destino.setDescripcion("Generado por " + nombre);

operacionHelper.doInsert(destino, dbh);

```

Puede apreciarse que ciertas líneas - propias de un BPM - están comentadas.

Asimismo se ven 2 de las clases que llevan Scripting adelante y otra clase tuvo que ser importada desde teamplace (en rojo).

Se incorporaron 2 parámetros que son tomados luego por el código.

 ![](https://bc.finneg.com/uploads/default/original/2X/1/18510285fcf39c8207f8a57f5c80d0cc6445151e.png)

Al ejecutarse, genera una transacción duplicada de la establecida en idTrans.

Nota: Este caso es a modo de demostrar cómo varía el uso de determinado código en Scripting frente a BPM.
