This post will help you while creating DB adapters in a SOA composite.
Let’s take a scenario where we are creating an application for HR System with Sub-Module as AccessCardGeneration for a new Joiner.
Start node will be an initiator node which we will be exposed as Webservice. Now once we receive a Message from an external system [ assume a Dot net application which HRs use for creating employee Id], instance would be created.
Below is data association which we will put into our Start node. To pass of Data from Webservice Request to BPM’s Data Object.
Now the basic idea is to insert input received from Webservice into a DB Table and then return an access card number from Global-Free-Access-Card table. Once an access card is assigned to an Employee, we will remove that access-card-number from free table and insert entry for that access-card-number into Global-Assigned-Access-Card table along with corresponding Employee Id.
DB Scripts to create Basic Tables:
create table employee
create table globalFreeAccessCards
create table globalAssignedAccessCards
So as per our requirement , we need to execute three DB operations with Database.
· Insert Webservice Data into employee Table
· Select a Free Access Card Number from globalFreeAccessCards Table and then Delete selected Access-card-number from table.
· Update Selected Access Card Number into globalAssignedAccessCards Table with Assigned Employee-Id.
We will not create three DB adapters, once each for above mentioned respective table.
à Open Composite.xml
à Drag and Drop Database Adapter on External-references Section
à As of now, we will use Jdeveloper DB connection which would be deployed as a Data source @ Weblogic server. Ideally we should create a Data source into Weblogic and then map the JNDI name into DB adapter.
àAs of now, we need to insert a row into Employee Table, so will only select insert operation.
à Click on Import- Tables and select Employee Table.
àSet EmployeeId as Primary Key
Now we need to go back again to BPMN process and define implementation for Service Task ‘Insert Employee Record Into Database’.
To pass on Payload-DataObject – Employee’s Value into DB, we will go to transformation section and map Input through XSL.
–> Below is the XSL mapping which will pass on Payload data into Employee Table.
In my next Post, I will show, how to execute Select and Update through DBadapters and process deployment with Sample Code.