270 likes | 607 Views
IBM BPM 조회 SQL 실행 ( 웹서비스 생성 및 테스트 ). IBPM Ver. 7.5.1. 황상규 urajilation@gmail.com. 2012.05.14. 첫번째 .. Web Service 생성 및 Operation 추가 두번째 .. Integration Service 생성 (SQL Execute Statement) 세번째 .. SQL Result Set 을 위한 Business Object Data Type 생성 네번째 .. 테스트.
E N D
IBM BPM 조회 SQL 실행(웹서비스 생성 및 테스트) IBPM Ver. 7.5.1 황상규 urajilation@gmail.com 2012.05.14
첫번째.. Web Service 생성 및 Operation 추가 • 두번째.. Integration Service 생성 • (SQL Execute Statement) 세번째.. SQL Result Set을 위한 Business Object Data Type 생성 네번째.. 테스트 IBM BPM WebService 생성 및 테스트 ※ 실제로 SQL Statement를 실행시키는 Web Service 생성 및 테스트를 하기 위해서는 세번째-> 두번째-> 첫번째-> 네번째의 순서대로 절차를수행하여야 한다.
(1) 프로세스 디자이너에 프로세스 디자인 권한의 사용자로 로그인 한다 • ※ 디폴트 설치시Process Designer 위치 : C:\IBM\ProcessDesigner\v7.5
(2) 프로세스 디자이너의 Implementation의우측 + 기호를 클릭하여 Integration Service를 선택한다 • ※ Process Designer > Implementation > Integration Service >
(3) 생성할 Integration Service 이름을 등록한다예제는 BPM의 나의 할일(To Do) 건수를 가져오는 조회 SQL을 실행할 것이기 때문에 “getToDoCount”라고 하였다. • ※ Process Designer > Implementation > Integration Service >
(4) 생성할 Integration Service 다이어그램을 작성한다 • ※ Process Designer > Implementation > Integration Service > Diagram
(5) 실행 SQL을 작성할 Server Script와 SQL input/output 매핑을 위한 Nested Service 타스크를드래그인한다 • ※ Process Designer > Implementation > Integration Service > Diagram
(6) 각 타스트를 더블클릭 또는 Properties의 Step에서 타스크명을 변경한다.예제에서는 “SQL 셋팅”과 “SQL 실행”으로설정하였다. • ※ Process Designer > Implementation > Integration Service > Diagram
(7) 실행할 SQL를 입력하고, 로칼 변수에 저장한다.ex) varsql = “select status, cnt fromtable”;tw.local.sql = sql • ※ .. Integration Service > Diagram > Properties > Implementation
1 2 3 (8) Nested Service 타스크“SQL 실행”의 속성(Attached Service)을 설정한다 - Integration Service > SQL Execute Statement • ※ .. Integration Service > Diagram > Properties > Implementation
1 2 3 5 4 (9) Data Mapping한다. • Input : userId (String) / Output : RSetToDoCnt / Private : sql (String) • InputReturn Type : RSetToDoCnt (※ 다음 페이지에 Business Type 생성 참조) • DataSourceName : Process Server data Source” 중에 JNDI name 중 선택 • ※ .. Integration Service > Diagram > Properties > Data Mapping
1 2 (9-1) SQL 실행 결과(Result Set)을 저장한 Business Type을 생성한다 - status (String type) - cnt (Integer type) • ※ .. Integration Service > Diagram > Properties > Data Mapping
(9-2) IBPM 관리자 콘솔(https://<hostname>:9043/ibm/console )에 접속한다. - 위와 같은 화면이 보이면, “이 웹 사이트를 계속 탐색합니다” 선택한다 • ※ IBM BPM 관리자 콘솔 접속
(9-3) 관리자 계정(tw_admin)으로 로그인한다. • ※ IBM BPM 관리자 콘솔 접속 > 로그인
1 2 3 (9-4) 좌측 메뉴에서 Resources > JDBC > Data Sources 선택name이 “Process Server data Source” 중에 JNDI name 하나를 선택한다(ex. “jdbc/ProcessDB”) • ※ IBM BPM 관리자 콘솔 > Resources > JDBC > Process Server data Source
1 (10) SQL Execute Integration Service를 테스트 한다. 우측 상단의 화살표 아이콘을 실행하면 생성한 Integration Service가 실행된다. 에러가 발생하지 않으면 다음 단계(11)로 진행한다. • ※ .. Integration Service > Diagram > Properties > Data Mapping > 실행 Test
(11) 프로세스 디자이너의 Implement 우측 + 기호를 클릭하여 Web Service를 선택한다 • ※ Process Designer > Implementation > Web Service >
(12) 생성할 웹서비스 이름을 등록한다ex ) “WebService” • ※ Process Designer > Implementation > Web Service >
1 3 2 (13) Web Service에 Operation을 추가하고, 앞에서 생성한 To Do Count를 가져오는 IntegrationService “getToDoCnt”를 선택한다 • ※ Process Designer > Implementation > Web Service >
1 (14) Operation을 이름을 “getToDoCnt”로 변경해준다 • ※ Process Designer > Implementation > Web Service >
1 (15) Web Service 테스트한다.Behavior의 WSDL URL을 클릭한다.- ex) http://imbpwad:9080/teamworks/webservices/HWANG/WebService.tws?WSDL • ※ Process Designer > Implementation > Web Service >
(16) Web Browser에 나타난 SOAP xml을 드래그 복사한 후 웹서버에 wsdl에 저장한다 • ※ Process Designer > Implementation > Web Service >
3 2 1 (17) wsdl파일을 추가한다.- wsdl추가 생성 경로 : 마우스 오른쪽 클릭 > New > other.. > Web Services > WS이- 생성한 wsdl파일에 웹브라우저에 보이는 soap XML 파일을 복사해 추가한다. (wsdl파일 위에 “<?xml version="1.0" encoding="UTF-8"?>” 포함) • ※ wsdl신규 생성
1 2 (18) Web Service 테스트- WSDL 파일 마우스 오른쪽 클릭 > Web Services > Test with Web Service Explorer- WSDL URL 입력 > Go- ex) WSDL URL: http://imbpwad:9080/teamworks/webservices/HWANG/WebService.tws?WSDL • ※ Web Service 테스트
1 2 (19) Web Seervice Operation를 선택하고 input 파라메터를입력한후“Go” 버튼 클릭 • ※ Web Service 테스트
1 2 (20) “source”를 클릭하면 위와 같이 Request와 Response XML Source가 보여지고,Response에 오류가 없다면 정상적으로 실행된 것이다!! • ※ Web Service 테스트
WITH TODO_CNT(CNT, STATUS) as ( SELECT COUNT(*) CNT, 'ACTIVE' AS STATUS FROM LSW_BPD_INSTANCE PROC, LSW_TASK TASK, LSW_USR_XREF USR WHERE PROC.BPD_INSTANCE_ID = TASK.BPD_INSTANCE_ID AND TASK.USER_ID = USR.USER_ID AND (TASK.STATUS = 11 OR TASK.STATUS = 12) AND USR.USER_NAME = 'hwangsanggyu' UNION ALL SELECT COUNT(*) CNT, 'ACTIVE' AS STATUS FROM LSW_BPD_INSTANCE PROC, LSW_TASK TASK, LSW_USR_XREF USR, LSW_USR_GRP_MEM_XREF GRP WHERE PROC.BPD_INSTANCE_ID = TASK.BPD_INSTANCE_ID AND TASK.GROUP_ID = GRP.GROUP_ID AND GRP.USER_ID = USR.USER_ID AND (TASK.STATUS = 11 OR TASK.STATUS = 12) AND USR.USER_NAME = 'hwangsanggyu' UNION ALL SELECT COUNT(*) CNT, 'COMPLETED' AS STATUS FROM LSW_BPD_INSTANCE PROC, LSW_TASK TASK, LSW_USR_XREF USR WHERE PROC.BPD_INSTANCE_ID = TASK.BPD_INSTANCE_ID AND TASK.USER_ID = USR.USER_ID AND (TASK.STATUS != 11 AND TASK.STATUS != 12) AND USR.USER_NAME = 'hwangsanggyu' UNION ALL SELECT COUNT(*) CNT, 'COMPLETED' AS STATUS FROM LSW_BPD_INSTANCE PROC, LSW_TASK TASK, LSW_USR_XREF USR, LSW_USR_GRP_MEM_XREF GRP WHERE PROC.BPD_INSTANCE_ID = TASK.BPD_INSTANCE_ID AND TASK.GROUP_ID = GRP.GROUP_ID AND GRP.USER_ID = USR.USER_ID AND (TASK.STATUS != 11 AND TASK.STATUS != 12) AND USR.USER_NAME = 'hwangsanggyu' ) SELECT STATUS, SUM(CNT) AS TODO_CNT FROM TODO_CNT GROUP BY STATUS 미처기 건수 완료 건수 처리하지 않은 To Do Count를 가져오기 위해서는 완료한 업무 건수SQL 부분은 제외한다. SQL 실행 결과 ※ DB 서버 부항 경감 등을 위해 사용된 테이블에 대해서는 인덱스 설정 등 DB 튜닝을 반드시 실시한다. • ※ IBM BPM Ver 7.5with DB2에서의 To Do Count를 가져오는 SQL