Diferencia entre revisiones de «Eventos»
(→Ejemplo) |
(→Ejemplo) |
||
| Línea 37: | Línea 37: | ||
[Datos generales].[Tipo de expediente] = {{STR|"Guardado"}}; | [Datos generales].[Tipo de expediente] = {{STR|"Guardado"}}; | ||
$guardar(this); | $guardar(this); | ||
| + | {{PR|fin}} | ||
| + | |||
| + | {{PR|tipo}} [ADH::Elaborar resolución de otorgamiento] {{PR|es}} {{RE|tarea}} | ||
| + | -{{AT|fuente.definicion}} = [Entidad]; | ||
| + | -{{AT|destino.definicion}} = [ADH::Resolución de otorgamiento de distintivo]; | ||
| + | -{{AT|destino.valor}} = $crear([Contenido]); | ||
| + | -{{AT|Al_crear.codigo}} = {{AT|"[&Destino]->[Datos generales].[Observaciones] = 'Se ha creado la tarea. '; $guardar([&Destino]);"}}; | ||
| + | -{{AT|Al_abandonar.nombre}} = {{STR|"eventos.abandonar"}}; | ||
| + | {{PR|fin}} | ||
| + | |||
| + | {{PR|metodo}} abandonar(); | ||
| + | {{PR|inicio}} | ||
| + | [&Destino]->[Datos generales].[Observaciones] = {{STR|"Se ha abandonado la tarea."}}; | ||
| + | $guardar([&Destino]); | ||
{{PR|fin}} | {{PR|fin}} | ||
===Modificación de la función $guardar=== | ===Modificación de la función $guardar=== | ||
Revisión del 14:45 14 abr 2009
Contenido
¿Qué son los eventos en ODL?
Un evento en ODL es un hecho que puede acaecer a la hora de tratar con contenedores o tareas y que conlleva un cambio en el estado de un contenedor o una tarea.
En el caso de los contenedores, los eventos que se pueden producir son los siguientes:
- Al_crear
- Al_guardar
- Al_abrir
Y para el caso de las tareas:
- Al_crear
- Al_comenzar
- Al_finalizar
- Al_abandonar
¿Para qué sirven?
La utilidad que nos proporcionan los eventos es poder ejecutar código ODL, invocar métodos o lanzar plugins cuando se produce alguno de los eventos comentados en la sección anterior.
Es decir, primero se produce el evento, y luego se ejecuta o bien nuevo código ODL, un método o un plugin.
¿Cuál es su sintaxis?
Para definir un evento y especificar una acción a posteriori utilizaremos tres atributos que podremos combinar con todos aquellos eventos que hemos visto, ya sean de contenedor o de tarea:
-<Nombre_evento>.codigo==> Para ejecutar código ODL -<Nombre_evento>.metodo==> Para ejecutar un método -<Nombre_evento>.plugin==> Para ejecutar un plugin, especificando la dll
Ejemplo
tipo[ID1::Expediente de fiscalización]escontenedor-descripcion="Expediente con el que se lleva a cabo una fiscalización."; -Al_guardar.nombre="eventos.Guardar"; -Al_abrir.plugin="AsistenteEntradaMercancia.dll";fin
metodoGuardar();inicio[Datos generales].[Tipo de expediente] ="Guardado"; $guardar(this);fin
tipo[ADH::Elaborar resolución de otorgamiento]estarea-fuente.definicion= [Entidad]; -destino.definicion= [ADH::Resolución de otorgamiento de distintivo]; -destino.valor= $crear([Contenido]); -Al_crear.codigo={{{1}}}; -Al_abandonar.nombre="eventos.abandonar";fin
metodoabandonar();inicio[&Destino]->[Datos generales].[Observaciones] ="Se ha abandonado la tarea."; $guardar([&Destino]);fin