Wiki Markup |
---|
{float:right|width=300px|background=lightgrey|border=solid blue 2px|margin=10px|padding=8px}
*Contents*
{toc:all=true|depth=4|excerpt=true|indent=14px}
{float}
{table-plus:width=900}
CDRator have often been asked for various processes for sending an SMS/email to the end user. The *DynamicSender* can very often handle this. Maybe the request for the communication is already in a workflow, then this component can just be plugged in and configured.
\\
\\
In situations where Rator does not control the process in a workflow, the Java code must be changed. The developer can insert a call to a hookpoint for a little "communication" workflow where the *DynamicSender* can be used.
\\
So what are the possibilities in the *DynamicSender* \- please check the topics below.
h3. Possibilities
Configuration options:
* Define specific template
* Define SMS or email
* Replacing of "not handled" labels
* Define a fixed receiver SMS phone number or email address
* Define fixed strings for labels
* Define how data should be retrieved via navigation logic
* Handling of attachments for emails Several "helpers" available:
* *DateUtil* for easy access to date features like formatting
* *NumberUtil* for easy access to number features like formatting + checking/validating
* *CommonUtils* for easy access to various helper methods On top of this, you can also use the template context framework. Just note that only some basic objects (SUB, USER, SERVICE, BG, ACCOUNT) are available.
h3. Prerequisites
| +Basic (1.th) version:+
* Min. Rator core version 7.8 | +Fully updated version:+
* Min. Rator core version 8.1 | +Common:+
* A record in WF_COMPONENT_DEF which points to the java class |
!WF_COMPONENT_DEF.png|width=476,height=214!
----
h3. Getting Started
This is an example of how it could be configured.
!RatorWorkflowBuilder.png!\\
A demo workflow where SUBSCRIPTION + INVOICE objects are added to the wf CONTEXT when the hookpoint is called.
\\
* The JavaScript wf component locates a file and adds it to the workflow CONTEXT.
* Next the DynamicSender will find the file in wf CONTEXT and attach it in the email to the end user.
The DynamicSender is configured like this:
|| *PARAMETER* || *DESCRIPTION* ||
| TEMPLATE_KEY=MY_TEMPLATE | Defines the MailTemplate to use |
| TEMPLATE_TYPE=EMAIL | Defines that the DynamicSender should generate an email |
| REPLACE_EMPTY_LABELS=TRUE | Setting this to *true* means that not handled labels will never be shown as \*\**LABEL@MY_LABEL*\**, but will become an empty string |
| TEMPLATE_TO="[aa@bb.cc|mailto:aa@bb.cc]" | An email address speficied in double quotes, means that the default receiver (sub.getOwner().getEmail()) will be overruled |
| LABEL_WEB_ADR="[www.mywebsite.com|http://www.mywebsite.com/]" | This label with a fixed value can be be reused several plced in the template. |
| LABEL_PIN_CODE=SUBSCRIPTION.getService.getSimCard.getPin1 | This label can be used in the template for showing the PIN code for the simcard |
| WORK_SIGNUP_DATE=SUBSCRIPTION.getEstablishDate | Tmp object that holds the signup date (used later) |
| WORK_DATE_FORMAT=dd-MM-yyyy | Tmp object that holds a date format (used later) |
| LABEL_SIGNUP_DATE=DATE_UTIL.getFormatedDate(WORK_SIGNUP_DATE,WORK_DATE_FORMAT) | Producing a label with signup date in format dd-MM-yyyy |
| WORK_BOOLEAN=true | Tmp object that holds a boolean (used later) |
| CONDITION_IS_TEST=COMMON_UTIL.getBoolean(WORK_BOOLEAN) | A condition that can be used in the template |
| WORK_DOC_CODE=INVOICE | Tmp object that holds the type of item in DOC_ARCHIVE (used later) |
| ATTACHMENT_INVOICE=INVOICE.getDocArchive(WORK_DOC_CODE).getDocArchiveFile | Locate a PDF file from the DocArchive based on an invoice found in wf CONTEXT |
| ATTACHMENT_SOME_FILE="C:/rator/files/somefile.txt" | Locate a file placed on C drive, which will also be an attachment in the email |
|| !ActivityDetails.png! | *Visualization* \\
\\
The parameters are what you define as shown here \\
(Not all off the above are listed here...) ||
What the MailTemplate could contain:
!MailTemplateContents.png! \|
{table-plus} |
Page Comparison
General
Content
Integrations