Neu Kundenverwaltung -> Druckvorlagen Set Zuweisung via Ameise importieren

DaM'n

Neues Mitglied
4. März 2021
5
1
Hallo zusammen,

bei Umstellung auf die neuen Formulare (Auftrag2.0 - Variablen mit Report. ...) werden die angelegten Kundengruppen- Druckvorlagen nur dann ausgegeben, wenn beim Kunden das richtige Druckvorlagen-Set zugeordnet ist (KUNDEN / F5 -> Kundenstammdaten -> Druckvorlagenset).

Die Zuordnung des Druckvorlagen-Sets in den Kundengruppen hat im Formular keine Auswirkung, auch wenn der Kunde der Gruppe zugeordnet ist.

Die Angabe in diesem Feld (kKundenDrucktext) lässt sich weder durch die Ameise, noch durch ein einfaches SQL Update in der Datenbank (nach Schema (vereinfacht): Tabelle tbo.tkunde wenn kKundenGruppe=4 dann set kKundenDrucktext = 2) setzen.
Auch per Workflow leider nicht realisierbar.

Die Erweiterung der Importmöglichkeiten via Ameise wären hier hilfreich da sonst nur die manuelle Bearbeitung tausender Kunden übrig bleibt.

Danke im Voraus
Dani
 

DaM'n

Neues Mitglied
4. März 2021
5
1
Da ich gebeten wurde noch einmal genauer zu Beschreiben worum es geht....:

1.) WAWI -> Kunden -> Kundengruppen [Kunden - Kundengruppen anlegen / bearbeiten] ganz unten links in der Ecke "Druckvorlagenset anlegen" -> [Kunden - Druckvorlagenset anlegen / bearbeiten] für die entsprechende Kundengruppe dort den Rechnungstext, Auftragstext, Angebotstext, Gutschrifttext und Lieferscheintext anlegen -> speichern.

2.) WAWI -> F5/Kunden -> Kunden wählen und bearbeiten - öffnet -> Kundenstammdaten -> mittlerer, oberer Bereich "Interne Daten" hier die Felder: "Kunde von Firma" und "Druckvorlagenset"

Die Druckvorlage (unter Punkt 1 angelegt) wird nur dann gedruckt, wenn im Kundenstamm (dem betreffenden Kunden) die Vorlage im Feld Druckvorlagenset im internen Datenbereich angegeben ist.

(Hinweis: Die Zuteilung der Kundengruppe an den Kunden (was über die Ameise geht) genügt nicht, auch wenn in "Kundengruppen anlegen / bearbeiten" der Gruppe das entsprechende Vorlagenset zugeteilt ist.)

Die Felder / Inhalte im Feld "Kunde von Firma" und "Druckvorlagenset" lassen sich weder über die Ameise noch über einen Workflow zuweisen.
Der Versuch über ein normales Update in dbo.tKunde diese Felder mit eienr WHERE Abfrage in Bezug zur Kundengruppe zu füllen geht wegen der SP's nicht - bzw. nur über ein SP (Seperated Procedure) - da scheitere dann auch ich bei SQL.

einfachste Lösung: Zuweisung der Felder im Im-und Export der Ameise, um alle Kundendaten vollumfänglich ex- und importieren zu können.

Wenn Jemand eine Lösung hat, wie man eine SP für dbo.tKunde anlegt oder verwendet gerne her damit.

Danke
Dani
 

Shopworker.de

Offizieller Servicepartner
SPBanner
4. Januar 2011
3.582
396
Arnsberg, Sauerland
Hallo Dani,

ich muss ehrlich gestehen, dass ich diese Möglichkeit der Textausgabe von kundengruppenspezifischen Texten bisher nicht kannte.

Mein Versuch das gerade nachzustellen ist gescheitert, daher folgende Fragen an Dich:

- über welche Variable hast du den Text in den neuen Formularen ausgegeben? Ich bekomme überhaupt keine Ausgabe hin ...
- mit welcher Wawi-Version hast du das getestet?

Danke,
Stephan
 

Enrico W.

Administrator
Mitarbeiter
27. November 2014
5.577
823
Geht mir auch so, ich kannte diese Funktion bisher auch nicht.
Daher habe ich mich einmal dran gesetzt und ein wenig getestet.
Das Zuweisen einer Kundengruppe zum Kunden reicht durchaus. Voraussetzung ist, dass man der Kundengruppe dann auch das Druckvorlagenset zugewiesen hat:
1615533607022.png
Ist das eingestellt, dann wird bei der Druckausgabe der jeweiligen Vorlage dieser Text herangezogen.
Darüber hinaus kann man ein Druckvorlagenset für Kunden separat einstellen. Dieses Druckvorlagenset hat dann Vorrang vor dem Set der Kundengruppe.

