# Creacion de funciones predefinidas | Sueldos

**URL:** <https://bc.finneg.com/t/creacion-de-funciones-predefinidas-sueldos/2055>\
**Category:** HCM\
**Tags:** especificación-técnica, cómo-se-hace\
**Created:** [22 Junio, 2023 14:22 UTC](https://bc.finneg.com/t/creacion-de-funciones-predefinidas-sueldos/2055 "2023-06-22T14:22:05Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![ipicoy](https://bc.finneg.com/user_avatar/bc.finneg.com/ipicoy/32/12280_2.png) [@ipicoy](https://bc.finneg.com/u/ipicoy)\
**Post date:** [22 Junio, 2023 14:22 UTC](https://bc.finneg.com/t/creacion-de-funciones-predefinidas-sueldos/2055/1 "2023-06-22T14:22:06Z")

</div>

# Funciones Predefinidas

### Modulo de Sueldos

**Objetivo** :  
En este procedimiento vamos a explicar el paso a paso para dar de alta una función predefinida para utilizarlo sobre la aplicación:

**¿Quiénes pueden hacerlo?**  
Desarrolladores

**Pasos a seguir** :

1. ir a la ruta sueldos/Resources/ para correr el aplicativo desde la terminal  
 **![|303.2779474683872x161.02495036873262](https://bc.finneg.com/uploads/default/original/2X/e/ed1e25f428af99119da9c5d53d688201381d67eb.png)**

* * *

1. Luego correr el siguiente comando\*\*  
**java -jar antlrworks-1.4.3.jar**

 ![|602x147.19952429157553](https://bc.finneg.com/uploads/default/original/2X/e/e3661b38d6024dc083230016bddc606f81e99aa5.png)

* * *

1. Dentro del ANTLRworks, debemos abrir el archivo FAFScript.g  
**sueldos/codigo/sueldosApp/src/app/sueldos/servicios/formulas/source/antlr**

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

* * *

1. Luego debemos agregar el import:

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

* * *

1. Crear la regla de la función  
**| fxPredefinidaFuncionPrueba {$value = $fxPredefinidaLiquidarGanancias.val**

 ![|602.0000000000001x108](https://bc.finneg.com/uploads/default/original/2X/1/119f55bc2d3fff895e1766395b61553a9bc6df38.png)

* * *

1. Crear la función

fxPredefinidaFuncionPrueba returns [Funcion value]

```
: 'FuncionPrueba' formalParameterList
{
	$value = new FuncionPrueba(solver, $formalParameterList.ValueList);
}
;

```

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

* * *

1. Una vez terminado todos estos cambios, dentro del antlrworks-1.4.3.jar sobre la barra de menús, Generate, “Generate Code”, y esperamos a que termine.

* * *

1. Este proceso generará 3 archivos ubicados en la direccion que aparece en el mensaje:

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

* * *

1. Estos 3 archivos aparecerán en el paquete de output

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

* * *

1. Seleccionar esos 3 archivos, y pisaros al paquete generated, quedando así:

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

* * *

1. Luego compilar el módulo

* * *

1. Para la lógica de Negocio, se debe agregar el insert de la función que aparece en la lista de funciones:

**Script/LogicaNegocio/001.sql**

 ![image](https://bc.finneg.com/uploads/default/original/2X/6/679e3d8a20fc19e3dfb6e7af1bea6ca62394f427.png)

* * *

1. Vamos a crear la clase JAVA de la función dentro del paquete de cacheables:  
**app.sueldos.transacciones.liquidacionSueldos.funciones.impl.cacheables**

package app.sueldos.transacciones.liquidacionSueldos.funciones.impl.cacheables;  
import java.util.List;  
import app.sueldos.servicios.NavegadorEntidadWrapperValor;  
import app.sueldos.servicios.formulas.model.iface.Atom;  
import app.sueldos.transacciones.liquidacionSueldos.LiquidacionSueldosSolve;  
import app.sueldos.transacciones.liquidacionSueldos.funciones.model.FuncionCacheable;  
import faf.app.base.exceptions.FunctionalException;

public class FuncionPrueba extends FuncionCacheable {

```
public String getLogicName() {
	return "FuncionPrueba";
}
public FuncionPrueba(LiquidacionSueldosSolve solver, List<Atom> parametros) {
	super(solver, parametros);
}

public NavegadorEntidadWrapperValor doExecute() throws FunctionalException {
	
	return null;
}

```

}

* * *

\*\*
