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}]