TestFileAttachment

From GreenVulcano Wiki
Revision as of 16:52, 15 February 2012 by Anonymous (talk)
Jump to: navigation, search

Description

TestFileAttachment description

This example shows how use GreenVulcano® ESB to send an email containing attachments.


TestFileAttachment services executes the following operations:

  • Reads a file from a directory of input (in this case TestAttach/input)
  • Sends an email with this file as attachment
  • Moves sent file to another directory (we choose TestAttach/sent)

VulCon Configuration

To configure TestFileAttachment service follow these steps:

  1. Define the System, Channel and Operations required
  2. Define the Services
  3. Implement the flows.

Defining System, Channel and Operations

To define a System, go to VulCon core view and, into Systems element, insert the System GVESB if it is not already present. Inside of it create the Channel TEST_CHANNEL_FILE in which the following operations will be configured:

Attribute/Subelement Value
name ScanAttachments

FileCommands:

FileSearchCommand
filePattern=".*"
returnFullPath="true"
sourcePath="${{gv.app.home}}/TEST/TESTFS/TestAttach/input"
Attribute/Subelement Value
name MoveAttachments

FileCommands:

FileMoveCommand:
filePattern=".*"
sourcePath="${{gv.app.home}}/TEST/TESTFS/TestAttach/input"
targetPath="${{gv.app.home}}/TEST/TESTFS/TestAttach/sent"
Attribute Value
jndi-name gvesb.mailServer
name SendEmail
mail-message content-type="text-html"
high-priority="true"
sender-display-name="GV ESB"
subject="Test send attachments"
destinations:
to:
mail-address: address="gv2@gv.com"
message-body: gvBuffer-dump="false"
message-text: ${'Attachment file list:\n'+property['GV_SMTP_ATTACHMENTS']}

Flow implementation

TestFileAttachment flow

To implement the TestFileAttachment service Flow design it as shown in the picture:


The service searchs the files present in a directory, sends it as attachment and moves it into another directory


The following table shows the nodes and attributes to be defined for each Flow node:

Attribute/Subelement Value
first-node Prepare
Conditions/GVBufferCondition condition="FilesFound" type="condition"

Property:

name="GVFM_FOUND_FILES_NUM"
operator="greater"
type="gvbuffer-field"
value="0"
value-type="integer"
GVOperationNode dump-in-out="false"
id="list_files"
id-system="GVESB" input="input"
next-node-id="check_files"
op-type="call"
operation-name="ScanAttachments"
output="files"
GVNodeCheck default-id="end-nofiles"
id="check_files"
input="files"
on-exception-id="end"
GVRouting:
condition="FilesFound"
next-node-id="prepare"
ChangeGVBufferNode dump-in-out="true"
id="prepare"
input="files"
next-node-id="send_email"
output="files"

ChangeGVBuffer: clear-data="false"

OGNLScript: property['GV_SMTP_ATTACHMENTS'] = property['GVFM_FOUND_FILES_LIST']'
GVOperationNode dump-in-out="false"
id="send_email"
id-system="GVESB"
input="files"
next-node-id="move_files"
operation-name="SendEmail"
output="files"
GVOperationNode dump-in-out="false"
id="move_files"
id-system="GVESB"
input="files"
next-node-id="end"
operation-name="MoveAttachments"
output="files"
GVEndNode end-business-process="yes"
id="end-nofiles"
output="files"
GVEndNode end-business-process="yes"
id="end"
output="files"