CAHORE-Shop
Aktives Mitglied
Guten Morgen!
ich habe gerade einen Bug festgestellt, der sich während/nach dem exportieren einer Tabelle ereignet hat.
Hier noch der Errorlog:
Unbehandelte Ausnahme #12E84FFFDB7AEAD0 vom Typ System.IO.IOException in Void WinIOError(Int32, System.String)
System.IO.IOException: Der Prozess kann nicht auf die Datei "C:\Users\^1\Desktop\mahnliste.csv" zugreifen, da sie von einem anderen Prozess verwendet wird.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
bei System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
bei System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
bei System.IO.StreamWriter..ctor(String path)
bei jtlControls.jtlListViewEx.jtlListViewExExportFormate.btnCSV_Click(Object sender, EventArgs e)
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
2017-01-19T08:23:43 DEBUG - [SQL] Dauer: 20ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT * FROM [eazybusiness].[dbo].[tbenutzer]
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 0ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT * FROM [tZahlungsart] WHERE [nMahnwesenAktiv] = @nMahnwesenAktiv
@nMahnwesenAktiv = 1
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 0ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT * FROM tListViewExHeader
WHERE nListViewId = @nListViewId
AND ((kBenutzer = @kBenutzer) OR (kBenutzer = 0))
AND ((cRechnername = @cRechnername) OR ((cRechnername = '') OR (cRechnername IS NULL)))
AND (CASE WHEN kBenutzer > 0 THEN 2 ELSE 0 END +
CASE WHEN cRechnername = '' OR cRechnername IS NULL THEN 0 ELSE 1 END) = (SELECT
MAX(CASE WHEN kBenutzer > 0 THEN 2 ELSE 0 END +
CASE WHEN cRechnername = '' OR cRechnername IS NULL THEN 0 ELSE 1 END)
FROM tListViewExHeader
WHERE nListViewId = @nListViewId
AND ((kBenutzer = @kBenutzer) OR (kBenutzer = 0))
AND ((cRechnername = @cRechnername) OR ((cRechnername = '') OR (cRechnername IS NULL))))
nListViewId = 386,
kBenutzer = 4,
cRechnername = 'CAHORE-PC5'
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 0ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT cWert FROM [tUserClientLayout] WHERE kBenutzer=@kBenutzer AND cRechnername = @cRechnername AND cName = @cName
@kBenutzer = 4,
@cRechnername = 'CAHORE-PC5',
@cName = 'jtlCore.Forms.Mahnwesen.MahnlaufMahnlaufView'
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 1ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT * FROM [tMahnstufe]
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 0ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT COUNT(*) FROM
(
SELECT TOP 100 PERCENT op.Zahlungsstatus, op.Rechnungsdatum, op.cRechnungsNr, op.cFirma, op.cVorname, op.cName, op.naechstesZahlungsziel, op.Betrag, op.nMahnstopp, op.MahnstopKunde, op.MahnBetrag, op.Mahngebuehr, op.OffenerPosten, op.Mahnstufe, op.MahnungErstellt, op.kBenutzer, op.cKommentar,op.kKundenGruppe,op.kFirma,op.kMahnstufe,op.kZahlungsErinnerung,op.kRechnung,op.kKunde,op.kBestellung,op.RechnungZahlungsZiel FROM [Mahnwesen].[lvOffenePosten] AS op LEFT JOIN tMahnstufe ON tMahnstufe.kMahnstufe = op.kMahnstufe WHERE 1 = 1 AND op.OffenerPosten > 0.99 AND (DATEADD(day, isnull(op.Karenzzeit, 0), op.naechstesZahlungsziel) <= CONVERT(DATETIME, '19.01.2017 23:59:59', 104) AND op.naechstesZahlungsziel >= CONVERT(DATETIME, '20.12.2016 00:00:00', 104)) AND op.nMahnstopp = 0 AND op.MahnstopKunde = 0 AND ( EXISTS (SELECT * FROM tMahnstufe t2 WHERE t2.kFirma = tMahnstufe.kFirma AND t2.kKundengruppe = tMahnstufe.kKundengruppe AND t2.nStufe > tMahnstufe.nStufe) OR tMahnstufe.nStufe IS NULL)
)
countTable
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 42ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT ISNULL(SUM(countTable.OffenerPosten),0),COUNT(*) FROM (SELECT TOP 100 PERCENT op.OffenerPosten,op.kKundenGruppe,op.kFirma,op.kMahnstufe,op.kZahlungsErinnerung,op.kRechnung,op.kKunde,op.kBestellung,op.RechnungZahlungsZiel FROM [Mahnwesen].[lvOffenePosten] AS op LEFT JOIN tMahnstufe ON tMahnstufe.kMahnstufe = op.kMahnstufe WHERE 1 = 1 AND op.OffenerPosten > 0.99 AND (DATEADD(day, isnull(op.Karenzzeit, 0), op.naechstesZahlungsziel) <= CONVERT(DATETIME, '19.01.2017 23:59:59', 104) AND op.naechstesZahlungsziel >= CONVERT(DATETIME, '20.12.2016 00:00:00', 104)) AND op.nMahnstopp = 0 AND op.MahnstopKunde = 0 AND ( EXISTS (SELECT * FROM tMahnstufe t2 WHERE t2.kFirma = tMahnstufe.kFirma AND t2.kKundengruppe = tMahnstufe.kKundengruppe AND t2.nStufe > tMahnstufe.nStufe) OR tMahnstufe.nStufe IS NULL)) countTable
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 20ms
2017-01-19T08:23:45 DEBUG - [SQL] WITH OuterResult AS
(
SELECT TOP 100 PERCENT op.Zahlungsstatus, op.Rechnungsdatum, op.cRechnungsNr, op.cFirma, op.cVorname, op.cName, op.naechstesZahlungsziel, op.Betrag, op.nMahnstopp, op.MahnstopKunde, op.MahnBetrag, op.Mahngebuehr, op.OffenerPosten, op.Mahnstufe, op.MahnungErstellt, op.kBenutzer, op.cKommentar,op.kKundenGruppe,op.kFirma,op.kMahnstufe,op.kZahlungsErinnerung,op.kRechnung,op.kKunde,op.kBestellung,op.RechnungZahlungsZiel FROM [Mahnwesen].[lvOffenePosten] AS op LEFT JOIN tMahnstufe ON tMahnstufe.kMahnstufe = op.kMahnstufe WHERE 1 = 1 AND op.OffenerPosten > 0.99 AND (DATEADD(day, isnull(op.Karenzzeit, 0), op.naechstesZahlungsziel) <= CONVERT(DATETIME, '19.01.2017 23:59:59', 104) AND op.naechstesZahlungsziel >= CONVERT(DATETIME, '20.12.2016 00:00:00', 104)) AND op.nMahnstopp = 0 AND op.MahnstopKunde = 0 AND ( EXISTS (SELECT * FROM tMahnstufe t2 WHERE t2.kFirma = tMahnstufe.kFirma AND t2.kKundengruppe = tMahnstufe.kKundengruppe AND t2.nStufe > tMahnstufe.nStufe) OR tMahnstufe.nStufe IS NULL)
),
Result2 AS
(
SELECT *, row_number() OVER (ORDER BY cName ASC) AS rownum FROM OuterResult
)
SELECT * FROM Result2 WHERE rownum >= 0 AND rownum <= ( 0 + 120 )
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 26ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT * FROM [tMahnstufe]
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 0ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT * FROM [tZahlungsart] WHERE [nMahnwesenAktiv] = @nMahnwesenAktiv
@nMahnwesenAktiv = 1
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 0ms
2017-01-19T08:24:00 DEBUG - [TableTable] Eintrag TableCache.tbenutzer entfernt - Expired
2017-01-19T08:24:00 DEBUG - [TableTable] Eintrag TableCache.tKundenGruppe entfernt - Expired
2017-01-19T08:24:00 DEBUG - [TableTable] Eintrag TableCache.tSpracheUsed entfernt - Expired
2017-01-19T08:24:00 DEBUG - [TableTable] Eintrag TableCache.tfirma entfernt - Expired
Zeitstempel: 2017-01-19T08:24:32
Locale: German (Germany)
Locale: German (Germany)
Version: 1.1.4.14
Plattform: Wawi
Versionshash: A69318E0
Prozessname: System.Diagnostics.Process (JTL-Wawi)
Physikalischer Speicher: 291778560 / Peak: 737320960
Basispriorität: 8
Prioritätsklasse: Normal
CPU-Zeit (User): 0:01:41,015625
CPU-Zeit (System): 0:01:21,9375
Page-Size (Sytem): 1810360 / Peak: 706899968
Page-Size: 329539584 / Peak: 706899968
Offene Handles: 1511
In dem kleinen Infofenster im Anschluss, stand ertwas das zur Behebung nur ein JTL-Programmierer helfen kann.
Mit freundlichem Gruß
Manuel Weigelt
ich habe gerade einen Bug festgestellt, der sich während/nach dem exportieren einer Tabelle ereignet hat.
Hier noch der Errorlog:
Unbehandelte Ausnahme #12E84FFFDB7AEAD0 vom Typ System.IO.IOException in Void WinIOError(Int32, System.String)
System.IO.IOException: Der Prozess kann nicht auf die Datei "C:\Users\^1\Desktop\mahnliste.csv" zugreifen, da sie von einem anderen Prozess verwendet wird.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
bei System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
bei System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
bei System.IO.StreamWriter..ctor(String path)
bei jtlControls.jtlListViewEx.jtlListViewExExportFormate.btnCSV_Click(Object sender, EventArgs e)
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
2017-01-19T08:23:43 DEBUG - [SQL] Dauer: 20ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT * FROM [eazybusiness].[dbo].[tbenutzer]
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 0ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT * FROM [tZahlungsart] WHERE [nMahnwesenAktiv] = @nMahnwesenAktiv
@nMahnwesenAktiv = 1
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 0ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT * FROM tListViewExHeader
WHERE nListViewId = @nListViewId
AND ((kBenutzer = @kBenutzer) OR (kBenutzer = 0))
AND ((cRechnername = @cRechnername) OR ((cRechnername = '') OR (cRechnername IS NULL)))
AND (CASE WHEN kBenutzer > 0 THEN 2 ELSE 0 END +
CASE WHEN cRechnername = '' OR cRechnername IS NULL THEN 0 ELSE 1 END) = (SELECT
MAX(CASE WHEN kBenutzer > 0 THEN 2 ELSE 0 END +
CASE WHEN cRechnername = '' OR cRechnername IS NULL THEN 0 ELSE 1 END)
FROM tListViewExHeader
WHERE nListViewId = @nListViewId
AND ((kBenutzer = @kBenutzer) OR (kBenutzer = 0))
AND ((cRechnername = @cRechnername) OR ((cRechnername = '') OR (cRechnername IS NULL))))
nListViewId = 386,
kBenutzer = 4,
cRechnername = 'CAHORE-PC5'
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 0ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT cWert FROM [tUserClientLayout] WHERE kBenutzer=@kBenutzer AND cRechnername = @cRechnername AND cName = @cName
@kBenutzer = 4,
@cRechnername = 'CAHORE-PC5',
@cName = 'jtlCore.Forms.Mahnwesen.MahnlaufMahnlaufView'
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 1ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT * FROM [tMahnstufe]
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 0ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT COUNT(*) FROM
(
SELECT TOP 100 PERCENT op.Zahlungsstatus, op.Rechnungsdatum, op.cRechnungsNr, op.cFirma, op.cVorname, op.cName, op.naechstesZahlungsziel, op.Betrag, op.nMahnstopp, op.MahnstopKunde, op.MahnBetrag, op.Mahngebuehr, op.OffenerPosten, op.Mahnstufe, op.MahnungErstellt, op.kBenutzer, op.cKommentar,op.kKundenGruppe,op.kFirma,op.kMahnstufe,op.kZahlungsErinnerung,op.kRechnung,op.kKunde,op.kBestellung,op.RechnungZahlungsZiel FROM [Mahnwesen].[lvOffenePosten] AS op LEFT JOIN tMahnstufe ON tMahnstufe.kMahnstufe = op.kMahnstufe WHERE 1 = 1 AND op.OffenerPosten > 0.99 AND (DATEADD(day, isnull(op.Karenzzeit, 0), op.naechstesZahlungsziel) <= CONVERT(DATETIME, '19.01.2017 23:59:59', 104) AND op.naechstesZahlungsziel >= CONVERT(DATETIME, '20.12.2016 00:00:00', 104)) AND op.nMahnstopp = 0 AND op.MahnstopKunde = 0 AND ( EXISTS (SELECT * FROM tMahnstufe t2 WHERE t2.kFirma = tMahnstufe.kFirma AND t2.kKundengruppe = tMahnstufe.kKundengruppe AND t2.nStufe > tMahnstufe.nStufe) OR tMahnstufe.nStufe IS NULL)
)
countTable
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 42ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT ISNULL(SUM(countTable.OffenerPosten),0),COUNT(*) FROM (SELECT TOP 100 PERCENT op.OffenerPosten,op.kKundenGruppe,op.kFirma,op.kMahnstufe,op.kZahlungsErinnerung,op.kRechnung,op.kKunde,op.kBestellung,op.RechnungZahlungsZiel FROM [Mahnwesen].[lvOffenePosten] AS op LEFT JOIN tMahnstufe ON tMahnstufe.kMahnstufe = op.kMahnstufe WHERE 1 = 1 AND op.OffenerPosten > 0.99 AND (DATEADD(day, isnull(op.Karenzzeit, 0), op.naechstesZahlungsziel) <= CONVERT(DATETIME, '19.01.2017 23:59:59', 104) AND op.naechstesZahlungsziel >= CONVERT(DATETIME, '20.12.2016 00:00:00', 104)) AND op.nMahnstopp = 0 AND op.MahnstopKunde = 0 AND ( EXISTS (SELECT * FROM tMahnstufe t2 WHERE t2.kFirma = tMahnstufe.kFirma AND t2.kKundengruppe = tMahnstufe.kKundengruppe AND t2.nStufe > tMahnstufe.nStufe) OR tMahnstufe.nStufe IS NULL)) countTable
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 20ms
2017-01-19T08:23:45 DEBUG - [SQL] WITH OuterResult AS
(
SELECT TOP 100 PERCENT op.Zahlungsstatus, op.Rechnungsdatum, op.cRechnungsNr, op.cFirma, op.cVorname, op.cName, op.naechstesZahlungsziel, op.Betrag, op.nMahnstopp, op.MahnstopKunde, op.MahnBetrag, op.Mahngebuehr, op.OffenerPosten, op.Mahnstufe, op.MahnungErstellt, op.kBenutzer, op.cKommentar,op.kKundenGruppe,op.kFirma,op.kMahnstufe,op.kZahlungsErinnerung,op.kRechnung,op.kKunde,op.kBestellung,op.RechnungZahlungsZiel FROM [Mahnwesen].[lvOffenePosten] AS op LEFT JOIN tMahnstufe ON tMahnstufe.kMahnstufe = op.kMahnstufe WHERE 1 = 1 AND op.OffenerPosten > 0.99 AND (DATEADD(day, isnull(op.Karenzzeit, 0), op.naechstesZahlungsziel) <= CONVERT(DATETIME, '19.01.2017 23:59:59', 104) AND op.naechstesZahlungsziel >= CONVERT(DATETIME, '20.12.2016 00:00:00', 104)) AND op.nMahnstopp = 0 AND op.MahnstopKunde = 0 AND ( EXISTS (SELECT * FROM tMahnstufe t2 WHERE t2.kFirma = tMahnstufe.kFirma AND t2.kKundengruppe = tMahnstufe.kKundengruppe AND t2.nStufe > tMahnstufe.nStufe) OR tMahnstufe.nStufe IS NULL)
),
Result2 AS
(
SELECT *, row_number() OVER (ORDER BY cName ASC) AS rownum FROM OuterResult
)
SELECT * FROM Result2 WHERE rownum >= 0 AND rownum <= ( 0 + 120 )
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 26ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT * FROM [tMahnstufe]
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 0ms
2017-01-19T08:23:45 DEBUG - [SQL] SELECT * FROM [tZahlungsart] WHERE [nMahnwesenAktiv] = @nMahnwesenAktiv
@nMahnwesenAktiv = 1
2017-01-19T08:23:45 DEBUG - [SQL] Dauer: 0ms
2017-01-19T08:24:00 DEBUG - [TableTable] Eintrag TableCache.tbenutzer entfernt - Expired
2017-01-19T08:24:00 DEBUG - [TableTable] Eintrag TableCache.tKundenGruppe entfernt - Expired
2017-01-19T08:24:00 DEBUG - [TableTable] Eintrag TableCache.tSpracheUsed entfernt - Expired
2017-01-19T08:24:00 DEBUG - [TableTable] Eintrag TableCache.tfirma entfernt - Expired
Zeitstempel: 2017-01-19T08:24:32
Locale: German (Germany)
Locale: German (Germany)
Version: 1.1.4.14
Plattform: Wawi
Versionshash: A69318E0
Prozessname: System.Diagnostics.Process (JTL-Wawi)
Physikalischer Speicher: 291778560 / Peak: 737320960
Basispriorität: 8
Prioritätsklasse: Normal
CPU-Zeit (User): 0:01:41,015625
CPU-Zeit (System): 0:01:21,9375
Page-Size (Sytem): 1810360 / Peak: 706899968
Page-Size: 329539584 / Peak: 706899968
Offene Handles: 1511
In dem kleinen Infofenster im Anschluss, stand ertwas das zur Behebung nur ein JTL-Programmierer helfen kann.
Mit freundlichem Gruß
Manuel Weigelt