Artikelanlage ohne EAN verhindern

Mehr
13 Jahre 3 Wochen her - 13 Jahre 3 Wochen her #310 von arnd
Hallo asu,

ja es geht um Hersteller-Barcodes. Komischer Weise sind die Artikel immer wieder mal schneller produziert und ausgeliefert, als eine Datei mit Artikeldaten erstellt werden kann.

Wenn die sinnvolle Funktion aus der DOS-Version wiederbelebt werden sollte, könnte man das über ein neues Feld in den Adressen-Statusfeldern steuern.

Allerdings zieht das Ganze, wie ich gerade feststellen musste, doch weitere Kreise. Wenn z.B. bestimmte Warengruppen grundsätzlich keine EAN's haben oder Lieferanten-unabhängige Sammelartikel im WE verbucht werden sollen. Den Trigger habe ich deshalb in diesen zwei Punkten nochmal angepasst.
Code:
USE [...300] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER 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 inner join artikel on inserted.artikelnr=artikel.artikelnr where inserted.[ArtikelNr] IS NOT NULL and -- Nur diese Warengruppen prüfen artikel.wgkürzel in('101', '110') and -- Bei diesen Lieferanten prüfen inserted.korrnr in ('211', '215', '327', '166', '116', '142', '172', '189', '191', '145', '148') and -- Bei Vorfallart vorfallkürzel='WE' and -- Nur Artikelnummern in diesem Bereich prüfen inserted.artikelnr between '001000' and '899999' )>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

Danke auch für den Tipp mit varchar(). Weil bei uns die Korrnummern immer 3-stelig, numerisch sind, habe ich daran nicht gedacht.

Grüße,
Arnd.

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