Hi,
länger als ich hier im Forum unterwegs bin wird sich schon die Funktion gewünscht, passend für einen Auftrag, Rechnung, Lieferschein etc. Artikeletiketten drucken zu können. Leider bewegt sich JTL nicht.
Zwar gibt es eine käufliche Lösung in Form einer Durckvorlage aber diese duckt immer nur ein Etikett je Position, auch wenn der Artikel mit mehr als Menge 1 ausgewiesen ist.
Hier meine Lösung dazu ohne umbebaute Vorlagen und MIT passender Anzahl an Etiketten.
1. Manueller Artikel Workflow Drucken anlegen
Es wird ein manueller Artikel Workflow angelegt mit:
- Name: Etikett drucken
- Ausgabe
- Ausgabeobjekt = Artikel\Ausgabeobjekt
- Ausgabemodus = Drucken
- Vorlagenset Dein Artikeletikett
- Auf Ausgabe warten AKTIV
- Menge bekommt folgenden Code:
2. Manueller Auftrag Worklfow anlegen
Es wird ein manueller Auftrags Workflow angelegt mit zwei Aktionen:
Aktion 1
- Werte setzen
- Variable "GlobaleTexte.Intern.tmp-Wf-EtikettenDrucken-Anzahl.Deutsch"
- Wert bekommt folgenden Code:
Aktion 2
- Workflow Ereignis auslösen
- Bezugsobjekt = Auftrag\Auftragspositionen\Artikelliste\Objektliste
- Ereignis = Etikett drucken (= der Workflow, der in (1) angelegt wurde)
Der Code in (1) und (2) nutzt hilfsweise einen globalen Text als Variable, um darin eine Liste aus kArtikel bzw. ArtikelNummerIntern und der zugehörigen Menge abzulegen.
Diese Variable muß von Euch selbst in der Wawi unter Einstellungen > Globale Textbausteien angelegt und die benutzte Gruppe/Name dann im Code angepasst werden.
In meinem Bespiel habe ich eine Gruppe mit dem Namen "Intern" mit dem Inhalt "tmp-Wf-EtikettenDrucken-Anzahl" angelegt.
Einschränkungen & Überlegungen
- Der Workflow funktioniert, solange man ihn in Ruhe für EINEN Auftrag ausdrucken lässt, bevor man ihn erneut benutzt.
- Markieren von mehreren Aufträgen ist nicht möglich, bzw. führt zu Chaos, weil der Inhalt der Hilfsvariable mit dem Inhalt eines anderen Auftrags überschrieben würde, bevor alle Etiketten des ersten Auftrags gedruckt wurden. Hier spielen unter anderem physikalische Druckergeschwindigkeit und Spooler mit rein.
- Mehrbenutzerbetrieb ist nur möglich, wenn ein Benutzer den Worklfow erst dann nutzt, wenn ein anderer Benutzer komplett ausgedruckt hat.
- Teilbare Mengen sind bisher nicht berücksichtigt. Unklar, was passiert.
- Ist ein Artikel mehrfach im Auftrag jedoch als unterschiedliche Positionen vorhanden, so wird für alle Vorkommen des Artikels die Anzahl des ersten Vorkommen im Auftrag an Artikel ausgegeben.
Einrichten lassen
Wem das alles technisch zu anspruchsvoll ist, kann sich gerne per PM/eMail bei mir melden und ich richte das zum fairen Stundensatz auf Rechnung in 15 Minuten per Fernwartung ein.
Vielleicht habt Ihr auch noch Ideen, wie man den Ansatz weiter ausbauen kann.
Viele Grüße
John
länger als ich hier im Forum unterwegs bin wird sich schon die Funktion gewünscht, passend für einen Auftrag, Rechnung, Lieferschein etc. Artikeletiketten drucken zu können. Leider bewegt sich JTL nicht.
Zwar gibt es eine käufliche Lösung in Form einer Durckvorlage aber diese duckt immer nur ein Etikett je Position, auch wenn der Artikel mit mehr als Menge 1 ausgewiesen ist.
Hier meine Lösung dazu ohne umbebaute Vorlagen und MIT passender Anzahl an Etiketten.
1. Manueller Artikel Workflow Drucken anlegen
Es wird ein manueller Artikel Workflow angelegt mit:
- Name: Etikett drucken
- Ausgabe
- Ausgabeobjekt = Artikel\Ausgabeobjekt
- Ausgabemodus = Drucken
- Vorlagenset Dein Artikeletikett
- Auf Ausgabe warten AKTIV
- Menge bekommt folgenden Code:
Code:
{% assign AnzahlDrucken = 0 -%}\
{% assign Liste = GlobaleTexte.Intern.tmp-Wf-EtikettenDrucken-Anzahl.Deutsch | Split: '|' -%}\
{% for Element in Liste -%}\
{% assign arrArtikelNummerInternUndMenge = Element | Split: '=' -%}\
{% assign ArtikelNummerIntern = arrArtikelNummerInternUndMenge | First -%}\
{% if ArtikelNummerIntern == Vorgang.Allgemein.Stammdaten.InterneArtikelnummer -%}\
{% assign AnzahlDrucken = arrArtikelNummerInternUndMenge | Last -%}\
{% endif -%}\
{% endfor %}{{ AnzahlDrucken }}
2. Manueller Auftrag Worklfow anlegen
Es wird ein manueller Auftrags Workflow angelegt mit zwei Aktionen:
Aktion 1
- Werte setzen
- Variable "GlobaleTexte.Intern.tmp-Wf-EtikettenDrucken-Anzahl.Deutsch"
- Wert bekommt folgenden Code:
Code:
{% for Position in Vorgang.AuftragsPositionen -%}\
{% if Position.Positionstyp == 1 -%}\
{{ Position.InterneArtikelnummer }}={{ Position.Menge }}|\
{% endif -%}\
{% endfor -%}
Aktion 2
- Workflow Ereignis auslösen
- Bezugsobjekt = Auftrag\Auftragspositionen\Artikelliste\Objektliste
- Ereignis = Etikett drucken (= der Workflow, der in (1) angelegt wurde)
Der Code in (1) und (2) nutzt hilfsweise einen globalen Text als Variable, um darin eine Liste aus kArtikel bzw. ArtikelNummerIntern und der zugehörigen Menge abzulegen.
Diese Variable muß von Euch selbst in der Wawi unter Einstellungen > Globale Textbausteien angelegt und die benutzte Gruppe/Name dann im Code angepasst werden.
In meinem Bespiel habe ich eine Gruppe mit dem Namen "Intern" mit dem Inhalt "tmp-Wf-EtikettenDrucken-Anzahl" angelegt.
Einschränkungen & Überlegungen
- Der Workflow funktioniert, solange man ihn in Ruhe für EINEN Auftrag ausdrucken lässt, bevor man ihn erneut benutzt.
- Markieren von mehreren Aufträgen ist nicht möglich, bzw. führt zu Chaos, weil der Inhalt der Hilfsvariable mit dem Inhalt eines anderen Auftrags überschrieben würde, bevor alle Etiketten des ersten Auftrags gedruckt wurden. Hier spielen unter anderem physikalische Druckergeschwindigkeit und Spooler mit rein.
- Mehrbenutzerbetrieb ist nur möglich, wenn ein Benutzer den Worklfow erst dann nutzt, wenn ein anderer Benutzer komplett ausgedruckt hat.
- Teilbare Mengen sind bisher nicht berücksichtigt. Unklar, was passiert.
- Ist ein Artikel mehrfach im Auftrag jedoch als unterschiedliche Positionen vorhanden, so wird für alle Vorkommen des Artikels die Anzahl des ersten Vorkommen im Auftrag an Artikel ausgegeben.
Einrichten lassen
Wem das alles technisch zu anspruchsvoll ist, kann sich gerne per PM/eMail bei mir melden und ich richte das zum fairen Stundensatz auf Rechnung in 15 Minuten per Fernwartung ein.
Vielleicht habt Ihr auch noch Ideen, wie man den Ansatz weiter ausbauen kann.
Viele Grüße
John
Zuletzt bearbeitet: