{{indexmenu_n>1}} ====== Reglas de Negocio ====== \\ Explicación de los distintos "eventos" disponibles en la plataforma XOne para definir las reglas de negocio. \\ ===== RUNSCRIPT ===== Ejecución de codigo XOneScript dentro de nuestra aplicación. En este caso, no tiene ningún atributo, pero si un nodo donde se pondrá el script a ejecutar, como se muestra el ejemplo de más abajo.\\ \\ \\ ===== SETFLDVAL ===== Para coger un valor de un campo de la colección padre y ponerlo en un campo de la colección hija. Utilizado en los contents. \\ ^Atributo ^Descripción ^ | name | Nombre de la acción a ejecutar | | targetfld | Campo que se va a actualizar con el campo del padre | | sourcefld | Campo de la colección padre que va a dar valor al campo de esta colección | ===== MAPVAL ===== Buscamos un valor en otra colección y nos traemos el valor de algún campo. \\ \\ ^Atributo ^Descripción ^ | name | Nombre de la acción a ejecutar | | field | Campo que se va a actualizar | | targetfld | Nombre del campo que tiene el valor que va a ser asignado al campo **field** | | coll | Colección donde se va a realizar la búsqueda del campo que tendrá el valor requerido | | mapfld | Campo de la colección que está definida en el atributo **coll**, que es clave primera de la misma | | mapvalue | Valor del campo de la clave primera para rescatar el registro buscado | ===== EXECUTESQL ===== Para ejecutar una sentencia SQL, Insert, Update o Delete. No tiene sentido ejecutar un Select, porque la acción no devuelve ningún valor. Muy utilizado en las colecciones de cabecera, cuando se está eliminando un registro, eliminar todas sus líneas asociadas.\\ \\ \\ ^Atributo ^Descripción ^ | name | Nombre de la acción a ejecutar | | sql | Sentencia SQL que quiere ejecutar. Solo es valido la ejecución de Insert, Update o Delete. | ===== LINK ===== Para actualizar el campo de enlace de una colección de detalles con la ID de la cabecera. \\ \\ Utilizado EXCLUSIVAMENTE en el nodo INSERT de una colección de cabecera. Para enlazar las líneas de detalle de la colección CONTENTS cuando se está dando de alta al mismo tiempo la cabecera y los detalles, pues hasta que la cabecera no se graba, las líneas de detalle no saben cual es el ID de su padre. \\ ^Atributo ^Descripción ^ | name | Nombre de la acción a ejecutar | | coll | Colección que se busca para actualizar el campo de enlace con esta colección Padre | | field | Nombre del campo de la colección con el nombre que está definido en el atributo **coll** y que es el enlace con esta colección Padre | | value | Valor que se le asigna al campo enlace entre la colección Padre y la colección hija | ====== NODO BEFOREACTION ====== Nodo donde se expondrán las acciones a realizar en los eventos definidos en nuestra aplicación, pudiéndose ejecutar todos y cada uno de los tipos de acciones que dispone el **nodo action**. \\ Sin embargo, como punto importante a tener en cuenta, es que esta acción solo es válida para el evento [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:3.-insert:start| Insert ]], y es utilizada para la validación de campos, para que en caso de error, no se guarde el objeto, y se obligue al usuario a insertar un valor para el campo validado.