Modified: nifi/site/trunk/docs/nifi-docs/html/expression-language-guide.html
URL: 
http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/expression-language-guide.html?rev=1771892&r1=1771891&r2=1771892&view=diff
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/html/expression-language-guide.html 
(original)
+++ nifi/site/trunk/docs/nifi-docs/html/expression-language-guide.html Tue Nov 
29 12:03:34 2016
@@ -455,127 +455,132 @@ body.book #toc,body.book #preamble,body.
 <div id="toc" class="toc">
 <div id="toctitle">Table of Contents</div>
 <ul class="sectlevel1">
-<li><a href="expression-language-guide.html#overview">Overview</a></li>
-<li><a href="expression-language-guide.html#structure">Structure of a NiFi 
Expression</a></li>
-<li><a href="expression-language-guide.html#usage">Expression Language in the 
Application</a>
+<li><a href="#overview">Overview</a></li>
+<li><a href="#structure">Structure of a NiFi Expression</a></li>
+<li><a href="#usage">Expression Language in the Application</a>
 <ul class="sectlevel2">
-<li><a href="expression-language-guide.html#editor">Expression Language 
Editor</a></li>
+<li><a href="#editor">Expression Language Editor</a></li>
 </ul>
 </li>
-<li><a href="expression-language-guide.html#functions">Functions</a>
+<li><a href="#functions">Functions</a>
 <ul class="sectlevel2">
-<li><a href="expression-language-guide.html#types">Data Types</a></li>
+<li><a href="#types">Data Types</a></li>
 </ul>
 </li>
-<li><a href="expression-language-guide.html#boolean">Boolean Logic</a>
+<li><a href="#boolean">Boolean Logic</a>
 <ul class="sectlevel2">
-<li><a href="expression-language-guide.html#isnull">isNull</a></li>
-<li><a href="expression-language-guide.html#notnull">notNull</a></li>
-<li><a href="expression-language-guide.html#isempty">isEmpty</a></li>
-<li><a href="expression-language-guide.html#equals">equals</a></li>
-<li><a 
href="expression-language-guide.html#equalsignorecase">equalsIgnoreCase</a></li>
-<li><a href="expression-language-guide.html#gt">gt</a></li>
-<li><a href="expression-language-guide.html#ge">ge</a></li>
-<li><a href="expression-language-guide.html#lt">lt</a></li>
-<li><a href="expression-language-guide.html#le">le</a></li>
-<li><a href="expression-language-guide.html#and">and</a></li>
-<li><a href="expression-language-guide.html#or">or</a></li>
-<li><a href="expression-language-guide.html#not">not</a></li>
+<li><a href="#isnull">isNull</a></li>
+<li><a href="#notnull">notNull</a></li>
+<li><a href="#isempty">isEmpty</a></li>
+<li><a href="#equals">equals</a></li>
+<li><a href="#equalsignorecase">equalsIgnoreCase</a></li>
+<li><a href="#gt">gt</a></li>
+<li><a href="#ge">ge</a></li>
+<li><a href="#lt">lt</a></li>
+<li><a href="#le">le</a></li>
+<li><a href="#and">and</a></li>
+<li><a href="#or">or</a></li>
+<li><a href="#not">not</a></li>
 </ul>
 </li>
-<li><a href="expression-language-guide.html#strings">String Manipulation</a>
+<li><a href="#strings">String Manipulation</a>
 <ul class="sectlevel2">
-<li><a href="expression-language-guide.html#toupper">toUpper</a></li>
-<li><a href="expression-language-guide.html#tolower">toLower</a></li>
-<li><a href="expression-language-guide.html#trim">trim</a></li>
-<li><a href="expression-language-guide.html#substring">substring</a></li>
-<li><a 
href="expression-language-guide.html#substringbefore">substringBefore</a></li>
-<li><a 
href="expression-language-guide.html#substringbeforelast">substringBeforeLast</a></li>
-<li><a 
href="expression-language-guide.html#substringafter">substringAfter</a></li>
-<li><a 
href="expression-language-guide.html#substringafterlast">substringAfterLast</a></li>
-<li><a 
href="expression-language-guide.html#getdelimitedfield">getDelimitedField</a></li>
-<li><a href="expression-language-guide.html#append">append</a></li>
-<li><a href="expression-language-guide.html#prepend">prepend</a></li>
-<li><a href="expression-language-guide.html#replace">replace</a></li>
-<li><a href="expression-language-guide.html#replacefirst">replaceFirst</a></li>
-<li><a href="expression-language-guide.html#replaceall">replaceAll</a></li>
-<li><a href="expression-language-guide.html#replacenull">replaceNull</a></li>
-<li><a href="expression-language-guide.html#replaceempty">replaceEmpty</a></li>
-<li><a href="expression-language-guide.html#length">length</a></li>
+<li><a href="#toupper">toUpper</a></li>
+<li><a href="#tolower">toLower</a></li>
+<li><a href="#trim">trim</a></li>
+<li><a href="#substring">substring</a></li>
+<li><a href="#substringbefore">substringBefore</a></li>
+<li><a href="#substringbeforelast">substringBeforeLast</a></li>
+<li><a href="#substringafter">substringAfter</a></li>
+<li><a href="#substringafterlast">substringAfterLast</a></li>
+<li><a href="#getdelimitedfield">getDelimitedField</a></li>
+<li><a href="#append">append</a></li>
+<li><a href="#prepend">prepend</a></li>
+<li><a href="#replace">replace</a></li>
+<li><a href="#replacefirst">replaceFirst</a></li>
+<li><a href="#replaceall">replaceAll</a></li>
+<li><a href="#replacenull">replaceNull</a></li>
+<li><a href="#replaceempty">replaceEmpty</a></li>
+<li><a href="#length">length</a></li>
 </ul>
 </li>
-<li><a href="expression-language-guide.html#encode">Encode/Decode Functions</a>
+<li><a href="#encode">Encode/Decode Functions</a>
 <ul class="sectlevel2">
-<li><a href="expression-language-guide.html#escapejson">escapeJson</a></li>
-<li><a href="expression-language-guide.html#escapexml">escapeXml</a></li>
-<li><a href="expression-language-guide.html#escapecsv">escapeCsv</a></li>
-<li><a href="expression-language-guide.html#escapehtml3">escapeHtml3</a></li>
-<li><a href="expression-language-guide.html#escapehtml4">escapeHtml4</a></li>
-<li><a href="expression-language-guide.html#unescapejson">unescapeJson</a></li>
-<li><a href="expression-language-guide.html#unescapexml">unescapeXml</a></li>
-<li><a href="expression-language-guide.html#unescapecsv">unescapeCsv</a></li>
-<li><a 
href="expression-language-guide.html#unescapehtml3">unescapeHtml3</a></li>
-<li><a 
href="expression-language-guide.html#unescapehtml4">unescapeHtml4</a></li>
-<li><a href="expression-language-guide.html#urlencode">urlEncode</a></li>
-<li><a href="expression-language-guide.html#urldecode">urlDecode</a></li>
+<li><a href="#escapejson">escapeJson</a></li>
+<li><a href="#escapexml">escapeXml</a></li>
+<li><a href="#escapecsv">escapeCsv</a></li>
+<li><a href="#escapehtml3">escapeHtml3</a></li>
+<li><a href="#escapehtml4">escapeHtml4</a></li>
+<li><a href="#unescapejson">unescapeJson</a></li>
+<li><a href="#unescapexml">unescapeXml</a></li>
+<li><a href="#unescapecsv">unescapeCsv</a></li>
+<li><a href="#unescapehtml3">unescapeHtml3</a></li>
+<li><a href="#unescapehtml4">unescapeHtml4</a></li>
+<li><a href="#urlencode">urlEncode</a></li>
+<li><a href="#urldecode">urlDecode</a></li>
+<li><a href="#base64encode">base64Encode</a></li>
+<li><a href="#base64decode">base64Decode</a></li>
 </ul>
 </li>
-<li><a href="expression-language-guide.html#searching">Searching</a>
+<li><a href="#searching">Searching</a>
 <ul class="sectlevel2">
-<li><a href="expression-language-guide.html#startswith">startsWith</a></li>
-<li><a href="expression-language-guide.html#endswith">endsWith</a></li>
-<li><a href="expression-language-guide.html#contains">contains</a></li>
-<li><a href="expression-language-guide.html#in">in</a></li>
-<li><a href="expression-language-guide.html#find">find</a></li>
-<li><a href="expression-language-guide.html#matches">matches</a></li>
-<li><a href="expression-language-guide.html#indexof">indexOf</a></li>
-<li><a href="expression-language-guide.html#lastindexof">lastIndexOf</a></li>
-<li><a href="expression-language-guide.html#jsonpath">jsonPath</a></li>
+<li><a href="#startswith">startsWith</a></li>
+<li><a href="#endswith">endsWith</a></li>
+<li><a href="#contains">contains</a></li>
+<li><a href="#in">in</a></li>
+<li><a href="#find">find</a></li>
+<li><a href="#matches">matches</a></li>
+<li><a href="#indexof">indexOf</a></li>
+<li><a href="#lastindexof">lastIndexOf</a></li>
+<li><a href="#jsonpath">jsonPath</a></li>
 </ul>
 </li>
-<li><a href="expression-language-guide.html#numbers">Mathematical Operations 
and Numeric Manipulation</a>
+<li><a href="#numbers">Mathematical Operations and Numeric Manipulation</a>
 <ul class="sectlevel2">
