Conditional expression syntax

You enter conditional expressions using a syntax similar to Structured Query Language (SQL) with some additional variables.

When you create a conditional expression, use a colon (:) to define a variable. The colon is used to avoid ambiguity when you create expressions that relate the current record to a different, specific record.

You can have subselect in an expression,

exists (select 1 from workorder where wonum=:wonum).

The first wonum is the wonum attribute on the work order object. At run time, the second wonum is replaced with the value of the wonum attribute for the current record.

Replacement variables

Syntax Description Comments
:yes true Logically true, 1 if stored in the database
:no false Logically false, 0 if stored in the database
:&date& Current date  
:&datetime& Current date and time  
:&user& Logged in user For example, if a user is signed in as Smith, :owner.id=&user& converts to :ownerid='SMITH'
:&personid& Person ID of logged in user For example, if a user is logged in as Smith, :reportby=&personid& converts to :reportby='SMITH'
:&appname& Application name For example, in the Work Order Tracking application, :&appname& = WOTRACK converts to WOTRACK = WOTRACK. This variable is useful for setting different behavior for different copies of an application.
:&mboname& Name of the current business object For example, in the work order object, object = :&mboname& converts to object = WORKORDER
:&ownername& Name of the owner business object For example, in the Work Order Tracking application, :&ownername&.jobplan.priority>&ownername&.priority converts to workorder.jobplan.priority>workorder.priority

Bind variables

Syntax Description Examples
:<relationshipname>.<attrname> Value of an attribute of a related business object of the current business object :location.description
:&owner&.<attrname> Value of an attribute of the owner business object When you apply a job plan to a work order, the system copies the priority of the job plan to the child work order. The condition can be: :&owner&.jobplan.priority>:&owner&.priority. In this example, the system copies this information if the job plan has a higher priority than the parent work order.
:&owner&.<relationship_name>.<attrname> Value of an attribute of the related business object of the owner business object See the example for :&owner&.<attrname>
:&old_<attrname> The initial value from the database of the attribute For example, if you change the value of a field from 1 to 2 to 3 to 4, the original value is 1.

Conditional expressions examples

  • :wostatus='APPR'
  • :type='EM'
  • :ownerid=:&user&
  • :supervisor!=:&personid&
  • :asset.assettype = 'IT' and :&personid&=:owner
  • :reportby=:&personid&
  • :assetspec.classstructureid = 122
  • :po.poline.receivedqty=0
  • :&owner&.jobplan.priority>:&owner&.priority
  • :owner&.po.$old_description like '%Turbin%'