Auftragskandidat

Sorry jetzt ist mir was dazwischen gekommen. Müssen wir doch verschieben. :frowning: Wie gesagt bin zwischen den Tagen per Email erreichbar. Schöne Weihnachten für Euch …
Gruß Dieter

OK, wie wärs am 28.12. (Mittwoch) vormittags so gegen 10:30?

Hi Tobias Bin online

Hallo, ich bin jetzt auch hier.

Guten Morgen @nebergd und frohes Neues!

bitte schau mal hier, ich habe Schwierigkeiten, die Testdatei zu laden.

Hallo Dieter,
ich habe Dich schon angeskped, schreibe es hier aber auch noch, für’s Archiv (und etwas hübscher):

die geladenden C_OLCand werden mit C_Charge_ID=540002
geladen. der Betreffende C_Charge (“Kostenstelle”) eintrag hat die Steuerkategorie “Steuerfrei 0%”.
Zu dieser Steuerkategorie gibt es keinen Stauersatz (das Fenster heisst auch so, Tabelle heisst C_Tax) und deshalb schlägt das ganze fehl
wenn du

update C_OLCand set C_Charge_ID=null

ausführst um die Kostenstelle bei alle Auftragsdispo-Datensätzen zu entfernen, dann zieht nicht mehr die Steuerkat “Steuerfrei 0%”, sondern diejenige, die bei den Preisen hinterlegt ist (19%). Und dazu gibt’s auch einen Steuersatz und dann werden auch die Auftragzeilen hinterlegt.
was du allerdings noch tun müsstest, damit der Auftrag nicht nur erstellt wird, sondern auch fertiggestellt werden kann, ist (falls noch nicht geschehen) die Buchungsperioden für 2017 anzulegen…dazu müssten wir eine doku haben…japp: http://docs.metasfresh.org/howto_collection/Wie_erstelle_ich_die_Perioden_fuer_ein_neues_Jahr.html

Das spricht aus meiner Sicht auch nochmal für ein COPY mit header…damit überhaupt mal klar ist, welche werte in welcher spalte landen.

Und natürlich ist es Mist, dass der Fehler nicht angezeigt wurde und ich erst den Debugger anwerfen musste…da müssen wir auf jeden Fall noch ran…

Hi
werde ich ausprobieren… kann ich eigentlich die Einträge aus c_olcand einfach per sql löschen oder gibt es dann Inkonsistenzen in der DB?
Gruß Dieter

solange noch keine auftragszeilen entstanden sind kannst du sie löschen.
Ansonsten sollte es (auch bei der Version die Du zur Zeit nutzt, danach habe wir das aber nochmal verbessert) einen Fehler geben, sofern andere Datensätze die C_OLCand referenzieren (Stichwort “Foreign Key Constraint”)

Hi Tobias,
löschen hat mit delete from c_olcand: geklappt.
Aber den Auftragskanidaten habe ich als Auftrag übernommen bekommen. Wo kann ich die Steuerkategorie sehen? Hat es denn bei Dir geklappt mit dem Auftrag? Vielleicht mache ich noch was falsch bei der Auftragsdisposition? Wenn ich den Datensatz sehe, was muss ich dann machen. Habe es mit Kettenglied Auftragskandidat versucht

und dann mit Zahnrad und verarbeiten versucht.

Die c_olcand_id darf übrigens nicht leer sein… sonst meckert copy in psql…
Gruß Dieter

Hi Tobias noch was ist mir aufgefallen,


man kann sehen, dass im Feld Eingabeq… importiert aus EDI ORDERS Datei steht aber im Auswahlfeld steht keine Auswahl…
Gruß Dieter

Guten Morgen Dieter

löschen hat mit delete from c_olcand: geklappt.

Apropos, warum wolltest du die C_OLCands löschen? Um nochmal einen sauberen Start zu haben?

Wo kann ich die Steuerkategorie sehen?

Die Steuerkategorie ist von der Kostenstelle der Auftragskandidaten verlinkt. Ich spreche hier von drei verschiedenen Tabellen:

  • C_OLCand: Auftragsdispo, mit der Spalte C_Charge_ID die eine Referenz auf die Kostenstellen-Tabelle enthalten kann
  • C_Charge: Kostenstelle, mit der Spalte C_Tax_Category_ID die eine Referenz auf die Steuerkategorie Tabelle enthalten kann
  • C_Tax_Category: Steuerkategorie

Die Auftragskandidaten verlinken also zur Kostenstelle über die Spalte C_OLcand.C_Charge_ID.

Du lädst aus der CSV-Datei in die Spalte C_OLCand.C_Charge_ID den Wert 540002 hinein (wenn Du in die CSV-Datei schaust, dann siehst Du auch diese Zahl) und das ist die ID der Kostenstelle “Materialentnahme” die ihrerseits die Steuerkategorie “0%” hat, zu der es keinen Steuersatz gibt.

Das Problem dabei: Die Kostenstelle wird in der Auftragsdispo nur selten gebraucht Das Kostenstelle-Feld wird deshalb Standardmäßig nicht einmal angezeigt. Es macht auch soweit ich sehe hier fachlich keinen Sinn eine C_Charge_ID zu laden.

