Rational Developer para System z, Versión 7.6.1

Funcionamiento de los parámetros personalizados

Los desarrolladores de RAM tienen la posibilidad de personalizar acciones de CARMA existentes o de crear acciones completamente nuevas. Estas acciones pueden tener parámetros personalizados o valores de retorno tal como se ha definido en la configuración del host de CARMA.

Hay diversas clases ayudantes disponibles por lo que el usuario podrá utilizar fácilmente estas acciones personalizadas:

CustomActionParameterManager
Consulta los valores predeterminados, almacenados y enlazados (recuperados en el orden especificado en las preferencias de CARMA) respeto a los metadatos
CustomActionParameterDialog
Un diálogo para su comodidad que simplemente solicita a los usuarios que especifiquen valores para los parámetros personalizados
CustomActionUtil
Una clase ayudante que proporciona diversos métodos para su comodidad

Utilización de las clases ayudantes de la acción personalizada

La forma más simple de obtener valores para un parámetro personalizado es utilizar uno de los métodos de CustomActionUtil; por ejemplo,getCustomParameters:

CustomActionUtil.getCustomParameters(resource, "101");

De esta forma se recuperan los parámetros personalizados para la acción con un ID de acción de 101 para el recurso determinado. Si tiene pensado utilizar la misma tarea en repetidas ocasiones para recursos diferentes, pero similares, puede utilizar getCustomParametersForTask como se indica a continuación:

CARMAContent[] resources = getResources();
CarmaTaskMemento taskMemento  = new CarmaTaskMemento();
for (int i = 0; i < resources.length; i++) {
        CustomActionUtil.getCustomParametersForTask(taskMemento, resources[i], "101");
}

En el ejemplo anterior, taskMemento se utiliza para almacenar información que el usuario ha especificado que se utilice ente las invocaciones de las acciones. Si taskMemento no se tuviera que utilizar aquí, se emitiría al usuario las mismas solicitudes para cada recurso.

Si, en cambio, desea utilizar un mecanismo distinto para captar valores de parámetro (como por ejemplo una interfaz de usuario diferente), puede interaccionar directamente con la clase CustomActionParameterManager, tal como se ilustra en el ejemplo siguiente:

CustomActionParameterManager manager = CustomActionParameterManager.getManager();
Object[] paramsToPass = manager.getCustomParameters(resource, actionId); // parámetros para pasar al mandato
//este método nos indicará si el gestor tiene o no toda la información necesaria
if (manager.isPromptNeeded(resource, actionId)) {
        final Action action = resource.findActionFor(actionId);

        Iterator parameters = action.getParameters().iterator();

        //busque el parámetro que desee cambiar de esta forma o búsquelo como un valor no válido en paramsToPass
        int index = 0;
        while (it.hasNext()) {
                Parameter param = (Parameter) it.next();
                if (param.getName().equals(targetName))
                        break;
                index++;
        }

        paramsToPass[index] = new Boolean(false);

        //opcionalmente, almacene el parámetro para más adelante
        Object[] paramsToStore = new Object[paramsToPass.length];
        for (int i = 0; i < paramsToStore.length; i++) {
                paramsToStore[i] = null;
                if (i == index)
                        paramsToStore[i] = new Boolean(false);
        }
        manager.setUserStoredParamValues(resource.getRepository(), paramsToStore);
}

En el ejemplo anterior, targetName es el nombre del parámetro según ha definido el desarrollador de RAM.


Condiciones de uso | Comentarios

Este centro de información está equipado con tecnología Eclipse. (http://www.eclipse.org)