27
IBM BPM 조조 SQL 조조 ( 조조조조 조조 조 조조조 ) 황황황 [email protected] IBPM Ver. 7.5.1 2012.05.14

IBM BPM 조회 SQL 실행 ( 웹서비스 생성 및 테스트 )

  • Upload
    ham

  • View
    132

  • Download
    0

Embed Size (px)

DESCRIPTION

IBM BPM 조회 SQL 실행 ( 웹서비스 생성 및 테스트 ). IBPM Ver. 7.5.1. 황상규 [email protected]. 2012.05.14. 첫번째 .. Web Service 생성 및 Operation 추가 두번째 .. Integration Service 생성 (SQL Execute Statement) 세번째 .. SQL Result Set 을 위한 Business Object Data Type 생성 네번째 .. 테스트. - PowerPoint PPT Presentation

Citation preview

Page 1: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

IBM BPM 조회 SQL 실행( 웹서비스 생성 및 테스트 )

황상규[email protected]

IBPM Ver. 7.5.1

2012.05.14

Page 2: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

IBM BPM Web Service 생성 및 테스트첫번째 .. Web Service 생성 및 Operation 추가

두번째 .. Integration Service 생성 (SQL Execute Statement)

세번째 .. SQL Result Set 을 위한 Business Object Data Type 생성

네번째 .. 테스트

※ 실제로 SQL Statement 를 실행시키는 Web Service 생성 및 테스트를 하기 위해서는 세번째 -> 두번째 -> 첫번째 -> 네번째의 순서대로 절차를수행하여야 한다 .

Page 3: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(1) 프로세스 디자이너에 프로세스 디자인 권한의 사용자로 로그인 한다

※ 디폴트 설치시 Process Designer 위치 : C:\IBM\ProcessDesigner\v7.5

Page 4: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(2) 프로세스 디자이너의 Implementation 의 우측 + 기호를 클릭하여 Integration Service를 선택한다

※ Process Designer > Implementation > Integration Service >

Page 5: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(3) 생성할 Integration Service 이름을 등록한다예제는 BPM 의 나의 할일 (To Do) 건수를 가져오는 조회 SQL 을 실행할 것이기 때문에 “ getToDoCount” 라고 하였다 .

※ Process Designer > Implementation > Integration Service >

Page 6: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(4) 생성할 Integration Service 다이어그램을 작성한다

※ Process Designer > Implementation > Integration Service > Diagram

Page 7: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(5) 실행 SQL 을 작성할 Server Script 와 SQL input/output 매핑을 위한 Nested Service 타스크를 드래그인한다

※ Process Designer > Implementation > Integration Service > Diagram

Page 8: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(6) 각 타스트를 더블클릭 또는 Properties 의 Step 에서 타스크명을 변경한다 .예제에서는 “ SQL 셋팅”과 “ SQL 실행”으로 설정하였다 .

※ Process Designer > Implementation > Integration Service > Diagram

Page 9: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(7) 실행할 SQL 를 입력하고 , 로칼 변수에 저장한다 .ex) var sql = “select status, cnt from table”; tw.local.sql = sql

※ .. Integration Service > Diagram > Properties > Implementation

Page 10: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(8) Nested Service 타스크 “ SQL 실행”의 속성 (Attached Service) 을 설정한다 - Integration Service > SQL Execute Statement

1

23

※ .. Integration Service > Diagram > Properties > Implementation

Page 11: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(9) Data Mapping 한다 .-Input : userId (String) / Output : RSetToDoCnt / Private : sql (String)-InputReturn Type : RSetToDoCnt (※ 다음 페이지에 Business Type 생성 참조 )-DataSourceName : Process Server data Source” 중에 JNDI name 중 선택

1

45

※ .. Integration Service > Diagram > Properties > Data Mapping

2

3

Page 12: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(9-1) SQL 실행 결과 (Result Set) 을 저장한 Business Type 을 생성한다 - status (String type) - cnt (Integer type)

