<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dafne.bi-services.sk/index.php?action=history&amp;feed=atom&amp;title=Operator</id>
	<title>Operator - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dafne.bi-services.sk/index.php?action=history&amp;feed=atom&amp;title=Operator"/>
	<link rel="alternate" type="text/html" href="https://wiki.dafne.bi-services.sk/index.php?title=Operator&amp;action=history"/>
	<updated>2026-10-23T20:25:42Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.4</generator>
	<entry>
		<id>https://wiki.dafne.bi-services.sk/index.php?title=Operator&amp;diff=71&amp;oldid=prev</id>
		<title>Dafne: Documentation import</title>
		<link rel="alternate" type="text/html" href="https://wiki.dafne.bi-services.sk/index.php?title=Operator&amp;diff=71&amp;oldid=prev"/>
		<updated>2026-08-06T13:36:47Z</updated>

		<summary type="html">&lt;p&gt;Documentation import&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;An &amp;#039;&amp;#039;&amp;#039;operator&amp;#039;&amp;#039;&amp;#039; is a notification target. Creating one does not by itself send anything: operators must be assigned to the tasks, groups or scenarios they should be notified about.&lt;br /&gt;
&lt;br /&gt;
== When notification is sent ==&lt;br /&gt;
When a task fails, notification is sent to the operators assigned to the failed [[Task]] &amp;#039;&amp;#039;&amp;#039;and&amp;#039;&amp;#039;&amp;#039; to the operators assigned to the [[Group]] it belongs to.&lt;br /&gt;
&lt;br /&gt;
Notification is sent only after the &amp;#039;&amp;#039;&amp;#039;last automatic attempt&amp;#039;&amp;#039;&amp;#039; has been exhausted. A task configured with retries therefore does not generate a notification on its first failure — only once all its attempts have failed. This is deliberate: it keeps transient failures that recover on retry from producing noise.&lt;br /&gt;
&lt;br /&gt;
Operators can also be assigned to a [[Scenario]] to be notified when it starts and when it finishes.&lt;br /&gt;
&lt;br /&gt;
== Attributes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Attribute !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; || Shown when assigning the operator to a task, group or scenario.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; || Free text.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Enabled&amp;#039;&amp;#039;&amp;#039; || Whether notification through this operator is sent at all.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;#039; || How the notification is delivered — see below.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Silent period&amp;#039;&amp;#039;&amp;#039; || A period in minutes during which no further notification is sent through this operator.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notification types ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Delivery&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Email&amp;#039;&amp;#039;&amp;#039; || Sent by email. Uses the sender, recipient and subject fields.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Database call&amp;#039;&amp;#039;&amp;#039; || Executed against a configured connection.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Command&amp;#039;&amp;#039;&amp;#039; || An operating system command is executed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For &amp;#039;&amp;#039;&amp;#039;Email&amp;#039;&amp;#039;&amp;#039;, the sender address, recipient address and subject are configured on the operator. For &amp;#039;&amp;#039;&amp;#039;Database call&amp;#039;&amp;#039;&amp;#039;, a connection is required.&lt;br /&gt;
&lt;br /&gt;
For &amp;#039;&amp;#039;&amp;#039;Command&amp;#039;&amp;#039;&amp;#039;, the command runs &amp;#039;&amp;#039;&amp;#039;in the same environment as the executor&amp;#039;&amp;#039;&amp;#039;, under the account the executor runs as. Anything the command needs — an available binary, a path, a credential — must be present there. When shell features such as redirection are required, invoke the shell explicitly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cmd /c echo abc &amp;gt; file.txt&amp;lt;/code&amp;gt; on Windows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sh -c &amp;quot;echo abc &amp;gt; file.txt&amp;quot;&amp;lt;/code&amp;gt; on Unix and Linux&lt;br /&gt;
&lt;br /&gt;
== The silent period ==&lt;br /&gt;
The silent period is tracked &amp;#039;&amp;#039;&amp;#039;per operator&amp;#039;&amp;#039;&amp;#039;, not per task. If two tasks fail within a short interval, only the first produces a notification.&lt;br /&gt;
&lt;br /&gt;
This is worth understanding before setting it. A long silent period on an operator covering many tasks will suppress notifications for unrelated failures, not just repeats of the same one. Where different areas should be able to alert independently, define separate operators rather than raising the silent period on a shared one.&lt;br /&gt;
&lt;br /&gt;
== Placeholders ==&lt;br /&gt;
The notification command may use placeholders identifying the failure. These are replaced before the command runs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Value&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%message%&amp;lt;/code&amp;gt; || The error message&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%taskid%&amp;lt;/code&amp;gt; || ID of the failed task&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%taskname%&amp;lt;/code&amp;gt; || Name of the failed task&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%groupid%&amp;lt;/code&amp;gt; || Group ID of the failed task&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%groupname%&amp;lt;/code&amp;gt; || Group name of the failed task&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%scenarioid%&amp;lt;/code&amp;gt; || Scenario ID&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%scenarioname%&amp;lt;/code&amp;gt; || Scenario name&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%processingid%&amp;lt;/code&amp;gt; || ID of the processing the failure occurred in&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%processingname%&amp;lt;/code&amp;gt; || Name of that processing&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%iteration%&amp;lt;/code&amp;gt; || Iteration code of the processing&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%date%&amp;lt;/code&amp;gt; || Processing date&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%date_n%&amp;lt;/code&amp;gt; || Processing date, numeric format &amp;#039;&amp;#039;YYYYMMDD&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%date_dt%&amp;lt;/code&amp;gt; || Processing date, timestamp format &amp;#039;&amp;#039;YYYY-MM-DD 00:00:00.000&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%processingstart_n%&amp;lt;/code&amp;gt; || Processing start time, format &amp;#039;&amp;#039;yyyyMMddHHmmss&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%execid%&amp;lt;/code&amp;gt; || Scheduled task ID&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%period%&amp;lt;/code&amp;gt; || Task period type (D=Daily, W=Weekly, M=Monthly)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%trynumber%&amp;lt;/code&amp;gt; || Attempt number within the processing&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%env%&amp;lt;/code&amp;gt; || Environment code (P=Prod, T=Test, D=Dev, U=UAT, S=SIT, O=Other1, Q=Other2)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Include &amp;lt;code&amp;gt;%message%&amp;lt;/code&amp;gt; — it is what makes an alert actionable, since the recipient can see what failed without opening the GUI. Include &amp;lt;code&amp;gt;%env%&amp;lt;/code&amp;gt; wherever the same definitions are deployed to several environments.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Task %taskname% failed on environment %env%: %message%&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Practical notes ==&lt;br /&gt;
* Test the notification when the operator is created rather than discovering at the first real failure that the command cannot run in the executor&amp;#039;s environment.&lt;br /&gt;
* Disabling an operator is the clean way to stop notifications during planned maintenance; it avoids unassigning and reassigning it afterwards.&lt;br /&gt;
* Assign operators at group level for broad coverage and at task level only where a specific task warrants its own recipient.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Task]]&lt;br /&gt;
* [[Group]]&lt;br /&gt;
* [[Handling failed tasks]]&lt;br /&gt;
* [[Placeholders]]&lt;/div&gt;</summary>
		<author><name>Dafne</name></author>
		
	</entry>
</feed>