Hallo,
ich versuche mich seit längerem an einer Nachrichtendefinition, welche ich stündlich laufen möchte. Diese soll FEHLGESCHLAGENE Jobs (Status 3) melden.
Leider scheitere ich nicht an der Basic, aber: ich möchte die Fehlerinfo aus der Jobzusammenfassung mitgeben zur Analyse!
Ansonsten wäre evtl. auch eine Option sinnvoll, die fehlgeschlagene Jobs als Systemstandard meldet (Trigger?!), Optional wählbar nach Status 1,2,3.
Danke an die Entwicklung für die Prüfung, denke das ist doch recht schnell umsetzbar (zumindest Nachrichtendefintion).
Frank Oehlschlägel
"Docusnap-MVP since 2020",
Technical Leader, Senior Consultant & Partnermanager Docusnap @ SVA System Vertrieb Alexander GmbH
Mal mein derzeitiges Example:
Select
ACCA.AccountName AS Tanent,
SCHE.ScheduleName AS Jobname,
DOMA.DomainName AS Domain,
CAST(SUMM.ExecutionData AS DATETIME2(0)) AS lastRuntime,
CAST(ZEIT.Tage AS VARCHAR(10)) + ' Days, ' +
RIGHT('00' + CAST(ZEIT.Stunden AS VARCHAR(2)),2) + ' Hours, ' +
RIGHT('00' + CAST(ZEIT.Minuten AS VARCHAR(2)),2) + ' Minutes, ' +
RIGHT('00' + CAST(ZEIT.Sekunden AS VARCHAR(2)),2) + ' Seconds' AS RequiredTime,
CAST(SCHE.ModificationDate AS DATETIME2(0)) AS LastModifydate
from tSysSchedules SCHE
INNER JOIN tDomains DOMA ON DOMA.DomainID = SCHE.Domains
INNER JOIN tAccounts ACCA ON ACCA.AccountID = SCHE.AccountID
OUTER APPLY (
SELECT TOP 1
SUSS.ExecutionData,
SUSS.RequiredTime,
SUSS.ScheduleSummaryID
FROM tSysScheduleSummary SUSS
WHERE SUSS.ScheduleID = SCHE.ScheduleID
ORDER BY SUSS.ScheduleSummaryID DESC
) SUMM
OUTER APPLY (
SELECT
CASE
WHEN SUMM.RequiredTime IS NULL THEN NULL
WHEN SUMM.RequiredTime = 0 THEN 0
ELSE (SUMM.RequiredTime + 999) / 1000
END AS GesamtSekunden
) SEK
OUTER APPLY (
SELECT
SEK.GesamtSekunden / 86400 AS Tage,
(SEK.GesamtSekunden % 86400) / 3600 AS Stunden,
(SEK.GesamtSekunden % 3600) / 60 AS Minuten,
SEK.GesamtSekunden % 60 AS Sekunden
) ZEIT
Where SCHE.JobResult = 3
AND SCHE.RepeatValue = 1
AND SCHE.Stopped = 0