반응형
Introduction

SDO를 사용하는 방법을 알아봅시다~



Preparing for the lab

아래 스크립트를 실행하셔야 합니다.


sqlplus soademo/soademo @create_cstomers_table.sql



Creating the ADFBC Service

어플리케이션을 만듭니다.



Application Name: CustomerSDOApp



Project Name: CustomerSDO



Finish 클릭



CustomerSDO 프로젝트에서 마우스 오른쪽 버튼 클릭 후 New... 클릭



Business Tier - ADF Business Components에 Business Components from Tables를 선택합니다.



Connection을 추가합니다.



Connection 정보를 입력합니다.



SQL Flavor와 Type Map은 Oracle로 놔두고 OK

※ 테스트하는 DB(soademo)가 다른 DB이면 바꿔주세요.



CUSTOMERS 테이블을 선택합니다.



Next 버튼을 클릭합니다.



Customers (SOADEMO.CUSTOMERS)를 선택합니다.



Read-Only View Objects 창에서는 그냥 Next 버튼을 클릭합니다.



Name: CustomerSDOAppModule



Finish 버튼을 클릭합니다.



CustomerSDOAppModule을 더블 클릭합니다. Service Interface를 선택합니다.



+ 버튼을 클릭합니다.



Web Service Name: CustomerSDOService



Next 버튼을 클릭합니다.



CustomersView1을 선택합니다.



CustomersView1 선택하면 Basic Operations 탭에 목록이 나오게 됩니다. 하나도 빠짐없이 다 선택합니다. (스크롤 내려서 선택!)



Finish 버튼을 클릭합니다.





Deploying the service

Configureations을 선택 합니다.



CustomerSDOService를 선택 후 Edit 버튼을 클릭합니다.



Datasource Name: jdbc/soademoDatabase. OK 버튼을 클릭합니다.



Defaut Configuration을 CustomerSDOService로 번경합니다.



모두 저장합니다.

CustomerSDO 프로젝트 선택 후 마우슨 오른쪽 버튼 클릭. Project Properties... 클릭합니다.



Java EE Application에서

Java EE Web Application Name: CustomerSDO-webapp, Java EE Web Context Root: customer-app



Deployment에서 Deployment Profile을 추가합니다.



Archive Type을 Business Components Service Interface로 선택하고 Name은 customerSDOProfiles로 입력합니다.



추가된 customerSDOProfile을 펼치고, MiddelTier (EJB JAR File) 선택 후 Edit 버튼을 클릭합니다.



EAR File을 customer-app.ear 로 변경하고, Enterprise Application Name을 CustomerSDO로 변경합니다.

OK 버튼을 클릭합니다.



OK 버튼을 클릭합니다.



Deploy 합니다.



http://localhost:8001/customer-app/CustomerSDOService로 접속합니다.

아래와 같은 화면이 나오는데, 작업에서 getCustomersView1 선택 후 customerId에 1111을 입력하고 호출 버튼을 눌러봅시다.



결과가 나옵니다. 형식이 지정된 XML을 클릭하면 좀 더 이쁘게 볼 수 있습니다.



이 웹서비스를 POProcessing에서 사용해봅시다.



Using the SDO in POProcessing Composite

POProcessing Composite 편집 화면에서 Web Service를 추가합니다.



전에 추가한 웹서비스의 WSDL URL을 알기 위해서는 서비스 설명을 참조하십시오.를 클릭하거나 뒤에 ?wsdl 을 붙이면 됩니다.



위 URL을 복사합니다.



WSDL URL에 붙여넣기 합니다. 붙여넣기 후 포커스를 다른 곳으로 이동시키면 자동으로 정보를 읽어들입니다.



approveLargeOrder(BPEL Process)를 수정합니다.



Structure 팔레트에서 Variable를 추가합니다.



Name: CustomerInfoEV. Element 선택 후 Browse 버튼을 클릭합니다.



아래와 같이 CustomerSDOService.wsdl에 있는 스키마를 선택합니다.



Entity Variable 채크 후 Partner Link 오른쪽의 Browse 버튼을 클릭합니다.



CustomerSDOService를 선택합니다.



OK 버튼을 클릭합니다.



receiveInput 액티브 아래에 Bind Entity 액티브를 추가합니다.



이름을 BindCustomerId로 변경 후 편집합니다.(더블 클릭)



Entity Variable 오른쪽의 Browse 버튼을 클릭합니다.



CustomerInfoEV를 선택합니다.



Unique Key를 추가합니다.



KeyLocal Part 오른쪽 Browse 버튼을 클릭합니다.



CustomerInfoEV - customersViewSDO - CustomerId를 선택합니다.



Key Value 오른쪽에 Express Builder 버튼을 클릭합니다.



inputVariable - payload - Order - customerId를 선택합니다.



OK 버튼을 클릭합니다.



OK 버튼을 클릭합니다.



Assign 액티브를 BindCustomerId 아래에 추가합니다.



Name: AssignCustomerName. 아래와 같이 Copy Operation을 추가합니다.



Human Task 가 속해있는 Switch 액티브 바로 아래에 Assign 액티브를 추가합니다.



Name: AssignOrderInfo. 아래와 같이 2개의 Copy Operation을 추가합니다.





POProcessing composite 배치 후, 1000~5000 가격의 데이터를 테스트해봅시다.


테스트 후 흐름 추적에서 callbackClient 부분을 보면 고객의 이름이 나온 것을 확인할수 있습니다.



실제 db에서 customers 테이블을 select 해보면 주문정보가 갱신되어있습니다.







반응형
//