EDMIService: catch single table failing to be fetched

This commit is contained in:
Jonathan Jenne 2020-12-22 14:41:58 +01:00
parent 6a47fc6830
commit 9b10bc80e1

View File

@ -28,43 +28,48 @@ Public Class DatatableJob
Dim oCronDetails As DataTable = oMSSQL.GetDatatable(oCronSQL) Dim oCronDetails As DataTable = oMSSQL.GetDatatable(oCronSQL)
For Each oRow As DataRow In oCronDetails.Rows For Each oRow As DataRow In oCronDetails.Rows
Dim oDatatableName As String = NotNull(oRow.Item("DT_NAME"), String.Empty)
Dim oParentColumn As String = NotNull(oRow.Item("DT_COLUMN"), String.Empty)
Dim oChildColumn As String = NotNull(oRow.Item("CHILD_DT_COLUMN"), String.Empty)
Dim oConnectionId As Integer = NotNull(oRow.Item("CON_ID"), String.Empty) Dim oConnectionId As Integer = NotNull(oRow.Item("CON_ID"), String.Empty)
Dim oTitle As String = NotNull(oRow.Item("TITLE"), String.Empty) Dim oTitle As String = NotNull(oRow.Item("TITLE"), String.Empty)
Dim oSQL As String = NotNull(oRow.Item("COMMAND"), String.Empty) Dim oSQL As String = NotNull(oRow.Item("COMMAND"), String.Empty)
Dim oDatatableName As String = NotNull(oRow.Item("DT_NAME"), String.Empty)
oLogger.Debug("Running Command-Job [{0}]", oTitle) Try
oLogger.Debug("Datatable Name: {0}", oDatatableName) oLogger.Debug("Running Command-Job [{0}]", oTitle)
oLogger.Debug("Connection Id: {0}", oConnectionId) oLogger.Debug("Datatable Name: {0}", oDatatableName)
oLogger.Debug("Connection Id: {0}", oConnectionId)
Dim oConnectionString = oMSSQL.Get_ConnectionStringforID(oConnectionId) Dim oConnectionString = oMSSQL.Get_ConnectionStringforID(oConnectionId)
Dim oTable = oMSSQL.GetDatatableWithConnection(oSQL, oConnectionString) Dim oTable = oMSSQL.GetDatatableWithConnection(oSQL, oConnectionString)
oTable.TableName = oDatatableName oTable.TableName = oDatatableName
oLogger.Debug("Result Datatable [{0}] contains [{1}] rows", oTable.TableName, oTable.Rows.Count) oLogger.Debug("Result Datatable [{0}] contains [{1}] rows", oTable.TableName, oTable.Rows.Count)
Dim oResultTable = New JobResult.ResultTable() With { Dim oResultTable = New JobResult.ResultTable() With {
.Table = oTable, .Table = oTable,
.DetailRow = oRow .DetailRow = oRow
} }
Dim oChildTableNAme As String = NotNull(oRow.Item("CHILD_DT_NAME"), String.Empty) Dim oChildTableNAme As String = NotNull(oRow.Item("CHILD_DT_NAME"), String.Empty)
If oChildTableNAme <> String.Empty Then If oChildTableNAme <> String.Empty Then
Dim oParentColumn As String = NotNull(oRow.Item("DT_COLUMN"), String.Empty) oLogger.Debug("Child Datatable [{0}] defined, Relation: Parent [{1}] -> Child [{2}]", oChildTableNAme, oParentColumn, oChildColumn)
Dim oChildColumn As String = NotNull(oRow.Item("CHILD_DT_COLUMN"), String.Empty)
oLogger.Debug("Child Datatable [{0}] defined, Relation: Parent [{1}] -> Child [{2}]", oChildTableNAme, oParentColumn, oChildColumn)
Dim oChildTable As DataTable = oMSSQL.GetDatatableWithConnection($"SELECT * FROM {oChildTableNAme}", oConnectionString) Dim oChildTable As DataTable = oMSSQL.GetDatatableWithConnection($"SELECT * FROM {oChildTableNAme}", oConnectionString)
oChildTable.TableName = oChildTableNAme oChildTable.TableName = oChildTableNAme
oLogger.Debug("Child Datatable [{0}] contains [{1}] rows", oChildTable.TableName, oChildTable.Rows.Count) oLogger.Debug("Child Datatable [{0}] contains [{1}] rows", oChildTable.TableName, oChildTable.Rows.Count)
oResultTable.ChildTable = oChildTable oResultTable.ChildTable = oChildTable
oResultTable.ChildRelationColumn = oChildColumn oResultTable.ChildRelationColumn = oChildColumn
oResultTable.TableRelationColumn = oParentColumn oResultTable.TableRelationColumn = oParentColumn
End If End If
oLogger.Info("Fetched Datatable [{0}]", oDatatableName) oLogger.Info("Fetched Datatable [{0}]", oDatatableName)
oResult.Tables.Add(oResultTable) oResult.Tables.Add(oResultTable)
Catch ex As Exception
oLogger.Warn("Execute: Error while saving Table: [{0}]", oDatatableName)
oLogger.Error(ex)
End Try
Next Next
' Das Ergebnis speichern ' Das Ergebnis speichern
@ -72,7 +77,7 @@ Public Class DatatableJob
Catch ex As Exception Catch ex As Exception
oLogger.Error(ex) oLogger.Error(ex)
oLogger.Warn("Unhandled exception while executing SQL for Datatable {0}", oCronJobTitle) oLogger.Warn("Execute: Unhandled exception while executing SQL for Datatable {0}", oCronJobTitle)
End Try End Try
Return Task.FromResult(True) Return Task.FromResult(True)