# Expression Function

**URL:** <https://forum.inductiveautomation.com/t/expression-function/9460>\
**Category:** 3rd Party Modules\
**Created:** [December 18, 2014, 7:54pm UTC](https://forum.inductiveautomation.com/t/expression-function/9460 "2014-12-18T19:54:25Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![kevinmarchand](https://avatars.discourse-cdn.com/v4/letter/k/439d5e/32.png) [@kevinmarchand](https://forum.inductiveautomation.com/u/kevinmarchand)\
**Post date:** [December 18, 2014, 7:54pm UTC](https://forum.inductiveautomation.com/t/expression-function/9460/1 "2014-12-18T19:54:25Z")

</div>

Hi,

Is it possible to have an example of implementing the com.inductiveautomation.ignition.common.expressions.functions to create a new function?  
thanks

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [December 18, 2014, 11:05pm UTC](https://forum.inductiveautomation.com/t/expression-function/9460/2 "2014-12-18T23:05:35Z")

</div>

I think all you need to do is extend AbstractFunction, sort of like the following example, and then override configureFunctionFactory() and register it with the ExpressionFunctionManager in your hooks.

[gist.github.com/kevinherron/b06 … 7aad6bfb82](https://gist.github.com/kevinherron/b06151d59a7aad6bfb82)

---

<div class="post-metadata">

**Author:** ![kevinmarchand](https://avatars.discourse-cdn.com/v4/letter/k/439d5e/32.png) [@kevinmarchand](https://forum.inductiveautomation.com/u/kevinmarchand)\
**Post date:** [December 19, 2014, 9:10am UTC](https://forum.inductiveautomation.com/t/expression-function/9460/3 "2014-12-19T09:10:04Z")

</div>

When i build this module with the skeleton.jar  
Does the expression require a client or desinger or gateway?  
thanks

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [December 19, 2014, 4:19pm UTC](https://forum.inductiveautomation.com/t/expression-function/9460/4 "2014-12-19T16:19:31Z")

</div>

You need a project for all three scopes, so each hook can register it, plus a common project where the actual implementation is located.
