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.
Ejemplo 12 Validación de entradas de flujo de trabajoPara ampliar nuestro ejemplo a fin de generar un error claro si el usuario intenta crear un recurso compartido existente:
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', 'Quality Assurance', 'Sales/Administrative' ], } }, validate: function (params) { try { run('shares select ' + params.unit); run('select ' + params.name); } catch (err) { if (err.code == EAKSH_ENTITY_BADSELECT) return; } return ({ name: 'share already exists' }); }, 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); set('mountpoint', '/export/' + params.unit); run('commit'); run('shares select ' + params.unit); } run('filesystem ' + params.name); run('commit'); return ('Created new share "' + params.name + '"'); } };