Orgasoft NT 5.7.0 - mögliche Fehlermeldungen beim Verbuchen

  • mos
  • Autor
  • Moderator
  • Moderator
Mehr
12 Jahre 4 Monate her - 12 Jahre 4 Monate her #861 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:

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.
Code:
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.
Code:
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.
Code:
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
Anhänge:

Bitte Anmelden um der Konversation beizutreten.

  • toja
  • Moderator
  • Moderator
Mehr
11 Jahre 8 Monate her - 11 Jahre 8 Monate her #609 von toja
o.g. Fehler ist mit Version 5.7.1 behoben

Bitte Anmelden um der Konversation beizutreten.

Signum Warenwirtschaftssysteme GmbH
Kasinostraße 2
DE-64293 Darmstadt

Tel: +49 (6151) 15 18 - 0
Fax: +49 (6151) 15 18 - 100
team@signum.info