Download presentation
Presentation is loading. Please wait.
1
IBM BPM 조회 SQL 실행 ( 웹서비스 생성 및 테스트 ) 황상규 urajilation@gmail.com IBPM Ver. 7.5.1 2012.05.14
2
IBM BPM Web Service 생성 및 테스트 첫번째.. Web Service 생성 및 Operation 추가 두번째.. Integration Service 생성 (SQL Execute Statement) 세번째.. SQL Result Set 을 위한 Business Object Data Type 생성 네번째.. 테스트 ※ 실제로 SQL Statement 를 실행시키는 Web Service 생성 및 테스트를 하기 위해서는 세번째 -> 두번째 -> 첫번째 -> 네번째의 순서대로 절차를수행하여야 한다.
3
(1) 프로세스 디자이너에 프로세스 디자인 권한의 사용자로 로그인 한다 ※ 디폴트 설치시 Process Designer 위치 : C:\IBM\ProcessDesigner\v7.5
4
(2) 프로세스 디자이너의 Implementation 의 우측 + 기호를 클릭하여 Integration Service 를 선택한다 ※ Process Designer > Implementation > Integration Service >
5
(3) 생성할 Integration Service 이름을 등록한다 예제는 BPM 의 나의 할일 (To Do) 건수를 가져오는 조회 SQL 을 실행할 것이기 때문에 “getToDoCount” 라고 하였다. ※ Process Designer > Implementation > Integration Service >
6
(4) 생성할 Integration Service 다이어그램을 작성한다 ※ Process Designer > Implementation > Integration Service > Diagram
7
(5) 실행 SQL 을 작성할 Server Script 와 SQL input/output 매핑을 위한 Nested Service 타스크를 드래그인한다 ※ Process Designer > Implementation > Integration Service > Diagram
8
(6) 각 타스트를 더블클릭 또는 Properties 의 Step 에서 타스크명을 변경한다. 예제에서는 “SQL 셋팅 ” 과 “SQL 실행 ” 으로 설정하였다. ※ Process Designer > Implementation > Integration Service > Diagram
9
(7) 실행할 SQL 를 입력하고, 로칼 변수에 저장한다. ex) var sql = “select status, cnt from table”; tw.local.sql = sql ※.. Integration Service > Diagram > Properties > Implementation
10
(8) Nested Service 타스크 “SQL 실행 ” 의 속성 (Attached Service) 을 설정한다 - Integration Service > SQL Execute Statement 1 2 3 ※.. Integration Service > Diagram > Properties > Implementation
11
(9) Data Mapping 한다. -Input : userId (String) / Output : RSetToDoCnt / Private : sql (String) -InputReturn Type : RSetToDoCnt ( ※ 다음 페이지에 Business Type 생성 참조 ) -DataSourceName : Process Server data Source” 중에 JNDI name 중 선택 1 4 5 ※.. Integration Service > Diagram > Properties > Data Mapping 2 3
12
(9-1) SQL 실행 결과 (Result Set) 을 저장한 Business Type 을 생성한다 - status (String type) - cnt (Integer type) 1 2 ※.. Integration Service > Diagram > Properties > Data Mapping
13
(9-2) IBPM 관리자 콘솔 (https:// :9043/ibm/console ) 에 접속한다. - 위와 같은 화면이 보이면, “ 이 웹 사이트를 계속 탐색합니다 ” 선택한다 ※ IBM BPM 관리자 콘솔 접속
14
(9-3) 관리자 계정 (tw_admin) 으로 로그인한다. ※ IBM BPM 관리자 콘솔 접속 > 로그인
15
(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 23
16
(10) SQL Execute Integration Service 를 테스트 한다. 우측 상단의 화살표 아이콘을 실행하면 생성한 Integration Service 가 실행된다. 에러가 발생하지 않으면 다음 단계 (11) 로 진행한다. 1 ※.. Integration Service > Diagram > Properties > Data Mapping > 실행 Test
17
(11) 프로세스 디자이너의 Implement 우측 + 기호를 클릭하여 Web Service 를 선택한다 ※ Process Designer > Implementation > Web Service >
18
(12) 생성할 웹서비스 이름을 등록한다 ex ) “WebService” ※ Process Designer > Implementation > Web Service >
19
(13) Web Service 에 Operation 을 추가하고, 앞에서 생성한 To Do Count 를 가져오는 Integration Service “getToDoCnt” 를 선택한다 1 2 3 ※ Process Designer > Implementation > Web Service >
20
(14) Operation 을 이름을 “getToDoCnt” 로 변경해준다 1 ※ Process Designer > Implementation > Web Service >
21
(15) Web Service 테스트한다. Behavior 의 WSDL URL 을 클릭한다. - ex) http://imbpwad:9080/teamworks/webservices/HWANG/WebService.tws?WSDL 1 ※ Process Designer > Implementation > Web Service >
22
(16) Web Browser 에 나타난 SOAP xml 을 드래그 복사한 후 웹서버에 wsdl 에 저장한다 ※ Process Designer > Implementation > Web Service >
23
(17) wsdl 파일을 추가한다. - wsdl 추가 생성 경로 : 마우스 오른쪽 클릭 > New > other.. > Web Services > WS 이 - 생성한 wsdl 파일에 웹브라우저에 보이는 soap XML 파일을 복사해 추가한다. (wsdl 파일 위에 “ ” 포함 ) ※ wsdl 신규 생성 1 2 3
24
(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
25
(19) Web Seervice Operation 를 선택하고 input 파라메터를 입력한후 “Go” 버튼 클릭 ※ Web Service 테스트 1 2
26
(20) “source” 를 클릭하면 위와 같이 Request 와 Response XML Source 가 보여지고, Response 에 오류가 없다면 정상적으로 실행된 것이다 !! ※ Web Service 테스트 1 2
27
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 ※ IBM BPM Ver 7.5 with DB2 에서의 To Do Count 를 가져오는 SQL SQL 실행 결과 처리하지 않은 To Do Count 를 가져오기 위해서는 완료한 업무 건수 SQL 부분은 제외한다. ※ DB 서버 부항 경감 등을 위해 사용된 테이블에 대해서는 인덱스 설정 등 DB 튜닝을 반드시 실시한다. 미처기 건수 완료 건수
Similar presentations