클라이언트 모듈 오브젝트의 목록(예를 들어, 비즈니스 프로세스 인스턴스 또는 타스크 인스턴스)을
표시하려면 Business Process Choreographer 탐색기 목록 구성요소를 사용하십시오.
- JSP(JavaServer Pages) 파일에 목록 구성요소를 추가하십시오.
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™ 오브젝트의 목록을 제공합니다.
- bpe:list 태그에 참조된 관리 Bean을 구성하십시오.
목록 구성요소의 경우, 이 관리 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>
이 예는 TaskPool에 두 개의 구성 가능한 등록 정보(query 및 type)가 있는 것을 보여줍니다.
조회 등록 정보의 값은 다른 관리 Bean인 TaskPoolQuery를 나타냅니다. 유형 등록 정보의 값은 Bean 클래스를 지정하며, 표시된 목록의 열에 해당 등록 정보가 표시됩니다. 연관된 조회 인스턴스는 등록 정보 유형도 가질 수 있습니다. 등록 정보 유형이 지정된 경우,
이는 목록 핸들러에 지정된 유형과 동일해야 합니다.
htmConnection 관리 Bean을 사용하여 TaskPool 관리 Bean이 구현되면 휴먼 타스크 관리자에 대한 연결을 제공합니다.
- 목록 핸들러가 참조하는 관리 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 인터페이스를 구현해야 합니다. 목록 핸들러는 내용을 새로 고칠 때 조회의 실행 메소드를 호출합니다. 이 호출은 Java 오브젝트 목록을 리턴합니다. getType 메소드는
리턴된 Java 오브젝트의 클래스 이름을 리턴해야 합니다.
JSF 응용프로그램은 이제 요청된 오브젝트 목록의 등록 정보(예: 상태, 종류, 소유자 및 사용 가능한
타스크 인스턴스의 오리지네이터)를 표시하는 JavaServer 페이지를 포함합니다.