-<li><a href="expression-language-guide.html#plus">plus</a></li>
-<li><a href="expression-language-guide.html#minus">minus</a></li>
-<li><a href="expression-language-guide.html#multiply">multiply</a></li>
-<li><a href="expression-language-guide.html#divide">divide</a></li>
-<li><a href="expression-language-guide.html#mod">mod</a></li>
-<li><a href="expression-language-guide.html#toradix">toRadix</a></li>
-<li><a href="expression-language-guide.html#random">random</a></li>
+<li><a href="#plus">plus</a></li>
+<li><a href="#minus">minus</a></li>
+<li><a href="#multiply">multiply</a></li>
+<li><a href="#divide">divide</a></li>
+<li><a href="#mod">mod</a></li>
+<li><a href="#toradix">toRadix</a></li>
+<li><a href="#fromradix">fromRadix</a></li>
+<li><a href="#random">random</a></li>
+<li><a href="#math">math</a></li>
 </ul>
 </li>
-<li><a href="expression-language-guide.html#dates">Date Manipulation</a>
+<li><a href="#dates">Date Manipulation</a>
 <ul class="sectlevel2">
-<li><a href="expression-language-guide.html#format">format</a></li>
-<li><a href="expression-language-guide.html#todate">toDate</a></li>
-<li><a href="expression-language-guide.html#now">now</a></li>
+<li><a href="#format">format</a></li>
+<li><a href="#todate">toDate</a></li>
+<li><a href="#now">now</a></li>
 </ul>
 </li>
-<li><a href="expression-language-guide.html#type_cast">Type Coercion</a>
+<li><a href="#type_cast">Type Coercion</a>
 <ul class="sectlevel2">
-<li><a href="expression-language-guide.html#tostring">toString</a></li>
-<li><a href="expression-language-guide.html#tonumber">toNumber</a></li>
+<li><a href="#tostring">toString</a></li>
+<li><a href="#tonumber">toNumber</a></li>
+<li><a href="#todecimal">toDecimal</a></li>
 </ul>
 </li>
-<li><a href="expression-language-guide.html#subjectless">Subjectless 
Functions</a>
+<li><a href="#subjectless">Subjectless Functions</a>
 <ul class="sectlevel2">
-<li><a href="expression-language-guide.html#ip">ip</a></li>
-<li><a href="expression-language-guide.html#hostname">hostname</a></li>
-<li><a href="expression-language-guide.html#uuid">UUID</a></li>
-<li><a href="expression-language-guide.html#nextint">nextInt</a></li>
-<li><a href="expression-language-guide.html#literal">literal</a></li>
+<li><a href="#ip">ip</a></li>
+<li><a href="#hostname">hostname</a></li>
+<li><a href="#uuid">UUID</a></li>
+<li><a href="#nextint">nextInt</a></li>
+<li><a href="#literal">literal</a></li>
 </ul>
 </li>
-<li><a href="expression-language-guide.html#multi">Evaluating Multiple 
Attributes</a>
+<li><a href="#multi">Evaluating Multiple Attributes</a>
 <ul class="sectlevel2">
-<li><a href="expression-language-guide.html#anyattribute">anyAttribute</a></li>
-<li><a 
href="expression-language-guide.html#allattributes">allAttributes</a></li>
-<li><a 
href="expression-language-guide.html#anymatchingattribute">anyMatchingAttribute</a></li>
-<li><a 
href="expression-language-guide.html#allmatchingattributes">allMatchingAttributes</a></li>
-<li><a 
href="expression-language-guide.html#anydelineatedvalue">anyDelineatedValue</a></li>
-<li><a 
href="expression-language-guide.html#alldelineatedvalues">allDelineatedValues</a></li>
-<li><a href="expression-language-guide.html#join">join</a></li>
-<li><a href="expression-language-guide.html#count">count</a></li>
+<li><a href="#anyattribute">anyAttribute</a></li>
+<li><a href="#allattributes">allAttributes</a></li>
+<li><a href="#anymatchingattribute">anyMatchingAttribute</a></li>
+<li><a href="#allmatchingattributes">allMatchingAttributes</a></li>
+<li><a href="#anydelineatedvalue">anyDelineatedValue</a></li>
+<li><a href="#alldelineatedvalues">allDelineatedValues</a></li>
+<li><a href="#join">join</a></li>
+<li><a href="#count">count</a></li>
 </ul>
 </li>
 </ul>
@@ -583,7 +588,7 @@ body.book #toc,body.book #preamble,body.
 </div>
 <div id="content">
 <div class="sect1">
-<h2 id="overview"><a class="anchor" 
href="expression-language-guide.html#overview"></a>Overview</h2>
+<h2 id="overview"><a class="anchor" href="#overview"></a>Overview</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>All data in Apache NiFi is represented by an abstraction called a FlowFile.
@@ -615,7 +620,7 @@ and manipulate their values.</p>
 </div>
 </div>
 <div class="sect1">
