rote-locke
Gut bekanntes Mitglied
Produktiv läuft bei uns aktuell die Wawi 1.0.7.3, hier tritt nun beim Versuch Zahlungen zu setzen der unten angegeben Fehler auf.
In unserem Testsystem haben wir inzwischen auf die aktuellste Version 1.0.8.2 aktualisiert (Fehlermeldung hieraus), was den Fehler bei gleichem Datenstand aber nicht behebt. Muss hier evtl. die Tabelle dbo.tZahlung repariert bzw. die Spalte kZahlung neu aufgebaut werden? Wenn ja, wie lautet dafür der SQL-Befehl?
@JTL: Ticket#103869046126
In unserem Testsystem haben wir inzwischen auf die aktuellste Version 1.0.8.2 aktualisiert (Fehlermeldung hieraus), was den Fehler bei gleichem Datenstand aber nicht behebt. Muss hier evtl. die Tabelle dbo.tZahlung repariert bzw. die Spalte kZahlung neu aufgebaut werden? Wenn ja, wie lautet dafür der SQL-Befehl?
@JTL: Ticket#103869046126
Code:
Unbehandelte Ausnahme #761E037A5E9D6536 vom Typ jtlCore.Classes.CppConnector.CppException in
jtlCore.Classes.CppConnector.CppException: SQLState=23000, NativeError=2627, Message=[Microsoft][ODBC SQL Server Driver][SQL Server]Verletzung der PRIMARY KEY-Einschränkung 'PK_tZahlung'. Ein doppelter Schlüssel kann in das dbo.tZahlung-Objekt nicht eingefügt werden. Der doppelte Schlüsselwert ist (0).
SQLState=01000, NativeError=3621, Message=[Microsoft][ODBC SQL Server Driver][SQL Server]Die Anweisung wurde beendet.
2016-01-27T09:07:51 DEBUG - [SQL] SELECT TOP 1 * FROM tBestellung WHERE tBestellung.dErstellt > CONVERT(DATETIME, '01.01.2004') ORDER BY tBestellung.dErstellt
2016-01-27T09:07:51 DEBUG - [SQL] Dauer: 44ms
2016-01-27T09:07:51 DEBUG - [SQL] WITH DateTable
AS
(
SELECT
CASE
WHEN 'mm' = 'yy' THEN CONVERT(DATETIME, '01.01.' + CONVERT(VARCHAR, DATEPART(year, CAST('16.02.2010' as Datetime))))
WHEN 'mm' = 'mm' THEN CONVERT(DATETIME, '01.' + CONVERT(VARCHAR, DATEPART(month, CAST('16.02.2010' as Datetime))) + '.' + CONVERT(VARCHAR, DATEPART(year, CAST('16.02.2010' as Datetime))))
ELSE CAST('16.02.2010' as Datetime)
END AS DATE
UNION ALL
SELECT DATEADD(mm, 1, DATE)
FROM DateTable
WHERE DATEADD(mm, 1, DATE) <= cast('27.01.2016' as Datetime)
)
SELECT TOP 10
CASE
WHEN '' IS NOT NULL THEN /*#FORMELBEGINN#*/ COUNT(DISTINCT tbestellpos.tBestellung_kBestellung) /*#FORMELENDE#*/
WHEN '' IS NULL THEN 0
END AS Y,
CONVERT(VARCHAR, ISNULL(tartikel.cArtNr, 'unbekannt')) + ' - (' + ISNULL(tartikel.cName, 'unbekannt') + ')' AS X,
/*#SERIESBEGINN#*/ ISNULL('Anzahl Bestellungen', 'unbekannt') AS Series /*#SERIESENDE#*/
FROM tbestellpos
LEFT JOIN tbestellung ON tbestellpos.tBestellung_kBestellung = tbestellung.kBestellung
JOIN vStandardartikel AS tartikel ON tartikel.kArtikel = tbestellpos.tArtikel_kArtikel
/*#REPLACEWITHJOIN#*/
WHERE (((tbestellung.nStorno = 0) AND tbestellung.cType = 'B') OR tbestellung.kBestellung IS NULL)
AND ((tbestellung.dErstellt >= CAST('16.02.2010' as Datetime) AND tbestellung.dErstellt <= CAST('27.01.2016' as Datetime)) OR tbestellung.dErstellt IS NULL)
AND (tartikel.kArtikel IN (3564, 3565, 3566, 3567, 3560, 3561, 3562, 3563))
/*#REPLACEWITHWHERE#*/
GROUP BY tartikel.cArtNr, tartikel.cName
ORDER BY Y DESC
OPTION (MAXRECURSION 30000)
2016-01-27T09:07:51 DEBUG - [SQL] Dauer: 2ms
2016-01-27T09:07:51 DEBUG - [SQL] SELECT TOP 1 * FROM tBestellung WHERE tBestellung.dErstellt > CONVERT(DATETIME, '01.01.2004') ORDER BY tBestellung.dErstellt
2016-01-27T09:07:51 DEBUG - [SQL] Dauer: 60ms
2016-01-27T09:07:51 DEBUG - [SQL] SELECT TOP 1 * FROM tBestellung WHERE tBestellung.dErstellt > CONVERT(DATETIME, '01.01.2004') ORDER BY tBestellung.dErstellt
2016-01-27T09:07:51 DEBUG - [SQL] Dauer: 46ms
2016-01-27T09:07:51 DEBUG - [SQL] WITH DateTable
AS
(
SELECT
CASE
WHEN 'mm' = 'yy' THEN CONVERT(DATETIME, '01.01.' + CONVERT(VARCHAR, DATEPART(year, CAST('16.02.2010' as Datetime))))
WHEN 'mm' = 'mm' THEN CONVERT(DATETIME, '01.' + CONVERT(VARCHAR, DATEPART(month, CAST('16.02.2010' as Datetime))) + '.' + CONVERT(VARCHAR, DATEPART(year, CAST('16.02.2010' as Datetime))))
ELSE CAST('16.02.2010' as Datetime)
END AS DATE
UNION ALL
SELECT DATEADD(mm, 1, DATE)
FROM DateTable
WHERE DATEADD(mm, 1, DATE) <= cast('27.01.2016' as Datetime)
)
SELECT TOP 10
CASE
WHEN '' IS NOT NULL THEN /*#FORMELBEGINN#*/ COUNT(DISTINCT tbestellpos.tBestellung_kBestellung) /*#FORMELENDE#*/
WHEN '' IS NULL THEN 0
END AS Y,
CONVERT(VARCHAR, ISNULL(tartikel.cArtNr, 'unbekannt')) + ' - (' + ISNULL(tartikel.cName, 'unbekannt') + ')' AS X,
/*#SERIESBEGINN#*/ ISNULL('Anzahl Bestellungen', 'unbekannt') AS Series /*#SERIESENDE#*/
FROM tbestellpos
LEFT JOIN tbestellung ON tbestellpos.tBestellung_kBestellung = tbestellung.kBestellung
JOIN vStandardartikel AS tartikel ON tartikel.kArtikel = tbestellpos.tArtikel_kArtikel
/*#REPLACEWITHJOIN#*/
WHERE (((tbestellung.nStorno = 0) AND tbestellung.cType = 'B') OR tbestellung.kBestellung IS NULL)
AND ((tbestellung.dErstellt >= CAST('16.02.2010' as Datetime) AND tbestellung.dErstellt <= CAST('27.01.2016' as Datetime)) OR tbestellung.dErstellt IS NULL)
AND (tartikel.kArtikel IN (3564, 3565, 3566, 3567, 3560, 3561, 3562, 3563))
/*#REPLACEWITHWHERE#*/
GROUP BY tartikel.cArtNr, tartikel.cName
ORDER BY Y DESC
OPTION (MAXRECURSION 30000)
2016-01-27T09:07:51 DEBUG - [SQL] Dauer: 2ms
2016-01-27T09:07:51 DEBUG - [SQL] SELECT
tbestellung.cBestellNr as 'Auftrags Nr.',
CASE
WHEN tbestellung.dBezahlt is null then
convert(varchar,tbestellung.dErstellt,104)
ELSE
convert(varchar,tbestellung.dBezahlt,104)
END as 'Datum',
CASE
WHEN tbestellung.dBezahlt is null then
convert(varchar,tbestellung.dErstellt,102)
ELSE
convert(varchar,tbestellung.dBezahlt,102)
END as 'Datum_Sort'
,dbo.tbestellung.kColor as RowColor ,dbo.tkunde.cVorname as Vorname, dbo.tkunde.cName as Name ,dbo.tFirma.cName as Firma ,CASE WHEN (DATEDIFF(dd,dbo.tbestellung.dErstellt,GETDATE()) - dbo.tbestellung.nZahlungsziel < 0)
THEN
'0'
ELSE
DATEDIFF(dd,dbo.tbestellung.dErstellt,GETDATE()) - dbo.tbestellung.nZahlungsziel
END
AS 'Verzug (Tage)' ,XX.Betrag AS 'Betrag (Netto)' FROM tbestellung
LEFT JOIN tZahlungsart on tZahlungsart.kZahlungsart = tbestellung.kZahlungsArt
JOIN dbo.tkunde ON dbo.tbestellung.tKunde_kKunde = dbo.tkunde.kKunde JOIN dbo.tFirma ON dbo.tbestellung.kFirma = dbo.tFirma.kFirma LEFT JOIN (SELECT tBestellung_kBestellung, CAST(ROUND(SUM((nAnzahl*fVKNetto*(100-fRabatt)/100.0)*(100+fMwSt)/100), 2) AS DECIMAL(10,2)) AS Betrag
FROM dbo.tbestellpos
GROUP BY tBestellung_kBestellung) as XX ON XX.tBestellung_kBestellung = dbo.tbestellung.kBestellung WHERE
(( (datediff(d, 0, tbestellung.dbezahlt) <= datediff(d, 0, @enddate)) and [tbestellung].dBezahlt is not null)
OR (tZahlungsart.nAusliefernVorZahlung = 1 and (datediff(d, 0, tbestellung.dErstellt) <= datediff(d, 0, @enddate)))
)
and cType = 'B' and nstorno = 0 and nKomplettAusgeliefert = 0
enddate = '2016-27-01 09:07:51' -- 27.01.2016 09:07:51
2016-01-27T09:07:51 DEBUG - [SQL] Dauer: 168ms
2016-01-27T09:07:51 DEBUG - [SQL] SELECT
tbestellung.cBestellNr as 'Auftrags Nr.',
convert(varchar,tbestellung.dErstellt,104) as 'Erstellt',
convert(varchar,tbestellung.dErstellt,102) as 'Erstellt_Sort'
,dbo.tbestellung.kColor as RowColor ,dbo.tkunde.cVorname as Vorname, dbo.tkunde.cName as Name ,dbo.tFirma.cName as Firma ,CASE WHEN (DATEDIFF(dd,dbo.tbestellung.dErstellt,GETDATE()) - dbo.tbestellung.nZahlungsziel < 0)
THEN
'0'
ELSE
DATEDIFF(dd,dbo.tbestellung.dErstellt,GETDATE()) - dbo.tbestellung.nZahlungsziel
END
AS 'Verzug (Tage)' ,XX.Betrag AS 'Betrag (Netto)' FROM tbestellung
JOIN dbo.tkunde ON dbo.tbestellung.tKunde_kKunde = dbo.tkunde.kKunde JOIN dbo.tFirma ON dbo.tbestellung.kFirma = dbo.tFirma.kFirma LEFT JOIN (SELECT tBestellung_kBestellung, CAST(ROUND(SUM((nAnzahl*fVKNetto*(100-fRabatt)/100.0)*(100+fMwSt)/100), 2) AS DECIMAL(10,2)) AS Betrag
FROM dbo.tbestellpos
GROUP BY tBestellung_kBestellung) as XX ON XX.tBestellung_kBestellung = dbo.tbestellung.kBestellung WHERE
([tbestellung].dErstellt >= 0)
AND datediff(d, 0, tbestellung.dErstellt) <= datediff(d, 0, @enddate)
and ([tbestellung].dBezahlt is null)
AND cType = 'B' and nstorno = 0
enddate = '2016-17-01 09:07:51' -- 17.01.2016 09:07:51
2016-01-27T09:07:51 DEBUG - [SQL] Dauer: 159ms
2016-01-27T09:07:51 DEBUG - [SQL] SELECT tbestellung.cBestellNr Bestellung, tbestellung.dErstellt Erstellt,tbestellung.kBestellung as kBestellung
,dbo.tbestellung.kColor as RowColor ,dbo.tkunde.cVorname as Vorname, dbo.tkunde.cName as Name ,dbo.tFirma.cName as Firma ,CASE WHEN (DATEDIFF(dd,dbo.tbestellung.dErstellt,GETDATE()) - dbo.tbestellung.nZahlungsziel < 0)
THEN
'0'
ELSE
DATEDIFF(dd,dbo.tbestellung.dErstellt,GETDATE()) - dbo.tbestellung.nZahlungsziel
END
AS 'Verzug (Tage)' ,XX.Betrag AS 'Betrag (Netto)' FROM tbestellung
JOIN dbo.tkunde ON dbo.tbestellung.tKunde_kKunde = dbo.tkunde.kKunde JOIN dbo.tFirma ON dbo.tbestellung.kFirma = dbo.tFirma.kFirma LEFT JOIN (SELECT tBestellung_kBestellung, CAST(ROUND(SUM((nAnzahl*fVKNetto*(100-fRabatt)/100.0)*(100+fMwSt)/100), 2) AS DECIMAL(10,2)) AS Betrag
FROM dbo.tbestellpos
GROUP BY tBestellung_kBestellung) as XX ON XX.tBestellung_kBestellung = dbo.tbestellung.kBestellung WHERE ISNULL (tVersandArt_kVersandArt,0) = 0
AND cType = 'B'
AND nkomplettausgeliefert = 0
AND nStorno = 0
ORDER BY tbestellung.dErstellt;
2016-01-27T09:07:52 DEBUG - [SQL] Dauer: 131ms
2016-01-27T09:07:52 DEBUG - [SQL] SELECT tbestellung.cBestellNr Bestellung, tbestellung.dErstellt Erstellt,tbestellung.kBestellung as kBestellung
,dbo.tbestellung.kColor as RowColor ,dbo.tkunde.cVorname as Vorname, dbo.tkunde.cName as Name ,dbo.tFirma.cName as Firma ,CASE WHEN (DATEDIFF(dd,dbo.tbestellung.dErstellt,GETDATE()) - dbo.tbestellung.nZahlungsziel < 0)
THEN
'0'
ELSE
DATEDIFF(dd,dbo.tbestellung.dErstellt,GETDATE()) - dbo.tbestellung.nZahlungsziel
END
AS 'Verzug (Tage)' ,XX.Betrag AS 'Betrag (Netto)' FROM tbestellung
JOIN dbo.tkunde ON dbo.tbestellung.tKunde_kKunde = dbo.tkunde.kKunde JOIN dbo.tFirma ON dbo.tbestellung.kFirma = dbo.tFirma.kFirma LEFT JOIN (SELECT tBestellung_kBestellung, CAST(ROUND(SUM((nAnzahl*fVKNetto*(100-fRabatt)/100.0)*(100+fMwSt)/100), 2) AS DECIMAL(10,2)) AS Betrag
FROM dbo.tbestellpos
GROUP BY tBestellung_kBestellung) as XX ON XX.tBestellung_kBestellung = dbo.tbestellung.kBestellung WHERE ISNULL (tbestellung.kZahlungsArt,0) = 0
AND tbestellung.cType = 'B'
AND tbestellung.nkomplettausgeliefert = 0
AND tbestellung.nStorno = 0
ORDER BY tbestellung.dErstellt;
2016-01-27T09:07:52 DEBUG - [SQL] Dauer: 38ms
2016-01-27T09:07:52 DEBUG - [SQL] SELECT * FROM dbo.tVersandArt WHERE (nEigeneVersandart = @nEigeneVersandart) AND (kMainVersandart = @kMainVersandart)
nEigeneVersandart = '0',
kMainVersandart = '0'
2016-01-27T09:07:52 DEBUG - [SQL] Dauer: 3ms
2016-01-27T09:07:52 DEBUG - [SQL] EXEC Auslieferung.spPicklistenAufraeumen
2016-01-27T09:07:52 DEBUG - [SQL] Dauer: 18ms
2016-01-27T09:07:53 DEBUG - [SQL] UPDATE [tWidgetLayout] SET cLayout=@cLayout WHERE 1=1 AND kWidgetLayout=@kWidgetLayout;
@cLayout = '<?xml version="1.0" encoding="utf-16"?><LayoutRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" SelectedTheme="Standard"><RootPanel Orientation="Horizontal"><LayoutDocumentPaneGroup Orientation="Horizontal"><LayoutDocumentPaneGroup Orientation="Vertical"><LayoutDocumentPane Id="1330042d-6db1-4bd0-9dd3-8fbf4a819fa7"><LayoutDocument Title="Beschaffung erforderlich" IsSelected="True" ContentId="262" FloatingLeft="-832" FloatingTop="158" FloatingWidth="1920" FloatingHeight="292" LastActivationTimeStamp="01/27/2016 09:07:48" /></LayoutDocumentPane><LayoutDocumentPane><LayoutDocument Title="Eloxieren" IsSelected="True" IsLastFocusedDocument="True" ContentId="263" FloatingLeft="40" FloatingTop="631" FloatingWidth="379" FloatingHeight="889" LastActivationTimeStamp="01/27/2016 09:07:48" /></LayoutDocumentPane></LayoutDocumentPaneGroup><LayoutDocumentPaneGroup Orientation="Vertical"><LayoutDocumentPane><LayoutDocument Title="Werkstatt" IsSelected="True" ContentId="264" FloatingLeft="-38" FloatingTop="594" FloatingWidth="1920" FloatingHeight="292" LastActivationTimeStamp="01/27/2016 09:07:48" PreviousContainerId="1330042d-6db1-4bd0-9dd3-8fbf4a819fa7" PreviousContainerIndex="0" /></LayoutDocumentPane><LayoutDocumentPane><LayoutDocument Title="Sandstrahlen" IsSelected="True" ContentId="265" FloatingLeft="484" FloatingTop="622" FloatingWidth="476" FloatingHeight="889" LastActivationTimeStamp="01/27/2016 09:07:48" /></LayoutDocumentPane></LayoutDocumentPaneGroup><LayoutDocumentPaneGroup Orientation="Vertical"><LayoutDocumentPane><LayoutDocument Title="Pulverbeschichtung" IsSelected="True" ContentId="266" LastActivationTimeStamp="01/27/2016 09:07:48" /></LayoutDocumentPane><LayoutDocumentPane><LayoutDocument Title="Endmontage" IsSelected="True" ContentId="267" FloatingLeft="1007" FloatingTop="628" FloatingWidth="379" FloatingHeight="889" LastActivationTimeStamp="01/27/2016 09:07:48" /></LayoutDocumentPane></LayoutDocumentPaneGroup><LayoutDocumentPaneGroup Orientation="Vertical" DockWidth="1.26107594936709*"><LayoutDocumentPane><LayoutDocument Title="Anzahl Bestellungen" IsSelected="True" ContentId="268" FloatingLeft="1251" FloatingTop="324" FloatingWidth="315" FloatingHeight="889" LastActivationTimeStamp="01/27/2016 09:07:48" /></LayoutDocumentPane><LayoutDocumentPane DockWidth="0.949894514767933*"><LayoutDocument Title="Offene Aufträge" IsSelected="True" ContentId="269" FloatingLeft="1533" FloatingTop="590" FloatingWidth="379" FloatingHeight="889" LastActivationTimeStamp="01/27/2016 09:07:48" /></LayoutDocumentPane><LayoutDocumentPane><LayoutDocument Title="Nicht bezahlte Aufträge" IsSelected="True" ContentId="270" FloatingLeft="1185" FloatingTop="625" FloatingWidth="331" FloatingHeight="889" LastActivationTimeStamp="01/27/2016 09:07:48" /></LayoutDocumentPane></LayoutDocumentPaneGroup><LayoutDocumentPaneGroup Orientation="Vertical" DockWidth="0.738924050632911*"><LayoutDocumentPane><LayoutDocument Title="Aufträge ohne Versandart" IsSelected="True" ContentId="271" LastActivationTimeStamp="01/27/2016 09:07:48" /></LayoutDocumentPane><LayoutDocumentPane><LayoutDocument Title="Aufträge ohne Zahlungsart" IsSelected="True" ContentId="272" FloatingLeft="1626" FloatingTop="631" FloatingWidth="269" FloatingHeight="889" LastActivationTimeStamp="01/27/2016 09:07:48" /></LayoutDocumentPane><LayoutDocumentPane><LayoutDocument Title="Ungemappte Versandarten" IsSelected="True" ContentId="273" FloatingLeft="1640" FloatingTop="852" FloatingWidth="315" FloatingHeight="889" LastActivationTimeStamp="01/27/2016 09:07:48" /></LayoutDocumentPane></LayoutDocumentPaneGroup></LayoutDocumentPaneGroup></RootPanel><TopSide /><RightSide /><LeftSide /><BottomSide /><FloatingWindows /><Hidden /></LayoutRoot>',
@kWidgetLayout = 23
2016-01-27T09:07:53 DEBUG - [SQL] Dauer: 2ms
2016-01-27T09:07:53 DEBUG - [TableTable] Invalidate: [tWidgetLayout]
Zeitstempel: 2016-01-27T09:10:37
Locale: German (Germany)
Locale: German (Germany)
Version: 1.0.8.2
Plattform: Wawi
Versionshash: 6BE075F5
Prozessname: System.Diagnostics.Process (JTL-wawi)
Physikalischer Speicher: 286973952 / Peak: 468733952
Basispriorität: 8
Prioritätsklasse: Normal
CPU-Zeit (User): 0:00:12,0432772
CPU-Zeit (System): 0:00:03,2604209
Page-Size (Sytem): 1012016 / Peak: 402821120
Page-Size: 208699392 / Peak: 402821120
Offene Handles: 870