{"id":62269,"date":"2023-06-27T15:23:35","date_gmt":"2023-06-27T07:23:35","guid":{"rendered":"https:\/\/oihelp.corporate.ifs.com\/help\/?page_id=62269"},"modified":"2024-03-28T11:51:07","modified_gmt":"2024-03-28T03:51:07","slug":"expression-syntax-for-calculated-quantities","status":"publish","type":"page","link":"https:\/\/oihelp.corporate.ifs.com\/help\/aplus\/expression-syntax-for-calculated-quantities\/","title":{"rendered":"Expression Syntax for Calculated Quantities"},"content":{"rendered":"<p class=\"intro-text\">Expressions can be combined using operators. Each operator has a precedence priority, as follows:<\/p>\n<p class=\"intro-text\"><strong>Primary &gt; unary &gt; power &gt; multiplicative&gt; additive &gt; relational &gt; logical<\/strong><\/p>\n<h2 class=\"page-subheading\">Primary<\/h2>\n<table style=\"border-collapse: collapse; width: 100%; border: 1px solid #cccccc;\">\n<tbody>\n<tr>\n<td style=\"width: 4.58333%;\">\n<p>(, )<\/p>\n<\/td>\n<td style=\"width: 52.2917%;\">\n<p>&nbsp;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 4.58333%;\">\n<p>values<\/p>\n<\/td>\n<td style=\"width: 52.2917%;\">\n<p>Values include:<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 33.3333%;\">\n<ul>\n<li>integers<\/li>\n<li>floating point numbers<\/li>\n<li>scientific notation<\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 33.3333%;\">\n<ul>\n<li>dates\/times<\/li>\n<li>Booleans<\/li>\n<li>strings<\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 33.3333%;\">\n<ul>\n<li>functions<\/li>\n<li>parameters<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"intro-text\">Example:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">2 * ( 3 + 2 )<\/span><\/p>\n<h3>Integers<\/h3>\n<p class=\"intro-text\">They are represented using numbers and are evaluated as <em>Int32.<\/em><\/p>\n<p class=\"intro-text\">Example:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">123456<\/span><\/p>\n<h3>Floating point numbers<\/h3>\n<p class=\"intro-text\">Use the dot to define the decimal part. They are evaluated as <em>Decimal.<\/em><\/p>\n<p class=\"intro-text\">Examples:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">123.456<br \/>\n.123<\/span><\/p>\n<h3>Scientific notation<\/h3>\n<p class=\"intro-text\">You can use the <strong>e <\/strong>to define power of ten (10^). These are evaluated as <em>Double<\/em>.<\/p>\n<p class=\"intro-text\">Examples:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">1.22e1<br \/>\n1e2<br \/>\n1e+2<br \/>\n1e-2<br \/>\n.1e-2<br \/>\n1e10<\/span><\/p>\n<h3>Dates and Times<\/h3>\n<p class=\"intro-text\">Must be enclosed between sharps. These are evaluated as <strong>DateTime<\/strong>. and uses the current Culture to evaluate them.<\/p>\n<p class=\"intro-text\">Example:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">#2008\/01\/31#<\/span> \/\/ for en-US culture<\/p>\n<h3>Booleans<\/h3>\n<p class=\"intro-text\">Booleans can be either <strong>true<\/strong> or <strong>false<\/strong>.<\/p>\n<p class=\"intro-text\">Example:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">true<\/span><\/p>\n<h3>Strings<\/h3>\n<p class=\"intro-text\">Any character between single quotes \"<strong>'<\/strong>\" are evaluated as <strong>String<\/strong>.<\/p>\n<p class=\"intro-text\">Example:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">'hello'<\/span><\/p>\n<p class=\"intro-text\">You can escape special characters using: \\\\, \\', \\n, \\r, \\t<\/p>\n<h3>Functions<\/h3>\n<p class=\"intro-text\">A function is made of a name followed by braces, containing optionally any value as arguments.<\/p>\n<p class=\"intro-text\">Example:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">Abs(1), doSomething(1, 'dummy')<\/span><\/p>\n<p class=\"intro-text\">The following functions are available:<\/p>\n<table style=\"border-collapse: collapse; width: 100%; border: 1px solid #cccccc;\">\n<tbody>\n<tr>\n<td>\n<p><strong>Name<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>Description<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>Usage<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>Result<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Abs<\/p>\n<\/td>\n<td>\n<p>Returns the absolute value of a specified number.<\/p>\n<\/td>\n<td>\n<p>Abs(-1)<\/p>\n<\/td>\n<td>\n<p>1M<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Acos<\/p>\n<\/td>\n<td>\n<p>Returns the angle whose cosine is the specified number.<\/p>\n<\/td>\n<td>\n<p>Acos(1)<\/p>\n<\/td>\n<td>\n<p>0d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Asin<\/p>\n<\/td>\n<td>\n<p>Returns the angle whose sine is the specified number.<\/p>\n<\/td>\n<td>\n<p>Asin(0)<\/p>\n<\/td>\n<td>\n<p>0d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Atan<\/p>\n<\/td>\n<td>\n<p>Returns the angle whose tangent is the specified number.<\/p>\n<\/td>\n<td>\n<p>Atan(0)<\/p>\n<\/td>\n<td>\n<p>0d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Ceiling<\/p>\n<\/td>\n<td>\n<p>Returns the smallest integer greater than or equal to the specified number.<\/p>\n<\/td>\n<td>\n<p>Ceiling(1.5)<\/p>\n<\/td>\n<td>\n<p>2d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Cos<\/p>\n<\/td>\n<td>\n<p>Returns the cosine of the specified angle.<\/p>\n<\/td>\n<td>\n<p>Cos(0)<\/p>\n<\/td>\n<td>\n<p>1d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Exp<\/p>\n<\/td>\n<td>\n<p>Returns e raised to the specified power.<\/p>\n<\/td>\n<td>\n<p>Exp(0)<\/p>\n<\/td>\n<td>\n<p>1d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Floor<\/p>\n<\/td>\n<td>\n<p>Returns the largest integer less than or equal to the specified number.<\/p>\n<\/td>\n<td>\n<p>Floor(1.5)<\/p>\n<\/td>\n<td>\n<p>1d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>IEEERemainder<\/p>\n<\/td>\n<td>\n<p>Returns the remainder resulting from the division of a specified number by another specified number.<\/p>\n<\/td>\n<td>\n<p>IEEERemainder(3, 2)<\/p>\n<\/td>\n<td>\n<p>-1d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Log<\/p>\n<\/td>\n<td>\n<p>Returns the logarithm of a specified number.<\/p>\n<\/td>\n<td>\n<p>Log(1, 10)<\/p>\n<\/td>\n<td>\n<p>0d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Log10<\/p>\n<\/td>\n<td>\n<p>Returns the base 10 logarithm of a specified number.<\/p>\n<\/td>\n<td>\n<p>Log10(1)<\/p>\n<\/td>\n<td>\n<p>0d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Max<\/p>\n<\/td>\n<td>\n<p>Returns the larger of two specified numbers.<\/p>\n<\/td>\n<td>\n<p>Max(1, 2)<\/p>\n<\/td>\n<td>\n<p>2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Min<\/p>\n<\/td>\n<td>\n<p>Returns the smaller of two numbers.<\/p>\n<\/td>\n<td>\n<p>Min(1, 2)<\/p>\n<\/td>\n<td>\n<p>1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Pow<\/p>\n<\/td>\n<td>\n<p>Returns a specified number raised to the specified power.<\/p>\n<\/td>\n<td>\n<p>Pow(3, 2)<\/p>\n<\/td>\n<td>\n<p>9d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Round<\/p>\n<\/td>\n<td>\n<p>Rounds a value to the nearest integer or specified number of decimal places. The mid number behaviour can be changed by using EvaluateOption.RoundAwayFromZero during construction of the Expression object.<\/p>\n<\/td>\n<td>\n<p>Round(3.222, 2)<\/p>\n<\/td>\n<td>\n<p>3.22d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Sign<\/p>\n<\/td>\n<td>\n<p>Returns a value indicating the sign of a number.<\/p>\n<\/td>\n<td>\n<p>Sign(-10)<\/p>\n<\/td>\n<td>\n<p>-1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Sin<\/p>\n<\/td>\n<td>\n<p>Returns the sine of the specified angle.<\/p>\n<\/td>\n<td>\n<p>Sin(0)<\/p>\n<\/td>\n<td>\n<p>0d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Sqrt<\/p>\n<\/td>\n<td>\n<p>Returns the square root of a specified number.<\/p>\n<\/td>\n<td>\n<p>Sqrt(4)<\/p>\n<\/td>\n<td>\n<p>2d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Tan<\/p>\n<\/td>\n<td>\n<p>Returns the tangent of the specified angle.<\/p>\n<\/td>\n<td>\n<p>Tan(0)<\/p>\n<\/td>\n<td>\n<p>0d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Truncate<\/p>\n<\/td>\n<td>\n<p>Calculates the integral part of a number.<\/p>\n<\/td>\n<td>\n<p>Truncate(1.7)<\/p>\n<\/td>\n<td>\n<p>1<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"intro-text\">The following general purpose functions are also available:<\/p>\n<table style=\"border-collapse: collapse; width: 100%; border: 1px solid #cccccc;\">\n<tbody>\n<tr>\n<td>\n<p><strong>Name<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>Description<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>Usage<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>Result<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>in<\/p>\n<\/td>\n<td>\n<p>Returns whether an element is in a set of values.<\/p>\n<\/td>\n<td>\n<p>in(1 + 1, 1, 2, 3)<\/p>\n<\/td>\n<td>\n<p>true<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>if<\/p>\n<\/td>\n<td>\n<p>Returns a value based on a condition.<\/p>\n<\/td>\n<td>\n<p>if(3 % 2 = 1, 'value is true', 'value is false')<\/p>\n<\/td>\n<td>\n<p>'value is true'<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Parameters<\/h3>\n<p class=\"intro-text\">A parameter as a name and can be optionally contained inside brackets.<\/p>\n<p class=\"intro-text\">Example:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">2 + x, 2 + [x]<\/span><\/p>\n<h4>Static parameters<\/h4>\n<p class=\"intro-text\">Static parameters are values which can be defined before the evaluation of an expression. These parameters can be accessed using the <strong>Parameters<\/strong> dictionary of the <strong>Expression <\/strong>instance.<\/p>\n<table style=\"border-collapse: collapse; width: 100%; border: 1px solid #cccccc;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><span class=\"code-fragment\">Expression e = new Expression(\"2 * [x] ^ 2 + 5 * [y]\");<\/span><br \/>\n<span class=\"code-fragment\">e.Parameters[\"x\"] = 5;<\/span><br \/>\n<span class=\"code-fragment\">e.Parameters[\"y\"] = 1;<\/span><br \/>\n<span class=\"code-fragment\">Console.WriteLine(e.Evaluate());<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"intro-text\">Parameters can be useful when a value is unknown at compile time, or when performance is important and the parsing can be saved for further calculations.<\/p>\n<h4>Expression parameters<\/h4>\n<p class=\"intro-text\">Expressions can be split into several ones by defining expression parameters. Those parameters are not simple values but <strong>Expression<\/strong> instances themselves.<\/p>\n<table style=\"border-collapse: collapse; width: 100%; border: 1px solid #cccccc;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><span class=\"code-fragment\">Expression volume = new Expression(\"[surface] * h\");<\/span><br \/>\n<span class=\"code-fragment\">Expression surface = new Expression(\"[l] * [L]\");<\/span><br \/>\n<span class=\"code-fragment\">volume.Parameters[\"surface\"] = surface;<\/span><br \/>\n<span class=\"code-fragment\">surface.Parameters[\"l\"] = 1;<\/span><br \/>\n<span class=\"code-fragment\">surface.Parameters[\"L\"] = 2;<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>Dynamic parameters<\/h4>\n<p class=\"intro-text\">Sometimes parameters can be even more complex to evaluate and need a dedicated method to be evaluated. This can be done by intercepting there evaluation using the <strong>EvaluateParameter<\/strong> event published on <strong>Expression<\/strong> instances. Thus, each time a parameter is not defined in the dictionary, this event is called to try to resolve the value.<\/p>\n<table style=\"border-collapse: collapse; width: 100%; border: 1px solid #cccccc;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><span class=\"code-fragment\">Expression e = new Expression(\"Round(Pow([Pi], 2) + Pow([Pi], 2) + [X], 2)\");<\/span><br \/>\n<span class=\"code-fragment\">e.Parameters[\"Pi2\"] = new Expression(\"Pi * [Pi]\");<\/span><br \/>\n<span class=\"code-fragment\">e.Parameters[\"X\"] = 10;<\/span><br \/>\ne.EvaluateParameter += delegate(string name, ParameterArgs args)<br \/>\n<span class=\"code-fragment\">{<\/span><br \/>\n<span class=\"code-fragment\">if (name == \"Pi\")<\/span><br \/>\n<span class=\"code-fragment\">args.Result = 3.14;<\/span><br \/>\n<span class=\"code-fragment\">};<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"color: #444444; font-family: 'Segoe UI, Arial, sans-serif'; font-size: 1.295em;\">Square brackets parameters<\/span><\/p>\n<p class=\"intro-text\">Parameters in between square brackets can contain special characters like spaces, dots, and also start with digits.<\/p>\n<table style=\"border-collapse: collapse; width: 100%; border: 1px solid #cccccc;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><span class=\"code-fragment\">Expression e = new Expression(\"[My First Parameter] + [My Second Parameter]\");<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>Multi-valued parameters<\/h4>\n<p class=\"intro-text\">When parameters are IEnumerable and the <strong>EvaluationOptions.IterateParameters<\/strong> is used, the result is an <strong>IList<\/strong> made of the evaluation of each value in the parameter.<\/p>\n<table style=\"border-collapse: collapse; width: 100%; border: 1px solid #cccccc;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><span class=\"code-fragment\">Expression e = new Expression(\"(a * b) ^ c\", EvaluateOption.IterateParameters);<\/span><br \/>\n<span class=\"code-fragment\">e.Parameters[\"a\"] = new int[] { 1, 2, 3, 4, 5 };<\/span><br \/>\n<span class=\"code-fragment\">e.Parameters[\"b\"] = new int[] { 6, 7, 8, 9, 0 };<\/span><br \/>\n<span class=\"code-fragment\">e.Parameters[\"c\"] = 3;<\/span><br \/>\n<span class=\"code-fragment\">foreach (var result in (IList)e.Evaluate())<\/span><br \/>\n<span class=\"code-fragment\">{<\/span><br \/>\n<span class=\"code-fragment\">Console.WriteLine(result);<\/span><br \/>\n<span class=\"code-fragment\">}<\/span><br \/>\n<span class=\"code-fragment\">\/\/ 216<\/span><br \/>\n<span class=\"code-fragment\">\/\/ 2744<\/span><br \/>\n<span class=\"code-fragment\">\/\/ 13824<\/span><br \/>\n<span class=\"code-fragment\">\/\/ 46656<\/span><br \/>\n<span class=\"code-fragment\">\/\/ 0<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 class=\"page-subheading\">Unary<\/h2>\n<table style=\"border-collapse: collapse; width: 100%; border: 1px solid #cccccc;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">!, not, -, ~ (bitwise not)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"intro-text\">Example:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">not true<\/span><\/p>\n<h2 class=\"page-subheading\">Bitwise<\/h2>\n<table style=\"border-collapse: collapse; width: 100%; border: 1px solid #cccccc;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">&amp; (bitwise and), | (bitwise or), ^(bitwise xor), &lt;&lt; (left shift), &gt;&gt;(right shift)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"intro-text\">Example:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">2 &gt;&gt; 3<\/span><\/p>\n<h2 class=\"page-subheading\">Multiplicative<\/h2>\n<table style=\"border-collapse: collapse; width: 100%; border: 1px solid #cccccc;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">*, \/, %<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"intro-text\">Example:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">1 * 2 % 3<\/span><\/p>\n<h2 class=\"page-subheading\">Additive<\/h2>\n<table style=\"border-collapse: collapse; width: 100%; border: 1px solid #cccccc;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">+, -<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"intro-text\">Example:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">1 + 2 - 3<\/span><\/p>\n<h2 class=\"page-subheading\">Relational<\/h2>\n<table style=\"border-collapse: collapse; width: 100%; border: 1px solid #cccccc;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">\n<p>=, ==, !=, &lt;&gt;<\/p>\n<p>&lt;, &lt;=, &gt;, &gt;=<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"intro-text\">Example:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">1 &lt; 2<\/span><\/p>\n<h2 class=\"page-subheading\">Logical<\/h2>\n<p class=\"intro-text\">These operators can perform a logical comparison between other expressions.<\/p>\n<table style=\"border-collapse: collapse; width: 100%; border: 1px solid #cccccc;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">\n<p>or, ||<\/p>\n<p>and, &amp;&amp;<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"intro-text\">The <strong>and <\/strong>operator has higher priority than the <strong>or<\/strong>, thus in the following example, <strong>false and true <\/strong>is evaluated first.<\/p>\n<p class=\"intro-text\">Example:<\/p>\n<p class=\"intro-text\"><span class=\"code-fragment\">true or false and true<\/span><\/p>\n<h1>Glossary<\/h1>\n<p class=\"dl-term\">Area Equipment<\/p>\n<p class=\"intro-text\">Equipment, typically belonging to a plant or facility, that may affect loss at upstream measurement points.<\/p>\n<p class=\"dl-term\">Availability Event<\/p>\n<p class=\"intro-text\">A quantifiable time frame when a measurement point is not working or not working to an appropriate proportion of design capacity. Availability events can be a pre-cursor to loss events. Availability of a measurement point is an opportunity.<\/p>\n<p class=\"dl-term\">Cause<\/p>\n<p class=\"intro-text\">A predefined list of states or activities relating to a piece of equipment attributed to production event.<\/p>\n<p class=\"dl-term\">Downtime<\/p>\n<p class=\"intro-text\">A state where production has stopped over a period of time.<\/p>\n<p class=\"dl-term\">Equipment Hierarchy<\/p>\n<p class=\"intro-text\">A collection of equipment (grouped in a hierarchy) which summarises the equipment of interest for loss and downtime reporting.<\/p>\n<p class=\"dl-term\">Loss<\/p>\n<p class=\"intro-text\">A state where production is below a specified threshold but has not stopped over a period of time.<\/p>\n<p class=\"dl-term\">Loss Event<\/p>\n<p class=\"intro-text\">Loss is the incomplete utilisation of a piece of equipment, or a lost opportunity for production. While it may be possible to assign an actual cost of amount, the base Unit for loss is time.<\/p>\n<p class=\"dl-term\">Measurement Point Group<\/p>\n<p class=\"intro-text\">A mechanism for grouping measurement points into convenient geographical groups for reporting purposes.<\/p>\n<p class=\"dl-term\">Production Stream<\/p>\n<p class=\"intro-text\">A Production Stream provides a convenient way of grouping equipment for reporting purposes. A piece of equipment can belong to only one Production Stream.<\/p>\n<p class=\"dl-term\">Reason<\/p>\n<p class=\"intro-text\">A predefined list of states or activities relating to a piece of equipment attributed to production event.<\/p>\n<p class=\"dl-term\">Workflow<\/p>\n<p class=\"intro-text\">A set of activities that describe real world processes.<\/p>\n<p class=\"intro-text\">\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Syntax for calculated quantities and how to use operators to combine expressions.<\/p>\n<p class=\"continue-reading-button\"> <a class=\"continue-reading-link\" href=\"https:\/\/oihelp.corporate.ifs.com\/help\/aplus\/expression-syntax-for-calculated-quantities\/\">Read more<i class=\"crycon-right-dir\"><\/i><\/a><\/p>\n","protected":false},"author":29,"featured_media":0,"parent":280,"menu_order":78,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"","_members_access_role":[],"_members_access_error":""},"categories":[4],"tags":[],"class_list":["post-62269","page","type-page","status-publish","hentry","category-explainer","Version-4-14","Product-ap"],"_links":{"self":[{"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages\/62269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/comments?post=62269"}],"version-history":[{"count":32,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages\/62269\/revisions"}],"predecessor-version":[{"id":63745,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages\/62269\/revisions\/63745"}],"up":[{"embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages\/280"}],"wp:attachment":[{"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/media?parent=62269"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/categories?post=62269"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/tags?post=62269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}