Screenshot 1:


1615534062150.png
Druckvorlagenset wurde nur dieser Kundengruppe zugewiesen, der Kunde hat kein eigenes Druckvorlagenset.

Screenshot 2:

1615534156705.png
Hier wurde dem Kunden explizit ein anderes Druckvorlagensetz zugewiesen.
@Shopworker.de Ich hab das jetzt nicht weiter geprüft, welche Variable dafür zuständig ist, denke aber, dass das Vorgang.KundenText sein müsste. Das ist in diesem Beispiel bereits in der Standardvorlage enthalten.


Das Ticket für die Zuweisung mit der Ameise werde ich selbstverständlich gleich noch erstellen, bei korrekt zugewiesener Kundengruppe sollte die Dringlichkeit der Umsetzung damit ein wenig geringer sein.

PS: Getestet habe ich mit der 1.5.41.0

Edit:
Hier der Link zum Issue: https://issues.jtl-software.de/issues/WAWI-53916
 
Zuletzt bearbeitet:

DaM'n

Neues Mitglied
4. März 2021
5
1
Hallo nochmal (insbesondere Enrico & Stephan),

wie eingangs beschrieben, bezog sich meine Frage auf die neuen Formularformen, deren Variablen mit "Report" anfangen (sonst hätte ich da kein Problem).

JA - bei den alten (veralteten) Vorlagen für Druck, Mail, Speichern... in denen die Variablen mit "Vorgang...." anfangen geht das so wie von Enrico beschrieben, jedoch nicht bei den neuen mit "Report....", da die alten Texthinterlegungen unter ADMIN-> Ausgabeoptionen (veraltet) -> Formulartexte wohl irgendwann abgeschafft werden und (wie beschrieben) veraltet sind hatte ich diese wie bereits beschrieben in den Druckvorlagen-Sets angelegt.
Auch, da ich in den neuen Formularen keinen Bezug zu den veralteten Formulartexten gefunden habe und nicht alles über SQL Querry erledigen wollte.

Die Variable bei einer Rechnung hierfür ist: Report.InvoicePrintingText - bei Angebot, Auftrag, etc. natürlich endsprechend statt Invoice den betreffenden Vorgang.

Kann natürlich sein, ich habe die neue Variable für die Funktion des Ziehens aus der Kundengruppeneinstellung nicht gefunden. Bin 10 Jahre die alten Variablen gewohnt die ich fast auswendig kann - umstellen ist da schon schwer, zumal es nicht für alles ein Pendant gibt.

@ Enrico: Ich habe es in allen Varianten ausprobiert, bekommen den Text aber nur dann, wenn im Kundenstamm explizit die Angabe für den Drucktext ausgewählt ist - daher auch die Dringlichkeit mit der Zuweisung zu jedem Kunden über Ameise, Workflow oder Update der Tabelle über SQL.
Übrigends haben alle Kunden eine Zuordnung zur entsprechenden Kundengruppe und jeder Kundengruppe ist der entsprechende Text zugeordnet.
Wawi Version 1.5.40.0 - war aber auch schon unter 1.5.32 so.

Schönes WE & Grüße
Dani
 

Enrico W.

Administrator
Mitarbeiter
27. November 2014
5.577
823
Wenn das bei einigen Vorlagen geht und bei anderen nicht, dann ist das doch bereits ein Fehler der Vorlagen. Hier sehe ich die Dringlichkeit dann eher an der Stelle, dass diese Vorlagen repariert werden müssen. Daher verschiebe ich das Thema mal in den Vorlagen-Bereich. Für die Ameise haben wir ja bereits ein Ticket.
 
Zuletzt bearbeitet:

Happy

Moderator
Mitarbeiter
29. Juli 2011
470
83
Hückelhoven
Hallo @DaM'n
ich habe mir die Problematik zusammen mit @Enrico W. angeschaut.
In den neuen Vorlagen ist zwar eine Variable für den Text beim Kunden vorhanden und auch hinterlegt.
Es gibt allerdings keine Variable für den Text bei den Kundengruppen.

Hierfür habe ich ein Directquery erstellt
Da die Texte jedoch alle als Spalte in einer Tabelle hinterlegt sind, muss das Direktquery so angepasst werden, das die "Überflüssigen" Texte entfernt werden, ich hoffe du/ihr kommt damit zurecht und könnt es in die Vorlage einbauen.

