on 06-07-2012 7:11 AM
Guten Morgen zusammen,
da quäl ich mir gestern in englisch einen ab und dann find ich doch noch ein deutsches Forum hier-ja fein 🙂
Zum Problem...
Ich habe eine Abfrage erstellt die mir quasi den Verknüpfungsplan in Tabellenform bietet.
Sie enthält alle Vorgänge vom Produktionsauftrag oder Bestellung, Kundenauftrag, Lieferung,
Rechnung und ggf. Ausgangsgutschrift.
In meiner Abfrage besteht nun das Problem das in manchen Fällen der Produktionsauftrag
nicht eindeutig einer Lieferung zugeordnet werden kann.
Beispiel:
Ein Kundenauftrag enthält 2 Positionen des gleichen Artikels aber mit unterschiedlichen Versanddaten.
Für die 2 Positionen gibt es auch 2 Produktionsaufträge (unterschiedliche Fertigungstage), die
jeweils das gleiche Produkt und die gleiche Artikelanzahl enthalten.
Meine Abfrage kann nun nicht zuordnen ob die Lieferung A mit Produktionsauftrag 1 oder 2 erzeugt wurde
und gibt mir somit alle möglichen Lösungen raus: LFS A mit PA 1, LFS A mit PA 2, LFS B mit PA 1 und LFS B mit PA 2.
Das ist natürlich mist. Über die Batchnummer könnte man das ja eindeutig klären aber ich finde einfach keine
Verbindung. Die Batchnummer wird beim Anlegen des Produktionsauftrages vergeben.
Beim Erstellen des Lieferscheins muss eine Batchnummer für der zu versendende Produkt ausgewählt werden.
Wäre also einfach die Festlegung Produktionsauftrag.Batchnummer = Lieferschein.Batchnummer
(ein Vergleich der Mengen ist nicht möglich, da ggf. auch mehr produziert wird als mit der Lieferung verschickt wird, Rest geht auf Lager)
Bitte helft mir...eine Sinnvollere Verbindung von Produktionsauftrag zu Kundenauftrag als
ORDR.DocNum = OWOR.OriginNum hab ich nicht gefunden 😞
Schöne Grüße aus der Mitte Deutschlands
Oder einfacher gefragt:
Wo kann ich die Batchnummer, die ich vor dem Buchen des LFS angeben muss, auslesen? In welcher auslesbaren Tabelle ist eine eudeutige Zuordnung von LFS zu Batchnummer gegeben?
Bei allen anderen Geschäftsfällen krieg ich verschiedene und vor allem sinnvolle Verbindungen zwischen den einzellnen Verkaufsschritten hin aber die Anbindung der Produktion an den Verkauf...der hängt nur an dieser kleinen Verbindung
ORDR.DocNum = OWOR.OriginNum and ORDR.ItemCode=OWOR.ItemCode
das ist ein bisschen sehr mau 😞
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Blöder Mist, jetzt liegt die Lösung vor mir aber ich kriegs trotzdem nicht hin 😞
Ich hab jetzt wie folgt angebunden:
LEFT OUTER JOIN IBT1 T14 on T14.BaseNum=ODLN.DocNum and T14.Quantity=DLN1.Quantity and T14.BaseEntry=DLN1.DocEntry and T14.BatchNum=OWOR.U_UO_BATCHNR
and T14.BsDocType='17'
Im Select hab ich jetzt auch die IBT1.BatchNum drin. Eine Anbindung nur zum Lieferschein ist ok, Kundenaufträge ohne bisherige Lieferung brauchen auch keine Batch. Leider ergibt das für meine Abfrage mit einem LEFT OUTER JOIN immer noch eine nicht eindeutige Zuordnung (siehe Bild "LEFT OUTER JOIN).
Mache ich einen INNER JOIN auf die IBT1 so kriegt er die richtige Zuordnung 🙂 aber schmeisst mir natürlich meine Kundenaufträge mit Lagerware raus 😞
Mache ich einen RIGHT OUTER JOIN ist alles jenseits von Gut und Böse.
Och menno-das kann doch nicht so schwer sein 😞
Könnte ich nochmal um einen kleinen Gedankenanstoß bitten?
Schöne Grüße
katharina
Grundsätzlich lautet meine erste Empfehlung - nutze immer DocEntry und nicht DocNum
(es könnten meherer Belegnummernserien geben, dann ist DocNum nicht mehr eindeutig, DocEntry ist hingegen immer eindeutig).
Beide zu verwenden (DocEntry und DocNum) macht aus meiner Sicht gar keinene Sinn ?!
Weshalb referenzierst Du in der IBT1 auf "BsDocType" ?
Die Zu- und Abgänge werden durch die Objekte aus BaseType defniert, und nicht aus deren Ursprungsbeleg. Hast Du bei einem Abgang per Lieferschein - im "BaseType" also den Wert "15" stehen - , fragst Du hingegen den "BsDocType" mit dem Wert "17" ab - also den Kundenauftrag, der dem Lieferschein vorangestellt war.
Ob es ein Zu- oder Abgang ist, kannst Du wiederum aus der "Direction" auslesen
Kann es in einem Beleg zweimal den gleichen Artikel mit der gleichen Chargennummer geben ?
Falls nicht, würde ich weiter vereinfachen und die nicht benötigte "Quantity" weglassen.
Falls doch der gleiche Artikel mit der selben Chargennummer mehrfach in einem Beleg vorkommen kann, wer sagt uns dass die Menge nicht auch identisch ist ?
Dann wäre eine eindeutige Eingrenzung anhand der "LineNum"
Eigentlich sollte ein LeftJoin "On T14.BaseEntry = T13.DocEntry" oder T2 das kann ich nicht erkennen) reichen ... ggf. mit vorangestelltem "On T14.DocType=15" (oder 20 oder whatever)
Hoffe das hilft die Lösung für Deine Abfrage
daraus abzuleiten
Gruß,
Heiko
User | Count |
---|---|
99 | |
11 | |
11 | |
6 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.