The action progressively increases a value of the local control value _index by +1. It evaluates the expression find expression before each increasing of the value. If the expression gets the value @TRUE, the action is to be terminated and the control value _index contains the given value. If the expression is not to be evaluated successfully (invalid values, ...), the variable _retCode will contain the error type, otherwise _ERR_NO_ERROR. If the expression find expression does not get the value @TRUE within all permitted range, the value of the variable _index will be maxIndex+1 after the action termination.
It is necessary, to make the expression find expression dependent on a value of the control value. If not, the action generates the error _ERR_LOCAL_VAR_NFOUND.
As you can see in the example, the action may be taken advantage for searching structures.
Example
RECORD (SD.RecordDef) _struct
INT _index
INT _maxIndex
INT _retCode
....
; search for a row containing the text "hello" in the column Text
_index := 1 ; search from the first row
_maxIndex := _struct\DIM
FIND_TRUE _index, _maxIndex, _retCode, _struct[_index]^Text="hello"
IF _retCode # _ERR_NO_ERROR THEN
; the error retCode occurred in row index
ELSIF _index = _maxIndex+1 THEN
; required row not found
ELSE
; the row_index contains the text "hello" in the column Text
ENDIF