Code:
JTL_DirectQuery("SELECT
tKundenDrucktextSprache.cRechnungstext --Text für die Rechnung
,tKundenDrucktextSprache.cAuftragstext --Text für den Auftrag
,tKundenDrucktextSprache.cAngebotstext --Text für die Angebote
,tKundenDrucktextSprache.cLieferscheintext --Text für die Lieferscheine
FROM dbo.tKundenGruppe
JOIN dbo.tKundenDrucktextSprache ON tKundenDrucktextSprache.kKundenDrucktext = tKundenGruppe.kKundenDrucktext
WHERE kSprache = "+str$(Report.LanguageInternalId)+"
AND kKundenGruppe ="+ str$(Report.Customer.CustomerGroup.InternalId))
+"¶"+
cond(NOT IsNullOrEmpty(Report.CustomerText),Report.CustomerText)
Das Bild im Anhang soll dabei helfen die Stelle zum einfügen der Directquery zu finden.
 

Anhänge

  • Gefällt mir
Reaktionen: Enrico W.

DaM'n

Neues Mitglied
4. März 2021
5
1
Hallo Zusammen,
danke für die Bemühungen und das Erkennen des bestehenden Problems - nur leider funktionierte die Formel so nicht bei mir.

Die Variable: "Report.CustomerText" gibt es nicht (was ja auch eines der Probleme mit den Formularen ist).

Die Angabe: "Report.LanguageInternalId" muss heißen: "Report.Customer.LanguageInternalId" (zumindest bei den Rechnungen - Report.LanguageInternalId erzeugt einen Fehler)

Nach mehreren Versuchen habe ich, aufgrund der o.g. hilfreichen Angaben, diese Abfrage für die Rechnungen geschrieben, welche getestet in 1.5.40.0, auch richtig funktioniert:

Cond(IsNullOrEmpty(Report.InvoicePrintingText),JTL_DirectQuery("SELECT tKundenDrucktextSprache.cRechnungstext FROM dbo.tKundenGruppe JOIN dbo.tKundenDrucktextSprache ON tKundenDrucktextSprache.kKundenDrucktext = tKundenGruppe.kKundenDrucktext WHERE kSprache = "+str$(Report.Customer.LanguageInternalId)+" AND kKundenGruppe ="+ str$(Report.Customer.CustomerGroup.InternalId)),Report.InvoicePrintingText)

Habe es in den verschiedensten Konstellationen (bezogen auf angegebene Kundengruppe und vorhandene Abweichung des Druckvorlagensets) im Rechnungsformular ausprobiert - es funktioniert und gibt, je nach Vorgabe den richtigen Text wieder.
Für Auftrag, Lieferschein, Angebot etc. muss die Angabe "cRechnungstext" wohl entsprechend dem Vorgang erstetzt werden.

Danke für die Unterstützung - wollte es zwar nicht über DirectQuery lösen aber bis die Bugs gekillt sind reicht es allemal.

Beste Grüße
Dani
 

Hennesee

Neues Mitglied
10. Februar 2021
2
1
Hallo,
könnte mir jemand helfen den Text für Angebot und Auftrag anzupassen?
Wo finde ich die Variablen für Auftrag, Lieferschein und Angebot?


Cond(IsNullOrEmpty(Report.InvoicePrintingText),JTL_DirectQuery("SELECT tKundenDrucktextSprache.cRechnungstext FROM dbo.tKundenGruppe JOIN dbo.tKundenDrucktextSprache ON tKundenDrucktextSprache.kKundenDrucktext = tKundenGruppe.kKundenDrucktext WHERE kSprache = "+str$(Report.Customer.LanguageInternalId)+" AND kKundenGruppe ="+ str$(Report.Customer.CustomerGroup.InternalId)),Report.InvoicePrintingText)

Für Auftrag, Lieferschein, Angebot etc. muss die Angabe "cRechnungstext" wohl entsprechend dem Vorgang erstetzt werden.
Ich würde mich ganz doll freuen, wenn mir jemand sagen könnte, wo ich die notwendigen Infos bekomme um mir die Variablen selbst anzueignen...
 

DaM'n

Neues Mitglied
4. März 2021
5
1
Hi Hennesee,

schaue mal oben im Beitrag von Happy, da sind alle Variablen für den Textbezug aus der DB genannt:

cAuftragstext --Text für den Auftrag
cAngebotstext --Text für die Angebote
cLieferscheintext --Text für die Lieferscheine
Damit dies aber mit dem von mir geänderten Query funktioniert, musst Du (bei Verwendung der neuen Formulare, die "Report. ..." Variablen haben), die Pendants für " Report.InvoicePrintingText" ebenfalls anpassen, sonst wird immer nur der Rechnungstext ausgegeben, wenn die Formel nicht zutrifft.

Da ich mich mit den anderen Formularen (Angebot, Auftrag, Lieferschein) noch nicht beschäftigen musste, habe ich diese noch nicht griffbereit.
Die Texte sind in Englisch. Suche sie einfach über die Eingabe/Filterung in den Variablen

Wenn ich zeitlich mal dazukomme, kann ich sie hier auch noch posten.

Viel Erfolg & Grüße
Dani
 
  • Gefällt mir
Reaktionen: Hennesee

Hennesee

Neues Mitglied
10. Februar 2021
2
1
Hi Dani,
du bist echt schnell, lieben Dank für deine Antwort.
Ich habe es gestern doch noch selbst hinbekommen, nachdem ich nun schon einige Tage herumexperimentiert habe...
und habe einen Mix zwischen deiner und Enricos Lösung gefunden (siehe unten)

...
Damit dies aber mit dem von mir geänderten Query funktioniert, musst Du (bei Verwendung der neuen Formulare, die "Report. ..." Variablen haben), die Pendants für " Report.InvoicePrintingText" ebenfalls anpassen, sonst wird immer nur der Rechnungstext ausgegeben, wenn die Formel nicht zutrifft.
...
Viel Erfolg & Grüße
Dani
Genau damit hatte ich Schwierigkeiten.

Hier meine Lösung:

Angebot:

Cond(IsNullOrEmpty(Report.CustomerText),JTL_DirectQuery("SELECT tKundenDrucktextSprache.cAngebotstext FROM dbo.tKundenGruppe JOIN dbo.tKundenDrucktextSprache ON tKundenDrucktextSprache.kKundenDrucktext = tKundenGruppe.kKundenDrucktext WHERE kSprache = "+str$(Report.Customer.LanguageInternalId)+" AND kKundenGruppe ="+ str$(Report.Customer.CustomerGroup.InternalId)),Report.CustomerText )

Auftrag:
Cond(IsNullOrEmpty(Report.CustomerText),JTL_DirectQuery("SELECT tKundenDrucktextSprache.cAuftragstext FROM dbo.tKundenGruppe JOIN dbo.tKundenDrucktextSprache ON tKundenDrucktextSprache.kKundenDrucktext = tKundenGruppe.kKundenDrucktext WHERE kSprache = "+str$(Report.Customer.LanguageInternalId)+" AND kKundenGruppe ="+ str$(Report.Customer.CustomerGroup.InternalId)),Report.CustomerText )

Lieferschein:
Cond(IsNullOrEmpty(Report.DeliveryNoteText),
JTL_DirectQuery("SELECT tKundenDrucktextSprache.cLieferscheintext FROM dbo.tKundenGruppe
JOIN dbo.tKundenDrucktextSprache ON tKundenDrucktextSprache.kKundenDrucktext = tKundenGruppe.kKundenDrucktext
WHERE kSprache = "+str$(Report.Customer.LanguageInternalId)
+" AND kKundenGruppe ="+ str$(Report.Customer.CustomerGroup.InternalId)),Report.DeliveryNoteText )

oder

JTL_DirectQuery("SELECT
tKundenDrucktextSprache.cLieferscheintext
FROM dbo.tKundenGruppe
JOIN dbo.tKundenDrucktextSprache ON tKundenDrucktextSprache.kKundenDrucktext = tKundenGruppe.kKundenDrucktext
WHERE kSprache = "+str$(Report.Customer.LanguageInternalId)+"
AND kKundenGruppe ="+ str$(Report.Customer.CustomerGroup.InternalId))+
cond(NOT IsNullOrEmpty(Report.DeliveryNoteText),Report.DeliveryNoteText)



Rechnung (wegen der Vollständigkeit):
Cond(IsNullOrEmpty(Report.InvoicePrintingText),JTL_DirectQuery("SELECT tKundenDrucktextSprache.cRechnungstext FROM dbo.tKundenGruppe JOIN dbo.tKundenDrucktextSprache ON tKundenDrucktextSprache.kKundenDrucktext = tKundenGruppe.kKundenDrucktext WHERE kSprache = "+str$(Report.Customer.LanguageInternalId)+" AND kKundenGruppe ="+ str$(Report.Customer.CustomerGroup.InternalId)),Report.InvoicePrintingText)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: DaM'n