Hey @Lars Cramer ,
Um die gesamte Stückliste als CSV zu exportieren, gibt es in Xentral keine direkte Möglichkeit, alle Stücklisten auf einmal zu exportieren. Du kannst jedoch über das Modul "Controlling" -> "Berichte" einen Bericht erstellen, der die gewünschten Stücklisteninformationen abfragt. Dazu benötigst du SQL-Kenntnisse, um eine passende Abfrage zu schreiben, die alle Artikel und ihre jeweiligen Stücklisten abruft. Diese Abfrage kannst du dann als CSV-Datei exportieren.
Falls du Unterstützung bei der Erstellung der SQL-Abfrage benötigst, kannst du auch gerne einen unserer Partner kontaktieren.
Alternativ kannst du diesen Punkt auf dem Ideenboard der Xentral Roadmap platzieren, um eine zukünftige Implementierung zu unterstützen.
@Lars Cramer
Hallo Lars,
solltest du Hilfe bei der Erstellung der SQL-Abfrage benötigen, darfst du dich über info@digitalxl.de gerne an uns wenden.
Vielen Dank im Voraus und viele Grüße,
Matthias von digitalXL
Moin @Lars Cramer ,
Du könntest es im Legacy Berichte Modul hiermit probieren :
SELECT
A1.Nummer AS Stuecklistevonartikel,
A1.Name_de AS Stuecklistevonartikel_name,
A2.Nummer AS Artikel_nummer,
A2.Name_de AS Artikel_name,
S.Menge,
A2.Einheit
FROM stueckliste S
INNER JOIN artikel A1 ON S.Stuecklistevonartikel = A1.ID
INNER JOIN artikel A2 ON S.Artikel = A2.ID;
Zumindest als Basis sollte das funktionieren.
Hi Lars,
der Export als CSV exportiert auch wirklich nur was auf der aktuellen Artikeleben sichtbar ist.
Achtung auch bei JIT in JIT Stücklisten, das kann mal so und mal so funktionieren. Ist uns gerade auf die Füße gefallen, die UI ist hier leider keine große Hilfe.
Grüße!
Hallo,
da ich vor nicht all zu langer Zeit das Vergnügen hatte, hier ein Vorschlag meinerseits:
def get_product_parts(product_id, bearer_token):
url = f'https://6512df200e7b4.xentral.biz/api/products/{product_id}/parts'
headers = {
"accept": "application/vnd.xentral.default.v1+json",
"authorization": f'Bearer {bearer_token}'
}
response = requests.get(url, headers=headers)
return response.json()
def check_availability(product_id, quantity_needed, bearer_token):
parts = get_product_parts(product_id, bearer_token)
if not parts.get('data'):
return False
for part in partss'data']:
part_result = check_availability(part_id, part_quantity, bearer_token)
Ist sehr vereinfacht und nur für Programmierer geeignet, aber man kann sich eine rekursive Funktion bauen und dann durch die API laufen lassen. So kann man alle Ebenen der Verschachtelung finden und später ausgeben.
(Achtung, der Code ist absolut unvollständig und soll nur skizzieren, wie man das machen könnte.)
Gruß
Artem
Moin @JulesDeer ,
Jepp, das ist nur für eine Ebene.
Ich muss gestehen, dass mir bei JIT in JIT die Haare zu Berge stehen.
Dafür ist die JIT nicht gedacht und das kann an verschiedenen Stellen Probleme machen.
Daher sollten in eine JIT nur Lagetartikel.
Für mehrstufige Produktuonsartikel ist die Abfrage nur als Datenbasis brauchbar.
Moin @JulesDeer ,
Jepp, das ist nur für eine Ebene.
Ich muss gestehen, dass mir bei JIT in JIT die Haare zu Berge stehen.
Dafür ist die JIT nicht gedacht und das kann an verschiedenen Stellen Probleme machen.
Daher sollten in eine JIT nur Lagetartikel.
Für mehrstufige Produktuonsartikel ist die Abfrage nur als Datenbasis brauchbar.
Kann ich verstehen, Systemseitig ist es im UI nur leider so, dass du implizites wissen haben musst was in den Artikel als JIT angelegt ist und was “nur” als Stückliste. Das führt bei der Erstellung von neuen Artikeln schnell dazu, dass doch mal eine JIT in eine JIT rutscht weil man mit Standard Sets arbeiten möchte. Eine Systemseitige Warnung oder Kennzeichnung in der Stücklisten Übersicht wäre hier von Xentral Seite eine gute Hilfe.
Hallo @JulesDeer ,
das ist eine gute Idee!
Kannst du uns diese hier über unsere Roadmap einreichen?
Beste Grüße
Ich wäre da sogar eher für eine harte Sperre, die das Speichern einer JIT in einer Stückliste verhindert.