Developer ToolsFree referencePDF, Excel, Word exportInfor SyteLineAll Infor SyteLine (CloudSuite Industrial) tools

SyteLine Event Action Parameter Functions Reference

This reference covers the event action parameter functions used most in Infor SyteLine and CSI 10 event handlers. Each row gives the return value, exact syntax or a confirmed example, and the events where the function works.

Download:
FunctionCategoryWhat it returnsSyntax or exampleWorks in
E
Variables and parameters
Value of an event parameter (typeless)
E("OrderNum")
Any event that passes that parameter
V
Variables and parameters
Value of an event variable (typeless)
V("ApprovedBy")
Any handler
GC
Variables and parameters
Value of an event global constant (typeless)
GC("CreditManager")
Any handler; constants defined on Event Global Constants
SV
Variables and parameters
Value of a session variable (typeless)
SV(var)
Any handler
FE
Variables and parameters
Event parameter as a quoted string, or unquoted NULL if empty
FE(param)
Building filters
FV
Variables and parameters
Event variable as a quoted string, or unquoted NULL if empty
SUBSTITUTE("CustNum = {0}", FV("CustNum"))
Building filters
FGC
Variables and parameters
Global constant as a quoted string, or unquoted NULL if empty
FGC(constant)
Building filters
FSV
Variables and parameters
Session variable as a quoted string, or unquoted NULL if empty
FSV(var)
Building filters
TV
Variables and parameters
Pre-parser: expands an event variable as text that can contain other grammar elements
TV(varName)
Any handler
TGC
Variables and parameters
Pre-parser: expands a global constant as text that can contain other grammar elements
TGC(conName)
Any handler
P / PROPERTY
IDO and properties
Value of a property on the row in the event (typeless)
P("CreditHold") on SLCustomers update
IdoOnItem and IdoPostItem events (Insert, Update, Delete)
P2 / PROPERTY2
IDO and properties
Property value from a given one-based row
PROPERTY( row#, propertyName )
IdoOnLoadCollection, IdoPostLoadCollection
P3 / PROPERTY3
IDO and properties
Property value from a row of a named result set
PROPERTY( collection, row#, propertyName )
Any event, after a Load IDO Collection action
FP / FILTERPROPERTY
IDO and properties
Property value as a quoted string, or unquoted NULL if empty
SUBSTITUTE("CoNum = {0}", FP("CoNum"))
IdoOnItem and IdoPostItem events; FP2 and FP3 as for P2 and P3
PROPERTYMODIFIED
IDO and properties
TRUE if the property changed from its original value
PROPERTYMODIFIED("CreditHold")
IdoOnItemInsert, IdoOnItemUpdate, IdoOnItemDelete
PROPERTYAVAILABLE
IDO and properties
TRUE if the property and its value are available in the event
PROPERTYAVAILABLE("CreditHold")
All IdoOnItem, IdoPostItem and load collection events
PROPERTYNAMES
IDO and properties
List of properties retrieved, inserted or updated
PROPERTYNAMES()
IdoOnLoadCollection, IdoPostLoadCollection, IdoOnItemInsert, IdoOnItemUpdate
FILTERSTRING
IDO and properties
The query filter as a quoted string, or unquoted NULL
FILTERSTRING()
IdoOnLoadCollection, IdoPostLoadCollection
IDO
IDO and properties
Name of the IDO collection for the request
IDO()
All IDO events
METHOD
IDO and properties
Name of the method being invoked
METHOD()
IdoOnInvoke, IdoPostInvoke
METHODPARM
IDO and properties
Value of the method parameter at an index
METHODPARM(1)
IDO method invoke events
METHODPARMS
IDO and properties
Count of parameters required by the method
METHODPARMS()
IDO method invoke events
ROWS
IDO and properties
Rows loaded by the collection that raised the event; 0 elsewhere
CONDITION(ROWS()>1000)
IdoPostLoadCollection
ROWS (collection)
IDO and properties
Number of rows in a named result set
ROWS( collection )
After a Load IDO Collection action
RECORDCAP
IDO and properties
Record cap of the current query
RECORDCAP()
IdoOnLoadCollection, IdoPostLoadCollection
DBFUNCTION
IDO and properties
Result of a database function
DBFUNCTION( functionName, arg1, arg2, ... )
Database operations only
IF
Event context
One of two expressions depending on a condition
IF( condition, trueExpr, falseExpr )
Any parameter
CAST
Strings
The expression treated as DATE, NUMBER or STRING
CAST(P("CreditLimit") AS STRING)
Any parameter
SUBSTITUTE
Strings
A string with {0}, {1} zones filled at run time
SUBSTITUTE("User {0} loaded {1} rows", USERNAME(), ROWS())
Any parameter; zones start at {0} and must be consecutive
CLIENTSUBSTITUTE
Strings
A FORMAT() string resolved from a forms database string, safe for commas and parentheses
CLIENTSUBSTITUTE( pattern {, arg} ... )
Messages shown in the client
SUBSTRING
Strings
Part of a string
SUBSTRING( string, start [, length] )
Any parameter
INSTR
Strings
Start position of string2 in string1, or 0
INSTR( string1, string2 )
Any parameter
LEN
Strings
Length in characters
LEN( string )
Any parameter
LOWER
Strings
String in lowercase
LOWER( string )
Any parameter
UPPER
Strings
String in uppercase
UPPER( string )
Any parameter
REPLACE
Strings
string1 with every string2 replaced by string3
REPLACE( string1, string2, string3 )
Any parameter
CURDATETIME
Dates
Current date and time corrected for the site time zone
CURDATETIME()
Any parameter; like dbo.GetSiteDate(getdate()) in T-SQL
DATE
Dates
A date from its parts
DATE( year, month, day )
Any parameter; 3 or 7 arguments only
DATEADD
Dates
A date plus an interval
DATEADD( day, 7, CURDATETIME() )
Any parameter; same date parts as T-SQL
DATEDIFF
Dates
Boundaries crossed between two dates (endDate minus startDate)
DATEDIFF( datePart, startDate, endDate )
Any parameter
DATEPART
Dates
Integer value of one part of a date
DATEPART( month, CURDATETIME() )
Any parameter
ROUND
Math
Number rounded to a length; negative length rounds left of the decimal
ROUND( numExpr, 2 )
Any parameter
FLOOR
Math
Greatest integer less than or equal to the value
FLOOR( numExpr )
Any parameter
CEILING
Math
Least integer greater than or equal to the value
CEILING( expr )
Any parameter
NEWGUID
Event context
A new GUID string
NEWGUID()
Any parameter
USERNAME
Event context
Logon ID of the user logging on or off
USERNAME()
SessionOnLogin, SessionOnLoginFailed, SessionOnLogout
CONFIGNAME
Event context
Configuration of the running event
CONFIGNAME()
Session events
EVENTNAME
Event context
Name of the event being processed
EVENTNAME()
Any handler
ORIGINATOR
Event context
User ID that started the event handler
ORIGINATOR()
Any handler
BODNOUN
BOD
Noun part of the BOD noun/verb pair
BODNOUN()
BOD events
BODVERB
BOD
Verb part of the BOD noun/verb pair
BODVERB()
BOD events
BODXML
BOD
XML string of the BOD
BODXML()
BOD events
SUBXML
BOD
XML string of the nodes selected by an XPath
SUBXML( BODXML(), extractionPath )
Any parameter that takes XML

Names follow the CSI 10.x 'About Event Action Parameter Functions' list; syntax follows each function's own help topic. Where the help gives only a syntax line, the example column shows that syntax rather than an invented example. Build expressions in the Event Action Expression Editor and click Check Syntax.

Get an expression checked

Paste an event action expression that will not pass Check Syntax or returns the wrong value and we will tell you which function or event mismatch is the cause.

Optional. The tool and every export work without this. No spam.

Was this tool useful?

How to use it

Filter by category to find the function family you need: variables and parameters, IDO and properties, strings, dates, math, event context or BOD. In SyteLine, open Event Actions, click Edit Parameters and use the Event Action Expression Editor: its Select a function field lists these functions and inserts them with the right brackets. You can type them into the Parameters field directly, but always click Check Syntax afterwards. The Works in column matters more than it looks: several functions silently return empty values or 0 when used on the wrong event.

Plain functions versus filter functions

E, V, GC, SV and P return typeless values that are fine for conditions and assignments. Their F versions (FE, FV, FGC, FSV, FP) return the value wrapped in quotes, or an unquoted NULL when empty, which is exactly what an IDO filter string needs. That is why a Load IDO Row filter is usually built with SUBSTITUTE and an F function, for example SUBSTITUTE("CustNum = {0}", FV("CustNum")). Using V there would produce CustNum = C000123 without quotes and the load fails or returns the wrong rows.

  • Conditions and assignments: E, V, GC, SV, P
  • Filters: FE, FV, FGC, FSV, FP and FILTERSTRING
  • Text that contains more grammar: the pre-parser functions TV and TGC

Worked example: credit hold change alert

On a handler for IdoOnItemUpdate applying to SLCustomers, give a Notify action the condition PROPERTYMODIFIED("CreditHold") so it only runs when credit hold changes. Build the subject with SUBSTITUTE("Credit hold changed for {0}", P("CustNum")) and the body with SUBSTITUTE("Changed by {0} at {1}", ORIGINATOR(), CURDATETIME()). ORIGINATOR is used here, not USERNAME, because USERNAME is documented for the session events. If the property might not be in the request, wrap the logic with PROPERTYAVAILABLE("CreditHold") first.

Gotchas

PROPERTY has three forms: P for item events, P2 with a row number for load collection events, and P3 with a result set name after Load IDO Collection. ROWS() with no argument only counts on IdoPostLoadCollection; ROWS(collection) counts a named result set. SUBSTITUTE zones must start at {0} and be consecutive. DATEADD, DATEDIFF and DATEPART follow T-SQL date parts, and DBFUNCTION is only available for database operations. Newer releases add functions; if a name here is missing from your editor, your release predates it.

Frequently Asked Questions

How do I pass custom parameters to a SyteLine event?

Define the parameters on the custom event, then fire it with a Generate Event action (or from code) and pass values for them. In the handler, read each one with E("ParamName"), or FE for use in a filter. Framework events pass their own fixed parameters, read with the matching functions such as P, METHOD or BODXML.

Why does my filter built with V() fail?

V returns the raw value without quotes, so a filter like CustNum = V("Cust") becomes an unquoted literal. Use FV, which returns the value as a quoted string or NULL, inside SUBSTITUTE to build the filter text. The same applies to E versus FE, GC versus FGC, SV versus FSV and P versus FP.

What does the pre-parser function TV do?

TV expands an event variable as plain text before the rest of the expression is parsed. Use it when the variable holds grammar elements, such as a shared expression or a group of functions, that must then be evaluated. TGC does the same for an event global constant.

Can I call a SQL function from an event action?

Yes, DBFUNCTION( functionName, arg1, arg2, ... ) calls a database function, and the help notes it is available only for database operations. For anything heavier, such as writing several tables, use a Call Database Method action against a stored procedure instead of a long expression.

If you want developers to ask questions about your SyteLine handlers and data in plain English on your own servers, we can set up a private assistant for that.

ArchRay builder
Design the on-prem AI stack for Infor SyteLine: model, GPUs, RAG pipeline, guardrails
See memory, speed and cost as you swap parts, then export the diagram. Free, in your browser.
Open the builder

Keep exploring

Free tools

ERP fixes and how-tos

Guides