Jetzt nochmal der Refain ;-):
Das spricht aus meiner Sicht auch nochmal für ein COPY mit header…oder jedenfalls wie auch immer ganz sicher zu stellen, welche Werte in welcher Spalte landen.

Hat es denn bei Dir geklappt mit dem Auftrag?

Ja, nachdem ich die Kostenstellen-Referenzierung der Bestehenden C_OLCand-Datensätze mit

UPDATE C_OLCand SET C_Charge_ID=null;

entfernt habe.
Daraufhin hat sich das System dann nämlich die Steuerkategorie der Preis-Daten gezogen (19%), und zu denen gibt es einen Steuersatz.

Habe es mit Kettenglied Auftragskandidat versucht

Ja, dort sollte dann der Auftrag referenziert sein. Und auch im Unter-Reiter “Zuordnung - Auftragszeile” sollte dann etwas stehen.

Die c_olcand_id darf übrigens nicht leer sein… sonst meckert copy in psql…

OK, stimmt. Dass kannst Du mit dem Folgenden SQL lösen:

ALTER TABLE c_olcand ALTER COLUMN c_olcand_id SET DEFAULT nextval('c_olcand_seq');

Damit holt sich Postgresql selbst eine C_OLCand_ID von der Sequenz namens c_olcand_seq und Du musst keine ID vorgeben. Vorteil: metasfresh selbst holt sich die IDs von der selben Quelle, d.h. Du musst dich nicht um mögliche ID-Kolisionen sorgen.

man kann sehen, dass im Feld Eingabeq… importiert aus EDI ORDERS Datei steht

Ja, das liegt an der ID 150, die Du in das Feld AD_InputDataSource_ID importierst. Wir sollten hier noch einen neuen Datensatz á la “Importiert via DB Copy-Befehl” in die Tabelle AD_InputDataSource eintragen, und dessen ID packst Du dann statt der 150 in die CSV-Datei. Das ist aber denke vorläufig nur ein (kosmetisches) Detail.

aber im Auswahlfeld steht keine Auswahl…

Das liegt daran, dass es zu der ID 1009629 vom Screenshot keinen Datensatz im System gibt.
Du müsstest beim Laden der C_OlCand-Datensätze neben der C_Charge_ID auch dieses Spalte Exp_replicationTrx_ID auf null setzen.

Die neuen Aufträgsdispo-Zeilen werden wie gesagt ja ohnehin jede Minute automatisch verarbeitet.

Ich hoffe, das alles Hilft.
Viele Grüße
Tobias

1 Like

:slight_smile: heute morgen ist der Song angekommen und durch die unterschiedlichen Zeitzonen kommt das Echo des Songs erst jetzt zurück…
Ich habe natürlich schon längst den Header in der datei und dem Tool eingebaut. :slight_smile:
Jetzt probiere ich nochmal den Lösungsansatz.
Gruß Dieter

1 Like

Hi Tobias,
weiter geht es mit den Auftragskandidaten: Das ist die neue Meldung:

Obwohl der eine ja da ist


Gruß Dieter

Hi Tobias,
danke für die Hilfe.
Nachdem ich den AD_DataDestination_ID=540003; eingetragen habe, hat es funktioniert. Ich hatte das so verstanden, dass damit gesagt wird, wie das System die Datensätze verarbeiten soll.
Habe mich dreimal verbeugt vor dem Rechner (Tobias) . Ich hoffe Du hast es gespürt. :wink:
Gruß Dieter

Hallo,

Ich hatte das so verstanden, dass damit gesagt wird, wie das System die Datensätze verarbeiten soll.

genau, das ist wie ein Tag, das aussagt, ob der Auftragskand.-Prozessor überhaupt zuständig ist. Es gibt auch Fälle, wo bei einen Auftragskandidaten gar nichts mehr un Richtung Auftrag zu tun ist (z.B. bei einer Mitgliedschaft o.Ä.) und in dem Fall können wir direkt einen Rechnungskandidaten erzeugen und uns den Auftrag und die Lieferung sparen.

Habe mich dreimal verbeugt vor dem Rechner (Tobias) . Ich hoffe Du hast es gespürt. :wink:

ja, es war ein wohliges Kribbeln zwischen der 3. und 4. Rippe ;-).
Jedenfalls, Dir vielen Dank für Deine Geduld mit uns und dem Auftragskandidaten-Prozessor :slight_smile:

Viele Grüße
Tobias

Hi Tobias,
jetzt kommt natürlich zwangsläufig die Frage, ob ich das auch mit den Geschäftspartnern analog machen… Gibt es da auch sowas wie c_olcand und edi-import…
Gruß Dieter

Wir haben keine “Geschäftspartner-Kandidaten” o.Ä…
D.h. Entweder, Du lädst die Partner weiter via COPY direkt in die DB, ober wir benutzen das Replikation-Framework…das würde aber wie am 28.12. angerissen auf die eine oder andere Art Entwicklungsaufwand bedeuten.

Hi Tobias,
copy finde ich gut. Wie heißt die Datenbanktabelle?
Gruß Dieter

Die Tabelle für Geschäftspartner ist C_BPartner
Vermutlich brauchst du auch zumindest noch C_BPartner:Locationund C_Location für die Addressen.
Falls es noch eine Bankverbindung gibt, dann wäre das noch C_BP_Bankaccount