email success / complete package run

This commit is contained in:
John Mulhall 2026-08-17 09:06:23 -04:00
parent c06c9a8922
commit e68d9543c6

View file

@ -11,8 +11,8 @@
DTS:LocaleID="1033" DTS:LocaleID="1033"
DTS:ObjectName="OmnicellHourlyImport" DTS:ObjectName="OmnicellHourlyImport"
DTS:PackageType="5" DTS:PackageType="5"
DTS:VersionBuild="47" DTS:VersionBuild="53"
DTS:VersionGUID="{622968C8-7E27-4AEA-8260-7082AF9CFE10}"> DTS:VersionGUID="{9F3CF7B9-1A07-4607-BC31-ED25D13225F1}">
<DTS:Property <DTS:Property
DTS:Name="PackageFormatVersion">8</DTS:Property> DTS:Name="PackageFormatVersion">8</DTS:Property>
<DTS:ConnectionManagers> <DTS:ConnectionManagers>
@ -210,6 +210,30 @@
</DTS:Variable> </DTS:Variable>
</DTS:Variables> </DTS:Variables>
<DTS:Executables> <DTS:Executables>
<DTS:Executable
DTS:refId="Package\Complete Package Run"
DTS:CreationName="Microsoft.ExecuteSQLTask"
DTS:Description="Execute SQL Task"
DTS:DTSID="{B0235D8E-85D5-42C7-9451-6405BECEE9C0}"
DTS:ExecutableType="Microsoft.ExecuteSQLTask"
DTS:LocaleID="-1"
DTS:ObjectName="Complete Package Run"
DTS:TaskContact="Execute SQL Task; Microsoft Corporation; SQL Server 2025; © 2025 Microsoft Corporation; All Rights Reserved;http://www.microsoft.com/sql/support/default.asp;1"
DTS:ThreadHint="0">
<DTS:Variables />
<DTS:ObjectData>
<SQLTask:SqlTaskData
SQLTask:Connection="{E127B9A7-A354-4612-81E9-D2666DB7A028}"
SQLTask:SqlStatementSource="DECLARE @run_id bigint = ?;&#xA;&#xA;UPDATE pr&#xA;SET&#xA; ended_at = SYSDATETIME(),&#xA;&#xA; files_found =&#xA; (&#xA; SELECT COUNT(*)&#xA; FROM etl.file_load AS fl&#xA; WHERE fl.run_id = @run_id&#xA; ),&#xA;&#xA; files_processed =&#xA; (&#xA; SELECT COUNT(*)&#xA; FROM etl.file_load AS fl&#xA; WHERE fl.run_id = @run_id&#xA; AND fl.status = 'COMPLETE'&#xA; ),&#xA;&#xA; rows_read =&#xA; (&#xA; SELECT COALESCE(SUM(fl.source_row_count), 0)&#xA; FROM etl.file_load AS fl&#xA; WHERE fl.run_id = @run_id&#xA; ),&#xA;&#xA; rows_sqlserver =&#xA; (&#xA; SELECT COALESCE(SUM(fl.sqlserver_row_count), 0)&#xA; FROM etl.file_load AS fl&#xA; WHERE fl.run_id = @run_id&#xA; ),&#xA;&#xA; rows_postgresql =&#xA; (&#xA; SELECT COALESCE(SUM(fl.postgresql_row_count), 0)&#xA; FROM etl.file_load AS fl&#xA; WHERE fl.run_id = @run_id&#xA; ),&#xA;&#xA; status =&#xA; CASE&#xA; WHEN NOT EXISTS&#xA; (&#xA; SELECT 1&#xA; FROM etl.file_load AS fl&#xA; WHERE fl.run_id = @run_id&#xA; )&#xA; THEN 'NO_FILES'&#xA; ELSE 'COMPLETE'&#xA; END,&#xA;&#xA; error_message = NULL&#xA;&#xA;FROM etl.package_run AS pr&#xA;WHERE pr.run_id = @run_id;" xmlns:SQLTask="www.microsoft.com/sqlserver/dts/tasks/sqltask">
<SQLTask:ParameterBinding
SQLTask:ParameterName="0"
SQLTask:DtsVariableName="User::RunID"
SQLTask:ParameterDirection="Input"
SQLTask:DataType="20"
SQLTask:ParameterSize="-1" />
</SQLTask:SqlTaskData>
</DTS:ObjectData>
</DTS:Executable>
<DTS:Executable <DTS:Executable
DTS:refId="Package\Process Omnicell Files" DTS:refId="Package\Process Omnicell Files"
DTS:CreationName="STOCK:FOREACHLOOP" DTS:CreationName="STOCK:FOREACHLOOP"
@ -237,6 +261,26 @@
</DTS:ForEachEnumerator> </DTS:ForEachEnumerator>
<DTS:Variables /> <DTS:Variables />
<DTS:Executables> <DTS:Executables>
<DTS:Executable
DTS:refId="Package\Process Omnicell Files\Archive Processed File"
DTS:CreationName="Microsoft.FileSystemTask"
DTS:Description="File System Task"
DTS:DTSID="{DA568470-D03A-4FCE-908B-6E54DDBC6035}"
DTS:ExecutableType="Microsoft.FileSystemTask"
DTS:LocaleID="-1"
DTS:ObjectName="Archive Processed File"
DTS:TaskContact="File System Task;Microsoft Corporation; SQL Server 2025; © 2025 Microsoft Corporation; All Rights Reserved;http://www.microsoft.com/sql/support/default.asp;1"
DTS:ThreadHint="0">
<DTS:Variables />
<DTS:ObjectData>
<FileSystemData
TaskOperationType="MoveFile"
TaskSourcePath="User::CurrentFilePath"
TaskIsSourceVariable="True"
TaskDestinationPath="User::ArchiveFilePath"
TaskIsDestinationVariable="True" />
</DTS:ObjectData>
</DTS:Executable>
<DTS:Executable <DTS:Executable
DTS:refId="Package\Process Omnicell Files\Finalize SQL Server File" DTS:refId="Package\Process Omnicell Files\Finalize SQL Server File"
DTS:CreationName="Microsoft.ExecuteSQLTask" DTS:CreationName="Microsoft.ExecuteSQLTask"
@ -3205,6 +3249,36 @@ ORDER BY omnicell_transaction_id;</property>
</pipeline> </pipeline>
</DTS:ObjectData> </DTS:ObjectData>
</DTS:Executable> </DTS:Executable>
<DTS:Executable
DTS:refId="Package\Process Omnicell Files\Mark File Archived"
DTS:CreationName="Microsoft.ExecuteSQLTask"
DTS:Description="Execute SQL Task"
DTS:DTSID="{7F2A8271-D5F2-40CD-9BF0-E4B8A3057FA7}"
DTS:ExecutableType="Microsoft.ExecuteSQLTask"
DTS:LocaleID="-1"
DTS:ObjectName="Mark File Archived"
DTS:TaskContact="Execute SQL Task; Microsoft Corporation; SQL Server 2025; © 2025 Microsoft Corporation; All Rights Reserved;http://www.microsoft.com/sql/support/default.asp;1"
DTS:ThreadHint="0">
<DTS:Variables />
<DTS:ObjectData>
<SQLTask:SqlTaskData
SQLTask:Connection="{E127B9A7-A354-4612-81E9-D2666DB7A028}"
SQLTask:SqlStatementSource="UPDATE etl.file_load&#xA;SET&#xA; archived_at = SYSDATETIME(),&#xA; archive_path = ?,&#xA; status = 'COMPLETE'&#xA;WHERE file_load_id = ?;" xmlns:SQLTask="www.microsoft.com/sqlserver/dts/tasks/sqltask">
<SQLTask:ParameterBinding
SQLTask:ParameterName="0"
SQLTask:DtsVariableName="User::ArchiveFilePath"
SQLTask:ParameterDirection="Input"
SQLTask:DataType="130"
SQLTask:ParameterSize="-1" />
<SQLTask:ParameterBinding
SQLTask:ParameterName="1"
SQLTask:DtsVariableName="User::FileLoadID"
SQLTask:ParameterDirection="Input"
SQLTask:DataType="20"
SQLTask:ParameterSize="1000" />
</SQLTask:SqlTaskData>
</DTS:ObjectData>
</DTS:Executable>
<DTS:Executable <DTS:Executable
DTS:refId="Package\Process Omnicell Files\Prepare Current File" DTS:refId="Package\Process Omnicell Files\Prepare Current File"
DTS:CreationName="Microsoft.ScriptTask" DTS:CreationName="Microsoft.ScriptTask"
@ -4037,6 +4111,22 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</BinaryItem>
DTS:LogicalAnd="True" DTS:LogicalAnd="True"
DTS:ObjectName="Constraint 4" DTS:ObjectName="Constraint 4"
DTS:To="Package\Process Omnicell Files\Verify PostgresQL Load" /> DTS:To="Package\Process Omnicell Files\Verify PostgresQL Load" />
<DTS:PrecedenceConstraint
DTS:refId="Package\Process Omnicell Files.PrecedenceConstraints[Constraint 5]"
DTS:CreationName=""
DTS:DTSID="{D43F5807-1C71-4F4A-BAF0-609AA9F39530}"
DTS:From="Package\Process Omnicell Files\Verify PostgresQL Load"
DTS:LogicalAnd="True"
DTS:ObjectName="Constraint 5"
DTS:To="Package\Process Omnicell Files\Archive Processed File" />
<DTS:PrecedenceConstraint
DTS:refId="Package\Process Omnicell Files.PrecedenceConstraints[Constraint 6]"
DTS:CreationName=""
DTS:DTSID="{D8A5126A-2CC8-4C8F-B593-6A3F69E421E4}"
DTS:From="Package\Process Omnicell Files\Archive Processed File"
DTS:LogicalAnd="True"
DTS:ObjectName="Constraint 6"
DTS:To="Package\Process Omnicell Files\Mark File Archived" />
</DTS:PrecedenceConstraints> </DTS:PrecedenceConstraints>
<DTS:ForEachVariableMappings> <DTS:ForEachVariableMappings>
<DTS:ForEachVariableMapping <DTS:ForEachVariableMapping
@ -4102,6 +4192,14 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</BinaryItem>
DTS:LogicalAnd="True" DTS:LogicalAnd="True"
DTS:ObjectName="Constraint" DTS:ObjectName="Constraint"
DTS:To="Package\Process Omnicell Files" /> DTS:To="Package\Process Omnicell Files" />
<DTS:PrecedenceConstraint
DTS:refId="Package.PrecedenceConstraints[Constraint 1]"
DTS:CreationName=""
DTS:DTSID="{10DA7BE7-EBB6-4712-8F21-8D795494B945}"
DTS:From="Package\Process Omnicell Files"
DTS:LogicalAnd="True"
DTS:ObjectName="Constraint 1"
DTS:To="Package\Complete Package Run" />
</DTS:PrecedenceConstraints> </DTS:PrecedenceConstraints>
<DTS:DesignTimeProperties><![CDATA[<?xml version="1.0"?> <DTS:DesignTimeProperties><![CDATA[<?xml version="1.0"?>
<!--This CDATA section contains the layout information of the package. The section includes information such as (x,y) coordinates, width, and height.--> <!--This CDATA section contains the layout information of the package. The section includes information such as (x,y) coordinates, width, and height.-->
@ -4114,7 +4212,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</BinaryItem>
design-time-name="Package"> design-time-name="Package">
<LayoutInfo> <LayoutInfo>
<GraphLayout <GraphLayout
Capacity="16" xmlns="clr-namespace:Microsoft.SqlServer.IntegrationServices.Designer.Model.Serialization;assembly=Microsoft.SqlServer.IntegrationServices.Graph" xmlns:mssgle="clr-namespace:Microsoft.SqlServer.Graph.LayoutEngine;assembly=Microsoft.SqlServer.Graph" xmlns:assembly="http://schemas.microsoft.com/winfx/2006/xaml"> Capacity="32" xmlns="clr-namespace:Microsoft.SqlServer.IntegrationServices.Designer.Model.Serialization;assembly=Microsoft.SqlServer.IntegrationServices.Graph" xmlns:mssgle="clr-namespace:Microsoft.SqlServer.Graph.LayoutEngine;assembly=Microsoft.SqlServer.Graph" xmlns:assembly="http://schemas.microsoft.com/winfx/2006/xaml">
<NodeLayout <NodeLayout
Size="189,42" Size="189,42"
Id="Package\Process Omnicell Files\Finalize SQL Server File" Id="Package\Process Omnicell Files\Finalize SQL Server File"
@ -4226,21 +4324,109 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</BinaryItem>
<NodeLayout <NodeLayout
Size="210,42" Size="210,42"
Id="Package\Process Omnicell Files\Verify PostgresQL Load" Id="Package\Process Omnicell Files\Verify PostgresQL Load"
TopLeft="78.5,436.75" /> TopLeft="181.5,435.75" />
<EdgeLayout <EdgeLayout
Id="Package\Process Omnicell Files.PrecedenceConstraints[Constraint 4]" Id="Package\Process Omnicell Files.PrecedenceConstraints[Constraint 4]"
TopLeft="181,400"> TopLeft="178.5,400">
<EdgeLayout.Curve> <EdgeLayout.Curve>
<mssgle:Curve <mssgle:Curve
StartConnector="{assembly:Null}" StartConnector="{assembly:Null}"
EndConnector="0,36.7500000000002" EndConnector="74.3333333333333,35.7500000000002"
Start="0,0" Start="0,0"
End="0,29.2500000000002"> End="74.3333333333333,28.2500000000002">
<mssgle:Curve.Segments> <mssgle:Curve.Segments>
<mssgle:SegmentCollection <mssgle:SegmentCollection
Capacity="5"> Capacity="5">
<mssgle:LineSegment <mssgle:LineSegment
End="0,29.2500000000002" /> End="0,17.287807183365" />
<mssgle:CubicBezierSegment
Point1="0,17.287807183365"
Point2="0,21.287807183365"
Point3="4,21.287807183365" />
<mssgle:LineSegment
End="70.3333333333333,21.287807183365" />
<mssgle:CubicBezierSegment
Point1="70.3333333333333,21.287807183365"
Point2="74.3333333333333,21.287807183365"
Point3="74.3333333333333,25.287807183365" />
<mssgle:LineSegment
End="74.3333333333333,28.2500000000002" />
</mssgle:SegmentCollection>
</mssgle:Curve.Segments>
</mssgle:Curve>
</EdgeLayout.Curve>
<EdgeLayout.Labels>
<EdgeLabelCollection />
</EdgeLayout.Labels>
</EdgeLayout>
<NodeLayout
Size="183,42"
Id="Package\Process Omnicell Files\Archive Processed File"
TopLeft="434.714285714286,34.5714285714286" />
<EdgeLayout
Id="Package\Process Omnicell Files.PrecedenceConstraints[Constraint 5]"
TopLeft="320.166666666667,435.75">
<EdgeLayout.Curve>
<mssgle:Curve
StartConnector="{assembly:Null}"
EndConnector="206.047619047619,-359.178571428572"
Start="0,0"
End="206.047619047619,-351.678571428572">
<mssgle:Curve.Segments>
<mssgle:SegmentCollection
Capacity="5">
<mssgle:LineSegment
End="0,-141.300972184715" />
<mssgle:CubicBezierSegment
Point1="0,-141.300972184715"
Point2="0,-145.300972184715"
Point3="4,-145.300972184715" />
<mssgle:LineSegment
End="202.047619047619,-145.300972184715" />
<mssgle:CubicBezierSegment
Point1="202.047619047619,-145.300972184715"
Point2="206.047619047619,-145.300972184715"
Point3="206.047619047619,-149.300972184715" />
<mssgle:LineSegment
End="206.047619047619,-351.678571428572" />
</mssgle:SegmentCollection>
</mssgle:Curve.Segments>
</mssgle:Curve>
</EdgeLayout.Curve>
<EdgeLayout.Labels>
<EdgeLabelCollection />
</EdgeLayout.Labels>
</EdgeLayout>
<NodeLayout
Size="165,42"
Id="Package\Process Omnicell Files\Mark File Archived"
TopLeft="537,112" />
<EdgeLayout
Id="Package\Process Omnicell Files.PrecedenceConstraints[Constraint 6]"
TopLeft="555.380952380952,76.5714285714286">
<EdgeLayout.Curve>
<mssgle:Curve
StartConnector="{assembly:Null}"
EndConnector="64.1190476190476,35.4285714285714"
Start="0,0"
End="64.1190476190476,27.9285714285714">
<mssgle:Curve.Segments>
<mssgle:SegmentCollection
Capacity="5">
<mssgle:LineSegment
End="0,10.3556724965176" />
<mssgle:CubicBezierSegment
Point1="0,10.3556724965176"
Point2="0,14.3556724965176"
Point3="4,14.3556724965176" />
<mssgle:LineSegment
End="60.1190476190476,14.3556724965176" />
<mssgle:CubicBezierSegment
Point1="60.1190476190476,14.3556724965176"
Point2="64.1190476190476,14.3556724965176"
Point3="64.1190476190476,18.3556724965176" />
<mssgle:LineSegment
End="64.1190476190476,27.9285714285714" />
</mssgle:SegmentCollection> </mssgle:SegmentCollection>
</mssgle:Curve.Segments> </mssgle:Curve.Segments>
</mssgle:Curve> </mssgle:Curve>
@ -4252,8 +4438,8 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</BinaryItem>
<ContainerLayout <ContainerLayout
HeaderHeight="43" HeaderHeight="43"
IsExpanded="True" IsExpanded="True"
PanelSize="336,535" PanelSize="1173,539"
Size="336,578" Size="1173,582"
Id="Package\Process Omnicell Files" Id="Package\Process Omnicell Files"
TopLeft="224,164" /> TopLeft="224,164" />
<NodeLayout <NodeLayout
@ -4266,18 +4452,68 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</BinaryItem>
TopLeft="39,50" /> TopLeft="39,50" />
<EdgeLayout <EdgeLayout
Id="Package.PrecedenceConstraints[Constraint]" Id="Package.PrecedenceConstraints[Constraint]"
TopLeft="393,93"> TopLeft="394,93">
<EdgeLayout.Curve> <EdgeLayout.Curve>
<mssgle:Curve <mssgle:Curve
StartConnector="{assembly:Null}" StartConnector="{assembly:Null}"
EndConnector="0,71" EndConnector="416.5,71"
Start="0,0" Start="0,0"
End="0,63.5"> End="416.5,63.5">
<mssgle:Curve.Segments> <mssgle:Curve.Segments>
<mssgle:SegmentCollection <mssgle:SegmentCollection
Capacity="5"> Capacity="5">
<mssgle:LineSegment <mssgle:LineSegment
End="0,63.5" /> End="0,31.5" />
<mssgle:CubicBezierSegment
Point1="0,31.5"
Point2="0,35.5"
Point3="4,35.5" />
<mssgle:LineSegment
End="412.5,35.5" />
<mssgle:CubicBezierSegment
Point1="412.5,35.5"
Point2="416.5,35.5"
Point3="416.5,39.5" />
<mssgle:LineSegment
End="416.5,63.5" />
</mssgle:SegmentCollection>
</mssgle:Curve.Segments>
</mssgle:Curve>
</EdgeLayout.Curve>
<EdgeLayout.Labels>
<EdgeLabelCollection />
</EdgeLayout.Labels>
</EdgeLayout>
<NodeLayout
Size="187,42"
Id="Package\Complete Package Run"
TopLeft="760,784.444444444444" />
<EdgeLayout
Id="Package.PrecedenceConstraints[Constraint 1]"
TopLeft="810.5,746">
<EdgeLayout.Curve>
<mssgle:Curve
StartConnector="{assembly:Null}"
EndConnector="43.0000000000001,38.4444444444445"
Start="0,0"
End="43.0000000000001,30.9444444444445">
<mssgle:Curve.Segments>
<mssgle:SegmentCollection
Capacity="5">
<mssgle:LineSegment
End="0,15.2222222222222" />
<mssgle:CubicBezierSegment
Point1="0,15.2222222222222"
Point2="0,19.2222222222222"
Point3="4,19.2222222222222" />
<mssgle:LineSegment
End="39.0000000000001,19.2222222222222" />
<mssgle:CubicBezierSegment
Point1="39.0000000000001,19.2222222222222"
Point2="43.0000000000001,19.2222222222222"
Point3="43.0000000000001,23.2222222222222" />
<mssgle:LineSegment
End="43.0000000000001,30.9444444444445" />
</mssgle:SegmentCollection> </mssgle:SegmentCollection>
</mssgle:Curve.Segments> </mssgle:Curve.Segments>
</mssgle:Curve> </mssgle:Curve>