Hallo!
In der Wawi 1.4.34.0 gibt es einen Bug in der o.a. Stored Procedure.
Ich benutze diese Prozedur um für jeden neu angelegten Kunden ein paar Default Werte für die Eigenen Felder anzulegen. Leider werden die bereits vorhandenen Eigenen Felder doppelt angelegt. Warum? Weil ich alle Eigenen Felder in der Kundenmaske auf dem Reiter "Allgemein" anzeigen und nicht " Eigene Felder". Das führt zum Fehler. Um genau zu sein, der ist hier:
Also bei tAttribut.nAusgabeweg = 2 (wäre bei mir 1)
Geht dann weiter, weil nAusgabeweg immer 2 als Default ist.
Das ist halt leider falsch. Entweder im Typ Kunde.TYPE_KundenEigenesFeldAnpassen den Ausgabeweg mitgeben lassen, oder vorher ermitteln, wo denn das Feld tatsächlich steht.
Beste Grüße
Thomas
In der Wawi 1.4.34.0 gibt es einen Bug in der o.a. Stored Procedure.
Ich benutze diese Prozedur um für jeden neu angelegten Kunden ein paar Default Werte für die Eigenen Felder anzulegen. Leider werden die bereits vorhandenen Eigenen Felder doppelt angelegt. Warum? Weil ich alle Eigenen Felder in der Kundenmaske auf dem Reiter "Allgemein" anzeigen und nicht " Eigene Felder". Das führt zum Fehler. Um genau zu sein, der ist hier:
SQL:
--
-- Zuweisung der Attribute an KundeEigenesFeld . Vorher alle die es evtl. schon gibt löschen.
--
DELETE Kunde.tKundeEigenesFeld
FROM Kunde.tKundeEigenesFeld
JOIN #EigeneFelderCreateOrUpdate ON #EigeneFelderCreateOrUpdate.kKunde = tKundeEigenesFeld.kKunde
CROSS APPLY ( SELECT tattribut.kAttribut
FROM dbo.tattribut
JOIN tAttributSprache on tAttributSprache.kAttribut = tAttribut.kAttribut
WHERE tAttribut.nIstFreifeld= 1 AND tAttribut.nAusgabeweg = 2 and tAttributSprache.cName = #EigeneFelderCreateOrUpdate.cKey ) AS Attribute
WHERE Attribute.kAttribut = Kunde.tKundeEigenesFeld.kAttribut;
Also bei tAttribut.nAusgabeweg = 2 (wäre bei mir 1)
Geht dann weiter, weil nAusgabeweg immer 2 als Default ist.
SQL:
INSERT INTO #Attribut(kAttribut,cName)
SELECT DISTINCT tattribut.kAttribut ,tAttributSprache.cName
FROM dbo.tattribut
JOIN tAttributSprache on tAttributSprache.kAttribut = tAttribut.kAttribut AND tAttributSprache.kSprache = 0
WHERE tAttribut.nIstFreifeld= 1 AND tAttribut.nAusgabeweg = 2;
Das ist halt leider falsch. Entweder im Typ Kunde.TYPE_KundenEigenesFeldAnpassen den Ausgabeweg mitgeben lassen, oder vorher ermitteln, wo denn das Feld tatsächlich steht.
Beste Grüße
Thomas