Validación de entradas de flujo de trabajo
errores correctamente, se deben capturar y procesar las excepciones. Por ejemplo, en el ejemplo
anterior, al intentar crear un recurso compartido en un proyecto inexistente, se produce una
excepción no capturada. Este ejemplo se puede modificar para capturar el error y crear el
proyecto en el caso de que no exista:
var workflow = {
name: 'Create share',
description: 'Creates a new share in a business unit',
parameters: {
name: {
label: 'Name of new share',
type: 'String'
},
unit: {
label: 'Business unit',
type: 'ChooseOne',
options: [ 'development', 'finance', 'qa', 'sales' ],
optionlabels: [ 'Development', 'Finance',
}
},
execute: function (params) {
try {
run('shares select ' + params.unit);
} catch (err) {
if (err.code != EAKSH_ENTITY_BADSELECT)
throw (err);
/*
* We haven't yet created a project that corresponds to
* this business unit; create it now.
*/
run('shares project ' + params.unit);
run('commit');
run('shares select ' + params.unit);
}
run('filesystem ' + params.name);
run('commit');
return ('Created new share "' + params.name + '"');
}
};
Validación de entradas de flujo de trabajo
Los flujos de trabajo pueden, de manera opcional, validar la entrada que reciben; para ello,
agregan un miembro validate que toma como parámetro un objeto que contiene los parámetros
del flujo de trabajo como miembros. La función validate debe devolver un objeto en el
que cada miembro tenga el nombre del parámetro que falló la validación y el valor de cada
miembro sea el mensaje de fallo de validación que se debe mostrar al usuario. Para ampliar
nuestro ejemplo a fin de generar un error claro si el usuario intenta crear un recurso compartido
existente:
304
Manual de servicio del cliente de Oracle ZFS Storage Appliance • Junio de 2014
'Quality Assurance', 'Sales/Administrative' ],