Da es hier um Workflows geht hab ich hier zumindest einen Ansatz, wie genau das verbaut werden soll weiß ich ja nicht. Über eine erweiterte Eigenschaft könnt ihr die IDs aller Kategorien abfragen, die ein Artikel in seinem "Kategoriepfad" hat (oder Pfaden).
Mit etwas aufwand könnte man das auch in die Bezeichnungen umwandeln aber IDs sind eh besser, da mehrere Kategorien den gleichen Namen haben könnten.
All diese IDs geben wir dann zurück, und fragen im
Workflow ab ob die ID der Kategorie, welche wir nun prüfen wollen, dort enthalten ist.
Hier der Code für die erweiterte Eigenschaft:
Code:
{% capture Kategoriepfade -%}
declare @IDs varchar(500)
set @IDs = ''
select @IDs = @IDs + '|' + vKategorien.Sort
from tkategorieartikel
join vKategorien on tkategorieartikel.kKategorie = vKategorien.kKategorie
where kArtikel = {{ Vorgang.Allgemein.Stammdaten.InterneArtikelnummer }}
select @IDs = @IDs + '|'
select @IDs
{% endcapture -%}
{% assign IDs = Kategoriepfade | DirectQueryScalar -%}
{{ IDs }}
Als Beispiel, die Kategorien sind:
Shop -> Auto -> Reinigung -> Scheiben
Shop -> Auto -> Zubehör -> Scheibenreiniger
Die IDs in der Datenbank lauten:
Shop = 1
Auto = 2
Reinigung = 3
Scheiben = 4
Zubehör = 5
Scheibenreiniger = 6
Die Rückgabe im Workflow sieht dann z.B. so aus:
|1|2|3|4|1|2|5|6|
Weil du nun wissen willst ob dein Fensterreiniger unterhalb der Auto Kategorie liegt (warum auch immer) fragst du im Workflow ab ob die Rückgabe den Wert
|2| enthält.
Die ID einer Kategorie bekommt man in JTL angezeigt wenn man die Kategorie öffnet, heißt dort "interner Schlüssel".
Vielleicht hilft das.