Hallo Leute,
für alle, die - aus welchen Gründen auch immer - nicht oder noch nicht auf die neue Ausgabe 2.0 umsteigen können oder wollen und die sich mit den (ehrenhaften!)
JTL_DirectQuery() Konstrukten von oben auf Einzelfallebene quälen, habe ich eine Lösung parat, mit der man wie in der Vergangenheit auch, mit den einfachen
Alias$() Befehlen mit den Kundenattributen arbeiten kann. Here we go ...
1. Neue Benutzervariable
@Kundenattribute anlegen, Inhalt ...
Code:
JTL_DirectTableQuery("SELECT LTRIM(RTRIM(t2.cName)), '=', LTRIM(RTRIM(cWertVarchar)) FROM Kunde.tKundeEigenesFeld t1 JOIN dbo.tAttributSprache t2 on t2.kAttribut=t1.kAttribut JOIN dbo.tAttribut t3 on t3.kAttribut=t2.kAttribut WHERE t3.cGruppeName='Kundenattribute' AND t1.kKunde='"+ToString$(Vorgang.Kunde.InterneKundennummer)+"' ORDER BY cName ASC","","|"),
Das erzeugt einen Inhalt, der genauso strukturiert ist, wie der Inhalt von
Vorgang.Kunde.Attribute es früher war, also
Key1=Parameter1|Key2=Parameter2, etc.
2. Überall dort in Euren Vorlagen, wo Ihr bisher auf
Vorgang.Kunde.Attribute zugegriffen habt, ändert ihr
Vorgang.Kunde.Attribute in
@Kundenattribute.
Damit wird z.B. die Abfrage auf unsere eigene Lieferantennummer beim Kunden von
Alias$("Lieferantennummer",Vorgang.Kunde.Attribute) zu
Alias$("Lieferantennummer",@Kundenattribute).
3. Die
JTL_DirectTableQuery() erzeugt ihr aber nur einmal, "weit weg" in der Benutzervariable, einfacher geht's nicht, fertig ...
Und für diejenigen, die - wie ich - noch immer mit einer
Wawi <1.4 unterwegs sind, aber die Wawi 1.4 oder 1.5 regelmäßig testen wollen und keinen Bock haben, bei jedem Einspielen der aktuellen Produktivdatenbank in die Testinstanz der Wawi immer wieder von vorne alle Vorlagen zum Laufen zu bringen, habe ich eine Erweiterung der Lösung von oben, die sich die Kundenattribute selbständig von der richtigen Stelle aus der DB holt, abhängig davon, ob die Wawi <1.4 oder >=1.4 ist.
Hier würdet ihr die Benutzervariable
@Kundenattribute also nicht in den Vorlagen der 1.4 oder 1.5 anlegen und die Änderungen von
Vorgang.Kunde.Attribute dort machen, sondern ihr legt die Benutzervariable in der 1.3 an und macht die Änderungen nach
@Kundenattribute auch dort, also in der 1.3. Beim nächsten Einspielen der aktuellen Produktivdatenbank in die Wawi 1.4/1.5 Testinstanz werden die Änderungen dort aber sofort greifen und das Fluchen hat ein Ende. Here we go ...
Code:
Cond(Val(JTL_DirectQuery("SELECT SUBSTRING(cVersion,1,CHARINDEX('.',cVersion,CHARINDEX('.',cVersion)+1)-1) FROM tVersion"))>1.3,
JTL_DirectTableQuery("SELECT LTRIM(RTRIM(t2.cName)), '=', LTRIM(RTRIM(cWertVarchar)) FROM Kunde.tKundeEigenesFeld t1 JOIN dbo.tAttributSprache t2 on t2.kAttribut=t1.kAttribut JOIN dbo.tAttribut t3 on t3.kAttribut=t2.kAttribut WHERE t3.cGruppeName='Kundenattribute' AND t1.kKunde='"+ToString$(Vorgang.Kunde.InterneKundennummer)+"' ORDER BY cName ASC","","|"),
JTL_DirectTableQuery("SELECT LTRIM(RTRIM(cName)), '=', LTRIM(RTRIM(cValue)) FROM tKundenAttribute WHERE kKunde='"+ToString$(Vorgang.Kunde.InterneKundennummer)+"' ORDER BY cName ASC","","|")
)
Alles andere bleibt wie unter 1./2./3. oben.
Gruß,
Ingmar