<?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=Edit-notification</id>
	<title>Edit-notification - 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=Edit-notification"/>
	<link rel="alternate" type="text/html" href="https://wiki.dafne.bi-services.sk/index.php?title=Edit-notification&amp;action=history"/>
	<updated>2026-10-23T19:25:22Z</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=Edit-notification&amp;diff=86&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=Edit-notification&amp;diff=86&amp;oldid=prev"/>
		<updated>2026-08-06T13:36:50Z</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;A &amp;#039;&amp;#039;&amp;#039;notification&amp;#039;&amp;#039;&amp;#039; defines how and to whom an alert is delivered. It is referred to as an [[Operator]] elsewhere in the documentation and in the data model.&lt;br /&gt;
&lt;br /&gt;
Creating a notification does not send anything by itself. It must be assigned to a [[Task]], a [[Group]] or a [[Scenario]].&lt;br /&gt;
&lt;br /&gt;
== Creating a notification ==&lt;br /&gt;
# Open &amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039; → &amp;#039;&amp;#039;&amp;#039;Notifications&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Click the create button above the list.&lt;br /&gt;
# Choose the &amp;#039;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;#039; — this determines which further fields appear.&lt;br /&gt;
# Fill in the remaining fields and click &amp;#039;&amp;#039;&amp;#039;Save&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Common fields ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;ID&amp;#039;&amp;#039;&amp;#039; || Assigned automatically; read-only.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; || Mandatory and unique.&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;Silent period (min)&amp;#039;&amp;#039;&amp;#039; || 1–999999. A period during which no further notification is sent through this definition.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;#039; || Email, Database call or Command.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The silent period is tracked &amp;#039;&amp;#039;&amp;#039;per notification definition&amp;#039;&amp;#039;&amp;#039;, not per task. Two tasks failing in quick succession produce only the first alert. A long silent period on a definition covering many tasks will therefore suppress unrelated failures; where areas should alert independently, create separate definitions rather than raising the period on a shared one.&lt;br /&gt;
&lt;br /&gt;
== Type-specific fields ==&lt;br /&gt;
&lt;br /&gt;
=== Email ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Email from&amp;#039;&amp;#039;&amp;#039; || Sender address. Maximum 200 characters.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Email to&amp;#039;&amp;#039;&amp;#039; || Recipients, comma-separated. Maximum 2000 characters.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Subject&amp;#039;&amp;#039;&amp;#039; || Maximum 200 characters.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Mail body text&amp;#039;&amp;#039;&amp;#039; || The body of the message.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example body:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Task %taskname% failed on environment %env%&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Database call ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Connection&amp;#039;&amp;#039;&amp;#039; || The connection the statement runs through.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Statement&amp;#039;&amp;#039;&amp;#039; || The statement to execute.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;call spname (&amp;#039;par1&amp;#039;,&amp;#039;par2&amp;#039;)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Command ===&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Command&amp;#039;&amp;#039;&amp;#039; field holds an operating system command.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cmd /c &amp;quot;echo abc&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 it runs as. Anything it needs — a binary on the path, a credential — must be available there. Where 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;
== Placeholders ==&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Add variable&amp;#039;&amp;#039;&amp;#039; button lists the placeholders available in the subject, body, statement or command. They are replaced before the notification is sent.&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; || Task ID&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%taskname%&amp;lt;/code&amp;gt; || Task name&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%groupid%&amp;lt;/code&amp;gt; || Group ID&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%groupname%&amp;lt;/code&amp;gt; || Group name&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; || Processing ID&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%processingname%&amp;lt;/code&amp;gt; || Processing name&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%iteration%&amp;lt;/code&amp;gt; || Processing iteration name&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;
&amp;lt;code&amp;gt;%message%&amp;lt;/code&amp;gt; is the one that makes an alert actionable — include it so the recipient does not have to open the GUI to learn what failed. &amp;lt;code&amp;gt;%env%&amp;lt;/code&amp;gt; is worth including wherever the same definitions are deployed to several environments.&lt;br /&gt;
&lt;br /&gt;
== When notification is sent ==&lt;br /&gt;
On task failure, notification goes to the definitions assigned to the failed task &amp;#039;&amp;#039;&amp;#039;and&amp;#039;&amp;#039;&amp;#039; to those assigned to its group, and it is sent only after the &amp;#039;&amp;#039;&amp;#039;last automatic attempt&amp;#039;&amp;#039;&amp;#039; has failed. A task with retries configured therefore does not alert on its first failure.&lt;br /&gt;
&lt;br /&gt;
Scenarios additionally support a single &amp;#039;&amp;#039;&amp;#039;Notify start&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Notify finish&amp;#039;&amp;#039;&amp;#039;; see [[edit-scenario]].&lt;br /&gt;
&lt;br /&gt;
== Practical notes ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Test when you create it&amp;#039;&amp;#039;&amp;#039;, not at the first real failure. A command that cannot run in the executor&amp;#039;s environment fails silently from the operator&amp;#039;s point of view.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Disable rather than unassign&amp;#039;&amp;#039;&amp;#039; during planned maintenance — it avoids having to reassign afterwards.&lt;br /&gt;
* Assign at &amp;#039;&amp;#039;&amp;#039;group&amp;#039;&amp;#039;&amp;#039; 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;
* [[Operator]]&lt;br /&gt;
* [[Handling failed tasks]]&lt;br /&gt;
* [[Authoring items]]&lt;/div&gt;</summary>
		<author><name>Dafne</name></author>
		
	</entry>
</feed>