Lieferantennummer vs. InterneLieferantennummer???

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
401
Hallo,

zur Erläuterung: Ich möchte meine PDFs für Lieferantenbestellungen mit Dateinamen ausgeben, die die Vorgangs-ID, die Lieferantennummer und das Datum enthalten, also z.B. "BE14111023_70001_12112014" für eine Bestellung mit der Nummber BE14111023 vom 12.11.2014 an Lieferant 70001. Die Lieferantennummer soll hierbei natürlich die in den Lieferantendaten eingetragene sein und per DotLiquid "gezogen" werden.

Wie bereits an anderer Stelle hier im Forum von elcheffe vergeblich angefragt, scheint es aber keine Variable "Lieferantennummer" zu geben, sondern nur eine "InterneLieferantennummer". Die gibt aber offenbar nur die interne (!) Sequenz-Nummer des Lieferanten an, also vermutlich, als wievielter Lieferant er/sie angelegt wurde. Das ist für meine Zwecke natürlich komplett sinnfrei, zumal man diese interne Sequenz-ID auch nirgends einsehen kann.

Meine Frage ist also, ob es irgendeine Möglichkeit gibt, die beim Lieferanten vergebene, tatsächliche "Lieferantennummer" auch als Variable in DotLiquid abzufragen?

Gruß,
Ingmar
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
401
AW: Lieferantennummer vs. InterneLieferantennummer???

Hallo JTLer,

dass dieser Thread durchaus gelesen wird, aber keiner antwortet gibt mir das Gefühl, dass ich vielleicht irgendetwas offensichtliches übersehe und mein Problem banal oder dämlich ist, also hier noch einmal als Frage und etwas weniger speziell als oben, mit der herzlichen Bitte um irgendeine ja/nein/wie Antwort:

Frage: Wie kann ich in meinen Lieferantenbetellungen die tatsächliche Lieferantennummer ausgeben, z.B. im Kopf für so etwas wie "Ihre Lieferantennummer: 70011"?

Gruß,
Ingmar
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
401
AW: Lieferantennummer vs. InterneLieferantennummer???

Hi Sebastian,

danke für den Hinweis und auch wenn ich immer noch nicht ganz verstehe, wozu diese "interne Lieferantennummer" denn gut sein soll, ist es natürlich nicht zumutbar, dass JTL alles Erdenkliche in "ready made" Variablen abbildet und klar, dass man auch mal selbst Hand anlegen muß, soweit so gut ...

Ich habe mir also die Forums- und Wiki-Quellen zur JTL_DirectQuery durchgelesen, schöne Beispiele, ok, was ich aber partout nicht finden konnte, war irgendeine Anleitung WIE man denn zu seiner maßgeschneiderten Query kommt, also irgendetwas wie ein Datenbank-Schema oder Relation-Diagramm, ein Hinweis auf Tools, oder sonstwas?

Ist schon klar, dass das Bauen von DirectQueries eher nicht für einfache User gedacht ist, aber wenn man denn mal ran muß und muß, nur um die Tabellen und Spalten zu suchen, gleich mit so einem schweren Geschütz wie SQL Management Studio direkt auf der DB rumturnen, dann kommt mir das eigentlich ziemlich gefährlich vor. Ist das wirklich so gedacht? Wenn man sich traut ist es damit natürlich ziemlich einfach, simple Queries wie diese hinzubekommen...

Code:
"Unsere Kunden-Nr.: "+JTL_DirectQuery ("SELECT cLieferantID FROM dbo.tlieferant WHERE cLiefNr="+ToString$(Vorgang.Lieferant.EigeneKundennummer))
Ich würde mich aber trotzdem freuen, wenn Du mir vielleicht einen "Pointer" auf Informationen zum Vorgehen beim Erstellen von Queries geben könntest, für den Fall, dass ich etwas übersehen habe.

Gruß,
Ingmar
 

SebastianB

Moderator
Mitarbeiter
6. November 2012
2.084
339
AW: Lieferantennummer vs. InterneLieferantennummer???

Hi,

die InternenXXX-Nummern sind die eindeutigen Nummern, die wir intern für die Zuordnung nutzen. Das sind letztlich auch die Werte, über die man in einer DirectQuery die Datensätze adressiert - im Fall der Lieferanten also z.B. "SELECT foo FROM dbo.tlieferant WHERE kLieferant = " + Vorgang.Lieferant.InterneLieferantennummer

Ich weiß jetzt nicht, welche Lieferantennummer Du brauchst, ich würde mal vermuten es ist cLiefNr. Also wäre die Query: "SELECT cLiefNr FROM dbo.tlieferant WHERE kLieferant = " + Vorgang.Lieferant.InterneLieferantennummer.

Grundsätzlich zu den Querys:
Alle Variablen die man für die normalen Prozesse benötigt sollten vorhanden sein. Wenn das nicht so ist, ein Ticket beim Support aufmachen und um die Einführung der Variablen bitten. Vorher aber bitte im Wiki nachschauen, ob die Variable nicht schon vorhanden ist - meistens ist das der Fall.

Will man sehr spezielle Sachen realisieren die für die Masse der Kunden nicht wichtig ist, kann man sich mit DirectQueries behelfen. Ebenso kann man damit die Übergangszeit überbrücken bis eine Variable zur Verfügung gestellt wird.

Man arbeitet direkt auf der Datenbank. Wie Du schon angemerkt hast ist das alles andere als optimal und in der Form auch eher für Servicepartner als Schnittstelle für mögliche Anpassungen gedacht.

Gruß,
Sebastian
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
401
AW: Lieferantennummer vs. InterneLieferantennummer???

Hi Sebastian,

danke für die hilfreichen Infos. Die Tabellen sind gottseidank alle sehr klar benannt und solange ich keine komplizierten Dinge über mehrere Tabellen hinweg brauche, fühle ich mich sicher "genug"... ;)

Meine Query ist tatsächlich so in Ordnung wie sie oben steht, da ich zum Zeitpunkt meines ursprünglichen Posts noch davon ausgegangen bin, dass "Lieferantennummer" die Nummer des Lieferanten bei mir und "Eigene Kundennummer" meine eigene Kundennummer beim Lieferanten ist. Tatsächlich ist es aber genau umgekehrt.

Also habe ich alle Nummern in der Wawi vertauscht und brauche jetzt keine Query mehr, um die tatsächliche "Nummer des Lieferanten bei mir" herauszubekommen, denn die steht jetzt direkt zur Verfügung. Aber jetzt brauche ich plötzlich eine Query, die mir meine "Eigene Kundennummer beim Lieferanten" liefert, den Wert kann ich aber über ein WHERE cLiefNr=" + Vorgang.Lieferant.EigeneKundennummer herausbekommen.

Gruß,
Ingmar