Neu Workflow - Oberkategorie prüfen

Ahok

Gut bekanntes Mitglied
11. September 2023
276
10
Wie kann ich prüfen, ob ein Artikel eine bestimmte Oberkategorie hat, egal auf welcher Ebene über ihm? Ich könnte bisher nur auf die nächste Oberkategorie prüfen, aber nicht auf die Oberkategorie der Oberkategorie usw.
 

jtldudel

Sehr aktives Mitglied
4. Januar 2018
635
203
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.
 

Tomka

Aktives Mitglied
10. Mai 2022
62
7
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.
Hey vielen Dank,

Das ist schon mal ein Ansatz den ich mal weiter verfolgen kann.

Hintergrund ist folgender, ich muss den Kategorien eine eigene ID verpassen. Und wenn ich dort ein Produkt platziere, möchte ich gerne per Workflow die category ID dem Produkt zu weisen.

Die Lösung wäre einfach, wenn nur eine Kategorie zugewiesen wäre, dann würde die Variable erstes Objekt greifen.

Nur leider habe ich mehrere, je nach Shop unterschiedliche Zuweisung.

Warum per Workflow, nun da der Workflow noch weitere Anweisung verarbeitet und sowieso manuell angestoßen werden muss.

Parallel lasse ich vom Dienstleister eine SQL Abfrage prüfen. Persönlich wäre mir aktuell die Workflow Variante lieber.

Ich weiß es geht auch manuell Mit der Ameise, aber da müsste ich Kategorie für Kategorie Import/Export starten.

Gruß Tomka
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
8.049
2.300
Berlin
Firma
css-umsetzung
Ich habe es so verstanden, das er die Oberkategorie haben möchte, also wenn ein Artikel in der dritten Ebene liegt, das er dann wissen möchte was die erste Ebene davon ist?
wenn ich das richtig verstanden habe wäre dein Workflow nicht passend, da der nur schaut in welcher Kategorie der Artikel letztendlich liegt, es würde also in meinem Beschriebenen Fall nur die dritte Ebene angezeigt werden.
 

Tomka

Aktives Mitglied
10. Mai 2022
62
7
Genau für mich ist die letzte Kategorie entscheidend,

Shop -> Auto -> Reinigung -> Scheiben

Nach diesem Beispiel, müsste ich Scheiben herauskriegen. Bei einzelnen Eintrag ist das ja kein Problem. schwierig stellt sich wenn mehrere Pfade hinterlegt sind.
 

Tomka

Aktives Mitglied
10. Mai 2022
62
7
Ich probiere es trotzdem mal aus, dass könnte ich für ein anderes Problem gebrauchen :) und vllt. hilft es ja jemand anderem :)
 

kelvin.

Sehr aktives Mitglied
15. Februar 2023
166
65
Frankfurt
Die Kategorie ist nach der Datenstruktur ein Baum.
Dann müsste es rekursiv möglich sein, sowohl die Wurzel als auch die Blätter zu erreichen.

Das einzige Herausforderung, was ich derzeit sehe ist, dass ein Artikel in mehreren Kategorien sein, also auch in Kategorien, die sich nicht überschneiden. Da müsste man zusätzlich Abfragen.
 

Tomka

Aktives Mitglied
10. Mai 2022
62
7
Hallo Kelvin,

danke für die Antwort. Aus Zeitgründen habe ich am WE dies an einen externen Dienstleister übergeben der uns 2 SQL Abfragen für die Ameise programmiert hat, funktioniert für unsere Zwecke wunderbar.

Gruß Tomka
 
Ähnliche Themen
Titel Forum Antworten Datum
Seit dem Update auf JTL Wawi 1.11.4 funktioniert der Workflow "Datei Schreiben" nicht JTL-Wawi 1.11 1
Workflow - Werte setzen JTL-Wawi 1.11 0
Seit Update auf 1.11.4 Workflow für Kartonauswahl gibt error JTL Das Objekt mit Nullwert muss einen Wert haben. BrowsePk: 152325 WorkflowAktionId: 155 JTL-Wawi 1.11 1
Neu Workflow Artkel bereits bestellt Arbeitsabläufe in JTL-Wawi 1
Neu Workflow bei Zahlungseingang User helfen Usern - Fragen zu JTL-Wawi 1
Neu Workflow LandISO User helfen Usern - Fragen zu JTL-Wawi 3
Workflow zum abrufen der Upload-Datei aus dem Shop-Auftrag JTL-Wawi 1.11 0
Beantwortet Workflow Datei schreiben Dateiname per Dotliquid Fehler Illegales Zeichen im Pfad. callerMemberName : WriteFile JTL-Workflows - Fehler und Bugs 1
Neu Workflow zum automatischen Stornieren einer Rechnung nach Versand User helfen Usern - Fragen zu JTL-Wawi 4
Neu Artikel KinderArtikel anlegen: Workflow "Artikel erstellt und Artikel geändert" werden NUR beim Vaterartikel gestartet User helfen Usern - Fragen zu JTL-Wawi 0
Stornobeleg als Workflow-Trigger JTL-Wawi 1.10 6
Issue angelegt [WAWI-86213] Kartonagen nicht mehr über Workflow auswählbar nach Update auf 1.11.3 JTL-Workflows - Ideen, Lob und Kritik 1
In Diskussion Workflow für voraussichtlichen Liefertag erstellen JTL-Workflows - Ideen, Lob und Kritik 6
Neu Workflow für voraussichtlichen Liefertag erstellen User helfen Usern - Fragen zu JTL-Wawi 1
Lieferantenbestellung per Workflow bestätigen JTL-Wawi 1.11 0
In Diskussion Workflow: Straße enthält Postfiliale oder Paketshop JTL-Workflows - Fehler und Bugs 3
Neu Workflow 4 Wochen vor vorraus. Lieferdatum Arbeitsabläufe in JTL-Wawi 1
Überverkäufe über Workflow setzen JTL-Wawi 1.10 2
In Diskussion Workflow alle X Tage ausführen JTL-Workflows - Ideen, Lob und Kritik 5
Ausliefern Workflow über API JTL-Wawi 1.9 6
Neu Kann man das Shop-Guthaben von Kunden per Workflow beeinflussen? User helfen Usern - Fragen zu JTL-Wawi 0
JTL-Workflow | Automatisches Speichern von Rechnungen möglich? JTL-Wawi 1.9 2
In Diskussion Workflow Angebote OHNE Auftrag JTL-Workflows - Ideen, Lob und Kritik 8
Gelöst Workflow-Trigger für Selbstabholung / FFN-Versand JTL-Workflows - Fehler und Bugs 2
In Diskussion Workflow für bezahlte Aufträge eines bestimmten Lagers → Pickliste zu bestimmter Uhrzeit JTL-Workflows - Ideen, Lob und Kritik 2
In Diskussion Workflow verändert Wert JTL-Workflows - Ideen, Lob und Kritik 1
Workflow Standardlieferant JTL-Wawi 1.10 2
XML Auftragsimport per Workflow bediinen JTL-Wawi 1.8 1
Issue angelegt [WAWI-44314] Workflow automatisch 2 Pakete erstellen bei bestimmen Produkten? JTL-Workflows - Ideen, Lob und Kritik 2
Gelöst CustomWorkflow erscheint nicht in den Workflow-Aktionen JTL-Workflows - Fehler und Bugs 7
Neu Workflow um einen Artikel bei einem bestimmten Verkaufskanal zu aktivieren oder deaktivieren User helfen Usern - Fragen zu JTL-Wawi 4

Ähnliche Themen