- Beiträge: 119
- Dank erhalten: 7
Orgasoft NT 5.7.0 - mögliche Fehlermeldungen beim Verbuchen
- mos
- Autor
- Besucher
-
10 Jahre 1 Monat her - 10 Jahre 1 Monat her #861
von mos
Orgasoft NT 5.7.0 - mögliche Fehlermeldungen beim Verbuchen wurde erstellt von mos
In Version 5.7.0 von Orgasoft NT kann es unter Umständen zu Fehlermeldungen beim Verbuchen von Vorfällen und bei der Rechnungskontrolle kommen. Diese Fehlermeldungen müssen nicht auftreten, da sie von den spezifischen Mandanten-Einstellungen der Vorfallarten und vom Vorfallbezug abhängen. Dennoch empfehlen wir, die unten stehenden Änderungen in der Hauptdatenbank einzuspielen, um die Fehlermeldungen von vorneherein zu vermeiden.
Um folgende, mögliche, Fehlermeldungen zu vermeiden können Sie in Ihrer Hauptdatenbank die unten angefügten SQL-Anweisungen ausführen, welche Datenbanktrigger anpassen, so dass die Ursache für die Fehlermeldungen behoben wird.
Beim Verbuchen von Vorfällen kann eine Fehlermeldung "Fehler beim Speichern des Vorfalls" erscheinen:
In der Protokolldatei "VBU.PRT" finden sich zu den betroffenen Vorfällen dann u.a. Einträge mit folgendem Inhalt:
Bei der Rechnungskontrolle kann unter bestimmten Umständen diese Fehlermeldung erscheinen, wenn in den Positionen etwas geändert wurde und man anschließend auf Verbuchen klickt]ALTER TRIGGER [dbo].[VorfallBezugAufVorfall_Update] ON [dbo].[VorfallBezugAufVorfall] FOR UPDATE AS
/* PREVENT UPDATES if no matching key in 'GeschäftsVorfall' */
IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNummer])
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([VorfallKürzel] IS NULL) AND NOT([VorfallNummer] IS NULL)) >
(SELECT COUNT(*)
FROM GeschäftsVorfall, inserted
WHERE [GeschäftsVorfall].[VorfallKürzel]=inserted.[VorfallKürzel] AND [GeschäftsVorfall].[VorfallNr]=inserted.[VorfallNummer])
BEGIN
RAISERROR (55556, 10, 1, 'VorfallBezugAufVorfall', 'GeschäftsVorfall')
ROLLBACK TRANSACTION
RETURN
END
END
[/code]
2.
Um folgende, mögliche, Fehlermeldungen zu vermeiden können Sie in Ihrer Hauptdatenbank die unten angefügten SQL-Anweisungen ausführen, welche Datenbanktrigger anpassen, so dass die Ursache für die Fehlermeldungen behoben wird.
Beim Verbuchen von Vorfällen kann eine Fehlermeldung "Fehler beim Speichern des Vorfalls" erscheinen:
In der Protokolldatei "VBU.PRT" finden sich zu den betroffenen Vorfällen dann u.a. Einträge mit folgendem Inhalt:
Der Datensatz in Tabelle VorfallBezugAufVorfall kann nicht geändert werden. Die referentielle Integrität verlangt einen passenden Datensatz in Tabelle 'GeschäftsVorfall'
Bei der Rechnungskontrolle kann unter bestimmten Umständen diese Fehlermeldung erscheinen, wenn in den Positionen etwas geändert wurde und man anschließend auf Verbuchen klickt]ALTER TRIGGER [dbo].[VorfallBezugAufVorfall_Update] ON [dbo].[VorfallBezugAufVorfall] FOR UPDATE AS
/* PREVENT UPDATES if no matching key in 'GeschäftsVorfall' */
IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNummer])
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([VorfallKürzel] IS NULL) AND NOT([VorfallNummer] IS NULL)) >
(SELECT COUNT(*)
FROM GeschäftsVorfall, inserted
WHERE [GeschäftsVorfall].[VorfallKürzel]=inserted.[VorfallKürzel] AND [GeschäftsVorfall].[VorfallNr]=inserted.[VorfallNummer])
BEGIN
RAISERROR (55556, 10, 1, 'VorfallBezugAufVorfall', 'GeschäftsVorfall')
ROLLBACK TRANSACTION
RETURN
END
END
[/code]
2.
ALTER TRIGGER [dbo].[GeschäftsVorfall_Update] ON [dbo].[GeschäftsVorfall] FOR UPDATE AS
DECLARE @GeschäftsVorfallCount Int
DECLARE @iVorfallKürzel VarChar(10), @dVorfallKürzel VarChar(10), @iVorfallNr VarChar(8), @dVorfallNr VarChar(8), @iArbeitsplatz VarChar(2), @dArbeitsplatz VarChar(2)
DECLARE @iArbeitsplatzNeu VarChar(2)
SET @GeschäftsVorfallCount = @@RowCount
SET NOCOUNT ON
IF @GeschäftsVorfallCount>1
BEGIN
IF Not((Update([VorfallKürzel]) AND NOT((SELECT TOP 1 COUNT(*) FROM inserted GROUP BY [VorfallKürzel])=@GeschäftsVorfallCount)) OR (Update([VorfallNr]) AND NOT((SELECT TOP 1 COUNT(*) FROM inserted GROUP BY [VorfallNr])=@GeschäftsVorfallCount)) OR (Update([Arbeitsplatz]) AND NOT((SELECT TOP 1 COUNT(*) FROM inserted GROUP BY [Arbeitsplatz])=@GeschäftsVorfallCount)))
BEGIN
IF UPDATE([Arbeitsplatz]) AND (SELECT COUNT(*) FROM (SELECT TOP 1 inserted.[Arbeitsplatz] FROM inserted, deleted WHERE inserted.[Arbeitsplatz]<>deleted.[Arbeitsplatz]) AS TblCnt)>0
BEGIN
SELECT TOP 1 @iArbeitsplatz=[Arbeitsplatz] FROM inserted
/* CASCADES UPDATE to 'VorfallBezugAufVorfall' */
IF @iArbeitsplatz='00' BEGIN SET @iArbeitsplatzNeu='' END
ELSE BEGIN
SET @iArbeitsplatzNeu=@iArbeitsplatz END
UPDATE [VorfallBezugAufVorfall]
SET [VorfallBezugAufVorfall].[Arbeitsplatz]=@iArbeitsplatzNeu
FROM [VorfallBezugAufVorfall], deleted
WHERE [VorfallBezugAufVorfall].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallBezugAufVorfall].[VorfallNummer]=deleted.[VorfallNr] AND [VorfallBezugAufVorfall].[Arbeitsplatz]=deleted.[Arbeitsplatz]
/* CASCADES UPDATE to 'GeschäftsvorfallPosition' */
UPDATE [GeschäftsvorfallPosition]
SET [GeschäftsvorfallPosition].[ArbeitsPlatz]=@iArbeitsplatz
FROM GeschäftsvorfallPosition, deleted
WHERE [GeschäftsvorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallPosition].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallPosition].[ArbeitsPlatz]=deleted.[Arbeitsplatz]
/* CASCADES UPDATE to 'GeschäftsvorfallHatMultiFeld' */
UPDATE [GeschäftsvorfallHatMultiFeld]
SET [GeschäftsvorfallHatMultiFeld].[Arbeitsplatz]=@iArbeitsplatz
FROM GeschäftsvorfallHatMultiFeld, deleted
WHERE [GeschäftsvorfallHatMultiFeld].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallHatMultiFeld].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallHatMultiFeld].[Arbeitsplatz]=deleted.[Arbeitsplatz]
END
IF UPDATE([VorfallNr]) AND (SELECT COUNT(*) FROM (SELECT TOP 1 inserted.[VorfallNr] FROM inserted, deleted WHERE inserted.[VorfallNr]<>deleted.[VorfallNr]) AS TblCnt)>0
BEGIN
SELECT TOP 1 @iVorfallNr=[VorfallNr] FROM inserted
/* CASCADES UPDATE to 'GeschäftsvorfallZahlart' */
UPDATE [GeschäftsvorfallZahlart]
SET [GeschäftsvorfallZahlart].[VorfallNr]=@iVorfallNr
FROM GeschäftsvorfallZahlart, deleted
WHERE [GeschäftsvorfallZahlart].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallZahlart].[VorfallNr]=deleted.[VorfallNr]
/* CASCADES UPDATE to 'VorfallBezugAufVorfall' */
UPDATE [VorfallBezugAufVorfall]
SET [VorfallBezugAufVorfall].[VorfallNummer]=@iVorfallNr
FROM VorfallBezugAufVorfall, deleted
WHERE [VorfallBezugAufVorfall].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallBezugAufVorfall].[VorfallNummer]=deleted.[VorfallNr]
/* CASCADES UPDATE to 'GeschäftsvorfallPosition' */
UPDATE [GeschäftsvorfallPosition]
SET [GeschäftsvorfallPosition].[VorfallNr]=@iVorfallNr
FROM GeschäftsvorfallPosition, deleted
WHERE [GeschäftsvorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallPosition].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallPosition].[ArbeitsPlatz]=deleted.[Arbeitsplatz]
/* CASCADES UPDATE to 'GeschäftsvorfallHatMultiFeld' */
UPDATE [GeschäftsvorfallHatMultiFeld]
SET [GeschäftsvorfallHatMultiFeld].[VorfallNr]=@iVorfallNr
FROM GeschäftsvorfallHatMultiFeld, deleted
WHERE [GeschäftsvorfallHatMultiFeld].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallHatMultiFeld].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallHatMultiFeld].[Arbeitsplatz]=deleted.[Arbeitsplatz]
END
IF UPDATE([VorfallKürzel]) AND (SELECT COUNT(*) FROM (SELECT TOP 1 inserted.[VorfallKürzel] FROM inserted, deleted WHERE inserted.[VorfallKürzel]<>deleted.[VorfallKürzel]) AS TblCnt)>0
BEGIN
SELECT TOP 1 @iVorfallKürzel=[VorfallKürzel] FROM inserted
/* CASCADES UPDATE to 'GeschäftsvorfallZahlart' */
UPDATE [GeschäftsvorfallZahlart]
SET [GeschäftsvorfallZahlart].[VorfallKürzel]=@iVorfallKürzel
FROM GeschäftsvorfallZahlart, deleted
WHERE [GeschäftsvorfallZahlart].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallZahlart].[VorfallNr]=deleted.[VorfallNr]
/* CASCADES UPDATE to 'VorfallBezugAufVorfall' */
UPDATE [VorfallBezugAufVorfall]
SET [VorfallBezugAufVorfall].[VorfallKürzel]=@iVorfallKürzel
FROM VorfallBezugAufVorfall, deleted
WHERE [VorfallBezugAufVorfall].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallBezugAufVorfall].[VorfallNummer]=deleted.[VorfallNr]
/* CASCADES UPDATE to 'GeschäftsvorfallPosition' */
UPDATE [GeschäftsvorfallPosition]
SET [GeschäftsvorfallPosition].[VorfallKürzel]=@iVorfallKürzel
FROM GeschäftsvorfallPosition, deleted
WHERE [GeschäftsvorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallPosition].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallPosition].[ArbeitsPlatz]=deleted.[Arbeitsplatz]
/* CASCADES UPDATE to 'GeschäftsvorfallHatMultiFeld' */
UPDATE [GeschäftsvorfallHatMultiFeld]
SET [GeschäftsvorfallHatMultiFeld].[VorfallKürzel]=@iVorfallKürzel
FROM GeschäftsvorfallHatMultiFeld, deleted
WHERE [GeschäftsvorfallHatMultiFeld].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallHatMultiFeld].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallHatMultiFeld].[Arbeitsplatz]=deleted.[Arbeitsplatz]
END
END
ELSE
BEGIN
IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNr]) OR UPDATE([Arbeitsplatz])
BEGIN
RAISERROR (55558, 10, 1, 'GeschäftsVorfall')
ROLLBACK TRANSACTION
RETURN
END
END
END
ELSE
BEGIN
SELECT TOP 1 @iVorfallKürzel=[VorfallKürzel] FROM inserted
SELECT TOP 1 @iVorfallNr=[VorfallNr] FROM inserted
SELECT TOP 1 @iArbeitsplatz=[Arbeitsplatz] FROM inserted
IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNr]) OR UPDATE([Arbeitsplatz])
BEGIN
/* CASCADES UPDATE to 'VorfallBezugAufVorfall' */
IF @iArbeitsplatz='00' BEGIN SET @iArbeitsplatzNeu='' END ELSE BEGIN SET @iArbeitsplatzNeu=@iArbeitsplatz END
UPDATE [VorfallBezugAufVorfall]
SET [VorfallBezugAufVorfall].[VorfallKürzel]=@iVorfallKürzel, [VorfallBezugAufVorfall].[VorfallNummer]=@iVorfallNr, [VorfallBezugAufVorfall].[Arbeitsplatz]=@iArbeitsplatzNeu
FROM [VorfallBezugAufVorfall], deleted
WHERE [VorfallBezugAufVorfall].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallBezugAufVorfall].[VorfallNummer]=deleted.[VorfallNr] AND [VorfallBezugAufVorfall].[Arbeitsplatz]=deleted.[Arbeitsplatz]
/* CASCADES UPDATE to 'GeschäftsvorfallPosition' */
UPDATE [GeschäftsvorfallPosition]
SET [GeschäftsvorfallPosition].[VorfallKürzel]=@iVorfallKürzel, [GeschäftsvorfallPosition].[VorfallNr]=@iVorfallNr, [GeschäftsvorfallPosition].[ArbeitsPlatz]=@iArbeitsplatz
FROM [GeschäftsvorfallPosition], deleted
WHERE [GeschäftsvorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallPosition].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallPosition].[ArbeitsPlatz]=deleted.[Arbeitsplatz]
/* CASCADES UPDATE to 'GeschäftsvorfallHatMultiFeld' */
UPDATE [GeschäftsvorfallHatMultiFeld]
SET [GeschäftsvorfallHatMultiFeld].[VorfallKürzel]=@iVorfallKürzel, [GeschäftsvorfallHatMultiFeld].[VorfallNr]=@iVorfallNr, [GeschäftsvorfallHatMultiFeld].[Arbeitsplatz]=@iArbeitsplatz
FROM [GeschäftsvorfallHatMultiFeld], deleted
WHERE [GeschäftsvorfallHatMultiFeld].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallHatMultiFeld].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallHatMultiFeld].[Arbeitsplatz]=deleted.[Arbeitsplatz]
END
END
/* PREVENT UPDATES if no matching key in 'Filialen' */
IF (UPDATE([Filialnummer]) AND (SELECT COUNT(*) FROM inserted WHERE [Filialnummer] IS NOT NULL)>0)
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([Filialnummer] IS NULL)) !=
(SELECT COUNT(*)
FROM Filialen, inserted
WHERE [Filialen].[Filialnummer]=inserted.[Filialnummer])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Filialen')
ROLLBACK TRANSACTION
RETURN
END
END
/* PREVENT UPDATES if no matching key in 'GeschäftsvorfallArt' */
IF UPDATE([VorfallKürzel])
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([VorfallKürzel] IS NULL)) !=
(SELECT COUNT(*)
FROM GeschäftsvorfallArt, inserted
WHERE [GeschäftsvorfallArt].[VorfallKürzel]=inserted.[VorfallKürzel])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'GeschäftsvorfallArt')
ROLLBACK TRANSACTION
RETURN
END
END
/* PREVENT UPDATES if no matching key in 'Mitarbeiter' */
IF (UPDATE([ErfasstVon]) AND (SELECT COUNT(*) FROM inserted WHERE [ErfasstVon] IS NOT NULL)>0)
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([ErfasstVon] IS NULL)) !=
(SELECT COUNT(*)
FROM Mitarbeiter, inserted
WHERE .[MitarbeiterKürzel]=inserted.[ErfasstVon])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Mitarbeiter')
ROLLBACK TRANSACTION
RETURN
END
END
/* PREVENT UPDATES if no matching key in 'Lieferbedingung' */
IF (UPDATE([Lieferbedingung]) AND (SELECT COUNT(*) FROM inserted WHERE [Lieferbedingung] IS NOT NULL)>0)
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([Lieferbedingung] IS NULL)) !=
(SELECT COUNT(*)
FROM Lieferbedingung, inserted
WHERE [Lieferbedingung].[LieferbedingungsNr]=inserted.[Lieferbedingung])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Lieferbedingung')
ROLLBACK TRANSACTION
RETURN
END
END
/* PREVENT UPDATES if no matching key in 'Zahlungsbedingung' */
IF (UPDATE([Zahlungsbedingung]) AND (SELECT COUNT(*) FROM inserted WHERE [Zahlungsbedingung] IS NOT NULL)>0)
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([Zahlungsbedingung] IS NULL)) !=
(SELECT COUNT(*)
FROM Zahlungsbedingung, inserted
WHERE [Zahlungsbedingung].[Zahlungsbedingung]=inserted.[Zahlungsbedingung])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Zahlungsbedingung')
ROLLBACK TRANSACTION
RETURN
END
END
/* PREVENT UPDATES if no matching key in 'Adressen' */
IF (UPDATE([KorrNr]) AND (SELECT COUNT(*) FROM inserted WHERE [KorrNr] IS NOT NULL)>0)
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([KorrNr] IS NULL)) !=
(SELECT COUNT(*)
FROM Adressen, inserted
WHERE [Adressen].[KorrNr]=inserted.[KorrNr])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Adressen')
ROLLBACK TRANSACTION
RETURN
END
END
/* PREVENT UPDATES if no matching key in 'Verkaufspreis' */
IF (UPDATE([VKPNr]) AND (SELECT COUNT(*) FROM inserted WHERE [VKPNr] IS NOT NULL)>0)
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([VKPNr] IS NULL)) !=
(SELECT COUNT(*)
FROM Verkaufspreis, inserted
WHERE [Verkaufspreis].[VKPNr]=inserted.[VKPNr])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Verkaufspreis')
ROLLBACK TRANSACTION
RETURN
END
END
/* PREVENT UPDATES if no matching key in 'Sprache' */
IF (UPDATE([Sprache]) AND (SELECT COUNT(*) FROM inserted WHERE [Sprache] IS NOT NULL)>0)
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([Sprache] IS NULL)) !=
(SELECT COUNT(*)
FROM Sprache, inserted
WHERE [Sprache].[Sprachencode]=inserted.[Sprache])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Sprache')
ROLLBACK TRANSACTION
RETURN
END
END
/* PREVENT UPDATES if no matching key in 'Währung' */
IF (UPDATE([Währung]) AND (SELECT COUNT(*) FROM inserted WHERE [Währung] IS NOT NULL)>0)
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([Währung] IS NULL)) !=
(SELECT COUNT(*)
FROM Währung, inserted
WHERE [Währung].[Währungskürzel]=inserted.[Währung])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Währung')
ROLLBACK TRANSACTION
RETURN
END
END
3.ALTER TRIGGER [dbo].[VorfallPositionBezugAufVorfallPosition_Update] ON [dbo].[VorfallPositionBezugAufVorfallPosition] FOR UPDATE AS
/* PREVENT UPDATES if no matching key in 'GeschäftsvorfallPosition' */
IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNr])
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([VorfallKürzel] IS NULL) AND NOT([VorfallNr] IS NULL)) >
(SELECT COUNT(*)
FROM GeschäftsvorfallPosition, inserted
WHERE [GeschäftsvorfallPosition].[VorfallKürzel]=inserted.[VorfallKürzel] AND [GeschäftsvorfallPosition].[VorfallNr]=inserted.[VorfallNr])
BEGIN
RAISERROR (55556, 10, 1, 'VorfallPositionBezugAufVorfallPosition', 'GeschäftsvorfallPosition')
ROLLBACK TRANSACTION
RETURN
END
END
4.ALTER TRIGGER [dbo].[GeschäftsvorfallPosition_Update] ON [dbo].[GeschäftsvorfallPosition] FOR UPDATE AS
DECLARE @GeschäftsvorfallPositionCount Int
DECLARE @iVorfallKürzel VarChar(10), @dVorfallKürzel VarChar(10), @iVorfallNr VarChar(8), @dVorfallNr VarChar(8), @iArbeitsPlatz VarChar(2), @dArbeitsPlatz VarChar(2)
DECLARE @iPositionNummer int, @dPositionNummer int
SET @GeschäftsvorfallPositionCount = @@RowCount
SET NOCOUNT ON
IF @GeschäftsvorfallPositionCount>1
BEGIN
IF Not((Update([VorfallKürzel]) AND NOT((SELECT TOP 1 COUNT(*) FROM inserted GROUP BY [VorfallKürzel])=@GeschäftsvorfallPositionCount)) OR (Update([VorfallNr]) AND NOT((SELECT TOP 1 COUNT(*) FROM inserted GROUP BY [VorfallNr])=@GeschäftsvorfallPositionCount)) OR (Update([ArbeitsPlatz]) AND NOT((SELECT TOP 1 COUNT(*) FROM inserted GROUP BY [ArbeitsPlatz])=@GeschäftsvorfallPositionCount)) OR (Update([PositionNummer]) AND NOT((SELECT TOP 1 COUNT(*) FROM inserted GROUP BY [PositionNummer])=@GeschäftsvorfallPositionCount)))
BEGIN
IF UPDATE([PositionNummer]) AND (SELECT COUNT(*) FROM (SELECT TOP 1 inserted.[PositionNummer] FROM inserted, deleted WHERE inserted.[PositionNummer]<>deleted.[PositionNummer]) AS TblCnt)>0
BEGIN
SELECT TOP 1 @iPositionNummer=[PositionNummer] FROM inserted
/* CASCADES UPDATE to 'VorfallPositionBezugAufVorfallPosition' */
UPDATE [VorfallPositionBezugAufVorfallPosition]
SET [VorfallPositionBezugAufVorfallPosition].[PositionNr]=@iPositionNummer
FROM VorfallPositionBezugAufVorfallPosition, deleted
WHERE [VorfallPositionBezugAufVorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallPositionBezugAufVorfallPosition].[VorfallNr]=deleted.[VorfallNr]
/* CASCADES UPDATE to 'RechnungsKontrollePosition' */
UPDATE [RechnungsKontrollePosition]
SET [RechnungsKontrollePosition].[PositionNr]=@iPositionNummer
FROM RechnungsKontrollePosition, deleted
WHERE [RechnungsKontrollePosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [RechnungsKontrollePosition].[VorfallNr]=deleted.[VorfallNr] AND [RechnungsKontrollePosition].[PositionNr]=deleted.[PositionNummer]
/* CASCADES UPDATE to 'Filialaufteilung' */
UPDATE [Filialaufteilung]
SET [Filialaufteilung].[PositionNr]=@iPositionNummer
FROM Filialaufteilung, deleted
WHERE [Filialaufteilung].[VorfallKürzel]=deleted.[VorfallKürzel] AND [Filialaufteilung].[VorfallNr]=deleted.[VorfallNr] AND [Filialaufteilung].[ArbeitsPlatz]=deleted.[ArbeitsPlatz] AND [Filialaufteilung].[PositionNr]=deleted.[PositionNummer]
END
IF UPDATE([ArbeitsPlatz]) AND (SELECT COUNT(*) FROM (SELECT TOP 1 inserted.[ArbeitsPlatz] FROM inserted, deleted WHERE inserted.[ArbeitsPlatz]<>deleted.[ArbeitsPlatz]) AS TblCnt)>0
BEGIN
SELECT TOP 1 @iArbeitsPlatz=[ArbeitsPlatz] FROM inserted
/* CASCADES UPDATE to 'Filialaufteilung' */
UPDATE [Filialaufteilung]
SET [Filialaufteilung].[ArbeitsPlatz]=@iArbeitsPlatz
FROM Filialaufteilung, deleted
WHERE [Filialaufteilung].[VorfallKürzel]=deleted.[VorfallKürzel] AND [Filialaufteilung].[VorfallNr]=deleted.[VorfallNr] AND [Filialaufteilung].[ArbeitsPlatz]=deleted.[ArbeitsPlatz] AND [Filialaufteilung].[PositionNr]=deleted.[PositionNummer]
END
IF UPDATE([VorfallNr]) AND (SELECT COUNT(*) FROM (SELECT TOP 1 inserted.[VorfallNr] FROM inserted, deleted WHERE inserted.[VorfallNr]<>deleted.[VorfallNr]) AS TblCnt)>0
BEGIN
SELECT TOP 1 @iVorfallNr=[VorfallNr] FROM inserted
/* CASCADES UPDATE to 'VorfallPositionBezugAufVorfallPosition' */
UPDATE [VorfallPositionBezugAufVorfallPosition]
SET [VorfallPositionBezugAufVorfallPosition].[VorfallNr]=@iVorfallNr
FROM VorfallPositionBezugAufVorfallPosition, deleted
WHERE [VorfallPositionBezugAufVorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallPositionBezugAufVorfallPosition].[VorfallNr]=deleted.[VorfallNr]
/* CASCADES UPDATE to 'RechnungsKontrollePosition' */
UPDATE [RechnungsKontrollePosition]
SET [RechnungsKontrollePosition].[VorfallNr]=@iVorfallNr
FROM RechnungsKontrollePosition, deleted
WHERE [RechnungsKontrollePosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [RechnungsKontrollePosition].[VorfallNr]=deleted.[VorfallNr] AND [RechnungsKontrollePosition].[PositionNr]=deleted.[PositionNummer]
/* CASCADES UPDATE to 'Filialaufteilung' */
UPDATE [Filialaufteilung]
SET [Filialaufteilung].[VorfallNr]=@iVorfallNr
FROM Filialaufteilung, deleted
WHERE [Filialaufteilung].[VorfallKürzel]=deleted.[VorfallKürzel] AND [Filialaufteilung].[VorfallNr]=deleted.[VorfallNr] AND [Filialaufteilung].[ArbeitsPlatz]=deleted.[ArbeitsPlatz] AND [Filialaufteilung].[PositionNr]=deleted.[PositionNummer]
END
IF UPDATE([VorfallKürzel]) AND (SELECT COUNT(*) FROM (SELECT TOP 1 inserted.[VorfallKürzel] FROM inserted, deleted WHERE inserted.[VorfallKürzel]<>deleted.[VorfallKürzel]) AS TblCnt)>0
BEGIN
SELECT TOP 1 @iVorfallKürzel=[VorfallKürzel] FROM inserted
/* CASCADES UPDATE to 'VorfallPositionBezugAufVorfallPosition' */
UPDATE [VorfallPositionBezugAufVorfallPosition]
SET [VorfallPositionBezugAufVorfallPosition].[VorfallKürzel]=@iVorfallKürzel
FROM VorfallPositionBezugAufVorfallPosition, deleted
WHERE [VorfallPositionBezugAufVorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallPositionBezugAufVorfallPosition].[VorfallNr]=deleted.[VorfallNr]
/* CASCADES UPDATE to 'RechnungsKontrollePosition' */
UPDATE [RechnungsKontrollePosition]
SET [RechnungsKontrollePosition].[VorfallKürzel]=@iVorfallKürzel
FROM RechnungsKontrollePosition, deleted
WHERE [RechnungsKontrollePosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [RechnungsKontrollePosition].[VorfallNr]=deleted.[VorfallNr] AND [RechnungsKontrollePosition].[PositionNr]=deleted.[PositionNummer]
/* CASCADES UPDATE to 'Filialaufteilung' */
UPDATE [Filialaufteilung]
SET [Filialaufteilung].[VorfallKürzel]=@iVorfallKürzel
FROM Filialaufteilung, deleted
WHERE [Filialaufteilung].[VorfallKürzel]=deleted.[VorfallKürzel] AND [Filialaufteilung].[VorfallNr]=deleted.[VorfallNr] AND [Filialaufteilung].[ArbeitsPlatz]=deleted.[ArbeitsPlatz] AND [Filialaufteilung].[PositionNr]=deleted.[PositionNummer]
END
END
ELSE
BEGIN
IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNr]) OR UPDATE([ArbeitsPlatz]) OR UPDATE([PositionNummer])
BEGIN
RAISERROR (55558, 10, 1, 'GeschäftsvorfallPosition')
ROLLBACK TRANSACTION
RETURN
END
END
END
ELSE
BEGIN
SELECT TOP 1 @iVorfallKürzel=[VorfallKürzel] FROM inserted
SELECT TOP 1 @iVorfallNr=[VorfallNr] FROM inserted
SELECT TOP 1 @iArbeitsPlatz=[ArbeitsPlatz] FROM inserted
SELECT TOP 1 @iPositionNummer=[PositionNummer] FROM inserted
IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNr]) OR UPDATE([ArbeitsPlatz]) OR UPDATE([PositionNummer])
BEGIN
/* CASCADES UPDATE to 'VorfallPositionBezugAufVorfallPosition' */
UPDATE [VorfallPositionBezugAufVorfallPosition]
SET [VorfallPositionBezugAufVorfallPosition].[VorfallKürzel]=@iVorfallKürzel, [VorfallPositionBezugAufVorfallPosition].[VorfallNr]=@iVorfallNr
FROM [VorfallPositionBezugAufVorfallPosition], deleted
WHERE [VorfallPositionBezugAufVorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallPositionBezugAufVorfallPosition].[VorfallNr]=deleted.[VorfallNr]
/* CASCADES UPDATE to 'Filialaufteilung' */
UPDATE [Filialaufteilung]
SET [Filialaufteilung].[VorfallKürzel]=@iVorfallKürzel, [Filialaufteilung].[VorfallNr]=@iVorfallNr, [Filialaufteilung].[ArbeitsPlatz]=@iArbeitsPlatz, [Filialaufteilung].[PositionNr]=@iPositionNummer
FROM [Filialaufteilung], deleted
WHERE [Filialaufteilung].[VorfallKürzel]=deleted.[VorfallKürzel] AND [Filialaufteilung].[VorfallNr]=deleted.[VorfallNr] AND [Filialaufteilung].[ArbeitsPlatz]=deleted.[ArbeitsPlatz] AND [Filialaufteilung].[PositionNr]=deleted.[PositionNummer]
END
END
/* PREVENT UPDATES if no matching key in 'Mitarbeiter' */
IF (UPDATE([MitarbeiterKürzel]) AND (SELECT COUNT(*) FROM inserted WHERE [MitarbeiterKürzel] IS NOT NULL)>0)
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([MitarbeiterKürzel] IS NULL)) !=
(SELECT COUNT(*)
FROM Mitarbeiter, inserted
WHERE .[MitarbeiterKürzel]=inserted.[MitarbeiterKürzel])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsvorfallPosition', 'Mitarbeiter')
ROLLBACK TRANSACTION
RETURN
END
END
/* PREVENT UPDATES if no matching key in 'Filialen' */
IF (UPDATE([FilialNummer]) AND (SELECT COUNT(*) FROM inserted WHERE [FilialNummer] IS NOT NULL)>0)
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([FilialNummer] IS NULL)) !=
(SELECT COUNT(*)
FROM Filialen, inserted
WHERE [Filialen].[Filialnummer]=inserted.[FilialNummer])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsvorfallPosition', 'Filialen')
ROLLBACK TRANSACTION
RETURN
END
END
/* PREVENT UPDATES if no matching key in 'Adressen' */
IF (UPDATE([KorrNr]) AND (SELECT COUNT(*) FROM inserted WHERE [KorrNr] IS NOT NULL)>0)
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([KorrNr] IS NULL)) !=
(SELECT COUNT(*)
FROM Adressen, inserted
WHERE [Adressen].[KorrNr]=inserted.[KorrNr])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsvorfallPosition', 'Adressen')
ROLLBACK TRANSACTION
RETURN
END
END
/* PREVENT UPDATES if no matching key in 'Mehrwertsteuer' */
IF (UPDATE([MwStSatzNr]) AND (SELECT COUNT(*) FROM inserted WHERE [MwStSatzNr] IS NOT NULL)>0)
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([MwStSatzNr] IS NULL)) !=
(SELECT COUNT(*)
FROM Mehrwertsteuer, inserted
WHERE [Mehrwertsteuer].[MwStSatzNr]=inserted.[MwStSatzNr])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsvorfallPosition', 'Mehrwertsteuer')
ROLLBACK TRANSACTION
RETURN
END
END
/* PREVENT UPDATES if no matching key in 'GeschäftsVorfall' */
IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNr]) OR UPDATE([ArbeitsPlatz])
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([VorfallKürzel] IS NULL) AND NOT([VorfallNr] IS NULL) AND NOT([ArbeitsPlatz] IS NULL)) !=
(SELECT COUNT(*)
FROM GeschäftsVorfall, inserted
WHERE [GeschäftsVorfall].[VorfallKürzel]=inserted.[VorfallKürzel] AND [GeschäftsVorfall].[VorfallNr]=inserted.[VorfallNr] AND [GeschäftsVorfall].[Arbeitsplatz]=inserted.[ArbeitsPlatz])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsvorfallPosition', 'GeschäftsVorfall')
ROLLBACK TRANSACTION
RETURN
END
END
/* PREVENT UPDATES if no matching key in 'HandelsArtikel' */
IF (UPDATE([ArtikelNr]) AND (SELECT COUNT(*) FROM inserted WHERE [ArtikelNr] IS NOT NULL)>0) OR (UPDATE([Einheit]) AND (SELECT COUNT(*) FROM inserted WHERE [Einheit] IS NOT NULL)>0) OR (UPDATE([Farbe]) AND (SELECT COUNT(*) FROM inserted WHERE [Farbe] IS NOT NULL)>0) OR (UPDATE([Groesse]) AND (SELECT COUNT(*) FROM inserted WHERE [Groesse] IS NOT NULL)>0)
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([ArtikelNr] IS NULL) AND NOT([Einheit] IS NULL) AND NOT([Farbe] IS NULL) AND NOT([Groesse] IS NULL)) !=
(SELECT COUNT(*)
FROM HandelsArtikel, inserted
WHERE [HandelsArtikel].[ArtikelNr]=inserted.[ArtikelNr] AND [HandelsArtikel].[Einheit]=inserted.[Einheit] AND [HandelsArtikel].[Farbe]=inserted.[Farbe] AND [HandelsArtikel].[Grösse]=inserted.[Groesse])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsvorfallPosition', 'HandelsArtikel')
ROLLBACK TRANSACTION
RETURN
END
END
/* PREVENT UPDATES if no matching key in 'Sammeltext' */
IF (UPDATE([SammelText]) AND (SELECT COUNT(*) FROM inserted WHERE [SammelText] IS NOT NULL)>0)
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([SammelText] IS NULL)) !=
(SELECT COUNT(*)
FROM Sammeltext, inserted
WHERE [Sammeltext].[lfdNr]=inserted.[SammelText])
BEGIN
RAISERROR (55556, 10, 1, 'GeschäftsvorfallPosition', 'Sammeltext')
ROLLBACK TRANSACTION
RETURN
END
END
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- toja
- Offline
- Moderator
-
Weniger
Mehr
9 Jahre 5 Monate her - 9 Jahre 5 Monate her #609
von toja
toja antwortete auf Re: Orgasoft NT 5.7 - mögliche Fehlermeldungen beim Verbuche
o.g. Fehler ist mit Version 5.7.1 behoben
Bitte Anmelden oder Registrieren um der Konversation beizutreten.