Rational Developer for System z, 버전 7.6.1

사용자 정의 매개변수 처리

RAM 개발자는 기존의 CARMA 조치를 사용자 정의하거나 완전히 새로운 조치를 작성할 수 있습니다. 이 조치에는 CARMA 호스트 구성에 정의된 리턴값 또는 사용자 정의 매개변수가 있을 수 있습니다.

여기에는 사용 가능한 여러 헬퍼 클래스가 있으므로 쉽게 사용자 정의 조치를 사용할 수 있습니다.

CustomActionParameterManager
메타데이터에 대해 기본, 저장 및 링크 값(CARMA 환경 설정에 지정된 순서대로 검색됨)을 조회합니다.
CustomActionParameterDialog
단순히 사용자 정의 매개변수의 값을 입력하도록 요청하는 편리한 대화 상자입니다.
CustomActionUtil
여러 가지 편리한 메소드를 제공하는 헬퍼 클래스입니다.

사용자 정의 조치 헬퍼 클래스 사용

사용자 정의 매개변수 값을 확보할 수 있는 가장 간단한 방법은 CustomActionUtil에 있는 방법 중 하나(예: getCustomParameters)를 사용하는 것입니다.

CustomActionUtil.getCustomParameters(resource, "101");

이 방법에서는 제공된 자원에서 조치 ID가 101인 조치의 사용자 정의 매개변수를 검색합니다. 다르지만 비슷한 자원에 대해서도 반복적으로 동일한 타스크를 사용하려면 다음과 같이 getCustomParametersForTask를 사용할 수 있습니다.

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

위의 예에서 taskMemento는 사용자가 조치 호출 시 사용하기 위해 입력한 정보를 저장하는 데 사용됩니다. taskMemento를 사용하지 않았다면 모든 자원을 동일한 프롬프트를 사용하여 조회한 것입니다.

다른 메커니즘을 사용하여 매개변수값(예: 다른 사용자 인터페이스)을 페치하려는 경우 다음 예제와 같이 CustomActionParameterManager 클래스와 직접 상호 작용할 수 있습니다.

CustomActionParameterManager manager = CustomActionParameterManager.getManager();
Object[] paramsToPass = manager.getCustomParameters(resource, actionId); // parameters to pass to the command
//this method will tell us whether or not the manager has all the information it needs
if (manager.isPromptNeeded(resource, actionId)) { 
        	final Action action = resource.findActionFor(actionId);

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

        	//find the parameter you want to change this way, or look for it to be null in paramsToPass
        	int index = 0;
        	while (it.hasNext()) {
                		Parameter param = (Parameter) it.next();
                		if (param.getName().equals(targetName))
                        break;
                index++;
        }

        	paramsToPass[index] = new Boolean(false);

        	//optionally store the parameter for later
        	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);
}

위의 예제에서 targetName은 RAM 개발자가 정의한 매개변수의 이름입니다.


이용약관 | 피드백

이 Information Center는 Eclipse 기술을 기반으로 합니다. (http://www.eclipse.org 웹 사이트 참조)