1

2

※ .. Integration Service > Diagram > Properties > Data Mapping

Page 13: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(9-2) IBPM 관리자 콘솔 (https://<hostname>:9043/ibm/console ) 에 접속한다 . - 위와 같은 화면이 보이면 , “ 이 웹 사이트를 계속 탐색합니다” 선택한다

※ IBM BPM 관리자 콘솔 접속

Page 14: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(9-3) 관리자 계정 (tw_admin) 으로 로그인한다 .

※ IBM BPM 관리자 콘솔 접속 > 로그인

Page 15: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(9-4) 좌측 메뉴에서 Resources > JDBC > Data Sources 선택name 이 “ Process Server data Source” 중에 JNDI name 하나를 선택한다(ex. “jdbc/ProcessDB” )

※ IBM BPM 관리자 콘솔 > Resources > JDBC > Process Server data Source

12 3

Page 16: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(10) SQL Execute Integration Service 를 테스트 한다 .우측 상단의 화살표 아이콘을 실행하면 생성한 Integration Service 가 실행된다 .에러가 발생하지 않으면 다음 단계 (11) 로 진행한다 .

1

※ .. Integration Service > Diagram > Properties > Data Mapping > 실행 Test

Page 17: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(11) 프로세스 디자이너의 Implement 우측 + 기호를 클릭하여 Web Service 를 선택한다

※ Process Designer > Implementation > Web Service >

Page 18: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(12) 생성할 웹서비스 이름을 등록한다ex ) “WebService”

※ Process Designer > Implementation > Web Service >

Page 19: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(13) Web Service 에 Operation 을 추가하고 , 앞에서 생성한 To Do Count 를 가져오는 Integration Service “getToDoCnt” 를 선택한다

1

23

※ Process Designer > Implementation > Web Service >

Page 20: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(14) Operation 을 이름을 “ getToDoCnt” 로 변경해준다

1

※ Process Designer > Implementation > Web Service >

Page 21: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(15) Web Service 테스트한다 .Behavior 의 WSDL URL 을 클릭한다 .- ex) http://imbpwad:9080/teamworks/webservices/HWANG/WebService.tws?WSDL

1

※ Process Designer > Implementation > Web Service >

Page 22: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(16) Web Browser 에 나타난 SOAP xml 을 드래그 복사한 후 웹서버에 wsdl 에 저장한다

※ Process Designer > Implementation > Web Service >

Page 23: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(17) wsdl 파일을 추가한다 .- wsdl 추가 생성 경로 : 마우스 오른쪽 클릭 > New > other.. > Web Services > WS 이- 생성한 wsdl 파일에 웹브라우저에 보이는 soap XML 파일을 복사해 추가한다 . (wsdl 파일 위에 “ <?xml version="1.0" encoding="UTF-8"?>” 포함 )

※ wsdl 신규 생성

1

2

3

Page 24: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(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

Page 25: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(19) Web Seervice Operation 를 선택하고 input 파라메터를 입력한후 “ Go” 버튼 클릭

※ Web Service 테스트

1

2

Page 26: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

(20) “source” 를 클릭하면 위와 같이 Request 와 Response XML Source 가 보여지고 ,Response 에 오류가 없다면 정상적으로 실행된 것이다 !!

※ Web Service 테스트

12

Page 27: IBM BPM  조회  SQL  실행 ( 웹서비스  생성 및 테스트 )

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 ALLSELECT 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 ALLSELECT 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 ALLSELECT 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_CNTGROUP BY STATUS

※ IBM BPM Ver 7.5 with DB2 에서의 To Do Count 를 가져오는 SQL

SQL 실행 결과

처리하지 않은 To Do Count 를 가져오기 위해서는 완료한 업무 건수 SQL 부분은 제외한다 .

※ DB 서버 부항 경감 등을 위해 사용된 테이블에 대해서는 인덱스 설정 등 DB 튜닝을 반드시 실시한다 .

미처기 건수완료 건수