GVExample CCardQuery
Contents
Description
This service has the scope of showing how GreenVulcano® ESB uses DataHandler for quering a DB and implements a Web Services.
CCardQuery Service executes the following operations:
- Receives a request Web Service from client, with a credit card number to be controlled.
- If this card is locally managed, reads the data using DataHandler.
- If this card is managed by an external system, forwards a Web Service request to that system.
- Returns the response to the client
VulCon Configuration
To configure CCardQuery service follow these steps:
- Define Systems, Channels and Operations
- Define the Services
- Implement the flows.
Defining Systems, Channels and Operations
To define a System, go to VulCon core view and insert the System CREDIT with the Channel CHANNEL_CREDIT_WS, with the following operations:
- dh-call:
Attribute | Value |
---|---|
name | DataHandler |
DBOBuilder | name="CREDIT::CCardQuery" jdbc-connection-name="ds.test_gv" DHVariables:
|
DBOBuilder/ DBOSelect | name="CCardQuery" transformation="CCardQuery" type="dbo" statement id="1" type="select" select p.NAME, cc.CNUMBER, cc.CREDIT, cc.ENABLED from PERSON p, CREDIT_CARD cc where p.ID = cc.ID_OWNER and cc.CNUMBER = @{{CNUMBER}} |
The operation defined in the DataHandler makes use of the data-trasformation module for the data transformations that allow to have data in XML format. So, you need to define the following parameters into the GVDataTrasformation section:
Attribute | Value |
---|---|
DataSourceSet/LocalFSDataSource | formatHandled="xsl" name="XSLDataSource" repositoryHome="${{gv.app.home}}/gvdte/datasource/xsl" type="datasource" |
XSLTransformation | name="CCardQuery" DataSourceSet="Default" XSLMapName=" DataHandler/CREDIT/CCardQuery.xsl" |
XSLTransformation | name="QueryExternalInput" DataSourceSet="Default" XSLMapName=" CREDIT_EXTERNAL/QueryExternalInput.xsl" type="transformation" |
XSLTransformation | name="QueryExternalOutput" DataSourceSet="Default" XSLMapName=" CREDIT_EXTERNAL/QueryExternalOutput.xsl" type="transformation" |
Now insert the Service CREDIT_EXTERNAL with the Channel CHANNEL_CREDIT_EXT with the following operations:
- ws-call:
Attribute | Value |
---|---|
Name | QueryExternal |
AxisWebServiceInvoker | operation="Query" ref-dp="EXTERNAL::QueryWSDataProvider" returnType="body-element" type="invoker" WSDLInfo:
|
Definition of Services
To define the CCardQuery Service, use the voice "Wizard new Service" (Right clicking the element Services) and set the following parameters:
Attribute | Value |
---|---|
Service name | CCardQuery |
Group | CREDIT_GRP |
Scenario | Synchronous- Synchronous |
Server (Participant) | system="CREDIT" channel="CHANNEL_CREDIT_WS" request operation= "DataHandler" |
A new Flow has been created and must be modified in its main steps. But first it is also needed to add a Participant with the attributes:
- system="CREDIT_EXTERNAL"
- channel="CHANNEL_CREDIT_EXT"