OCLOperators PSEval
No edit summary
(Automatically adding template at the end of the page.)
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Makes it possible use oclPS in any OCL expression. Using this you can "reach into" the database from OCL and action-language (EAL)
The OCLOperator PSEval makes it possible to use oclPS in any OCL expression. Using this, you can "reach into" the database from OCL and action-language (EAL).


Expression template
Expression template:
  SomeClass.PSEval(<ps-expression>,maxfetch,offset,<dependon>)
  SomeClass.PSEval(<ps-expression>,maxfetch,offset,<dependon>)
'''Note!''' - PSEval don't subscribe on sets from db. To make the operator auto-updating, provide an expression in "dependon" that when changed should also rerun the PSEval expression. This can for example be a timer.
'''Note!''' PSEval doesn't subscribe to sets from DB. To make the operator auto-updating, provide an expression in "dependon" that, when changed, should also rerun the PSEval expression. This can, for example, be a timer.


Example
'''Note!''' Offset is 0-based.
 
Example:
  Uppdrag.PSEval(self.Uppdrag->select(u|u.Aktivt)->orderDescending(u|u.Startdatum),  1000, 0, self.Uppdrag)
  Uppdrag.PSEval(self.Uppdrag->select(u|u.Aktivt)->orderDescending(u|u.Startdatum),  1000, 0, self.Uppdrag)
For example this expression from a method having "userName" as a parameter
For example, this expression from a method has "userName" as a parameter:
  SysUser.PSEval(SysUser.allinstances->select(su|su.Username=userName),2,0,<nowiki>''</nowiki>)
  SysUser.PSEval(SysUser.allinstances->select(su|su.Username=userName),2,0,<nowiki>''</nowiki>)
Always remember that your SQL-server might also need indexes and other performance settings to be able to execute your expression efficient.
Always remember that your SQL-server might also need indexes and other performance settings to execute your expression efficiently.
 
'''Note!''' The offset parameter should almost always be 0, if not used to show a seconds page in a pagination or similar.


See also [[OCLOperators Sqlpassthrough|Sqlpassthrough]] , [[OCLOperators PSEvalValue|PSEvalValue]]
See also: [[OCLOperators Sqlpassthrough|Sqlpassthrough]], [[OCLOperators PSEvalValue|PSEvalValue]], [[OCLOperators PSEvalTuples|PSEvalTuples]]
[[Category:OCLOperators]]
[[Category:OCLOperators]]
{{Edited|July|12|2024}}

Latest revision as of 15:39, 10 February 2024

The OCLOperator PSEval makes it possible to use oclPS in any OCL expression. Using this, you can "reach into" the database from OCL and action-language (EAL).

Expression template:

SomeClass.PSEval(<ps-expression>,maxfetch,offset,<dependon>)

Note! PSEval doesn't subscribe to sets from DB. To make the operator auto-updating, provide an expression in "dependon" that, when changed, should also rerun the PSEval expression. This can, for example, be a timer.

Note! Offset is 0-based.

Example:

Uppdrag.PSEval(self.Uppdrag->select(u|u.Aktivt)->orderDescending(u|u.Startdatum),  1000, 0, self.Uppdrag)

For example, this expression from a method has "userName" as a parameter:

SysUser.PSEval(SysUser.allinstances->select(su|su.Username=userName),2,0,'')

Always remember that your SQL-server might also need indexes and other performance settings to execute your expression efficiently.

Note! The offset parameter should almost always be 0, if not used to show a seconds page in a pagination or similar.

See also: Sqlpassthrough, PSEvalValue, PSEvalTuples

This page was edited 74 days ago on 02/10/2024. What links here