Artikelanlage ohne EAN verhindern

Mehr
11 Jahre 3 Monate her - 11 Jahre 3 Monate her #867 von arnd
Artikelanlage ohne EAN verhindern wurde erstellt von arnd
Hallo!

Hat vielleicht jemand eine Idee, wie ich verhindern kann, dass Artikel eines bestimmten Lieferanten ohne Eintrag im EAN-Fenster gespeichert werden?
Ein Insert Trigger auf die Artikel-Tabelle mit Rollback funktioniert, soweit ich das sehen kann nicht, weil der Eintrag in der EAN-Tabelle erst nach dem Speichern des Artikels erfolgt.

Grüße
Arnd.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
11 Jahre 3 Monate her - 11 Jahre 3 Monate her #275 von asu
Hallo Arnd,

wenn auch ein "After Insert" Trigger nicht hilft, dann bleibt aktuell wohl nur die Lösung sich über einen Datenexport und Scheduler-Job einmal am Tag eine Liste per email schicken zu lassen von den "Sündenfällen". Schick mir doch mal deinen bisherigen Trigger-Ansatz.

Gruß

asu

"Wer Rechtschreibfehler findet, darf sie behalten."

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
11 Jahre 2 Monate her - 11 Jahre 2 Monate her #301 von arnd
Hallo asu,

ich habe jetzt einen Trigger in der GeschäftsvorfallPosition angelegt.
Das ist zwar nicht ganz so komfortabel, weil man den Artikel nochmal extra aufrufen muss. Es scheint mir aber auf DB Seite die einzige Möglichkeit zu sein. Ist dann eben die Strafe dafür, dass man vorher nicht ordentlich gearbeitet hat
Vielleicht kann es in einer der nächsten Versionen auch auf Programm-Seite eingebaut werden?

Grüße
Arnd.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
11 Jahre 2 Monate her - 11 Jahre 2 Monate her #302 von arnd
USE [...300]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE Trigger [dbo].[UserGeschäftsVorfallPos_Insert_EAN] ON [dbo].[GeschäftsvorfallPosition] FOR INSERT AS 
SET NOCOUNT ON
declare @str as varchar(150) 
set @str = CHAR(10) + 'GeschäftsVorfallPos.'+CHAR(10) + 'Für diesen Artikel ist noch keine EAN-Nummer angelegt worden.'

IF (UPDATE([ArtikelNr]) AND (SELECT COUNT(*) FROM inserted WHERE [ArtikelNr] IS NOT NULL and     
-- Bei diesen Lieferanten prüfen
inserted.korrnr in (330, 166, 116, 142, 172, 189, 191, 145, 148)
and
-- Bei Vorfallart
vorfallkürzel='WE')>0)
  BEGIN
    IF (SELECT COUNT(*) 
    FROM inserted inner join ean 
    on inserted.artikelnr=ean.artikelnr
    where 
    -- Nur EAN mit definierter Länge zulassen
    len(ean.ean) between 12 and 13
    )=0
      BEGIN
        RAISERROR (@str, 16, 1)
        ROLLBACK TRANSACTION
        RETURN
      END
  END

GO

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
11 Jahre 2 Monate her - 11 Jahre 2 Monate her #306 von asu
Hallo arnd,

da ich als "Erfinder" der Funktion "EAN-Zwang" in OrgaSoft ( DOS ) vor vielen Jahren deinen Ansatz verstehen kann, werde ich das mal besprechen.

Ein kleiner Tipp noch....

inserted.korrnr in (330, 166, 116, 142, 172, 189, 191, 145, 148)

KorrNr ist vom Typ varchar(), sicherheitshalber die einzelnen KorrNr in '' setzen.

inserted.korrnr in ('330', '166', '116', '142', '172', '189', '191', '145', '148')

Gruß
asu

"Wer Rechtschreibfehler findet, darf sie behalten."

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
11 Jahre 2 Monate her - 11 Jahre 2 Monate her #307 von asu
Hallo arnd,

kleiner Nachtrag noch, es geht in deinem Fall um Barcodes vom Hersteller, richtig ? Also die Funktion "AutoCreateEAN" in InStore-EAN nützt dir in dem Fall nichts, richtig ?

Gruß

asu

"Wer Rechtschreibfehler findet, darf sie behalten."

Bitte Anmelden oder Registrieren um der Konversation beizutreten.