INNER EVENT in Coresuite Customize - Was bedeutet das ?
Heiko Merz
Hallo, nach einem Update auf die 3.8 gibt es eine Spalte "Inner Event" im Optimizer (zwischen Before Event und Form Mode).Was bedeutet diese ?
In einem Fall hat es beim Duplizieren einer Sales Order zu einer Endlosschleife geführt, bis ich dieses Inner Event deaktiviert habe.
Standardmäßig war bei allen Regeln Inner Event = true gesetzt.
Habe das jetzt bei allen Regeln deaktiviert.
Aber die Erläuterung in der Hilfe sagt mir nicht viel.
Was muss ich tun um zu prüfen, welche meiner > 250 Regeln einen Inner Event = true oder Inner Event = false benötigt, damit sie weiterhin funktionieren ???
Gruß
Heiko
Anders Olsson
Hello Heiko,This is how InnerEvent is explained in the SDK reference:
"True: The event was triggered by the application and not by end-user action.
For example, when an end-user clicks an entry in the main menu, the application initiates a menu event on the corresponding menu item. The InnerEvent property of this menu event is marked true because it was not triggered directly from the menu item, but internally from the main menu processing.
False: The event was triggered by end-user action."
In customize, when InnerEvent is ticked, the rule will execute when InnerEvent is true or false.
When it is not ticked, the rule will only execute when InnerEvent is false (that is, initiated by the user, not the application).
Before we added this checkbox, the rule would always execute (InnerEvent being true or false). So leaving it ticked (which is the default) corresponds to the old behaviour.
When creating an optimizer rule, it is possible to check for the InnerEvent in code. Sometimes you only want to execute code when the InnerEvent is false. This is how to do that:
if (!pVal.InnerEvent)
{
// Do things
}
In some circumstances this is necessary to avoid infinite loops, for example when a TextEdit validate rule updates the value in that same TextEdit.
Since it's so easy to do in code, why did we add this new column? The reason is EasyFunction rules. Since EasyFunction rules are triggered by Optimizer rules we needed a way to determine if a rule should be executed on InnerEvent to prevent infinite loops.
Of course, the checkbox can be used for any type of Optimizer rule to control this behaviour.
The checkbox is ticked by default because this is the typical scenario.
I hope this explains it.
Kind regards,
Anders Olsson
Heiko Merz
Hello Anders,thanks, that helped.
Kind regards,
Heiko
0
Please sign in to leave a comment.
Comments
0 comments