Busquedas y procesos - Heavyblade/cirrus GitHub Wiki
A partir de la versión 1.2 Cirrus.js es capaz de mapear rutas no solo a controladores sino tambien a objetos v7 Busqueda y Proceso, por lo que en tu router podrás crear rutas que Cirrus.js apuntará a la ejecución de algún proceso o búsqueda.
wApp.router.addRoutes({
"GET /mi_proceso.pro": "aliascaja/PROCESO",
"GET /mi_busqueda.bus"; "aliascaja/BUSQUEDA"
})
Que sucede cuando un ruta es enlazada a un proceso:
Cuando una ruta se enlaza a un proceso, Cirrus.js instanciará dicho proceso en 3er plano y le serán pasados como texto todos los parámetros que se envíen en el query string excepto el parametro 'fields', posteriormente será ejecutado; si el proceso tiene definida la variable RESULT el contenido de esta será entregado como respuesta, si dicha variable no esta definida o si su valor es una cadena vacia "" y el proceso tiene definida la salida como ficha o lista, automáticamente Cirrus.js intentara mapear la lista de registros resultante del proceso a un JSON equivalente y este será devuelto en el response.
Que sucede cuando un ruta es enlazada una búsqueda:
Cuando una ruta se enlaza a una búsqueda, Cirrus.js instanciará la misma en 3er plano y le serán pasados como texto todos los parámetros que se envíen en el query string excepto el parametro 'fields', posteriormente será ejecutada y automáticamente Cirrus.js intentara mapear la lista de registros resultante de la búsqueda a un JSON equivalente y este será devuelto en el response.
Como acceder a las procesos o búsquedas:
Para acceder a tus procesos o búsquedas desde el navegador o debes añadir la extensión para ser explicitos en cuanto al recurso que se solicita:
procesos:
/mi_proceso.pro
busquedas:
/mi_busqueda.bus
Indicando explicitamente los campos.
Por defecto Cirrus.js mapeará todos los campos de la tabla de salida de la búsqueda o proceso, pero si solo necesitas ciertos campos puedes indicarlos explícitamente mediante el parametro fields separando los campos en comas.
/my_busqueda.bus?fields=id,name,valor
[{id: 1, name: 'primero', valor: 10}, {id: 2, name: 'segundo', valor: 20}, {id: 3, name: 'tercero', valor: 5}]
/my_proceso.pro?fields=id,clientes
[{id: 1, clientes: 20}, {id: 2, clientes: 30}, {id: 3, clientes: 40}]