클라이언트 모듈 오브젝트의 목록(예를 들어, 비즈니스 프로세스 인스턴스 또는 타스크 인스턴스)을 표시하려면 Business Process Choreographer 탐색기 목록 구성요소를 사용하십시오.
h:form 태그에 bpe:list 태그를 추가하십시오. bpe:list 태그는 모델 속성을 포함해야 합니다. 목록의 각 행에 표시될 오브젝트의 특성을 추가하려면 bpe:list 태그에 bpe:column 태그를 추가하십시오.
다음 예는 타스크 인스턴스를 표시하기 위해 목록 구성요소를 추가하는 벙법을 보여줍니다.
<h:form> <bpe:list model="#{TaskPool}"> <bpe:column name="name" action="taskInstanceDetails" /> <bpe:column name="state" /> <bpe:column name="kind" /> <bpe:column name="owner" /> <bpe:column name="originator" /> </bpe:list> </h:form>
이 모델 속성은 관리 Bean인 TaskPool을 나타냅니다. 관리 Bean은 목록이 반복하여 개별 행에 표시하는 Java™ 오브젝트의 목록을 제공합니다.
목록 구성요소의 경우, 이 관리 Bean은 com.ibm.bpe.jsf.handler.BPCListHandler 클래스의 인스턴스여야 합니다.
다음 예는 TaskPool 관리 Bean을 구성 파일에 추가하는 방법을 보여줍니다.
<managed-bean> <managed-bean-name>TaskPool</managed-bean-name> <managed-bean-class>com.ibm.bpe.jsf.handler.BPCListHandler</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> <managed-property> <property-name>query</property-name> <value>#{TaskPoolQuery}</value> </managed-property> <managed-property> <property-name>type</property-name> <value>com.ibm.task.clientmodel.bean.TaskInstanceBean</value> </managed-property> </managed-bean> <managed-bean> <managed-bean-name>htmConnection</managed-bean-name> <managed-bean-class>com.ibm.task.clientmodel.HTMConnection</managed-bean-class> <managed-bean-scope>application</managed-bean-scope> <managed-property> <property-name>jndiName</property-name> <value>java:comp/env/ejb/LocalHumanTaskManagerEJB</value> </managed-property> </managed-bean>
이 예는 TaskPool에 두 개의 구성 가능한 특성(query 및 type)가 있는 것을 보여줍니다. 조회 특성의 값은 다른 관리 Bean인 TaskPoolQuery를 나타냅니다. 유형 특성의 값은 Bean 클래스를 지정하며, 표시된 목록의 열에 해당 특성이 표시됩니다. 연관된 조회 인스턴스는 특성 유형도 가질 수 있습니다. 특성 유형이 지정된 경우, 이는 목록 핸들러에 지정된 유형과 동일해야 합니다.
htmConnection 관리 Bean을 사용하여 TaskPool 관리 Bean이 구현되면 휴먼 타스크 관리자에 대한 연결을 제공합니다.
다음 예는 TaskPool 관리 bean에 대한 사용자 정의 코드를 추가하는 방법을 보여줍니다.
public class MyTaskQuery implements Query { public List execute throws ClientException { // Examine the faces-config file for a managed bean "htmConnection". // FacesContext ctx = FacesContext.getCurrentInstance(); Application app = ctx.getApplication(); ValueBinding htmVb = app.createValueBinding("#{htmConnection}"); htmConnection = (HTMConnection) htmVb.getValue(ctx); HumanTaskManagerService taskService = htmConnection.getHumanTaskManagerService(); // Then call the actual query method on the Human Task Manager service. // QueryResultSet queryResult = taskService.query( "DISTINCT TASK.TKIID, TASK.NAME, TASK.KIND, TASK.STATE, TASK.TYPE," + "TASK.STARTED, TASK.ACTIVATED, TASK.DUE, TASK.EXPIRES, TASK.PRIORITY" , "TASK.KIND IN(101,102,105) AND TASK.STATE IN(2) AND WORK_ITEM.REASON IN (1)", null, null, null); List applicationObjects = transformToTaskList ( queryResult ); return applicationObjects ; } private List transformToTaskList(QueryResultSet result) { ArrayList array = null; int entries = result.size(); array = new ArrayList( entries ); // Transforms each row in the QueryResultSet to a task instance beans. for (int i = 0; i < entries; i++) { result.next(); array.add( new TaskInstanceBean( result, connection )); } return array ; } }
TaskPoolQuery bean은 Java 오브젝트의 특성을 조회합니다. 이 Bean은 com.ibm.bpc.clientcore.Query 인터페이스를 구현해야 합니다. 목록 핸들러는 내용을 새로 고칠 때 조회의 execute 메소드를 호출합니다. 이 호출은 Java 오브젝트 목록을 리턴합니다. getType 메소드는 리턴된 Java 오브젝트의 클래스 이름을 리턴해야 합니다.
ⓒ Copyright IBM Corporation 2005, 2006.
이 Information Center는 Eclipse 기술을 기반으로 합니다. (http://www.eclipse.org)