Gelöst Aktion „Ausführen“ Popup Fenster öffnen um direkt visuell eine Benachrichtigung zu erhalten

Rico Giesler

Offizieller Servicepartner
SPBanner
10. Mai 2017
13.244
1.516
Zitat von MSPA:
...
Kurze Frage: Könnte man mit der Funktion "Ausführen" / "Programm/Skript" auch einen Drucker (eine Druckvorlage) ansteuern?
...
Würde mich auch interessieren.

Dazu gibt es doch die Ausgabefunktion!?
Aber man könnte bestimmt eine extern.DLL oder eine Batch aufrufen, die wiederum einen Ausdruck macht.
 

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.214
667
Danke Rico, ich frage aber genau dies nicht ohne Grund :)

Ich möchte keine Standardausgabe nutzen, sondern ich möchte mit Trigger "Auftrag erstellt" z.B. dann Artikeletiketten drucken, die ich ja ohnehin als Vorlage habe.
Ebenso interessant für Trigger bei " Lieferantenbestellungen", wenn Artikel verbucht werden, sollen Etiketten ausgedruckt werden, entweder alle einzeln oder einmal für die Gesamtmenge.
 

aqualut

Aktives Mitglied
2. Juli 2018
80
9
Du hast die Aktion drin nachdem der auftrag ausgeliefert ist?

ich habe meine Workflow Auftrag > Erstellt und Auftrag > Geändert drin.

ich weiss nicht wann ausgeliefert greift eventuell erst wenn ein Lieferdatum gesetzt wird und gepickt ist.. ?

So, ich bin dann auch mal zum testen gekommen. Der Workflow funktioniert leider auch dann nicht, wenn ich ihn bei Auftrag erstellt und Auftrag geändert einbaue. Na ja, ist auch nicht weiter wild, wir arbeiten erstmal mit einer Behelfslösung, das reicht auch erstmal hin (achtet außer mir wahrscheinlich ohnehin niemand drauf :D )
 

tom10

Sehr aktives Mitglied
2. Oktober 2012
718
117
06774 Muldestausee
So, ich bin dann auch mal zum testen gekommen. Der Workflow funktioniert leider auch dann nicht, wenn ich ihn bei Auftrag erstellt und Auftrag geändert einbaue. Na ja, ist auch nicht weiter wild, wir arbeiten erstmal mit einer Behelfslösung, das reicht auch erstmal hin (achtet außer mir wahrscheinlich ohnehin niemand drauf :D )

Eventuell ist hier msg das Problem. Probier doch mal folgende einfache Variante:
Code:
mshta "javascript: alert('{{ Vorgang.Stammdaten.Kunde.EigeneFelder.Kundenattribute.Anmerkung }}'); close();"
Beim nutzen von Ausführen immer wichtig: der Code muss in einer Zeile stehen auch z.B. bei assign und capture:
Code:
{% capture var_tmp -%}Kunde {{ Vorgang.Kunde.Kundennummer }} möchte Rechnung {{ Vorgang.Rechnungsnummer }} nur per Brief-Post!\n\nRechnung drucken nicht vergessen!{% endcapture -%}{% assign var_ausgabe={{var_tmp}} -%}mshta "javascript:alert('{{var_ausgabe}}'); close();"
 
  • Gefällt mir
Reaktionen: aqualut

aqualut

Aktives Mitglied
2. Juli 2018
80
9
Hallo Tom,

habe ich probiert. Zumindest bekomme ich nun wieder ein Popup, was bei der msg-Variante nicht der Fall gewesen ist. Allerdings zeigt es nur den Code an und zieht sich nicht den Inhalt des Feldes.
 

tom10

Sehr aktives Mitglied
2. Oktober 2012
718
117
06774 Muldestausee
Hallo Tom,

habe ich probiert. Zumindest bekomme ich nun wieder ein Popup, was bei der msg-Variante nicht der Fall gewesen ist. Allerdings zeigt es nur den Code an und zieht sich nicht den Inhalt des Feldes.
Dann kann das Feld eigentlich nur leer sein oder das Feld gibt es nicht. Probier es doch mal mit der Auftragsnummer, die sollte es ja geben ;)
Code:
mshta "javascript: alert('{{ Vorgang.Stammdaten.Auftragsnummer }}'); close();"
 

aqualut

Aktives Mitglied
2. Juli 2018
80
9
Nein, die Auftragsnummer mag er auch nicht, das gleiche Ergebnis (siehe unten). Ich kann mir auch nicht vorstellen, dass es an einem leeren oder nicht existierenden Feld liegen kann, da genau dieses Feld ja auch der Trigger für das Popup ist. Und vom Grundsatz funktioniert es ja, sobald was eingetragen ist, erscheint das Popup, ansonsten passiert nichts.
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    11,1 KB · Aufrufe: 116

tom10

