Errors during Execution: Unterschied zwischen den Versionen

Aus expecco Wiki (Version 2.x)
Zur Navigation springen Zur Suche springen
Zeile 3: Zeile 3:


== Execution Errors ==
== Execution Errors ==

=== No value for input "%1" of step "%2" ===

A step's input pin has no input data. This happens if a step was started and a required input
pin is missing. Notice, that this error is triggered only when a step-activity was triggered due to either the autostart flag (of the step) or by a trigger input value, or if the pin is non-triggering and another pin caused the trigger. And when the step's action accesses the input pin's data value.

In an elementary action, you can check for a pin to have received a value via the "<code>pin.hasValue()</code>" query.
Fix:
* provide an input value either by:
* setting a default value for the pin in the step's action-block definition (the schema)
* giving the step's pin a freeze value (constant)
* connecting the step's input pin to another step's output pin or one of the compound action's inputs
* checking for the presence of a value (in an elementary block)
* change the pin type to "''parameter-pin''"


=== "telegram-data for non-triggering pin "x" of inactive step "Y" ===
=== "telegram-data for non-triggering pin "x" of inactive step "Y" ===

Version vom 29. März 2019, 07:21 Uhr

During execution, errors might be generated from various places. Common errors and how to deal with them is documented here.

Execution Errors[Bearbeiten]

No value for input "%1" of step "%2"[Bearbeiten]

A step's input pin has no input data. This happens if a step was started and a required input pin is missing. Notice, that this error is triggered only when a step-activity was triggered due to either the autostart flag (of the step) or by a trigger input value, or if the pin is non-triggering and another pin caused the trigger. And when the step's action accesses the input pin's data value.

In an elementary action, you can check for a pin to have received a value via the "pin.hasValue()" query. Fix:

  • provide an input value either by:
  • setting a default value for the pin in the step's action-block definition (the schema)
  • giving the step's pin a freeze value (constant)
  • connecting the step's input pin to another step's output pin or one of the compound action's inputs
  • checking for the presence of a value (in an elementary block)
  • change the pin type to "parameter-pin"

"telegram-data for non-triggering pin "x" of inactive step "Y"[Bearbeiten]

A telegram input pin (also called "mailbox pin") received a value after the step has already finished its execution. This is reported for non-triggering pins only - if it was triggering, a new activity would have been started. However, as the pin is non-triggering, the value is lost and there is noone to handle it.


Fix:

  • check if a mailbox pin is really required
  • either make sure that the input pin receives its value earlier (i.e. while the step is still being executed),
  • or set the "ignore exception" behavior of the target step,
  • or add an exception output pin to the target step, to divert the control flow as required. Notice, that this creates a strange situation, in that both any trigger-output AND its exception output pins may get a trigger value However, the exception would be "magically" written later, without the step being actually active. Also, this exception output might trigger multiple times.



Copyright © 2014-2024 eXept Software AG