company logo

body - request data for OSI POST

The body passed to an OSI request is a kind of expression that supports filtering, update operations and field mapping. The body for an OSI PUT request has the following syntax:

body := source [ fieldlist ]

source := operand | expr_code

fieldlist:= fassign '{' fielddef [fielddef_ext(*)] '}'

fassign:= '==>'

fielddef_ext := ',' fielddef

fielddef := name [assignment]

assignment := ':' body

name - is the name of a named_value in the JSON result string (see topic Values, formats and encoding below)

operand - is a syntax element defined in OSI BNF. Semantic details are described in ODABA Script Interface - OSI. An operand is either an access path consisting of property and function names separated by '.' or an expression (arithmetical, Boolean etc).

expr_code - is an inline OSI function containing any number of statements, variable declarations etc.

// operand examples

Persons   // extent name

Persons() // collection property

birth_day // property name

Persons(0).children(0).name // property path

Persons.count() // access path (consists of properties and operations)

Date.now - birth_day // expression

// expr_code example (with Person as calling object)

{

VARIABLES

  int(10,2)    income;

PROCESS

  children.top();

  while ( children.next() )

    income += children.income;

FINAL

  return(income);

}