-<h2 id="structure"><a class="anchor" 
href="expression-language-guide.html#structure"></a>Structure of a NiFi 
Expression</h2>
+<h2 id="structure"><a class="anchor" href="#structure"></a>Structure of a NiFi 
Expression</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>The NiFi Expression Language always begins with the start delimiter 
<code>${</code> and ends
@@ -639,7 +644,7 @@ by the Expression Language to achieve ma
 manipulation, such as the <code>toUpper</code> function. Others, such as the 
<code>equals</code> and <code>matches</code> functions,
 provide comparison functionality. Functions also exist for manipulating dates 
and times and
 for performing mathematical operations. Each of these functions is described 
below, in the
-<a href="expression-language-guide.html#functions">Functions</a> section, with 
an explanation of what the function does, the arguments that it
+<a href="#functions">Functions</a> section, with an explanation of what the 
function does, the arguments that it
 requires, and the type of information that it returns.</p>
 </div>
 <div class="paragraph">
@@ -730,7 +735,7 @@ the Expression Language will return a <c
 <p>There also exist some functions that expect to have no subject. These 
functions are invoked simply
 by calling the function at the beginning of the Expression, such as 
<code>${hostname()}</code>. These functions
 can then be changed together, as well. For example, 
<code>${hostname():toUpper()}</code>. Attempting to
-evaluate the function with subject will result in an error. In the <a 
href="expression-language-guide.html#functions">Functions</a>
+evaluate the function with subject will result in an error. In the <a 
href="#functions">Functions</a>
 section below, these functions will clearly indicate in their descriptions 
that they do not
 require a subject.</p>
 </div>
@@ -749,7 +754,7 @@ in <code>file</code> and <code>name</cod
 </div>
 </div>
 <div class="sect1">
-<h2 id="usage"><a class="anchor" 
href="expression-language-guide.html#usage"></a>Expression Language in the 
Application</h2>
+<h2 id="usage"><a class="anchor" href="#usage"></a>Expression Language in the 
Application</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>The Expression Language is used heavily throughout the NiFi application for 
configuring Processor
@@ -761,14 +766,14 @@ whether or not the Expression Language i
 <div class="paragraph">
 <p>In the application, when configuring a Processor property, the User 
Interface provides an Information
 icon (
-<span class="image"><img src="images/iconInfo.png" alt="Info"></span>
+<span class="image"><img src="./images/iconInfo.png" alt="Info"></span>
 ) next to the name of the Property. Hovering over this icon with the mouse 
will provide a tooltip that
 provides helpful information about the Property. This information includes a 
description of the Property,
 the default value (if any), historically configured values (if any), and 
whether or not this Property
 supports the expression language.</p>
 </div>
 <div class="sect2">
-<h3 id="editor"><a class="anchor" 
href="expression-language-guide.html#editor"></a>Expression Language Editor</h3>
+<h3 id="editor"><a class="anchor" href="#editor"></a>Expression Language 
Editor</h3>
 <div class="paragraph">
 <p>When configuring the value of a Processor property, the NiFi User Interface 
provides help with the
 Expression Language using the Expression Language editor. Once an Expression 
is begin by typing <code>${</code>,
@@ -789,17 +794,17 @@ it with the mouse or using the arrow key
 </div>
 </div>
 <div class="sect1">
-<h2 id="functions"><a class="anchor" 
href="expression-language-guide.html#functions"></a>Functions</h2>
+<h2 id="functions"><a class="anchor" href="#functions"></a>Functions</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Functions provide a convenient way to manipulate and compare values of 
attributes. The Expression Language
 provides many different functions to meet the needs of a automated dataflow. 
Each function takes
 zero or more arguments and returns a single value. These functions can then be 
chained together to create
-powerful Expressions to evaluate conditions and manipulate values. See <a 
href="expression-language-guide.html#structure">Structure of a NiFi 
Expression</a> for more information
+powerful Expressions to evaluate conditions and manipulate values. See <a 
href="#structure">Structure of a NiFi Expression</a> for more information
 on how to call and chain functions together.</p>
 </div>
 <div class="sect2">
-<h3 id="types"><a class="anchor" 
href="expression-language-guide.html#types"></a>Data Types</h3>
+<h3 id="types"><a class="anchor" href="#types"></a>Data Types</h3>
 <div class="paragraph">
 <p>Each argument to a function and each value returned from a function has a 
specific data type. The Expression
 Language supports four different data types:</p>
@@ -811,12 +816,31 @@ Language supports four different data ty
 special characters.</p>
 </li>
 <li>
-<p><strong>Number</strong>: A Number is an integer comprised of one or more 
digits (<code>0</code> through <code>9</code>). The Expression Language
-does not provide support for fractional numbers. When converting to numbers 
from Date data types, they are represented as
+<p><strong>Number</strong>: A Number is an whole number comprised of one or 
more digits (<code>0</code> through <code>9</code>). When converting to numbers 
from Date data types, they are represented as
 the number of milliseconds since midnight GMT on January 1, 1970.</p>
 </li>
 <li>
-<p><strong>Date</strong>: A Date is an object that holds a Date and Time. 
Utilizing the <a href="expression-language-guide.html#dates">Date 
Manipulation</a> and <a href="expression-language-guide.html#type_cast">Type 
Coercion</a> functions this data
+<p><strong>Decimal</strong>: A Decimal is a numeric value that can support 
decimals and larger values with minimal loss of precision. More precisely it
+is a double-precision 64-bit IEEE 754 floating point. Due to this minimal loss 
of precision this data type should not be used for
+very precise values, such as currency. For more documentation on the range of 
values stored in this data type
+refer to this <a 
href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3";>link</a>.
 The following are some examples of the forms of
+literal decimals that are supported in expression language (the "E" can also 
be lower-case):</p>
+<div class="ulist">
+<ul>
+<li>
+<p>1.1</p>
+</li>
+<li>
+<p>.1E1</p>
+</li>
+<li>
+<p>1.11E-12</p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p><strong>Date</strong>: A Date is an object that holds a Date and Time. 
Utilizing the <a href="#dates">Date Manipulation</a> and <a 
href="#type_cast">Type Coercion</a> functions this data
 type can be converted to/from Strings and numbers. If the whole Expression 
Language expression is evaluated to be a
 date then it will be converted to a String with the format: "&lt;Day of 
Week&gt; &lt;Month&gt; &lt;Day of Month&gt; 
&lt;Hour&gt;:&lt;Minute&gt;:&lt;Second&gt; &lt;Time Zone&gt; &lt;Year&gt;".
 Also expressed as "E MMM dd HH:mm:ss z yyyy" in Java SimpleDateFormat format. 
For example: "Wed Dec 31 12:00:04 UTC 2016".</p>
@@ -827,18 +851,32 @@ Also expressed as "E MMM dd HH:mm:ss z y
 </ul>
 </div>
 <div class="paragraph">
-<p>All attributes are considered to be of type String.</p>
+<p>After evaluating expression language functions, all attributes are stored 
as type String.</p>
 </div>
 <div class="paragraph">
 <p>The Expression Language is generally able to automatically coerce a value 
of one data type to the appropriate
 data type for a function. However, functions do exist to manually coerce a 
value into a specific data type.
-See the <a href="expression-language-guide.html#type_cast">Type Coercion</a> 
section for more information.</p>
+See the <a href="#type_cast">Type Coercion</a> section for more 
information.</p>
+</div>
+<div class="paragraph">
+<p>Hex values are supported for Number and Decimal types but they must be 
quoted and prepended with "0x" when being
+interpreted as literals. For example these two expressions are valid (without 
the quotes or "0x" the expression would fail to run properly):</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>${literal("0xF"):toNumber()}</p>
+</li>
+<li>
+<p>${literal("0xF.Fp10"):toDecimal()}</p>
+</li>
+</ul>
 </div>
 </div>
 </div>
 </div>
 <div class="sect1">
-<h2 id="boolean"><a class="anchor" 
href="expression-language-guide.html#boolean"></a>Boolean Logic</h2>
+<h2 id="boolean"><a class="anchor" href="#boolean"></a>Boolean Logic</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>One of the most powerful features of the Expression Language is the ability 
to compare an attribute value against
@@ -847,7 +885,7 @@ functions are used for performing boolea
 Each of these functions returns a value of type Boolean.</p>
 </div>
 <div class="sect2 function">
-<h3 id="isnull"><a class="anchor" 
href="expression-language-guide.html#isnull"></a>isNull</h3>
+<h3 id="isnull"><a class="anchor" href="#isnull"></a>isNull</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The 
<code>isNull</code> function returns <code>true</code> if the subject is null, 
<code>false</code> otherwise. This is typically used to determine
 if an attribute exists.</span></p>
@@ -867,7 +905,7 @@ if an attribute exists.</span></p>
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="notnull"><a class="anchor" 
href="expression-language-guide.html#notnull"></a>notNull</h3>
+<h3 id="notnull"><a class="anchor" href="#notnull"></a>notNull</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The 
<code>notNull</code> function returns the opposite value of the 
<code>isNull</code> function. That is, it will return <code>true</code> if the
 subject exists and <code>false</code> otherwise.</span></p>
@@ -887,7 +925,7 @@ subject exists and <code>false</code> ot
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="isempty"><a class="anchor" 
href="expression-language-guide.html#isempty"></a>isEmpty</h3>
+<h3 id="isempty"><a class="anchor" href="#isempty"></a>isEmpty</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The 
<code>isEmpty</code> function returns <code>true</code> if the Subject is null 
or contains only white-space
        (new line, carriage return, space, tab), <code>false</code> 
otherwise.</span></p>
@@ -907,11 +945,11 @@ subject exists and <code>false</code> ot
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="equals"><a class="anchor" 
href="expression-language-guide.html#equals"></a>equals</h3>
+<h3 id="equals"><a class="anchor" href="#equals"></a>equals</h3>
 <div class="paragraph description">
 <p><strong>Description</strong>: <span class="description">The 
<code>equals</code> function is very widely used and determines if its subject 
is equal to another String value.
        Note that the <code>equals</code> function performs a direct comparison 
of two String values. Take care not to confuse this
-       function with the <a 
href="expression-language-guide.html#matches">matches</a> function, which 
evaluates its subject against a Regular Expression.</span></p>
+       function with the <a href="#matches">matches</a> function, which 
evaluates its subject against a Regular Expression.</span></p>
 </div>
 <div class="paragraph subject">
 <p><strong>Subject Type</strong>: <span class="subject">Any</span></p>
@@ -937,7 +975,7 @@ or we could check if the value of the at
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="equalsignorecase"><a class="anchor" 
href="expression-language-guide.html#equalsignorecase"></a>equalsIgnoreCase</h3>
+<h3 id="equalsignorecase"><a class="anchor" 
href="#equalsignorecase"></a>equalsIgnoreCase</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Similar to the 
<code>equals</code> function, the <code>equalsIgnoreCase</code> function 
compares its subject against a String value but returns
 <code>true</code> if the two values differ only by case (upper case vs. lower 
case).</span></p>
@@ -964,7 +1002,7 @@ or we could check if the value of the at
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="gt"><a class="anchor" 
href="expression-language-guide.html#gt"></a>gt</h3>
+<h3 id="gt"><a class="anchor" href="#gt"></a>gt</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The <code>gt</code> 
function is used for numeric comparison and returns <code>true</code> if the 
subject is Greater Than
        its argument. If either the subject or the argument cannot be coerced 
into a Number,
@@ -992,7 +1030,7 @@ or we could check if the value of the at
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="ge"><a class="anchor" 
href="expression-language-guide.html#ge"></a>ge</h3>
+<h3 id="ge"><a class="anchor" href="#ge"></a>ge</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The <code>ge</code> 
function is used for numeric comparison and returns <code>true</code> if the 
subject is Greater Than
        Or Equal To its argument. If either the subject or the argument cannot 
be coerced into a Number,
@@ -1020,7 +1058,7 @@ or we could check if the value of the at
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="lt"><a class="anchor" 
href="expression-language-guide.html#lt"></a>lt</h3>
+<h3 id="lt"><a class="anchor" href="#lt"></a>lt</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The <code>lt</code> 
function is used for numeric comparison and returns <code>true</code> if the 
subject is Less Than
        its argument. If either the subject or the argument cannot be coerced 
into a Number,
@@ -1048,7 +1086,7 @@ or we could check if the value of the at
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="le"><a class="anchor" 
href="expression-language-guide.html#le"></a>le</h3>
+<h3 id="le"><a class="anchor" href="#le"></a>le</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The <code>le</code> 
function is used for numeric comparison and returns <code>true</code> if the 
subject is Less Than
        Or Equal To its argument. If either the subject or the argument cannot 
be coerced into a Number,
@@ -1076,7 +1114,7 @@ or we could check if the value of the at
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="and"><a class="anchor" 
href="expression-language-guide.html#and"></a>and</h3>
+<h3 id="and"><a class="anchor" href="#and"></a>and</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The 
<code>and</code> function takes as a single argument a Boolean value and 
returns <code>true</code> if both the Subject
        and the argument are <code>true</code>. If either the subject or the 
argument is <code>false</code> or cannot be coerced into a Boolean,
@@ -1110,7 +1148,7 @@ or we could check if the value of the at
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="or"><a class="anchor" 
href="expression-language-guide.html#or"></a>or</h3>
+<h3 id="or"><a class="anchor" href="#or"></a>or</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The <code>or</code> 
function takes as a single argument a Boolean value and returns 
<code>true</code> if either the Subject
        or the argument is <code>true</code>. If both the subject and the 
argument are <code>false</code>, the function returns <code>false</code>. If
@@ -1145,7 +1183,7 @@ or we could check if the value of the at
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="not"><a class="anchor" 
href="expression-language-guide.html#not"></a>not</h3>
+<h3 id="not"><a class="anchor" href="#not"></a>not</h3>
 <div class="paragraph description">
 <p><strong>Description</strong>: <span class="description">The 
<code>not</code> function returns the negation of the Boolean value of the 
subject.</span></p>
 </div>
@@ -1167,13 +1205,13 @@ or we could check if the value of the at
 </div>
 </div>
 <div class="sect1">
-<h2 id="strings"><a class="anchor" 
href="expression-language-guide.html#strings"></a>String Manipulation</h2>
+<h2 id="strings"><a class="anchor" href="#strings"></a>String Manipulation</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Each of the following functions manipulates a String in some way.</p>
 </div>
 <div class="sect2 function">
-<h3 id="toupper"><a class="anchor" 
href="expression-language-guide.html#toupper"></a>toUpper</h3>
+<h3 id="toupper"><a class="anchor" href="#toupper"></a>toUpper</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">This function 
converts the Subject into an all upper-case String. Said another way, it
        replaces any lowercase letter with the uppercase equivalent.</span></p>
@@ -1193,7 +1231,7 @@ or we could check if the value of the at
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="tolower"><a class="anchor" 
href="expression-language-guide.html#tolower"></a>toLower</h3>
+<h3 id="tolower"><a class="anchor" href="#tolower"></a>toLower</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">This function 
converts the Subject into an all lower-case String. Said another way,
        it replaces any uppercase letter with the lowercase 
equivalent.</span></p>
@@ -1213,7 +1251,7 @@ or we could check if the value of the at
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="trim"><a class="anchor" 
href="expression-language-guide.html#trim"></a>trim</h3>
+<h3 id="trim"><a class="anchor" href="#trim"></a>trim</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The 
<code>trim</code> function will remove any leading or trailing white space from 
its subject.</span></p>
 </div>
@@ -1232,7 +1270,7 @@ or we could check if the value of the at
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="substring"><a class="anchor" 
href="expression-language-guide.html#substring"></a>substring</h3>
+<h3 id="substring"><a class="anchor" href="#substring"></a>substring</h3>
 <div class="paragraph">
 <p><strong>Description</strong>:
 <span class="description">Returns a portion of the Subject, given a 
<em>starting index</em> and an optional <em>ending index</em>.
@@ -1311,7 +1349,7 @@ then the following Expressions will resu
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="substringbefore"><a class="anchor" 
href="expression-language-guide.html#substringbefore"></a>substringBefore</h3>
+<h3 id="substringbefore"><a class="anchor" 
href="#substringbefore"></a>substringBefore</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns a portion 
of the Subject, starting with the first character of the Subject
        and ending with the character immediately before the first occurrence 
of the argument. If
@@ -1368,7 +1406,7 @@ then the following Expressions will resu
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="substringbeforelast"><a class="anchor" 
href="expression-language-guide.html#substringbeforelast"></a>substringBeforeLast</h3>
+<h3 id="substringbeforelast"><a class="anchor" 
href="#substringbeforelast"></a>substringBeforeLast</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns a portion 
of the Subject, starting with the first character of the Subject
        and ending with the character immediately before the last occurrence of 
the argument. If
@@ -1425,7 +1463,7 @@ then the following Expressions will resu
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="substringafter"><a class="anchor" 
href="expression-language-guide.html#substringafter"></a>substringAfter</h3>
+<h3 id="substringafter"><a class="anchor" 
href="#substringafter"></a>substringAfter</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns a portion 
of the Subject, starting with the character immediately after
        the first occurrence of the argument and extending to the end of the 
Subject. If
@@ -1482,7 +1520,7 @@ then the following Expressions will resu
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="substringafterlast"><a class="anchor" 
href="expression-language-guide.html#substringafterlast"></a>substringAfterLast</h3>
+<h3 id="substringafterlast"><a class="anchor" 
href="#substringafterlast"></a>substringAfterLast</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns a portion 
of the Subject, starting with the character immediately after
        the last occurrence of the argument and extending to the end of the 
Subject. If
@@ -1539,7 +1577,7 @@ then the following Expressions will resu
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="getdelimitedfield"><a class="anchor" 
href="expression-language-guide.html#getdelimitedfield"></a>getDelimitedField</h3>
+<h3 id="getdelimitedfield"><a class="anchor" 
href="#getdelimitedfield"></a>getDelimitedField</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Parses the Subject 
as a delimited line of text and returns just a single field
        from that delimited text.</span></p>
@@ -1613,14 +1651,14 @@ or <code>false</code>.</span></p>
 <td class="tableblock halign-left valign-top"><p class="tableblock">Jacobson, 
John</p></td>
 </tr>
 <tr>
-<td class="tableblock halign-left valign-top"><p 
class="tableblock">`${altLine:getDelimitedField(1, '</p></td>
-<td class="tableblock halign-left valign-top"><p 
class="tableblock">')}</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>${altLine:getDelimitedField(1, '|')}</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Jacobson, 
John</p></td>
 </tr>
 </tbody>
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="append"><a class="anchor" 
href="expression-language-guide.html#append"></a>append</h3>
+<h3 id="append"><a class="anchor" href="#append"></a>append</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The 
<code>append</code> function returns the result of appending the argument to 
the value of
        the Subject. If the Subject is null, returns the argument 
itself.</span></p>
@@ -1647,7 +1685,7 @@ or <code>false</code>.</span></p>
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="prepend"><a class="anchor" 
href="expression-language-guide.html#prepend"></a>prepend</h3>
+<h3 id="prepend"><a class="anchor" href="#prepend"></a>prepend</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The 
<code>prepend</code> function returns the result of prepending the argument to 
the value of
        the Subject. If the subject is null, returns the argument 
itself.</span></p>
@@ -1674,7 +1712,7 @@ or <code>false</code>.</span></p>
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="replace"><a class="anchor" 
href="expression-language-guide.html#replace"></a>replace</h3>
+<h3 id="replace"><a class="anchor" href="#replace"></a>replace</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Replaces 
<strong>all</strong> occurrences of one literal String within the Subject with 
another String.</span></p>
 </div>
@@ -1732,7 +1770,7 @@ Expressions will provide the following r
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="replacefirst"><a class="anchor" 
href="expression-language-guide.html#replacefirst"></a>replaceFirst</h3>
+<h3 id="replacefirst"><a class="anchor" 
href="#replacefirst"></a>replaceFirst</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Replaces 
<strong>the first</strong> occurrence of one literal String or regular 
expression within the Subject with another String.</span></p>
 </div>
@@ -1790,7 +1828,7 @@ Expressions will provide the following r
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="replaceall"><a class="anchor" 
href="expression-language-guide.html#replaceall"></a>replaceAll</h3>
+<h3 id="replaceall"><a class="anchor" href="#replaceall"></a>replaceAll</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The 
<code>replaceAll</code> function takes two String arguments: a literal String 
or Regular Expression (NiFi uses the Java Pattern
        syntax), and a replacement string. The return value is the result of 
substituting the replacement string for
@@ -1854,7 +1892,7 @@ Expressions will provide the following r
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="replacenull"><a class="anchor" 
href="expression-language-guide.html#replacenull"></a>replaceNull</h3>
+<h3 id="replacenull"><a class="anchor" href="#replacenull"></a>replaceNull</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The 
<code>replaceNull</code> function returns the argument if the Subject is null. 
Otherwise,
        returns the Subject.</span></p>
@@ -1882,7 +1920,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="replaceempty"><a class="anchor" 
href="expression-language-guide.html#replaceempty"></a>replaceEmpty</h3>
+<h3 id="replaceempty"><a class="anchor" 
href="#replaceempty"></a>replaceEmpty</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The 
<code>replaceEmpty</code> function returns the argument if the Subject is null 
or
        if the Subject consists only of white space (new line, carriage return, 
tab, space). Otherwise,
@@ -1911,7 +1949,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="length"><a class="anchor" 
href="expression-language-guide.html#length"></a>length</h3>
+<h3 id="length"><a class="anchor" href="#length"></a>length</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns the length 
of the Subject</span></p>
 </div>
@@ -1933,13 +1971,13 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect1">
-<h2 id="encode"><a class="anchor" 
href="expression-language-guide.html#encode"></a>Encode/Decode Functions</h2>
+<h2 id="encode"><a class="anchor" href="#encode"></a>Encode/Decode 
Functions</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Each of the following functions will encode a string according the rules of 
the given data format.</p>
 </div>
 <div class="sect2 function">
-<h3 id="escapejson"><a class="anchor" 
href="expression-language-guide.html#escapejson"></a>escapeJson</h3>
+<h3 id="escapejson"><a class="anchor" href="#escapejson"></a>escapeJson</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">This function 
prepares the Subject to be inserted into JSON document by escaping the 
characters
         in the String using Json String rules. The function correctly escapes 
quotes and control-chars (tab, backslash,
@@ -1960,7 +1998,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="escapexml"><a class="anchor" 
href="expression-language-guide.html#escapexml"></a>escapeXml</h3>
+<h3 id="escapexml"><a class="anchor" href="#escapexml"></a>escapeXml</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">This function 
prepares the Subject to be inserted into XML document by escaping the characters
         in a String using XML entities. The function correctly escapes quotes, 
apostrophe, ampersand, &lt;, &gt; and
@@ -1981,7 +2019,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="escapecsv"><a class="anchor" 
href="expression-language-guide.html#escapecsv"></a>escapeCsv</h3>
+<h3 id="escapecsv"><a class="anchor" href="#escapecsv"></a>escapeCsv</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">This function 
prepares the Subject to be inserted into CSV document by escaping the characters
         in a String using the rules in RFC 4180. The function correctly 
escapes quotes and surround the string in quotes if needed.</span></p>
@@ -2001,7 +2039,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="escapehtml3"><a class="anchor" 
href="expression-language-guide.html#escapehtml3"></a>escapeHtml3</h3>
+<h3 id="escapehtml3"><a class="anchor" href="#escapehtml3"></a>escapeHtml3</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">This function 
prepares the Subject to be inserted into HTML document by escaping the 
characters
         in a String using the HTML entities. Supports only the HTML 3.0 
entities.</span></p>
@@ -2021,7 +2059,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="escapehtml4"><a class="anchor" 
href="expression-language-guide.html#escapehtml4"></a>escapeHtml4</h3>
+<h3 id="escapehtml4"><a class="anchor" href="#escapehtml4"></a>escapeHtml4</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">This function 
prepares the Subject to be inserted into HTML document by escaping the 
characters
         in a String using the HTML entities. Supports all known HTML 4.0 
entities.</span></p>
@@ -2041,7 +2079,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="unescapejson"><a class="anchor" 
href="expression-language-guide.html#unescapejson"></a>unescapeJson</h3>
+<h3 id="unescapejson"><a class="anchor" 
href="#unescapejson"></a>unescapeJson</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">This function 
unescapes any Json literals found in the String.</span></p>
 </div>
@@ -2060,7 +2098,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="unescapexml"><a class="anchor" 
href="expression-language-guide.html#unescapexml"></a>unescapeXml</h3>
+<h3 id="unescapexml"><a class="anchor" href="#unescapexml"></a>unescapeXml</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">This function 
unescapes a string containing XML entity escapes to a string containing the
         actual Unicode characters corresponding to the escapes. Supports only 
the five basic XML entities (gt, lt,
@@ -2081,7 +2119,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="unescapecsv"><a class="anchor" 
href="expression-language-guide.html#unescapecsv"></a>unescapeCsv</h3>
+<h3 id="unescapecsv"><a class="anchor" href="#unescapecsv"></a>unescapeCsv</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">This function 
unescapes a String from a CSV document according to the rules of RFC 
4180.</span></p>
 </div>
@@ -2100,7 +2138,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="unescapehtml3"><a class="anchor" 
href="expression-language-guide.html#unescapehtml3"></a>unescapeHtml3</h3>
+<h3 id="unescapehtml3"><a class="anchor" 
href="#unescapehtml3"></a>unescapeHtml3</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">This function 
unescapes a string containing HTML 3 entity to a string containing the
         actual Unicode characters corresponding to the escapes. Supports only 
HTML 3.0 entities.</span></p>
@@ -2120,7 +2158,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="unescapehtml4"><a class="anchor" 
href="expression-language-guide.html#unescapehtml4"></a>unescapeHtml4</h3>
+<h3 id="unescapehtml4"><a class="anchor" 
href="#unescapehtml4"></a>unescapeHtml4</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">This function 
unescapes a string containing HTML 4 entity to a string containing the
         actual Unicode characters corresponding to the escapes. Supports all 
known HTML 4.0 entities.</span></p>
@@ -2140,7 +2178,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="urlencode"><a class="anchor" 
href="expression-language-guide.html#urlencode"></a>urlEncode</h3>
+<h3 id="urlencode"><a class="anchor" href="#urlencode"></a>urlEncode</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns a 
URL-friendly version of the Subject. This is useful, for instance, when using an
        attribute value to indicate the URL of a website.</span></p>
@@ -2161,7 +2199,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="urldecode"><a class="anchor" 
href="expression-language-guide.html#urldecode"></a>urlDecode</h3>
+<h3 id="urldecode"><a class="anchor" href="#urldecode"></a>urlDecode</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Converts a 
URL-friendly version of the Subject into a human-readable form.</span></p>
 </div>
@@ -2180,16 +2218,56 @@ Expressions will provide the following r
        <code>${url:urlDecode()}</code> will return 
"https://nifi.apache.org/some value with spaces".</p>
 </div>
 </div>
+<div class="sect2 function">
+<h3 id="base64encode"><a class="anchor" 
href="#base64encode"></a>base64Encode</h3>
+<div class="paragraph">
+<p><strong>Description</strong>: <span class="description">Returns a Base64 
encoded string. This is useful for being able to transfer binary data as 
ascii.</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Arguments</strong>: No arguments</p>
+</div>
+<div class="paragraph">
+<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Examples</strong>: We can Base64-Encoded an attribute named 
"payload" by using the Expression
+          <code>${payload:base64Encode()}</code> If the attribute payload had 
a value of "admin:admin"
+           then the Expression  <code>${payload:base64Encode()}</code> will 
return "YWRtaW46YWRtaW4=".</p>
+</div>
+</div>
+<div class="sect2 function">
+<h3 id="base64decode"><a class="anchor" 
href="#base64decode"></a>base64Decode</h3>
+<div class="paragraph">
+<p><strong>Description</strong>: <span class="description">Reverses the Base64 
encoding on given string.</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Arguments</strong>: No arguments</p>
+</div>
+<div class="paragraph">
+<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Examples</strong>: If we have a Base64-Encoded attribute named 
"payload" with the value
+       "YWRtaW46YWRtaW4=", then the Expression
+       <code>${payload:base64Decode()}</code> will return "admin:admin".</p>
+</div>
+</div>
 </div>
 </div>
 <div class="sect1">
-<h2 id="searching"><a class="anchor" 
href="expression-language-guide.html#searching"></a>Searching</h2>
+<h2 id="searching"><a class="anchor" href="#searching"></a>Searching</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Each of the following functions is used to search its subject for some 
value.</p>
 </div>
 <div class="sect2 function">
-<h3 id="startswith"><a class="anchor" 
href="expression-language-guide.html#startswith"></a>startsWith</h3>
+<h3 id="startswith"><a class="anchor" href="#startswith"></a>startsWith</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns 
<code>true</code> if the Subject starts with the String provided as the 
argument,
        <code>false</code> otherwise.</span></p>
@@ -2217,7 +2295,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="endswith"><a class="anchor" 
href="expression-language-guide.html#endswith"></a>endsWith</h3>
+<h3 id="endswith"><a class="anchor" href="#endswith"></a>endsWith</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns 
<code>true</code> if the Subject ends with the String provided as the argument,
        <code>false</code> otherwise.</span></p>
@@ -2245,7 +2323,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="contains"><a class="anchor" 
href="expression-language-guide.html#contains"></a>contains</h3>
+<h3 id="contains"><a class="anchor" href="#contains"></a>contains</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns 
<code>true</code> if the Subject contains the value of the argument anywhere in 
the value.</span></p>
 </div>
@@ -2272,7 +2350,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="in"><a class="anchor" 
href="expression-language-guide.html#in"></a>in</h3>
+<h3 id="in"><a class="anchor" href="#in"></a>in</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns 
<code>true</code> if the Subject is matching one of the provided 
arguments.</span></p>
 </div>
@@ -2302,7 +2380,7 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="find"><a class="anchor" 
href="expression-language-guide.html#find"></a>find</h3>
+<h3 id="find"><a class="anchor" href="#find"></a>find</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns 
<code>true</code> if the Subject contains any sequence of characters that 
matches the
        Regular Expression provided by the argument.</span></p>
@@ -2357,7 +2435,7 @@ Expressions will provide the following r
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="matches"><a class="anchor" 
href="expression-language-guide.html#matches"></a>matches</h3>
+<h3 id="matches"><a class="anchor" href="#matches"></a>matches</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns 
<code>true</code> if the Subject exactly matches the Regular Expression 
provided by the argument.</span></p>
 </div>
@@ -2411,7 +2489,7 @@ Expressions will provide the following r
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="indexof"><a class="anchor" 
href="expression-language-guide.html#indexof"></a>indexOf</h3>
+<h3 id="indexof"><a class="anchor" href="#indexof"></a>indexOf</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns the index 
of the first character in the Subject that matches the String value provided
        as an argument. If the argument is found multiple times within the 
Subject, the value returned is the
@@ -2470,7 +2548,7 @@ Expressions will provide the following r
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="lastindexof"><a class="anchor" 
href="expression-language-guide.html#lastindexof"></a>lastIndexOf</h3>
+<h3 id="lastindexof"><a class="anchor" href="#lastindexof"></a>lastIndexOf</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns the index 
of the first character in the Subject that matches the String value provided
        as an argument. If the argument is found multiple times within the 
Subject, the value returned is the
@@ -2529,7 +2607,7 @@ Expressions will provide the following r
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="jsonpath"><a class="anchor" 
href="expression-language-guide.html#jsonpath"></a>jsonPath</h3>
+<h3 id="jsonpath"><a class="anchor" href="#jsonpath"></a>jsonPath</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">The 
<code>jsonPath</code> function generates a string by evaluating the Subject as 
JSON and applying a JSON
   path expression. An empty string is generated if the Subject does not 
contain valid JSON, the <em>jsonPath</em> is invalid, or the path
@@ -2622,16 +2700,21 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect1">
-<h2 id="numbers"><a class="anchor" 
href="expression-language-guide.html#numbers"></a>Mathematical Operations and 
Numeric Manipulation</h2>
+<h2 id="numbers"><a class="anchor" href="#numbers"></a>Mathematical Operations 
and Numeric Manipulation</h2>
 <div class="sectionbody">
+<div class="paragraph">
+<p>For those functions that support Decimal and Number (whole number) types, 
the return value type depends on the input types. If either the
+subject or argument are a Decimal then the result will be a Decimal. If both 
values are Numbers then the result will be a Number. This includes
+Divide. This is to preserve backwards compatibility and to not force rounding 
errors.</p>
+</div>
 <div class="sect2 function">
-<h3 id="plus"><a class="anchor" 
href="expression-language-guide.html#plus"></a>plus</h3>
+<h3 id="plus"><a class="anchor" href="#plus"></a>plus</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Adds a numeric 
value to the Subject. If either the argument or the Subject cannot be
        coerced into a Number, returns <code>null</code>.</span></p>
 </div>
 <div class="paragraph">
-<p><strong>Subject Type</strong>: <span class="subject">Number</span></p>
+<p><strong>Subject Type</strong>: <span class="subject">Number or 
Decimal</span></p>
 </div>
 <div class="paragraph">
 <p><strong>Arguments</strong>:</p>
@@ -2644,7 +2727,7 @@ Expressions will provide the following r
 </ul>
 </div>
 <div class="paragraph">
-<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
+<p><strong>Return Type</strong>: <span class="returnType">Number or Decimal 
(depending on input types)</span></p>
 </div>
 <div class="paragraph">
 <p><strong>Examples</strong>: If the "fileSize" attribute has a value of 100, 
then the Expression <code>${fileSize:plus(1000)}</code>
@@ -2652,12 +2735,12 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="minus"><a class="anchor" 
href="expression-language-guide.html#minus"></a>minus</h3>
+<h3 id="minus"><a class="anchor" href="#minus"></a>minus</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Subtracts a numeric 
value from the Subject.</span></p>
 </div>
 <div class="paragraph">
-<p><strong>Subject Type</strong>: <span class="subject">Number</span></p>
+<p><strong>Subject Type</strong>: <span class="subject">Number or 
Decimal</span></p>
 </div>
 <div class="paragraph">
 <p><strong>Arguments</strong>:</p>
@@ -2670,7 +2753,7 @@ Expressions will provide the following r
 </ul>
 </div>
 <div class="paragraph">
-<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
+<p><strong>Return Type</strong>: <span class="returnType">Number or Decimal 
(depending on input types)</span></p>
 </div>
 <div class="paragraph">
 <p><strong>Examples</strong>: If the "fileSize" attribute has a value of 100, 
then the Expression <code>${fileSize:minus(100)}</code>
@@ -2678,12 +2761,12 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="multiply"><a class="anchor" 
href="expression-language-guide.html#multiply"></a>multiply</h3>
+<h3 id="multiply"><a class="anchor" href="#multiply"></a>multiply</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Multiplies a 
numeric value by the Subject and returns the product.</span></p>
 </div>
 <div class="paragraph">
-<p><strong>Subject Type</strong>: <span class="subject">Number</span></p>
+<p><strong>Subject Type</strong>: <span class="subject">Number or 
Decimal</span></p>
 </div>
 <div class="paragraph">
 <p><strong>Arguments</strong>:</p>
@@ -2696,7 +2779,7 @@ Expressions will provide the following r
 </ul>
 </div>
 <div class="paragraph">
-<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
+<p><strong>Return Type</strong>: <span class="returnType">Number or Decimal 
(depending on input types)</span></p>
 </div>
 <div class="paragraph">
 <p><strong>Examples</strong>: If the "fileSize" attribute has a value of 100, 
then the Expression <code>${fileSize:multiply(1024)}</code>
@@ -2704,12 +2787,12 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="divide"><a class="anchor" 
href="expression-language-guide.html#divide"></a>divide</h3>
+<h3 id="divide"><a class="anchor" href="#divide"></a>divide</h3>
 <div class="paragraph">
-<p><strong>Description</strong>: <span class="description">Divides a numeric 
value by the Subject and returns the result, rounded down to the nearest 
integer.</span></p>
+<p><strong>Description</strong>: <span class="description">Divides the Subject 
by a numeric value and returns the result.</span></p>
 </div>
 <div class="paragraph">
-<p><strong>Subject Type</strong>: <span class="subject">Number</span></p>
+<p><strong>Subject Type</strong>: <span class="subject">Number or 
Decimal</span></p>
 </div>
 <div class="paragraph">
 <p><strong>Arguments</strong>:</p>
@@ -2717,12 +2800,12 @@ Expressions will provide the following r
 <div class="ulist">
 <ul>
 <li>
-<p><span class="argName"><em>Operand</em></span> : <span class="argDesc">The 
value to add divide the Subject by</span></p>
+<p><span class="argName"><em>Operand</em></span> : <span class="argDesc">The 
value to divide the Subject by</span></p>
 </li>
 </ul>
 </div>
 <div class="paragraph">
-<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
+<p><strong>Return Type</strong>: <span class="returnType">Number or Decimal 
(depending on input types)</span></p>
 </div>
 <div class="paragraph">
 <p><strong>Examples</strong>: If the "fileSize" attribute has a value of 100, 
then the Expression <code>${fileSize:divide(12)}</code>
@@ -2730,13 +2813,13 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="mod"><a class="anchor" 
href="expression-language-guide.html#mod"></a>mod</h3>
+<h3 id="mod"><a class="anchor" href="#mod"></a>mod</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Performs a modular 
division of the Subject by the argument. That is, this function will divide
        the Subject by the value of the argument and return not the quotient 
but rather the remainder.</span></p>
 </div>
 <div class="paragraph">
-<p><strong>Subject Type</strong>: <span class="subject">Number</span></p>
+<p><strong>Subject Type</strong>: <span class="subject">Number or 
Decimal</span></p>
 </div>
 <div class="paragraph">
 <p><strong>Arguments</strong>:</p>
@@ -2749,7 +2832,7 @@ Expressions will provide the following r
 </ul>
 </div>
 <div class="paragraph">
-<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
+<p><strong>Return Type</strong>: <span class="returnType">Number or Decimal 
(depending on input types)</span></p>
 </div>
 <div class="paragraph">
 <p><strong>Examples</strong>: If the "fileSize" attribute has a value of 100, 
then the Expression <code>${fileSize:mod(12)}</code>
@@ -2757,11 +2840,16 @@ Expressions will provide the following r
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="toradix"><a class="anchor" 
href="expression-language-guide.html#toradix"></a>toRadix</h3>
+<h3 id="toradix"><a class="anchor" href="#toradix"></a>toRadix</h3>
 <div class="paragraph">
-<p><strong>Description</strong>: <span class="description">Converts the 
Subject from a Base 10 number to a different Radix (or number base). An optional
+<p><strong>Description</strong>: [.description]#Converts the Subject from a 
Base 10 number to a different Radix (or number base). An optional
        second argument can be used to indicate the minimum number of 
characters to be used. If the converted value
-       has fewer than this number of characters, the number will be padded 
with leading zeroes.</span></p>
+       has fewer than this number of characters, the number will be padded 
with leading zeroes.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>If a decimal is passed as the subject, it will first be converted to a 
whole number and then processed.#</pre>
+</div>
 </div>
 <div class="paragraph">
 <p><strong>Subject Type</strong>: <span class="subject">Number</span></p>
@@ -2829,9 +2917,66 @@ Expressions will provide the following r
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="random"><a class="anchor" 
href="expression-language-guide.html#random"></a>random</h3>
+<h3 id="fromradix"><a class="anchor" href="#fromradix"></a>fromRadix</h3>
+<div class="paragraph">
+<p><strong>Description</strong>: [.description]#Converts the Subject from a 
specified Radix (or number base) to a base ten whole number. The subject will 
converted as is, without interpretation, and all characters
+must be valid for the base being converted from. For example converting "0xFF" 
from hex will not work due to "x" being a invalid hex character.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>If a decimal is passed as the subject, it will first be converted to a 
whole number and then processed.#</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Arguments</strong>:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><span class="argName"><em>Subject Base</em></span> : <span 
class="argDesc">A Number between 2 and 36 (inclusive)</span></p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Examples</strong>: If the "fileSize" attributes has a value of 
1234A, then the following Expressions will yield
+       the following results:</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<caption class="title">Table 16. toRadix Examples</caption>
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">Expression</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">Value</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>${fileSize:fromRadix(11)}</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>17720</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>${fileSize:fromRadix(16)}</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>74570</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>${fileSize:fromRadix(20)}</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>177290</code></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2 function">
+<h3 id="random"><a class="anchor" href="#random"></a>random</h3>
 <div class="paragraph">
-<p><strong>Description</strong>: <span class="description">Returns a random 
number ( 0 to 2^63 - 1) using an insecure random number generator.</span></p>
+<p><strong>Description</strong>: <span class="description">Returns a random 
whole number ( 0 to 2^63 - 1) using an insecure random number 
generator.</span></p>
 </div>
 <div class="paragraph">
 <p><strong>Subject Type</strong>: <span class="subjectless">No 
subject</span></p>
@@ -2846,13 +2991,54 @@ Expressions will provide the following r
 <p><strong>Examples</strong>: ${random():mod(10):plus(1)} returns random 
number between 1 and 10 inclusive.</p>
 </div>
 </div>
+<div class="sect2 function">
+<h3 id="math"><a class="anchor" href="#math"></a>math</h3>
+<div class="paragraph">
+<p><strong>Description</strong>: <span class="description">ADVANCED FEATURE. 
This expression is designed to be used by advanced users only. It utilizes Java 
Reflection to run arbitrary java.lang.Math static methods. The exact API will 
depend on the version of Java you are running. The Java 8 API can be found 
here: <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html"; 
class="bare">https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html</a>
+<br>
+In order to run the correct method, the parameter types must be correct. The 
Expression Language "Number" (whole number) type is interpreted as a Java 
"long". The "Decimal" type is interpreted as a Java "double". Running the 
desired method may require calling "toNumber()" or "toDecimal()" in order to 
"cast" the value to the desired type. This also is important to remember when 
cascading "math()" calls since the return type depends on the method that was 
run.</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Subject Type</strong>: <span class="subject  
subjectless">Subjectless, Number or Decimal (depending on the desired method to 
run)</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Arguments</strong>:
+       - <span class="argName"><em>Method</em></span> : <span 
class="argDesc">The name of the Java Math method to run</span>
+       - <span class="argName"><em>Optional Argument</em></span> : <span 
class="argDesc">Optional argument that acts as the second parameter to the 
method.</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Return Type</strong>: <span class="returnType">Number or Decimal 
(depending on method run)</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Examples</strong>:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>${math("random")} runs Math.random().</p>
+</li>
+<li>
+<p>${literal(2):toDecimal:math("pow", 2.5)} runs Math.pow(2D,2.5D).</p>
+</li>
+<li>
+<p>${literal(64):toDouble():math("cbrt"):toNumber():math("max", 5)} runs 
Math.maxDouble.valueOf(Math.cbrt(64D).longValue(), 5L). Note that the 
toDecimal() is needed because "cbrt" takes a "double" as input and the "64" 
will get interpreted as a long. The "toDecimal()" call is necessary to 
correctly call the method. that the "toNumber()" call is necessary because 
"cbrt" returns a double and the "max" method is must have parameters of the 
same type and "5" is interpreted as a long.</p>
+</li>
+<li>
+<p>${literal(5.4):math("scalb", 2)} runs Math.scalb(5.4, 2). This example is 
important because NiFi EL treats all whole numbers as "longs" and there is no 
concept of an "int". "scalb" takes a second parameter of an "int" and it is not 
overloaded to accept longs so it could not be run without special type 
handling. In the instance where the Java method cannot be found using 
parameters of type "double" and "long" the "math()" EL function will attempt to 
find a Java method with the same name but parameters of "double" and "int".</p>
+</li>
+<li>
+<p>${first:toDecimal():math("pow", ${second:toDecimal()})} where attributes 
evaluate to "first" = 2.5 and "second" = 2. This example runs Math.pow(2.5D, 
2D). The explicit calls to toDecimal() are important because of the dynamic 
nature of EL. When creating the flow, the user is unaware if the expression 
language values will be able to be interpreted as a whole number or not. In 
this example without the explicit calls "toDecimal" the "math" function would 
attempt to run a Java method "pow" with types "double" and "long" (which 
doesn&#8217;t exist).</p>
+</li>
+</ul>
+</div>
+</div>
 </div>
 </div>
 <div class="sect1">
-<h2 id="dates"><a class="anchor" 
href="expression-language-guide.html#dates"></a>Date Manipulation</h2>
+<h2 id="dates"><a class="anchor" href="#dates"></a>Date Manipulation</h2>
 <div class="sectionbody">
 <div class="sect2 function">
-<h3 id="format"><a class="anchor" 
href="expression-language-guide.html#format"></a>format</h3>
+<h3 id="format"><a class="anchor" href="#format"></a>format</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Formats a number as 
a date/time according to the format specified by the argument. The argument
        must be a String that is a valid Java SimpleDateFormat format. The 
Subject is expected to be a Number that
@@ -2879,7 +3065,7 @@ Expressions will provide the following r
        the following results:</p>
 </div>
 <table class="tableblock frame-all grid-all spread">
-<caption class="title">Table 16. format Examples</caption>
+<caption class="title">Table 17. format Examples</caption>
 <colgroup>
 <col style="width: 50%;">
 <col style="width: 50%;">
@@ -2909,7 +3095,7 @@ Expressions will provide the following r
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="todate"><a class="anchor" 
href="expression-language-guide.html#todate"></a>toDate</h3>
+<h3 id="todate"><a class="anchor" href="#todate"></a>toDate</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Converts a String 
into a Date data type, based on the format specified by the argument. The 
argument
        must be a String that is a valid Java SimpleDateFormat syntax. The 
Subject is expected to be a String that is formatted
@@ -2938,13 +3124,13 @@ Expressions will provide the following r
        15:36:03.264 GMT on December 31, 2014.</p>
 </div>
 <div class="paragraph">
-<p>Often, this function is used in conjunction with the <a 
href="expression-language-guide.html#format">format</a> function to change the 
format of a date/time. For example,
+<p>Often, this function is used in conjunction with the <a 
href="#format">format</a> function to change the format of a date/time. For 
example,
 if the attribute "date" has the value "12-24-2014" and we want to change the 
format to "2014/12/24", we can do so by
 chaining together the two functions: 
<code>${date:toDate('MM-dd-yyyy'):format('yyyy/MM/dd')}</code>.</p>
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="now"><a class="anchor" 
href="expression-language-guide.html#now"></a>now</h3>
+<h3 id="now"><a class="anchor" href="#now"></a>now</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns the current 
date and time as a Date data type object.</span></p>
 </div>
@@ -2964,13 +3150,13 @@ chaining together the two functions: <co
        <code>Wed Dec 31 15:36:03 EST 2014</code> when the expression 
completes.</p>
 </div>
 <div class="paragraph">
-<p>Utilizing the <a 
href="expression-language-guide.html#tonumber">toNumber</a> method, 
<code>now</code> can provide the current date and time as the number of 
milliseconds since
+<p>Utilizing the <a href="#tonumber">toNumber</a> method, <code>now</code> can 
provide the current date and time as the number of milliseconds since
 Midnight GMT on January 1, 1970. For instance, if instead of executing 
<code>${now()}</code> in the previous example <code>${now():toNumber()}</code>
 was run then it would output <code>1453843201123</code>. This method provides 
millisecond-level precision and provides the ability to
 manipulate the value.</p>
 </div>
 <table class="tableblock frame-all grid-all spread">
-<caption class="title">Table 17. now Examples</caption>
+<caption class="title">Table 18. now Examples</caption>
 <colgroup>
 <col style="width: 50%;">
 <col style="width: 50%;">
@@ -3007,10 +3193,10 @@ manipulate the value.</p>
 </div>
 </div>
 <div class="sect1">
-<h2 id="type_cast"><a class="anchor" 
href="expression-language-guide.html#type_cast"></a>Type Coercion</h2>
+<h2 id="type_cast"><a class="anchor" href="#type_cast"></a>Type Coercion</h2>
 <div class="sectionbody">
 <div class="sect2 function">
-<h3 id="tostring"><a class="anchor" 
href="expression-language-guide.html#tostring"></a>toString</h3>
+<h3 id="tostring"><a class="anchor" href="#tostring"></a>toString</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Coerces the Subject 
into a String</span></p>
 </div>
@@ -3029,12 +3215,12 @@ manipulate the value.</p>
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="tonumber"><a class="anchor" 
href="expression-language-guide.html#tonumber"></a>toNumber</h3>
+<h3 id="tonumber"><a class="anchor" href="#tonumber"></a>toNumber</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Coerces the Subject 
into a Number</span></p>
 </div>
 <div class="paragraph">
-<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
+<p><strong>Subject Type</strong>: <span class="subject">String, Decimal, or 
Date</span></p>
 </div>
 <div class="paragraph">
 <p><strong>Arguments</strong>: No arguments</p>
@@ -3043,13 +3229,31 @@ manipulate the value.</p>
 <p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
 </div>
 <div class="paragraph">
-<p><strong>Examples</strong>: The Expression 
<code>${fileSize:toNumber()}</code> converts the String attribute value of 
"fileSize" to a number.</p>
+<p><strong>Examples</strong>: The Expression 
<code>${fileSize:toNumber()}</code> converts the attribute value of "fileSize" 
to a number.</p>
+</div>
+</div>
+<div class="sect2 function">
+<h3 id="todecimal"><a class="anchor" href="#todecimal"></a>toDecimal</h3>
+<div class="paragraph">
+<p><strong>Description</strong>: <span class="description">Coerces the Subject 
into a Decimal</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Subject Type</strong>: <span class="subject">String, Whole Number 
or Date</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Arguments</strong>: No arguments</p>
+</div>
+<div class="paragraph">
+<p><strong>Return Type</strong>: <span class="returnType">Decimal</span></p>
+</div>
+<div class="paragraph">
+<p><strong>Examples</strong>: The Expression 
<code>${fileSize:toDecimal()}</code> converts the attribute value of "fileSize" 
to a decimal.</p>
 </div>
 </div>
 </div>
 </div>
 <div class="sect1">
-<h2 id="subjectless"><a class="anchor" 
href="expression-language-guide.html#subjectless"></a>Subjectless Functions</h2>
+<h2 id="subjectless"><a class="anchor" href="#subjectless"></a>Subjectless 
Functions</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>While the majority of functions in the Expression Language are called by 
using the syntax
@@ -3060,7 +3264,7 @@ without a subject. Attempting to call a
 an error when validating the function.</p>
 </div>
 <div class="sect2 function">
-<h3 id="ip"><a class="anchor" 
href="expression-language-guide.html#ip"></a>ip</h3>
+<h3 id="ip"><a class="anchor" href="#ip"></a>ip</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns the IP 
address of the machine.</span></p>
 </div>
@@ -3078,7 +3282,7 @@ an error when validating the function.</
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="hostname"><a class="anchor" 
href="expression-language-guide.html#hostname"></a>hostname</h3>
+<h3 id="hostname"><a class="anchor" href="#hostname"></a>hostname</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns the 
Hostname of the machine. An optional argument of type Boolean can be provided
        to specify whether or not the Fully Qualified Domain Name should be 
used. If <code>false</code>, or not specified,
@@ -3108,7 +3312,7 @@ fully qualified. If not specified, defau
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="uuid"><a class="anchor" 
href="expression-language-guide.html#uuid"></a>UUID</h3>
+<h3 id="uuid"><a class="anchor" href="#uuid"></a>UUID</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns a randomly 
generated UUID.</span></p>
 </div>
@@ -3126,7 +3330,7 @@ fully qualified. If not specified, defau
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="nextint"><a class="anchor" 
href="expression-language-guide.html#nextint"></a>nextInt</h3>
+<h3 id="nextint"><a class="anchor" href="#nextint"></a>nextInt</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns a one-up 
value (starting at 0) and increasing over the lifetime of the running instance 
of NiFi.
        This value is not persisted across restarts and is not guaranteed to be 
unique across a cluster.
@@ -3149,7 +3353,7 @@ fully qualified. If not specified, defau
 </div>
 </div>
 <div class="sect2 function">
-<h3 id="literal"><a class="anchor" 
href="expression-language-guide.html#literal"></a>literal</h3>
+<h3 id="literal"><a class="anchor" href="#literal"></a>literal</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Returns its 
argument as a literal String value. This is useful in order to treat a string 
or a number
        at the beginning of an Expression as an actual value, rather than 
treating it as an attribute name. Additionally, it
@@ -3182,7 +3386,7 @@ names begin with the letter <code>a</cod
 </div>
 </div>
 <div class="sect1">
-<h2 id="multi"><a class="anchor" 
href="expression-language-guide.html#multi"></a>Evaluating Multiple 
Attributes</h2>
+<h2 id="multi"><a class="anchor" href="#multi"></a>Evaluating Multiple 
Attributes</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>When it becomes necessary to evaluate the same conditions against multiple 
attributes, this can be accomplished by means of the
@@ -3190,7 +3394,7 @@ names begin with the letter <code>a</cod
 provides several functions for evaluating the same conditions against groups 
of attributes at the same time.</p>
 </div>
 <div class="sect2 function">
-<h3 id="anyattribute"><a class="anchor" 
href="expression-language-guide.html#anyattribute"></a>anyAttribute</h3>
+<h3 id="anyattribute"><a class="anchor" 
href="#anyattribute"></a>anyAttribute</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Checks to see if 
any of the given attributes, match the given condition. This function has no 
subject and takes one or more
        arguments that are the names of attributes to which the remainder of 
the Expression is to be applied. If any of the attributes specified,
@@ -3218,7 +3422,7 @@ provides several functions for evaluatin
        and "filename" contains "file.txt" consider the following examples:</p>
 </div>
 <table class="tableblock frame-all grid-all spread">
-<caption class="title">Table 18. anyAttribute Examples</caption>
+<caption class="title">Table 19. anyAttribute Examples</caption>
 <colgroup>
 <col style="width: 50%;">
 <col style="width: 50%;">
@@ -3240,7 +3444,7 @@ provides several functions for evaluatin
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="allattributes"><a class="anchor" 
href="expression-language-guide.html#allattributes"></a>allAttributes</h3>
+<h3 id="allattributes"><a class="anchor" 
href="#allattributes"></a>allAttributes</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Checks to see if 
any of the given attributes, match the given condition. This function has no 
subject and takes one or more
        arguments that are the names of attributes to which the remainder of 
the Expression is to be applied. If all of the attributes specified,
@@ -3268,7 +3472,7 @@ provides several functions for evaluatin
        and "filename" contains "file.txt" consider the following examples:</p>
 </div>
 <table class="tableblock frame-all grid-all spread">
-<caption class="title">Table 19. allAttributes Example</caption>
+<caption class="title">Table 20. allAttributes Example</caption>
 <colgroup>
 <col style="width: 50%;">
 <col style="width: 50%;">
@@ -3290,7 +3494,7 @@ provides several functions for evaluatin
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="anymatchingattribute"><a class="anchor" 
href="expression-language-guide.html#anymatchingattribute"></a>anyMatchingAttribute</h3>
+<h3 id="anymatchingattribute"><a class="anchor" 
href="#anymatchingattribute"></a>anyMatchingAttribute</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Checks to see if 
any of the given attributes, match the given condition. This function has no 
subject and takes one or more
        arguments that are Regular Expressions to match against attribute 
names. Any attribute whose name matches one of the supplied
@@ -3319,7 +3523,7 @@ provides several functions for evaluatin
        and "filename" contains "file.txt" consider the following examples:</p>
 </div>
 <table class="tableblock frame-all grid-all spread">
-<caption class="title">Table 20. anyMatchingAttribute Example</caption>
+<caption class="title">Table 21. anyMatchingAttribute Example</caption>
 <colgroup>
 <col style="width: 50%;">
 <col style="width: 50%;">
@@ -3341,7 +3545,7 @@ provides several functions for evaluatin
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="allmatchingattributes"><a class="anchor" 
href="expression-language-guide.html#allmatchingattributes"></a>allMatchingAttributes</h3>
+<h3 id="allmatchingattributes"><a class="anchor" 
href="#allmatchingattributes"></a>allMatchingAttributes</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Checks to see if 
any of the given attributes, match the given condition. This function has no 
subject and takes one or more
        arguments that are Regular Expressions to match against attribute 
names. Any attribute whose name matches one of the supplied
@@ -3367,7 +3571,7 @@ provides several functions for evaluatin
        and "filename" contains "file.txt" consider the following examples:</p>
 </div>
 <table class="tableblock frame-all grid-all spread">
-<caption class="title">Table 21. anyMatchingAttributes Examples</caption>
+<caption class="title">Table 22. anyMatchingAttributes Examples</caption>
 <colgroup>
 <col style="width: 50%;">
 <col style="width: 50%;">
@@ -3393,7 +3597,7 @@ provides several functions for evaluatin
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="anydelineatedvalue"><a class="anchor" 
href="expression-language-guide.html#anydelineatedvalue"></a>anyDelineatedValue</h3>
+<h3 id="anydelineatedvalue"><a class="anchor" 
href="#anydelineatedvalue"></a>anyDelineatedValue</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Splits a String 
apart according to a delimiter that is provided, and then evaluates each of the 
values against
        the rest of the Expression. If the Expression, when evaluated against 
any of the individual values, returns <code>true</code>, this
@@ -3424,7 +3628,7 @@ though it does not have to be.</span></p
        consider the following examples:</p>
 </div>
 <table class="tableblock frame-all grid-all spread">
-<caption class="title">Table 22. anyDelineatedValue Examples</caption>
+<caption class="title">Table 23. anyDelineatedValue Examples</caption>
 <colgroup>
 <col style="width: 50%;">
 <col style="width: 50%;">
@@ -3446,7 +3650,7 @@ though it does not have to be.</span></p
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="alldelineatedvalues"><a class="anchor" 
href="expression-language-guide.html#alldelineatedvalues"></a>allDelineatedValues</h3>
+<h3 id="alldelineatedvalues"><a class="anchor" 
href="#alldelineatedvalues"></a>allDelineatedValues</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Splits a String 
apart according to a delimiter that is provided, and then evaluates each of the 
values against
        the rest of the Expression. If the Expression, when evaluated against 
all of the individual values, returns <code>true</code> in each
@@ -3477,7 +3681,7 @@ an embedded Expression, though it does n
        consider the following examples:</p>
 </div>
 <table class="tableblock frame-all grid-all spread">
-<caption class="title">Table 23. allDelineatedValues Examples</caption>
+<caption class="title">Table 24. allDelineatedValues Examples</caption>
 <colgroup>
 <col style="width: 50%;">
 <col style="width: 50%;">
@@ -3507,7 +3711,7 @@ an embedded Expression, though it does n
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="join"><a class="anchor" 
href="expression-language-guide.html#join"></a>join</h3>
+<h3 id="join"><a class="anchor" href="#join"></a>join</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Aggregate function 
that concatenates multiple values with the specified delimiter. This function
        may be used only in conjunction with the <code>allAttributes</code>, 
<code>allMatchingAttributes</code>, and <code>allDelineatedValues</code>
@@ -3534,7 +3738,7 @@ an embedded Expression, though it does n
        and "filename" contains "file.txt" consider the following examples:</p>
 </div>
 <table class="tableblock frame-all grid-all spread">
-<caption class="title">Table 24. join Examples</caption>
+<caption class="title">Table 25. join Examples</caption>
 <colgroup>
 <col style="width: 50%;">
 <col style="width: 50%;">
@@ -3556,7 +3760,7 @@ an embedded Expression, though it does n
 </table>
 </div>
 <div class="sect2 function">
-<h3 id="count"><a class="anchor" 
href="expression-language-guide.html#count"></a>count</h3>
+<h3 id="count"><a class="anchor" href="#count"></a>count</h3>
 <div class="paragraph">
 <p><strong>Description</strong>: <span class="description">Aggregate function 
that counts the number of non-null, non-false values returned by the
        <code>allAttributes</code>, <code>allMatchingAttributes</code>, and 
<code>allDelineatedValues</code>. This function
@@ -3577,7 +3781,7 @@ an embedded Expression, though it does n
        and "number_list" contains "1,2,3,4,5" consider the following 
examples:</p>
 </div>
 <table class="tableblock frame-all grid-all spread">
-<caption class="title">Table 25. count Examples</caption>
+<caption class="title">Table 26. count Examples</caption>
 <colgroup>
 <col style="width: 50%;">
 <col style="width: 50%;">
@@ -3615,7 +3819,7 @@ an embedded Expression, though it does n
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-08-29 08:05:44 -04:00
+Last updated 2016-11-26 01:07:10 -05:00
 </div>
 </div>
 </body>


Reply via email to