Sehr aktives Mitglied
2. Oktober 2012
718
117
06774 Muldestausee
Nein, die Auftragsnummer mag er auch nicht, das gleiche Ergebnis (siehe unten). Ich kann mir auch nicht vorstellen, dass es an einem leeren oder nicht existierenden Feld liegen kann, da genau dieses Feld ja auch der Trigger für das Popup ist. Und vom Grundsatz funktioniert es ja, sobald was eingetragen ist, erscheint das Popup, ansonsten passiert nichts.
Ich habs nochmal nachgestellt unter Workflows -> Aufträge -> Geändert. Jetzt weiß ich auch nicht weiter :(

1563454641086.png
_____________________________________________________________________________________________________________________

1563454744322.png
 

aqualut

Aktives Mitglied
2. Juli 2018
80
9
Na ja, ist ja auch nicht weiter wild. Vermutlich liegt der Hund irgendwo bei uns im System begraben. Und wie gesagt, wir haben ja eine Behelfslösung, die es auch erstmal tut. Vielen Dank auf jeden Fall für deine Mühe!
 

Christian_BD

Sehr aktives Mitglied
7. November 2016
380
68
Hallo zusammen,
hat jemand einen Tipp für mich wie ich einen Zeilenumbruch oder Leerzeile in das Popup einbauen kann?
<br> und <p> funktionieren schon mal nicht, aber das ist auch HTML, wenn ich mich richtig erinnere... o_O
 

tom10

Sehr aktives Mitglied
2. Oktober 2012
718
117
06774 Muldestausee
Wir haben auch nach einer einfachen Lösung für lokale Meldungen und Ausgaben gesucht, weil der Weg über die mshta nicht sehr elegant ist und je nach Systemkonfig auch nicht unbedingt funktioniert. Was wirklich brauchbares haben wir nicht gefunden und wir wollten keine Eierlegendewollmilchsau .... Kurz, ich hab mich selbst an die Arbeit gemacht.

Rausgekommen ist ein kleines Programm, was Popup- und Text-Meldungen anzeigen kann und zusätzlich eine rudimentäre Tabellenansicht bietet. Die Entwicklung ist zwar noch nicht abgeschlossen aber es funktioniert bereits seit einigen Wochen auf mehreren Rechnern problemlos.

Ich hänge euch das Programm mal an. Wer mag, kann es ausprobieren (und nutzen) und mir auch sehr gern Feedback geben.
Es muss nichts installiert werden. Die Datei entpacken und in ein Verzeichnis eurer Wahl kopieren (merken), fertig. Günstig ist das Install-Verzeichnis der WaWi (Standard: "C:\Program Files (x86)\JTL-Software\WinPopper.exe"), das spart später die Angabe des Pfades zur Datei, ist aber nicht notwendig.

Wie ihr was beim Aufruf angeben müsst, wird in kurzer Zusammenfassung angezeigt, wenn ihr die Datei ohne Parameter per Doppelklick aufruft.
Bei Interesse eurerseits erkläre ich die Handhabung gern näher und mach noch ein paar Screenshots und geb Beispiele.

2 einfache Beispiele:
Popup (WinPopper.exe im WaWi Install-Verzeichnis)

1.png
2.png

Tabelle (mit absolutem Pfad zur WinPopper.exe)
3.png
4.png

Feedback ist jederzeit willkommen.
 

Anhänge

  • WinPopper.zip
    469,6 KB · Aufrufe: 187
Zuletzt bearbeitet:

tom10

Sehr aktives Mitglied
2. Oktober 2012
718
117
06774 Muldestausee
Ein Kollege hat mich gebeten doch bitte noch zu erwähnen, dass der Text der ausgegeben werden soll, nicht in einer Zeile stehen muss. OK Mario, tue ich hiermit :)

Beispiel für die Textausgabe (funktioniert auch mit Popup)
Auf doppelt angelegten Kunden hinweisen.

Bedingung (Ist nicht leer):
Code:
{% capture query %}
SELECT cKundenNr FROM tKunde
LEFT JOIN tAdresse on tAdresse.kKunde = tKunde.kKunde
WHERE  tKunde.kKunde != {{ Vorgang.InterneKundennummer }}
AND (
       ( cMail != ''
         AND cMail = '{{ Vorgang.Adresse.EMail }}'
       )
       OR ( cTel != ''
            AND cTel = '{{ Vorgang.Adresse.Telefon }}'
          )
       OR ( cName != ''
            AND cName = '{{ Vorgang.Adresse.Nachname }}'
            AND cPLZ = '{{ Vorgang.Adresse.PLZ }}'
          )
       OR ( cFirma != ''
            AND cFirma = '{{ Vorgang.Adresse.Firma }}'
            AND cPLZ = '{{ Vorgang.Adresse.PLZ }}'
          )
    )
{% endcapture -%}
{% assign result = query | DirectQueryScalar %}
{{ result  }}

