Difference between revisions of "ProcessSVCEmails and ProcessSingleSVCEmail"
(Created page with "==Description== thumb|TestFileAttachment descriptionThis example shows how {{GVESB}} receipts and processes emails. The workflow consis...") |
|||
| Line 1: | Line 1: | ||
==Description== | ==Description== | ||
| − | + | This example shows how {{GVESB}} receipts and processes emails. The workflow consists in two services: ProcessSVCEmails which receives the messages and for each one calls service ProcessSingleSVCEmail that processes it. | |
| − | |||
ProcessSVCEmails service executes the following operations: | ProcessSVCEmails service executes the following operations: | ||
| Line 16: | Line 15: | ||
The preferred mode for creating a Service (at least its skeleton) is through the Service Wizard. Before using it you must first configure the VCL plugins needed. So let's define a new [[Group]], [[System]] and [[Channel]], if you do not want to use those already present, and then start the Wizard. | The preferred mode for creating a Service (at least its skeleton) is through the Service Wizard. Before using it you must first configure the VCL plugins needed. So let's define a new [[Group]], [[System]] and [[Channel]], if you do not want to use those already present, and then start the Wizard. | ||
| + | |||
| + | ===Defining System, Channel and Operations=== | ||
| + | |||
| + | To define a System, go to {{VULCON}} core view and, into Systems element, insert the System CREDIT if it is not already present. | ||
| + | From there create the Channel CHANNEL_CREDIT_MAIL in which the following operations will be configured: | ||
| + | |||
| + | {|class="gvtable" | ||
| + | ! Attribute/Subelement !! Value | ||
| + | |- | ||
| + | | [[pop-call]] || name="ReceiveSVCEmail" <br/>delete-messages="true" <br/>expunge="true" <br/>jndi-name="gvesb.mailServer" | ||
| + | |- | ||
| + | | [[smtp-call]] || name="SendEmailSVCResponse" <br/>jndi-name="gvesb.mailServer" <br/> | ||
| + | mail-message: | ||
| + | : content-type="text-plain" | ||
| + | : high-priority="false" | ||
| + | : sender-display-name="GV ESB" | ||
| + | : subject="RE: ${property['SUBJECT']}" | ||
| + | : message-body: | ||
| + | :: gvBuffer-dump="false" | ||
| + | :: message-text: | ||
| + | ::: Persons data | ||
| + | : attachments | ||
| + | :: gvBuffer: | ||
| + | ::: name="PersonsData_${@it.greenvulcano.util.txt.DateUtils@nowToString('yyyyMMddHHmmss')}.${property['FILE_EXT']}" | ||
| + | |- | ||
| + | | [[smtp-call]] || name="SendEmailNoSVC" <br/>jndi-name="gvesb.mailServer" <br/> | ||
| + | mail-message: | ||
| + | : content-type="text-plain" | ||
| + | : high-priority="true" | ||
| + | : sender-display-name="GV ESB" | ||
| + | : subject="RE: ${property['SUBJECT']}" | ||
| + | : message-body: | ||
| + | :: gvBuffer-dump="false" | ||
| + | :: message-text: | ||
| + | ::: Invalid service request. Available Services: | ||
| + | :::: SVC=LIST_EXCEL[!NAME=.....] | ||
| + | :::: SVC=LIST_PDF[!NAME=.....] | ||
| + | :::: SVC=LIST_BIRT[!TYPE=EXCEL or PDF(default)][!NAME=.....] | ||
| + | |- | ||
| + | | [[excel-call]] || name="listPerson" <br/> | ||
| + | GVExcelReport: | ||
| + | : format="default" | ||
| + | : group="CREDIT" | ||
| + | : jdbc-connection="ds.gv_test" | ||
| + | : Sheet: | ||
| + | :: id="1" | ||
| + | :: name="Person List" | ||
| + | :: title="Person List - timestamp{{dd/MM/yyyy HH:mm:ss}}" | ||
| + | :: statement: | ||
| + | ::: type="select" | ||
| + | select p.NAME as 'Name&', p.BIRTHDATE as 'Birth Date', c.NAME as 'City' | ||
| + | from PERSON p, CITY c | ||
| + | where p.ID_CITY = c.ID | ||
| + | <nowiki>decode{{@{{NAME}}::NULL::::and p.NAME='@{{NAME}}'}}</nowiki> | ||
| + | order by c.NAME, p.NAME | ||
| + | : Sheet: | ||
| + | :: id="2" | ||
| + | :: name="Credit Card List" | ||
| + | :: title="Credit Card List - <nowiki>timestamp{{dd/MM/yyyy HH:mm:ss}}"</nowiki> | ||
| + | :: statement: | ||
| + | ::: type="select" | ||
| + | select p.NAME as 'Name', cc.CNUMBER as 'Card Number', cc.CREDIT as 'Credit', decode(cc.ENABLED, 'Y', 'Yes', 'No') as 'Active' | ||
| + | from PERSON p, CREDIT_CARD cc | ||
| + | where p.ID = cc.ID_OWNER | ||
| + | <nowiki>decode{{@{{NAME}}::NULL::::and p.NAME='@{{NAME}}'}}</nowiki> | ||
| + | order by p.NAME | ||
| + | |- | ||
| + | | [[birt-report-call]] || groupName="TestGRP" <br/>name="CreditCards" <br/>reportName="Credit Cards" <br/> reportType="excel" | ||
| + | |- | ||
| + | | [[dh-call]] || name="UserDataAsPDF"<br/> DBOBuilder: | ||
| + | : jdbc-connection-name="ds.gv_test" | ||
| + | : name="UserDataAsPDF" | ||
| + | : DHVariables: | ||
| + | :: DHVariable name="decimal-separator" value="." | ||
| + | :: DHVariable name="grouping-separator" value="," | ||
| + | :: DHVariable name="format" value="#0.00" | ||
| + | :: DHVariable name="NAME" value="NULL" | ||
| + | : DBOSelect: | ||
| + | :: name="UserDataAsPDF" | ||
| + | :: transformation="UserDataAsPDF" | ||
| + | :: statement: | ||
| + | ::: id="1" | ||
| + | ::: keys="1,2,3" | ||
| + | ::: type="select" | ||
| + | select p.NAME, p.BIRTHDATE, c.NAME, cc.CNUMBER, cc.CREDIT, cc.ENABLED | ||
| + | from PERSON p, CITY c, CREDIT_CARD cc | ||
| + | where p.ID_CITY = c.ID | ||
| + | and p.ID = cc.ID_OWNER | ||
| + | <nowiki>decode{{@{{NAME}}::NULL::::and p.NAME like '%@{{NAME}}'}}</nowiki> | ||
| + | order by c.NAME, p.NAME</statement> | ||
| + | |} | ||
Revision as of 11:34, 21 February 2012
Description
This example shows how GreenVulcano® ESB receipts and processes emails. The workflow consists in two services: ProcessSVCEmails which receives the messages and for each one calls service ProcessSingleSVCEmail that processes it.
ProcessSVCEmails service executes the following operations:
- Checks if there are new service messages
- For each one invokes a processing service
ProcessSingleSVCEmails service executes the following operations:
- Receives data from an email
- Reads the subject and verifies if it is well formatted
- If subject is well formatted invokes the respective service for the request. If don't, sends a preconfigured email.
VulCon Configuration
The preferred mode for creating a Service (at least its skeleton) is through the Service Wizard. Before using it you must first configure the VCL plugins needed. So let's define a new Group, System and Channel, if you do not want to use those already present, and then start the Wizard.
Defining System, Channel and Operations
To define a System, go to VulCon core view and, into Systems element, insert the System CREDIT if it is not already present. From there create the Channel CHANNEL_CREDIT_MAIL in which the following operations will be configured:
| Attribute/Subelement | Value |
|---|---|
| pop-call | name="ReceiveSVCEmail" delete-messages="true" expunge="true" jndi-name="gvesb.mailServer" |
| smtp-call | name="SendEmailSVCResponse" jndi-name="gvesb.mailServer" mail-message:
|
| smtp-call | name="SendEmailNoSVC" jndi-name="gvesb.mailServer" mail-message:
|
| excel-call | name="listPerson" GVExcelReport:
select p.NAME as 'Name&', p.BIRTHDATE as 'Birth Date', c.NAME as 'City'
from PERSON p, CITY c
where p.ID_CITY = c.ID
decode{{@{{NAME}}::NULL::::and p.NAME='@{{NAME}}'}}
order by c.NAME, p.NAME
select p.NAME as 'Name', cc.CNUMBER as 'Card Number', cc.CREDIT as 'Credit', decode(cc.ENABLED, 'Y', 'Yes', 'No') as 'Active'
from PERSON p, CREDIT_CARD cc
where p.ID = cc.ID_OWNER
decode{{@{{NAME}}::NULL::::and p.NAME='@{{NAME}}'}}
order by p.NAME
|
| birt-report-call | groupName="TestGRP" name="CreditCards" reportName="Credit Cards" reportType="excel" |
| dh-call | name="UserDataAsPDF" DBOBuilder:
select p.NAME, p.BIRTHDATE, c.NAME, cc.CNUMBER, cc.CREDIT, cc.ENABLED
from PERSON p, CITY c, CREDIT_CARD cc
where p.ID_CITY = c.ID
and p.ID = cc.ID_OWNER
decode{{@{{NAME}}::NULL::::and p.NAME like '%@{{NAME}}'}}
order by c.NAME, p.NAME</statement>
|