我想在每周运行的SSIS包中使用以下查询。所有这些查询都是截断表PlanFinder.InvalidAwps并使用新的无效记录加载它。现在,如果在invalidAwps表中找到任何无效记录,如何在SSIS包中使用此查询来发送电子邮件?我可以使用执行sql任务但不知道如果在InvalidAwps表中找到任何无效记录,包将如何发送电子邮件。
truncate table [PlanFinder].[InvalidAwps]
go
insert into [PlanFinder].[InvalidAwps]
(Ndc, AwpUnitCost)
SELECT DISTINCT P.Ndc Ndc, A.Price AwpUnitCost
FROM
PlanFinder.PlanFinder.HpmsFormulary P
LEFT JOIN (SELECT Ndc, Price FROM MHSQL01D.Drug.FdbPricing.vNdcPrices
WHERE PriceTypeCode = '01' AND CurrentFlag = 1) A
ON P.Ndc = A.Ndc
WHERE (A.Ndc IS NULL OR A.Price <= 0 OR A.Price IS NULL)
AND p.Ndc IS NOT NULL
答案 0 :(得分:1)
我为自定义日志条目(错误)做了类似的事情,只需在我的包的末尾有一个任务收集错误并将它们转储到文本文件,然后发送文件。
假设您要包含无效记录列表,可以使用数据流任务将InvalidAwps中的行导出到平面文件(例如here),然后使用“发送电子邮件”任务发送文件作为附件。如果您的数据流任务使用行计数组件将计数存储到变量中,您可以将其用作不发送电子邮件的条件(如果计数为零)。
或者,如果您想为每条记录发送单独的电子邮件,则可以使用for-each循环,如this example中所示。
答案 1 :(得分:0)
根据您的要求,您将截断现有表,然后使用您的逻辑将新记录插入表中。
我不确定您如何将记录视为无效记录。对于此任务,我们将无效记录视为插入失败的记录。
在失败情况下,我们需要发送电子邮件。在控制流程中,将您的逻辑代码放在一个SQL任务中,如果该任务失败,请使用发送电子邮件任务,并将所需的电子邮件发送到派生或变量。