Aktion (Ausführen -> Parameter):
Code:
{% capture query %}
SELECT cKundenNr FROM tKunde
LEFT JOIN tAdresse on tAdresse.kKunde = tKunde.kKunde
WHERE  tKunde.kKunde != {{ Vorgang.InterneKundennummer }}
AND (
       ( cMail != ''
         AND cMail = '{{ Vorgang.Adresse.EMail }}'
       )
       OR ( cTel != ''
            AND cTel = '{{ Vorgang.Adresse.Telefon }}'
          )
       OR ( cName != ''
            AND cName = '{{ Vorgang.Adresse.Nachname }}'
            AND cPLZ = '{{ Vorgang.Adresse.PLZ }}'
          )
       OR ( cFirma != ''
            AND cFirma = '{{ Vorgang.Adresse.Firma }}'
            AND cPLZ = '{{ Vorgang.Adresse.PLZ }}'
          )
    )
{% endcapture -%}
{% assign res_cKundenNr = query | DirectQueryScalar -%}
{% capture Ausgabe -%}
folgender Kunde wurde wahrscheinlich doppelt angelegt:

Kd.-Nr. Alter Kunde: {{ res_cKundenNr }}
Kd.-Nr. Neuer Kunde: {{ Vorgang.Kundennummer }}

Firma: {{ Vorgang.Adresse.Firma }}
Vorname: {{ Vorgang.Adresse.Vorname }}
Name: {{ Vorgang.Adresse.Nachname }}
E-Mail: {{ Vorgang.Adresse.EMail }}
PLZ/Ort: {{ Vorgang.Adresse.PLZ }} {{ Vorgang.Adresse.Ort }}
{% endcapture -%}
--text "{{ Ausgabe }}"

2.png

1.PNG
 

ple

Sehr aktives Mitglied
20. August 2019
589
134
Wollte mal fix ein dickes Dankes hierlassen.
Die Popups helfen mir jetzt ungemein dabei, dass ich keine Artikelbilder mehr vergesse, wenn ein Artikel angelegt wird oder dupliziert ohne Bilder.
Das ging mir jetzt 3 Wochen auf die Nerven und bin echt dankbar für dein Tool.
Sollte JTL mal integrieren, wäre ein schönes nice to have.

Habe mir beim Versenden auch mal eben eins angelegt in der Hoffnung, dass jetzt die Meldung aufpoppt, warum nicht verschickt werden konnte bei Warenpost oder DHL.
Mal schauen ob es beim nächsten mal klappt.
Beim WMS ist das leider nicht direkt ersichtlich, warum kein Label kommt, da muss man erst in der WMS gucken was der Fehler ist.
 

jtldudel

Sehr aktives Mitglied
4. Januar 2018
606
193
Okay jetzt mal eine etwas komplizierte Idee: Könnte man auch ein Popup erstellen in dem ein Eingabefeld erscheint? Z.B. ein Feld das mir erlaubt direkt eine Anmerkung in den Auftrag zu schreiben, der den Workflow auslöst?

Ist sicherlich nicht so trivial, aber wäre super Praktisch!
 

tom10

Sehr aktives Mitglied
2. Oktober 2012
718
117
06774 Muldestausee
... Könnte man auch ein Popup erstellen in dem ein Eingabefeld erscheint? Z.B. ein Feld das mir erlaubt direkt eine Anmerkung in den Auftrag zu schreiben, der den Workflow auslöst?

Prinzipiell ja, der WinPopper kann mittlerweile auch SQL. Allerdings werde ich das Programm so nicht zur Verfügung stellen bzw. ich werde es veröffentlichen aber nicht schreibend. Das Risiko ist mir einfach zu hoch, dass irgandwann bei irgendwem was daneben geht.

Ich habe leider nicht die Zeit und nicht die Ressourcen, ausgiebige Tests durchzuführen. Und dann ist da noch das mit den regelmäßigen DB Updates durch JTL, die ich nachziehen müsste ohne inkompatibel mit älteren Versionen zu werden ....

Möglich wäre eventuell eine Version ohne fertige SQLs, ähnlich den eigenen Übersichten, nur halt auch schreibend ... mmmh, da muss ich drüber nachdenken. Das kann auf Nutzerseite auch ganz schnell in die Hose gehen und die DB inkonsistent machen oder im schlimmsten Fall die DB komplett unbrauchbar machen. Ich bin eher nicht dafür.

Ich stelle hier in nächster Zeit eine neue Version mit SQL Support bereit. Ohne schreibenden Zugriff auf die DB ;)

Sorry für das laute Nachdenken
 

jtldudel

Sehr aktives Mitglied
4. Januar 2018
606
193
Tom ich kann das total nachvollziehen, das Risiko ist groß und ich würde das auch ungern für andere verantworten wollen. Ist überhaupt schon toll was du hier bereit stellst! Deine lauten Gedanken finde ich durchaus interessant da es ja auch für uns alle gut ist die bedenken zu hören und zu verstehen. Ich träume auch nur laut ;)