# Hook (Puntos de inserción en procesos)

**URL:** <https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927>\
**Category:** Compartir código fuente y ejemplos\
**Created:** [9 Mayo, 2016 08:57 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927 "2016-05-09T08:57:05Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [9 Mayo, 2016 08:57 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/1 "2016-05-09T08:57:05Z")

</div>

Es un “plugin” heredable que permite definir puntos de inserción, puntos de ejecución, hooks, anclajes, como mejor se entienda.

Nace de la necesidad de poder ejecutar determinados procesos sin tocar el proyecto base la solución.  
Su declaración y mantenimiento es realmente sencillo.

- Un solo proceso javascript llamada HOOK\_XXXX con el origen que se necesite
- Añadir un registro al panel de mantenmiento de hooks

En el rar viene un documento con las instrucciones e imágenes.

[Hooks.rar](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/5/54a2a6d020484b5838df8c354e11b02ab2c964be.rar) (49.2 KB)

---

<div class="post-metadata">

**Author:** ![j.sotomayor.75](https://avatars.discourse-cdn.com/v4/letter/j/6de8d8/32.png) [@j.sotomayor.75](https://foros.velneo.com/u/j.sotomayor.75)\
**Post date:** [9 Mayo, 2016 09:27 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/2 "2016-05-09T09:27:48Z")

</div>

Muchas gracias Manuel!

Un grandísimo aporte.

---

<div class="post-metadata">

**Author:** ![gontorre](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/gontorre/32/5728_2.png) [@gontorre](https://foros.velneo.com/u/gontorre)\
**Post date:** [9 Mayo, 2016 11:10 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/3 "2016-05-09T11:10:06Z")

</div>

Buenos días Manuel

Lo primero, gracias por la aportación. Seguro que le sacaré partido.

Pero tengo un problema. Cuando instalo la solución me crea una solución sin nombre y sin instancias de aplicación o datos. Tengo el servidor con la versión 7.18

¿Puede haber algún problema?

Gracias

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [9 Mayo, 2016 11:50 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/4 "2016-05-09T11:50:14Z")

</div>

Buenos días Gonzalo.

Pues lo he grabado esta mañana con 7.19.1 no se si podrá ser por eso.

¿Tienes algún servidor de desarrollo en esa versión para probar?

---

<div class="post-metadata">

**Author:** ![gontorre](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/gontorre/32/5728_2.png) [@gontorre](https://foros.velneo.com/u/gontorre)\
**Post date:** [9 Mayo, 2016 12:38 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/5 "2016-05-09T12:38:11Z")

</div>

Pues no tengo niguno de momento. tengo que actualizar, pero lo estaba retrasabdo. Una razón más para actualizarme.

Si alguien lo ha probado y puede confirmar que es por la versión me quedaría más tranquilo.

Gracias y un saludo

---

<div class="post-metadata">

**Author:** ![j.sotomayor.75](https://avatars.discourse-cdn.com/v4/letter/j/6de8d8/32.png) [@j.sotomayor.75](https://foros.velneo.com/u/j.sotomayor.75)\
**Post date:** [9 Mayo, 2016 13:39 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/6 "2016-05-09T13:39:04Z")

</div>

Hola Gonzalo,

Yo lo he instalago en un vServer en cloud en 7.19 y sin problemas.

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/9/950f2f73df7d5dfc4cbeaed62bd30da1447b7687.png)

---

<div class="post-metadata">

**Author:** ![j.sotomayor.75](https://avatars.discourse-cdn.com/v4/letter/j/6de8d8/32.png) [@j.sotomayor.75](https://foros.velneo.com/u/j.sotomayor.75)\
**Post date:** [9 Mayo, 2016 13:52 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/7 "2016-05-09T13:52:11Z")

</div>



---

<div class="post-metadata">

**Author:** ![psapoznik](https://avatars.discourse-cdn.com/v4/letter/p/ba9def/32.png) [@psapoznik](https://foros.velneo.com/u/psapoznik)\
**Post date:** [9 Mayo, 2016 15:07 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/8 "2016-05-09T15:07:51Z")

</div>

Muchas Gracias Manuel , eres un Crack!!

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [9 Mayo, 2016 22:23 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/9 "2016-05-09T22:23:13Z")

</div>

Hola Manuel.

Gracias por la aportación.  
Un par de cosas:

- ¿Has contemplado que cada proyecto que hereda el Hook pueda ejecutar un proceso distinto?  
Por ejemplo, tenemos un proyecto base PROY\_BASE que heredan tanto el proyecto PROY\_01 como el PROY\_02. Para el mismo HOOK\_BASE quiero que el PROY\_01 ejecute un proceso PROY\_01/PRO\_01 y que el PROY\_02 ejecute un proceso PROY\_02/PRO\_02
- Creo que la función getAllHooks() no busca en toda la cadena de herencia. Al no ser recursiva solo busca en el primer nivel de herencia.  
Con tiempo lo miro con más detalle y ya te cuento.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [10 Mayo, 2016 09:31 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/10 "2016-05-10T09:31:19Z")

</div>

Buenos días Paco.

Si PROY\_01 y PROY\_02 tienen instancias de datos distintas si funcionará por que hooks es una tabla más.  
Ahora bien, si ambos proyectos comparten las instancia de datos del proyecto PROY\_BASE si habrá un problema. Me refiero, debería salir el mensaje de proceso inexistente ya que el PROY\_01 no tiene acceso al proceso que estará declarado en PROY\_02.

Te hablo de manera teórica, la verdad que no he probado.

Con respecto a getAllHooks, en teoría si debería funcionar. No uso recursividad, si no que voy llamando a la función getHooks al que le paso el proyecto. getAllHook recorre todos los proyectos heredados llamando a la misma función. Igualmente lo reviso.

Gracias por los apuntes, muy interesante el tema de la herencia.

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [10 Mayo, 2016 17:07 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/11 "2016-05-10T17:07:28Z")

</div>

Hola Manuel.

En mi caso, lo normal es que los proyectos PROY\_01 y PROY\_02 compartan la misma tabla HOOKS que está en la instancia de datos de PROY\_BASE.  
PROY\_BASE puede contener toda la lógica común de la empresa y los proyectos PROY\_01 y PROY\_02 pueden ser el ERP y el CRM.

Los requisitos serían:

- El formulario HOOKERS se debe poder ejecutar desde cualquier proyecto de la Herencia
- Los HOOKS estarán normalmente en el proyecto PROY\_BASE, aunque no es obligatorio
- Los Procesos que se ejecutan desde un HOOK deben poder estar en cualquier proyecto de la Herencia

Teniendo en cuenta esto:

- Si desde el proyecto PROY\_01 añadimos un Proceso PROY\_01/PROCESO\_01 al HOOK\_BASE\_A, entonces el proyecto PROY\_02 no deberá poder editar ese registro de la tabla HOOKERS y si podrá añadir un Proceso PROY\_02/PROCESO\_02.
- Tened en cuenta que getAllProcesos() devuelve los procesos a los que cada Proyecto puede acceder.
- Por lo tanto debe haber un sistema de detección de error para evitar que desde PROY\_02 se intente ejecutar el proceso PROY\_01/PROCESO\_01 y viceversa.

En cuanto a lo de la recursividad, es necesario o de lo contrario los scripts getAll… fallan.  
Adjunto el script hookingSearch.js corregido.  
Compruébalo y me comentas.

Saludos  
Paco Satué

[hookingSearch.zip](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/e/ea69873b5358c7df97869b903721e4d1567c4fbc.zip) (744 Bytes)

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [12 Mayo, 2016 08:08 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/12 "2016-05-12T08:08:29Z")

</div>

Gracias Paco, ahora voy algo justo de tiempo. En cuanto pueda lo implemento y los pruebo.

Saludos

---

<div class="post-metadata">

**Author:** ![friberam](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/friberam/32/5148_2.png) [@friberam](https://foros.velneo.com/u/friberam)\
**Post date:** [27 Julio, 2021 07:55 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/13 "2021-07-27T07:55:55Z")

</div>

Buenos días. Muchas gracias @manuel.rd por el aporte. Lo he instalado y la verdad es que es una herramienta magnífica.

Tengo no obstante un problemilla. En el trigger posterior al alta, ya tengo el id del registro en si. (lo muestro en un mensaje y me aparece). Después de ello lanzo el Hook y si leo el id no me muestra el valor.

---

<div class="post-metadata">

**Author:** ![friberam](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/friberam/32/5148_2.png) [@friberam](https://foros.velneo.com/u/friberam)\
**Post date:** [27 Julio, 2021 07:57 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/14 "2021-07-27T07:57:52Z")

</div>

Adjunto imagen de los mensajes. El 2Generación ya es el proceso del Hook  
 ![Screenshot_1](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/5/5c965d19014430c2a1f6b3d64542090476acd419.jpeg)

---

<div class="post-metadata">

**Author:** ![friberam](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/friberam/32/5148_2.png) [@friberam](https://foros.velneo.com/u/friberam)\
**Post date:** [27 Julio, 2021 10:36 UTC](https://foros.velneo.com/t/hook-puntos-de-insercion-en-procesos/8927/15 "2021-07-27T10:36:58Z")

</div>

Ahora si que me aparece. Desde el trigger posterior he lanzado un proceso que cargo lista del mismo vencimiento y lo modifico y creo una extensión. Me daba problemas modificar el vencimiento en el anterior al alta. Ahora parece que todo OK
