웹 서비스 API의 조회 인터페이스를 사용하여 비즈니스 프로세스 및 타스크에 대한 정보를 확보합니다.
클라이언트 응용프로그램은 SQL 유사 구문을 사용하여 데이터베이스를 조회합니다.
Java 웹 서비스의 예
string processTemplateName = "ProcessCustomerLR"; query query1 = new query(); query1.selectClause = "DISTINCT PROCESS_INSTANCE.STARTED, PROCESS_INSTANCE.PIID"; query1.whereClause = "PROCESS_INSTANCE.TEMPLATE_NAME = '" + processTemplateName + "'"; query1.orderByClause = "PROCESS_INSTANCE.STARTED"; query1.threshold = null; query1.timeZone = "UTC"; query1.skipTuples = null; queryResponse queryResponse1 = proxy.query(query1);
데이터베이스에서 검색한 정보는 웹 서비스 API를 통해 조회 결과 세트로 리턴됩니다.
QueryResultSetType queryResultSet = queryResponse1.queryResultSet; if (queryResultSet != null) { Console.WriteLine("--> QueryResultSetType"); Console.WriteLine(" . size= " + queryResultSet.size); Console.WriteLine(" . numberColumns= " + queryResultSet.numberColumns); string indent = " . "; // -- the query column info QueryColumnInfoType[] queryColumnInfo = queryResultSet.QueryColumnInfo; if (queryColumnInfo.Length > 0) { Console.WriteLine(); Console.WriteLine("= . QueryColumnInfoType size= " + queryColumnInfo.Length); Console.Write( " | tableName "); for (int i = 0; i < queryColumnInfo.Length ; i++) { Console.Write( " | " + queryColumnInfo[i].tableName.PadLeft(20) ); } Console.WriteLine(); Console.Write( " | columnName "); for (int i = 0; i < queryColumnInfo.Length ; i++) { Console.Write( " | " + queryColumnInfo[i].columnName.PadLeft(20) ); } Console.WriteLine(); Console.Write( " | data type "); for (int i = 0; i < queryColumnInfo.Length ; i++) { QueryColumnInfoTypeType tt = queryColumnInfo[i].type; Console.WriteLine( " | " + tt.ToString()); } Console.WriteLine(); } else { Console.WriteLine("--> queryColumnInfo= <null>"); } // - the query result values string[][] result = queryResultSet.result; if (result !=null) { Console.WriteLine(); Console.WriteLine("= . result size= " + result.Length); for (int i = 0; i < result.Length; i++) { Console.Write(indent +i ); string[] row = result[i]; for (int j = 0; j < row.Length; j++ ) { Console.Write(" | " + row[j]); } Console.WriteLine(); } } else { Console.WriteLine("--> result= <null>"); } } else { Console.WriteLine("--> QueryResultSetType= <null>"); }
조회 함수는 호출자의 권한에 따라 오브젝트를 리턴합니다. 결과 조회 세트에는 호출자가 참조할 권한이 있는 오브젝트의 특성만 포함됩니다.
ProcessTemplateData[] queryProcessTemplates (java.lang.String whereClause, java.lang.String orderByClause, java.lang.Integer threshold, java.util.TimeZone timezone);타스크 템플리트의 경우 조회 함수에는 다음 구문이 있습니다.
TaskTemplate[] queryTaskTemplates (java.lang.String whereClause, java.lang.String orderByClause, java.lang.Integer threshold, java.util.TimeZone timezone);기타 비즈니스 프로세스 및 타스크 관련 오브젝트의 경우 조회 함수에는 다음 구문이 있습니다.
QueryResultSet query (java.lang.String selectClause, java.lang.String whereClause, java.lang.String orderByClause, java.lang.Integer skipTuples java.lang.Integer threshold, java.util.TimeZone timezone);
조회 인터페이스에는 queryAll 메소드도 포함됩니다. 이 메소드를 사용하여 예를 들어 모니터링 목적으로 오브젝트의 연관된 데이터를 모두 검색할 수 있습니다. queryAll 메소드 호출자는 BPESystemAdministrator, BPESystemMonitor, TaskSystemAdministrator 또는 TaskSystemMonitor.method와 같은 J2EE(Java™ 2 Platform, Enterprise Edition) 역할 중 하나를 가지고 있어야 합니다. 오브젝트의 해당 작업 항목을 사용한 권한 점검은 적용되지 않습니다.
.NET의 예
ProcessTemplateType[] templates = null; try { queryProcessTemplates iW = new queryProcessTemplates(); iW.whereClause = "PROCESS_TEMPLATE.STATE=PROCESS_TEMPLATE.STATE.STATE_STARTED"; iW.orderByClause = null; iW.threshold = null; iW.timeZone = null; Console.WriteLine("--> queryProcessTemplates ... "); Console.WriteLine("--> query: WHERE " + iW.whereClause + " ORDER BY " + iW.orderByClause + " THRESHOLD " + iW.threshold + " TIMEZONE" + iW.timeZone); templates = proxy.queryProcessTemplates(iW); if (templates.Length < 1) { Console.WriteLine("--> No templates found :-("); } else { for (int i = 0; i < templates.Length ; i++) { Console.Write("--> found template with ptid: " + templates[i].ptid); Console.WriteLine(" and name: " + templates[i].name); /* ... other properties of ProcessTemplateType ... */ } } } catch( Exception e ) { Console.WriteLine("exception= " + e); }
ⓒ Copyright IBM Corporation 2005, 2006.
이 Information Center는 Eclipse 기술을 기반으로 합니다. (http://www.eclipse.org)